Manifold 3.0
Robust geometry
 
Loading...
Searching...
No Matches
LinAlg

Topics

 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.
 

Typedefs

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>
 

Detailed Description