Boost uBLAS is an excellent linear algebra library that supports template-expressions to avoid introducing temporaries.
uBLAS extension classes
A collection of some extension classes I've developed for uBLAS:
- fixed_array : Stack-based container class of fixed size with no overhead.
- grow_array : Heap-based container class that re-uses memory on shrinking resize, and only allocates memory when growing beyond capacity.
- mat33 : Stack-based matrix of size 3 x 3.
- quat : Quaternion rotation class with support for conversion to/from Euler angle rotations in arbitrary order.
- sse_prod : SSE/OpenMP optimized matrix-matrix and matrix-vector products (uses Win32-specific intrinsics).
- vec3 : Stack-based vector of size 3.
License is granted to do whatever you want with the code.