|
| 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.
|
|
| Swizzles |
| Swizzles and subobjects.
|
|
| 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.
|
|
| Vec_algebra |
| Support for vector algebra.
|
|
| Quaternions |
| Support for quaternion algebra using 4D vectors of arbitrary length, representing xi + yj + zk + w.
|
|
| Quaternion_rotation |
| Support for 3D spatial rotations using normalized quaternions.
|
|
| 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.
|
|
|
using | vec2 = la::vec<double, 2> |
|
using | vec3 = la::vec<double, 3> |
|
using | vec4 = la::vec<double, 4> |
|
using | bvec4 = la::vec<bool, 4> |
|
using | mat2 = la::mat<double, 2, 2> |
|
using | mat3x2 = la::mat<double, 3, 2> |
|
using | mat4x2 = la::mat<double, 4, 2> |
|
using | mat2x3 = la::mat<double, 2, 3> |
|
using | mat3 = la::mat<double, 3, 3> |
|
using | mat4x3 = la::mat<double, 4, 3> |
|
using | mat3x4 = la::mat<double, 3, 4> |
|
using | mat4 = la::mat<double, 4, 4> |
|
using | ivec2 = la::vec<int, 2> |
|
using | ivec3 = la::vec<int, 3> |
|
using | ivec4 = la::vec<int, 4> |
|
using | quat = la::vec<double, 4> |
|