LightMat is a portable C++ class library for efficient arithmetic operations and basic mathematical functions on vectors, matrices, 3- and 4-dimensional arrays. The library is specially optimized for vectors and matrices with dimensions 3 and 4 (i.e. 3x3 and 4x4). The library is optimized to minimize or eliminate object creation overhead which are especially important for small objects. Loops are unrolled whenever possible to provide better performance. Data is stored on the stack when possible i.e. small objects, otherwise on the heap. Arrays can be converted to strings and printed out.
There is currently no specific support for sparse matrices There is no built-in support for complicated linear algebra operations (LU-decompositions, eigenvalues, etc.), but external numerical routines from packages like BLAS and LAPACK can be called to operate directly on LightMat arrays, since LightMat uses the Fortran column-major storage format.
LightMat is public domain software and can be freely distributed in the original form, provided that acknowledment of Linköping University is included in software and documentation. If you successfully install and use this package in some project, please, send a note to lightmat-support@ida.liu.se Feedback, bug reports and contributions should be sent to lightmat-support@ida.liu.se LightMat is used in the Beast and the ObjectMath/MathCode projects.