-
Notifications
You must be signed in to change notification settings - Fork 80
Final PR for Google Summer of Code 2019 #220
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Fixed the issue when user entered multiple decimal points in the same Constant or Coefficient. - Optimized VisMa checks for Numbers. - Added Tanh Class with it's main functionalities, fixed Calculate function of Sinh & Cosh Classes.
- Determinant class method added - Relevant tests added in test/matrix
- Fixed a deprecation warning - Added unit tests and fixed some FIXME's - Added post process simplification method, fixed FIXME's
- Added cofactor class method - Added cofactor tests
- Added module for simultaneous equation solvers - Modified tester to incorporate simultaneous eqns - Unit tests for simul eqns - Some TODOs
#182) - Multi variable equation solver - Added respective tests under matrix operations section
- Added dunder methods for addition, subtraction, and multiplication in Matrix class - Test cases added for the same
* Adds the method for calculation of inverse of a matrix * Adds check for singular matrix, moved inverse to SquareMat
* Added Function isEmpty in Function Class * Added Operator Overloading functions for Constant Class * Made Constant initialization much easier & changed Tests accordingly
* Overloads add and subtract for Constant and Variable * Adds multiplication and division overloading for Constant class * Overloads multiplication and division for Variable class
* simulEqn solver working for all variables * Added more tests with other variables * Implemented Equation Solver in CLI
Default "Solve for All" feature in case no variable given my user in Simultaneous Equation Solver
Integrated Simultaneous Equation Solver in GUI
Equation solver for Cubic & Quartic Equations
Modules for Discrete Mathematics
Integration & Derivation Modules
Cases involving expressions with powers and bug fixes
GUI & CLI Implementation of Matrices Module & Matrices parsing improvement
Equation plotting feature in CLI & test cases for Statistics modules
Comments, FIXME's & TODO's
Bug fixes & Cases involving fractions as exponents
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This Pull Request sums up all the work that I have done during GSoC 2019. My detailed journey has been documented in these developer blogs ([1], [2] and [3]
).
Changelog of everything done during GSoC is:
1. Simplify module written in Object-Oriented Programming Design.
2. add, sub ,mul & truediv methods for most of the classes (like Constant, Expression, Trigonometric etc) have been added.
3. Discrete Mathematics Module has been added:
a. Combinatorics modules like Combinations, Permutations & Factorial modules (with GUI/CLI implementations)
b. Statistics Module containing mean, median and mode
c. Simple probability modules
d. Bit-wise Boolean Algebra module
4. Simultaneous Equation solver has been implemented
5. The plotter is now able to plot in both 2D and 3D for equations having one, two or three variables. It has been implemented in the CLI version
6. Equation solvers for higher degrees (Third & fourth degree) using determinant based approach have been added.
7. Integrations and differentiation modules are now implemented in all Function Classes (Trigonometry, Exponential and Logarithmic)
8. Integration & Differentiation modules have been rewritten to follow Object-Oriented Style.
9. Product Rule for Differentiation & Integration by parts module has been added.
10. Tokenize module is now improved to consider power operator (earlier it ignored power operator in many cases)
11. With above improvement Expressions raised to some power are duly handled by VisMa.
12. Parsing modules for printing matrices in Latex and string form have been added. With this matrix operations are now well implemented in GUI & CLI.
13. Expression simplification is now completely supported by VisMa. Almost all cases of Expression classes being involved in input equation have been taken care of. Multiple brackets are now also taken care by VisMa (for this the modules using recursion have been implemented).
14. The cases where Constant are raised to some fractional power or some solvable term have been covered.
Some other useful links:
Some future improvements which can be made: