| ▼Core | The central classes of the library |
| Triangulation | Polygon triangulation |
| ▼Math | Simple math operations |
| Scalar | Simple scalar operations |
| ▼LinAlg | |
| Swizzles | |
| Vector Algebra | |
| Quaternions | |
| Quaternion Rotations | |
| Vec | linalg::vec<T,M> defines a fixed-length vector containing exactly M elements of type T |
| Mat | linalg::mat<T,M,N> defines a fixed-size matrix containing exactly M rows and N columns of type T, in column-major order |
| Identity | Define a type which will convert to the multiplicative identity of any square matrix |
| Fold | Produce a scalar by applying f(A,B) -> A to adjacent pairs of elements from a vec/mat in left-to-right/column-major order (matching the associativity of arithmetic and logical operators) |
| Apply | Apply(f,...) applies the provided function in an elementwise fashion to its arguments, producing an object of the same dimensions |
| Comparison_ops | Relational operators are defined to compare the elements of two vectors or matrices lexicographically, in column-major order |
| Reductions | Functions for coalescing scalar values |
| Unary_ops | Unary operators are defined component-wise for linalg types |
| Binary_ops | Binary operators are defined component-wise for linalg types, EXCEPT for operator *, which does standard matrix multiplication, scalar multiplication, and component-wise multiplication for same-size vectors. Use cmul for the matrix Hadamard product |
| Unary_STL | Component-wise standard library math functions |
| Binary_STL | Component-wise standard library math functions. Either argument can be a vector or a scalar |
| Relational | Component-wise relational functions on vectors. Either argument can be a vector or a scalar |
| Selection | Component-wise selection functions on vectors. Either argument can be a vector or a scalar |
| Mat_algebra | Support for matrix algebra |
| Iterators | Vectors and matrices can be used as ranges |
| Transforms | Factory functions for 3D spatial transformations |
| Array | Provide implicit conversion between linalg::vec<T,M> and std::array<T,M> |
| Hash | Provide specializations for std::hash<...> with linalg types |
| Structs | Miscellaneous data structures for interfacing with this library |
| ▼Optional | Optional features that can be enabled through build flags and may require extra dependencies |
| Debug | Debugging features |
| MeshIO | 3D model file I/O based on Assimp |
| Samples | Examples of usage and interesting designs |