## Seasons Of Code

Break free of the matrix, by building one!    • Laxman Desai

### WnCC - Seasons of Code

Seasons of Code is a programme launched by WnCC along the lines of the Google Summer of Code. It provides one with an opprtunity to learn and participate in a variety of interesting projects under the mentorship of the very best in our institute.

## Break free of the matrix, by building one!

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)

No. of mentees: 4

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 Project Timeline

Week Number Tasks to be Completed
Week 1 Brush up on Linear Algebra Concepts, and learning new things such as QR, LU, SVD
decompositions.
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!