Easy to use: Only one header file(.h) and one implementation file(.cpp)
No redundant libraries: Use only array and pointer for storage
Minimum memory usage: Allocate a contiguous chunk of memory for storage of all the elements in a matrix instance.
Good design of pointers: Make mathematical concepts straightforward and development less prone to error by enabling representation similar to a[i][j] for element access
Full operator overloading implementations
Use Cholesky decomposition for matrix inverse and determinant calculations
Use Cholesky–Banachiewicz method to calculate Cholesky Decomposition, about O(n^3 / 3)
Use forward substitution for lower triangular matrix inverse calculations