Break free of the matrix, by building one!

  • Competative Coding

Mentors :

  • Laxman Desai

Mentees :

  • 4 students

Description: From background removal to Google’s PageRank algorithm! Matrices form the backbone of today Computer Science! As the title says, this project will give you a whole new perspective on what you’ve been learning from school (matrices) and probably life too! This project aims to give you a good understanding of some of the algorithms that make all this possible. We will build a matrix library, and then see it’s applications in solving linear recurrences, specifically for competitive programming (Project Euler 25, 258 and more possibly) Our library would be lightweight, optimised and templated with functionality similar to how matrices work in MATLAB or NumPy. It would also support Matrix factorizations (LU, QR, SVD and Spectral Decomposition) and would only depend on the standard library. We will then use all the knowledge gained to build a linear equation solver.

Tentative Timeline :

Week Number Tasks to be Completed
Week 1 Brush up on Linear Algebra Concepts, and learning new things such as QR, LU, SVD
Week 2 Brush up on C++, with high focus on OOP concepts. Understanding a few DSA topics (complexity analysis, std::vectors)
Week 3 Building a base matrix template class, and implementing a simple QR decomposition to test it.
Week 4 Adding various factorisations to help solve linear equations. Stress testing our code and writing docs.
Week 5 Understanding Linear Recurrences, starting with basic stuff like Fibonacci calculations using matrices and end by solving PE258!