Project information

This project is a fully templated linear algebra library written in C++. I developed it mostly as a learning experience to understand more about all the optimization and data storage decisions required to efficiently work with matrices, as well as the implementations of various numerical algorithms, such as Strassen's algorithm and Gaussian elimination.

Currently, the library provides a MathVector class, which represents an n-dimensional mathematical vector, and a DenseMatrix class, which is designed to store an n by m matrix whose elements are mostly nonzero. It supports most standard vector and matrix operations, can solve linear systems of equations, and contains benchmarking utility functions used for measuring and comparing performance of operations.