Skip to content

Conversation

@mayankDhiman
Copy link

@mayankDhiman mayankDhiman commented Aug 23, 2019

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:

  • An equation scanner can be integrated with VisMa to scan handwritten equations.
  • Due to time constraint I wasn't able to add a simplification module for Trigonometric Equations, this can be a good TODO for future.

8hantanu and others added 30 commits March 26, 2019 23:57
- 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
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
Bug fixes & Cases involving fractions as exponents
@mayankDhiman mayankDhiman merged commit e0b8ea1 into master Aug 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants