This is a simple matrix library, that is built to have a similar interface for matrices as compared to MATLAB or NumPy. Built as a project for WnCC SoC '21.
- Fork & clone CPPMatrixLib
- Go through main.cpp, and try to understand how the functions and operators present.
- Add a file called as
my_gauss_elim.cpp - Inside your
my_gauss_elim.cppfile, implement a simple code to convert a given non-singular square matrix into its Row Echelon form (upper triangular matrix), using the matrix and matrix_utility headers. - Finally add a
mainfunction to yourmy_gauss_elim.cppthat shows your algorithm in action!
Submission: Once you’ve finished the test, mail me a link to your repository (containing the my_gauss_elim.cpp file).
If you are unable to complete the test due to lack of time, submit whatever you’ve done!
- lightweight
- dependency-free
- similar functioning to STL
- variety of operators, including matrix-matrix operators and matrix-number operators and a bunch of linear algebra functions
V1.5 Added QR Decomposition and a few usage examples in main.cpp
I like Linear Algebra, but the scripting nature of MATLAB makes working a pain. Plus it's paid :(
C++ dosent natively support Linear Algebra, and using heavy packages can make running your code on a different device a pain. What if you could just copy paste a few KBs and get most of MATLABS Linear Algebra functionality?
The Big Picture:
- Aim to build a light weight math library.
- Currently work is under way, and a raw polynomial library is ready. It supports FFT and multimod NTT. Once it's style is improved, it will be added here.
- Work is also underway for a primes library, supporting prime tests and factorisation
- Add iterators (row and column wise) so as to increase compatibility with STL algorithms (search & sort)
- Add a function to calculate the Eigen values and Eigen vectors of a matrix
- Add LU & SVD functions that can help calculate the inverse of a matrix
- Add functionality to solve Linear Equations (A*X = B)
- Add documentation
- Depict its use in solving Linear Recurrences as an example solve Project Euler 258