We now have optimised classes for triangular matrices - UpperTriangularMatrix and LowerTriangularMatrix.
These classes allow for more efficient implementations of many operations. We should probably aim to achieve improved performance (better than regular dense matrices) for at least all of the following:
- inner product
- determinant (done)
- inverse
- transpose
- addition to array