adeeconometrics / MeshLines

Implementation of algorithms in Linear Algebra in C++
https://adeeconometrics.github.io/MeshLines/
0 stars 0 forks source link
generic-programming linear-algebra

# MeshLines

This repository is a work in progress. It will contain a set of algorithms for solving some problems in Linear Algebra.

Image

Motivation, Goals, and Disclaimers

I started this project to educate myself on writing linear algebra routines and extending these algorithms to a compatible type. I intend to learn about matrix factorization and develop insights to elide operations given their type information e.g. computing $M \times I = M$ without a cost or $M\times M^{-1} = I$.

Note that there is no long-term initiative to support and resolve bugs on this project. The robustness of the codebase relies on the test coverage. You are welcome to submit an issue or drop a suggestion for this repo.

Design Principles

Design for genericity and specialize later on performance


Matrix Decomposition:

Matrix Operations:

Matrix Decompositions

Method Description Type of Matrix Status
LU Decomposition Factors a matrix into a product of a lower triangular matrix $L$ and an upper triangular matrix $U$. Square
QR Decomposition Factors a matrix into a product of an orthogonal matrix $Q$ and an upper triangular matrix $R$. Square, Rectangular
Cholesky Decomposition Factors a symmetric positive-definite matrix into a product of a lower triangular matrix $L$ and its transpose $𝐿^T$. Symmetric Positive-Definite
Singular Value Decomposition (SVD) Factors a matrix into a product of three matrices: $U$ (orthogonal), $\sum$ (diagonal), and $VT$ (orthogonal). Square, Rectangular
Eigenvalue Decomposition Decomposes a matrix into its eigenvalues and eigenvectors. Square
Schur Decomposition Decomposes a matrix into a product of an orthogonal matrix $Q$ and an upper triangular matrix $T$. Square
Hessenberg Decomposition Decomposes a matrix into a product of an orthogonal matrix $Q$ and a Hessenberg matrix $H$. Square
Jordan Decomposition Decomposes a matrix into its Jordan normal form. Square
Polar Decomposition Decomposes a matrix into a product of a unitary matrix $U$ and a positive semi-definite matrix $P$. Square
Bunch-Kaufman Decomposition Factors a symmetric or Hermitian matrix into a product involving a permutation matrix, a lower triangular matrix, and a block diagonal matrix. Symmetric, Hermitian