|
|
template<typename T, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | abs (const geom::Dual< T, P > &d) |
| | Absolute value.
|
| template<typename T, index_t N> |
| geom::Vec< T, N > | abs (const geom::Vec< T, N > &v) |
|
template<typename T, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | acos (const geom::Dual< T, P > &d) |
| | Arccos (inverse cosine) function.
|
|
template<typename Ma, typename Mb> |
| std::enable_if< detail::MatrixDimensionMatch< Ma, Mb >::isStaticMatch, typenamedetail::_ImplMatrixAdd< Ma, Mb >::return_t >::type | add (const Ma &a, const Mb &b) |
| template<typename Matrix1, typename Matrix2> |
| Matrix | add (const Matrix1 &a, const Matrix2 &b) |
| template<typename Matrix, typename Matrix1, typename Matrix2> |
| void | add (Matrix *d, const Matrix1 &a, const Matrix2 &b) |
|
template<typename Md, typename Ma, typename Mb> |
| std::enable_if< detail::MatrixDimensionMatch< Ma, Mb >::isStaticMatchanddetail::MatrixDimensionMatch< Ma, Md >::isStaticMatch, void >::type | add (Md *d, const Ma &a, const Mb &b) |
|
template<typename Shape> |
| AnyConvexImpl< Shape > | as_any_convex (const Shape &s) |
| | Wrap s in a virtual class which implements the Convex concept.
|
|
template<typename T, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | asin (const geom::Dual< T, P > &d) |
| | Arcsin (inverse sine) function.
|
|
template<typename T, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | atan (const geom::Dual< T, P > &d) |
| | Arctan (inverse tangent) function.
|
|
template<typename T, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | atan2 (const geom::Dual< T, P > &y, const geom::Dual< T, P > &x) |
| | Arctangent of y/x in the range [-pi, pi].
|
|
template<typename T, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | ceil (const geom::Dual< T, P > &d) |
| | Ceiling function.
|
| template<typename T, index_t N> |
| geom::Vec< T, N > | ceil (const geom::Vec< T, N > &v) |
| template<typename T> |
| T | chebyshev (index_t kind, index_t n, T x) |
|
template<typename T> |
| const Vec< T, 4 > | composite_over (Vec< T, 4 > fg, Vec< T, 4 > bg) |
| | Composite two non-premultiplied colors over each other.
|
|
template<typename T> |
| constexpr T | coord (const T &v, index_t n) |
| | Access the nth coordinate of a const 1-D vector (scalar).
|
|
template<typename T, index_t N> |
| constexpr T | coord (const Vec< T, N > &v, index_t n) |
| | Access the nth coordinate of a const vector or scalar.
|
|
template<typename T> |
| constexpr T & | coord (T &v, index_t n) |
| | Access the nth coordinate of a 1-D vector (scalar).
|
|
template<typename T, index_t N> |
| constexpr T & | coord (Vec< T, N > &v, index_t n) |
| | Access the nth coordinate of a vector or scalar.
|
|
template<typename Ms, typename Md> |
| void | copyMatrixRegion (const Ms &src, Md &dst, const MatrixRegion &src_region, const Vec< index_t, 2 > &dst_begin) |
|
template<typename T, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | cos (const geom::Dual< T, P > &d) |
| | Cosine function.
|
| template<typename T, index_t N> |
| geom::Vec< T, N > | cos (const geom::Vec< T, N > &v) |
|
DefaultLCG | create_rng () |
| | Create a new random number generator with a nondeterministic seed.
|
| template<typename T, index_t N, index_t M> |
| T | det (const DiagMatrix< T, N, M > &m) |
| | Compute the determinant of a diagonal matrix.
|
| template<index_t N> |
| index_t | det (const PermutationMatrix< N > &m) |
| | Compute the determinant of a permutation matrix.
|
|
template<typename T, MatrixLayout Lyt, StoragePolicy P> |
| T | det (const SimpleMatrix< T, 2, 2, Lyt, P > &m) |
|
template<typename T, MatrixLayout Lyt, StoragePolicy P> |
| T | det (const SimpleMatrix< T, 3, 3, Lyt, P > &m) |
|
template<typename T, MatrixLayout Lyt, StoragePolicy P> |
| T | det (const SimpleMatrix< T, 4, 4, Lyt, P > &m) |
| template<typename T, index_t M, index_t N, MatrixLayout Lyt, StoragePolicy P> |
| T | det (const SimpleMatrix< T, M, N, Lyt, P > &m) |
| | Compute the determinant of a square matrix.
|
|
template<typename T> |
| T | det2x2 (const T m[4]) |
|
template<typename T> |
| T | det2x2 (T a, T b, T c, T d) |
| | Compute the 2x2 matrix determinant from individual parameters.
|
|
template<typename T> |
| T | det3x3 (const T m[9]) |
| | Compute the 3x3 matrix determinant.
|
|
template<typename T> |
| T | det3x3 (T a, T b, T c, T d, T e, T f, T g, T h, T i) |
| | Compute the 3x3 matrix determinant from individual parameters.
|
|
template<typename T> |
| T | det4x4 (const T m[16]) |
| | Compute the 4x4 matrix determinant.
|
| template<typename T> |
| T | det_destructive (T *m, index_t n) |
| | Destructively compute the determinant of a square matrix.
|
| template<typename T> |
| T | detNxN (const T *m, index_t n) |
| | Compute the determinant of a square matrix.
|
|
template<typename Shape> |
| Dilated< Shape > | dilate (const Dilated< Shape > &s, typename Shape::elem_t dilation) |
| | Dilate the shape s by the amount dilation.
|
|
template<typename Shape> |
| Dilated< Shape > | dilate (const Shape &s, typename Shape::elem_t dilation) |
| | Dilate the shape s by the amount dilation.
|
| template<typename T, index_t N> |
| Sphere< T, N > | dilate (const Sphere< T, N > &s, T dilation) |
| | Dilate the Sphere s by the amount dilation.
|
| template<typename T, index_t N> |
| Plane< T, N > | dilate (Plane< T, N > p, T dilation) |
| | Dilate the Plane p by the amount dilation.
|
| template<typename T> |
| AffineTransform< T, 3 > | direction_align (const Vec< T, 3 > &dir, const Vec< T, 3 > &align_with) |
|
template<typename T, index_t N> |
| void | emit_hull (FILE *f, const Vec< T, N > *pts, index_t n) |
|
template<typename T, index_t N> |
| void | emit_simplex (FILE *f, const Simplex< T, N > &s) |
|
template<typename T, index_t N> |
| void | emit_splex_stage (FILE *f, const Simplex< T, N > &cur, const Simplex< T, N > &next, const Vec< T, N > &a, const Vec< T, N > &d) |
|
template<typename T, index_t N> |
| void | emit_vec (FILE *f, const char *label, const Vec< T, N > &v) |
|
template<typename T, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | exp (const geom::Dual< T, P > &d) |
| | Exponential (ex) function.
|
| template<typename T, index_t N> |
| geom::Vec< T, N > | exp (const geom::Vec< T, N > &v) |
|
template<typename Shape> |
| Extruded< Shape > | extrude (const Shape &s, typename Shape::elem_t h0, typename Shape::elem_t h1) |
| | Convenience function to extrude the shape s between heights h0 and h1 by wrapping s in the Extruded template.
|
|
template<typename T, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | floor (const geom::Dual< T, P > &d) |
| | Floor function.
|
| template<typename T, index_t N> |
| geom::Vec< T, N > | floor (const geom::Vec< T, N > &v) |
| template<typename T, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | fma (geom::Dual< T, P > a, geom::Dual< T, P > b, geom::Dual< T, P > c) |
| | Fused multiply-add.
|
|
template<typename T> |
| const Vec< T, 4 > | from_argb (int aRGB) |
| template<typename T> |
| Vec< T, 3 > | from_rgb (int aRGB) |
|
template<typename T> |
| const Vec< T, 4 > | from_rgba (int rgba) |
|
template<typename Shape> |
| Frustum< Shape > | frustum (const Shape &s, typename Shape::elem_t h0, typename Shape::elem_t h1) |
| | Convenience function to raise the shape s into a frustum between heights h0 and h1, by wrapping s in the Frustum template.
|
|
template<typename T, typename H> |
| H | hash (const T &obj) |
| | Produce a hash of an object.
|
|
template<typename T, typename H> |
| H | hash_array (H nonce, const T *objs, size_t count) |
|
template<typename H> |
| H | hash_bytes (H nonce, const void *obj, size_t size) |
|
template<std::unsigned_integral H> |
| constexpr H | hash_combine (H h0, H h1) |
| | Combine two hashes into one.
|
|
template<typename H> |
| constexpr H | hash_combine_many (H h) |
|
template<typename H, typename... Hs> |
| constexpr H | hash_combine_many (H h, Hs... hashes) |
|
template<typename H, typename... Ts> |
| H | hash_many (H nonce, const Ts &... objs) |
|
template<typename T, index_t N> |
| bool | intersects (const AnyConvex< T, N > &shape_a, const AnyConvex< T, N > &shape_b) |
| template<typename Matrix1> |
| Matrix | inv (const Matrix1 &m, bool *success) |
|
template<typename Mx> |
| detail::_ImplMtxInv< Mx >::return_t | inv (const Mx &m, bool *success, M_ENABLE_IF(Mx::ROWDIM==Mx::COLDIM or Mx::ROWDIM *Mx::COLDIM==DYNAMIC_DIM)) |
| template<typename Matrix1, typename Matrix2> |
| bool | inv (Matrix1 *into, const Matrix2 &src) |
|
template<typename Md, typename Mx> |
| bool | inv (Md *into, const Mx &src, M_ENABLE_IF((detail::MatrixDimensionMatch< Md, Mx >::isStaticMatch and(Mx::ROWDIM==Mx::COLDIM or Mx::ROWDIM *Mx::COLDIM==DYNAMIC_DIM)))) |
| template<typename T> |
| bool | inv2x2 (T *out, const T m[4]) |
| | 2 × 2 matrix inversion on a flat array.
|
| template<typename T> |
| bool | inv3x3 (T *out, const T m[9]) |
| | 3 × 3 matrix inversion on a flat array.
|
| template<typename T> |
| bool | inv4x4 (T *out, const T m[16]) |
| | 4 × 4 matrix inversion on a flat array.
|
| template<typename T, index_t N> |
| bool | invNxN (T *out, T *m) |
| | N × N matrix inversion.
|
| template<typename T> |
| bool | invNxN (T *out, T *m, index_t n) |
| | N × N matrix inversion on a flat array.
|
| template<typename T> |
| T | legendre (index_t l, index_t m, T x) |
| template<typename T> |
| T | legendre (index_t n, T x) |
|
template<typename T, index_t N> |
| void | legendre (SphericalHarmonics< T, N > *sh, index_t m, T x) |
| template<typename T> |
| T | legendre_integral (index_t n, T x) |
|
template<typename T, geom::DiscontinuityPolicy Dp> |
| geom::Dual< T, Dp > | log (const geom::Dual< T, Dp > &d) |
| | Returns the natural logarithm of d.
|
| template<typename T, index_t N> |
| geom::Vec< T, N > | log (const geom::Vec< T, N > &v) |
|
template<typename T, index_t N> |
| constexpr T | mag (const Vec< T, N > &v) |
| | Compute the magnitude of a vector or scalar.
|
|
template<typename T> |
| constexpr T | mag (T x) |
| | Compute the absolute value of a scalar.
|
|
template<typename T, index_t N> |
| constexpr T | mag2 (const Vec< T, N > &v) |
| | Compute the squared magnitude of a vector or scalar.
|
|
template<typename T> |
| constexpr T | mag2 (T x) |
| | Compute the square of a scalar.
|
|
template<typename T, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | max (const geom::Dual< T, P > &d1, const geom::Dual< T, P > &d2) |
| | Maximum.
|
| template<typename T, index_t N> |
| geom::Vec< T, N > | max (const geom::Vec< T, N > &a, const geom::Vec< T, N > &b) |
|
template<typename T> |
| constexpr T | measure_ball_interior (index_t d, T r) |
| | Formula for the volume of a d dimensional ball with radius r.
|
|
template<typename T> |
| constexpr T | measure_sphere_boundary (index_t d, T r) |
| | Formula for the surface area of a d dimensional ball with radius r.
|
|
template<typename T, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | min (const geom::Dual< T, P > &d1, const geom::Dual< T, P > &d2) |
| | Minimum.
|
| template<typename T, index_t N> |
| geom::Vec< T, N > | min (const geom::Vec< T, N > &a, const geom::Vec< T, N > &b) |
|
template<typename T, index_t N> |
| Isometry< T, N > | mix (T s, const Isometry< T, N > &a, const Isometry< T, N > &b) |
| | Continuously interpolate two isometries.
|
|
template<typename T, index_t N> |
| Similarity< T, N > | mix (T s, const Similarity< T, N > &a, const Similarity< T, N > &b) |
| | Interpolate between two similarity transforms. It is invalid to interpolate between two similarity transforms with different signs.
|
|
template<typename T> |
| Rotation< T, 2 > | mix (T s, const Rotation< T, 2 > &a, const Rotation< T, 2 > &b) |
| | Minimally interpolate two rotations.
|
|
template<typename T> |
| Rotation< T, 3 > | mix (T s, const Rotation< T, 3 > &a, const Rotation< T, 3 > &b) |
| | Minimally interpolate two rotations.
|
| template<typename Ma, typename Mb> |
| bool | mtx_aliases_storage (const Ma &a, const Mb &b) |
|
template<typename T, index_t N> |
| bool | mtx_aliases_storage (const Vec< T, N > &a, const Vec< T, N > &b) |
| template<typename Matrix, typename Matrix1> |
| void | mtxcopy (Matrix *into, const Matrix1 &src) |
|
template<typename Md, typename Ms> |
| void | mtxcopy (Md *into, const Ms &src, typename std::enable_if< detail::_ImplVecOrient< Md, Ms >::orient==detail::ORIENT_VEC_UNKNOWN, int >::type dummy=0) |
|
template<typename Md, typename Ms> |
| void | mtxcopy (Md *into, const Ms &src, typename std::enable_if< detail::LinalgDimensionMatch< Md, Ms >::val and(detail::_ImplVecOrient< Md, Ms >::orient !=detail::ORIENT_VEC_UNKNOWN), int >::type dummy=0) |
|
template<typename Ma, typename Mb> |
| std::enable_if< detail::MatrixMultipliable< Ma, Mb >::val, typenamedetail::_ImplMtxMul< Ma, Mb >::return_t >::type | mul (const Ma &a, const Mb &b) |
| template<typename Matrix1, typename Matrix2> |
| Matrix | mul (const Matrix1 &a, const Matrix2 &b) |
| template<typename Matrix, typename Matrix1, typename Matrix2> |
| Matrix & | mul (Matrix *into, const Matrix1 &a, const Matrix2 &b) |
|
template<typename Md, typename Ma, typename Mb> |
| std::enable_if< detail::MatrixMultipliable< Ma, Mb >::valanddetail::_ImplMtxResult< Ma, Mb, Md >::agreement==detail::MTX_RESULT_UNKNOWN, Md & >::type | mul (Md *into, const Ma &a, const Mb &b) |
|
template<typename Md, typename Ma, typename Mb> |
| std::enable_if< detail::MatrixMultipliable< Ma, Mb >::valanddetail::_ImplMtxResult< Ma, Mb, Md >::agreement==detail::MTX_RESULT_MATCH, Md & >::type | mul (Md *into, const Ma &a, const Mb &b) |
|
template<typename Md, typename Ma, typename Mb> |
| std::enable_if< detail::MatrixMultipliable< Ma, Mb >::valanddetail::_ImplMtxResult< Ma, Mb, Md >::agreement==detail::MTX_RESULT_UNKNOWN, Md & >::type | mul_acc (Md *into, const Ma &a, const Mb &b) |
| template<typename Md, typename Ma, typename Mb> |
| std::enable_if< detail::MatrixMultipliable< Ma, Mb >::valanddetail::_ImplMtxResult< Ma, Mb, Md >::agreement==detail::MTX_RESULT_MATCH, Md & >::type | mul_acc (Md *into, const Ma &a, const Mb &b) |
| template<typename T, index_t N> |
| bool | nullspace (const Vec< T, N > bases[], index_t n, Vec< T, N > null_basis[]) |
| | Compute the null space of a vector basis.
|
|
template<typename Ma, typename Mb> |
| std::enable_if< detail::IsMatrix< Ma >::valanddetail::IsMatrix< Mb >::val, bool >::type | operator!= (const Ma &a, const Mb &b) |
| template<typename Matrix1, typename Matrix2> |
| bool | operator!= (const Matrix1 &a, const Matrix2 &b) |
| template<typename T, index_t N, Transform< T, N > Xf> |
| BezierSpline< T, N > | operator* (const Xf &xf, const BezierSpline< T, N > &spline) |
| template<typename T, index_t N, Transform< T, N > Xf> |
| BSpline< T, N > | operator* (const Xf &xf, const BSpline< T, N > &spline) |
| template<typename T, index_t N, Transform< T, N > Xf> |
| CatromSpline< T, N > | operator* (const Xf &xf, const CatromSpline< T, N > &spline) |
| template<typename T, index_t N, Transform< T, N > Xf> |
| HermiteSpline< T, N > | operator* (const Xf &xf, const HermiteSpline< T, N > &spline) |
|
template<typename T, index_t N> |
| Capsule< T, N > | operator* (const Isometry< T, N > &xf, const Capsule< T, N > &c) |
| | Transform a capsule by an isometry.
|
|
template<typename T, index_t N> |
| Cylinder< T, N > | operator* (const Isometry< T, N > &xf, const Cylinder< T, N > &c) |
| | Transform a cylinder by an isometry.
|
|
template<typename T, index_t N, typename Shape> |
| Dilated< Shape > | operator* (const Isometry< T, N > &xf, const Dilated< Shape > &s) |
| | Transform a dilated shape by an isometry.
|
|
template<typename T, index_t N> |
| Simplex< T, N > | operator* (const Isometry< T, N > &xf, const Simplex< T, N > &s) |
| | Transform a simplex by an isometry.
|
|
template<typename T, index_t N> |
| Sphere< T, N > | operator* (const Isometry< T, N > &xf, const Sphere< T, N > &s) |
| | Transform a sphere by an isometry.
|
|
template<typename T, index_t N> |
| Isometry< T, N > | operator* (const Isometry< T, N > &xf, T s) |
| | Scale the magnitude of an isometry.
|
|
template<typename T, index_t N> |
| Isometry< T, N > | operator* (T s, const Isometry< T, N > &xf) |
| | Scale the magnitude of an isometry. A scale of 0 produces an identity transform. Applying a scale of 1 to an isometry results in no change.
|
|
template<typename T, typename U, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > | operator* (const Dual< T, Dp > &d, U s) |
| | Dual-scalar multiplication.
|
|
template<typename T, DiscontinuityPolicy Dp> |
| constexpr auto | operator* (const Dual< T, Dp > &d1, const Dual< T, Dp > &d2) |
| | Dual-dual multiplication.
|
|
template<typename Ma, typename Mb> |
| detail::MatrixMultReturnType< Ma, Mb >::return_t | operator* (const Ma &a, const Mb &b) |
| template<typename U, typename Matrix> |
| Matrix | operator* (const Matrix &m, U k) |
| template<typename Matrix1, typename Matrix2> |
| Matrix | operator* (const Matrix1 &a, const Matrix2 &b) |
|
template<typename U, typename Mx> |
| std::enable_if< detail::IsMatrix< Mx >::valandstd::is_scalar< U >::value, typenamedetail::_ImplMatrixScale< Mx >::return_t >::type | operator* (const Mx &m, U k) |
|
template<typename V, typename U> |
| std::enable_if< std::is_scalar< U >::valueanddetail::IsVector< V >::value, V >::type | operator* (const V &v, U d) |
|
template<typename V, typename U> |
| std::enable_if< std::is_scalar< U >::valueanddetail::IsVector< V >::value, V >::type | operator* (U d, const V &v) |
| template<typename U, typename Matrix> |
| Matrix | operator* (U k, const Matrix &m) |
|
template<typename U, typename Mx> |
| std::enable_if< detail::IsMatrix< Mx >::valandstd::is_scalar< U >::value, typenamedetail::_ImplMatrixScale< Mx >::return_t >::type | operator* (U k, const Mx &m) |
|
template<typename T, typename U, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > | operator* (U s, const Dual< T, Dp > &d) |
| | Scalar-dual multiplication.
|
|
template<typename T, index_t N> |
| Ray< T, N > | operator* (const Isometry< T, N > &xf, const Ray< T, N > &ray) |
| | Transform a ray.
|
| template<typename T, index_t N> |
| PointType< T, N >::point_t | operator* (const Ray< T, N > r, T s) |
|
template<typename T, index_t N> |
| Ray< T, N > | operator* (const Rotation< T, N > &rot, Ray< T, N > ray) |
| | Apply a rotation to a ray.
|
|
template<typename T, index_t N> |
| Ray< T, N > | operator* (const Similarity< T, N > &i, const Ray< T, N > &ray) |
| | Transform a ray.
|
| template<typename T, index_t N> |
| PointType< T, N >::point_t | operator* (T s, const Ray< T, N > r) |
|
template<typename T, index_t N> |
| Isometry< T, N > | operator* (const Isometry< T, N > &i, const Rotation< T, N > &r) |
| | Apply an isometry to a rotation.
|
|
template<typename T> |
| Rotation< T, 2 > | operator* (const Rotation< T, 2 > &o, T s) |
| | Extend a rotation.
|
|
template<typename T> |
| Rotation< T, 3 > | operator* (const Rotation< T, 3 > &o, T s) |
| | Extend a rotation.
|
|
template<typename T, index_t N> |
| Isometry< T, N > | operator* (const Rotation< T, N > &r, const Isometry< T, N > &i) |
| | Apply a rotation to an isometry.
|
|
template<typename T, index_t N> |
| Similarity< T, N > | operator* (const Rotation< T, N > &r, const Similarity< T, N > &i) |
| | Apply a rotation to a similarity.
|
|
template<typename T, index_t N> |
| Similarity< T, N > | operator* (const Similarity< T, N > &i, const Rotation< T, N > &r) |
| | Apply a similarity to a rotation.
|
|
template<typename T> |
| Rotation< T, 2 > | operator* (T s, const Rotation< T, 2 > &o) |
| | Extend a rotation.
|
|
template<typename T> |
| Rotation< T, 3 > | operator* (T s, const Rotation< T, 3 > &o) |
| | Extend a rotation.
|
|
template<typename Shape> |
| Similar< Shape > | operator* (const Similarity< typename Shape::elem_t, Shape::N > &xf, const Shape &shape) |
| | Transform the shape shape by wrapping it with a Similarity transform.
|
|
template<typename Shape> |
| Similar< Shape > | operator* (const Similarity< typename Shape::elem_t, Shape::N > &xf, const Similar< Shape > &s) |
| | Transform the shape s by xf.
|
|
template<typename T, index_t N> |
| Capsule< T, N > | operator* (const Similarity< T, N > &xf, const Capsule< T, N > &c) |
| | Transform a capsule by a similarity transform.
|
|
template<typename T, index_t N> |
| Cylinder< T, N > | operator* (const Similarity< T, N > &xf, const Cylinder< T, N > &c) |
| | Transform a cylinder by a similarity transform.
|
|
template<typename T, index_t N, typename Shape> |
| Dilated< Shape > | operator* (const Similarity< T, N > &xf, const Dilated< Shape > &s) |
| | Transform a dilated shape by a similarity transform.
|
|
template<typename T, index_t N> |
| Simplex< T, N > | operator* (const Similarity< T, N > &xf, const Simplex< T, N > &s) |
| | Transform a simplex by a similarity transform.
|
|
template<typename T, index_t N> |
| Sphere< T, N > | operator* (const Similarity< T, N > &xf, const Sphere< T, N > &s) |
| | Transform a sphere by a similarity transform.
|
|
template<typename Shape> |
| Transformed< Shape > | operator* (const AffineTransform< typename Shape::elem_t, Shape::N > &xf, const Shape &s) |
| | Transform the shape s by wrapping it in an Transformed class.
|
|
template<typename Shape> |
| Transformed< Shape > | operator* (const AffineTransform< typename Shape::elem_t, Shape::N > &xf, const Transformed< Shape > &s) |
| | Transform the transformed shape s by xf.
|
|
template<typename Shape, typename T, index_t N> |
| Transformed< Shape > | operator* (const Isometry< T, N > &xf, const Transformed< Shape > &s) |
| | Transform the shape s by an isometry xf.
|
|
template<typename Shape, typename T, index_t N> |
| Transformed< Shape > | operator* (const Similarity< T, N > &xf, const Transformed< Shape > &s) |
| | Transform the shape s by a similarity transform xf.
|
| template<typename T, index_t N> |
| const Vec< T, N > | operator* (const Vec< T, N > &a, const Vec< T, N > &b) |
| template<typename T, index_t N, typename U> |
| Vec< T, N > | operator* (const Vec< T, N > &v, U d) |
| template<typename T, index_t N, typename U> |
| Vec< T, N > | operator* (U d, const Vec< T, N > &v) |
|
template<typename T, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > & | operator*= (Dual< T, Dp > &x, const Dual< T, Dp > &y) |
| | Multiply and assign to dual.
|
|
template<typename T, typename U, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > & | operator*= (Dual< T, Dp > &x, T s) |
| | Multiply and assign to dual.
|
| template<typename Matix, T, M, N> |
| Matrix & | operator*= (Matrix &m, const DiagMatrix< T, M, N > &d) |
|
template<typename Mx, typename T, index_t M, index_t N> |
| std::enable_if< detail::MatrixMultipliable< Mx, DiagMatrix< T, M, N > >::val, Mx & >::type | operator*= (Mx &m, const DiagMatrix< T, M, N > &d) |
|
template<typename Shape> |
| Similar< Shape > & | operator*= (Similar< Shape > &s, const Similarity< typename Shape::elem_t, Shape::N > &xf) |
| | In-place transform the shape s by xf.
|
|
template<typename Shape> |
| Transformed< Shape > & | operator*= (Transformed< Shape > &s, const AffineTransform< typename Shape::elem_t, Shape::N > &xf) |
| | In-place transform the transformed shape s by xf.
|
|
template<typename T, index_t N> |
| Isometry< T, N > | operator+ (const Isometry< T, N > &i, const Vec< T, N > &v) |
| | Apply a translation to an isometry.
|
|
template<typename T, index_t N> |
| Isometry< T, N > | operator+ (const Vec< T, N > &v, const Isometry< T, N > &i) |
| | Apply a translation to an isometry.
|
|
template<typename T, typename U, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > | operator+ (const Dual< T, Dp > &d, U s) |
| | Dual + scalar.
|
|
template<typename T, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > | operator+ (const Dual< T, Dp > &d1, const Dual< T, Dp > &d2) |
| | Addition.
|
|
template<typename Ma, typename Mb> |
| detail::_ImplMatrixAddReturnType< Ma, Mb >::return_t | operator+ (const Ma &a, const Mb &b) |
| template<typename Matrix1, typename Matrix2> |
| Matrix | operator+ (const Matrix1 &a, const Matrix2 &b) |
|
template<typename T, typename U, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > | operator+ (U s, const Dual< T, Dp > &d) |
| | Scalar + dual.
|
|
template<typename T, index_t N> |
| Rect< T, N > | operator+ (VecType< T, N > p, const Rect< T, N > &r) |
|
template<typename T, index_t N> |
| Similarity< T, N > | operator+ (const Similarity< T, N > &i, const Vec< T, N > &v) |
| | Apply a translation to a similarity.
|
|
template<typename T, index_t N> |
| Similarity< T, N > | operator+ (const Vec< T, N > &v, const Similarity< T, N > &i) |
| | Apply a translation to a similarity.
|
|
template<typename T, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > & | operator+= (Dual< T, Dp > &x, const Dual< T, Dp > &y) |
| | Add and assign.
|
|
template<typename T, typename U, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > & | operator+= (Dual< T, Dp > &x, U s) |
|
template<typename T, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > | operator- (const Dual< T, Dp > &d) |
| | Unary negation.
|
|
template<typename T, typename U, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > | operator- (const Dual< T, Dp > &d, U s) |
| | Dual - scalar.
|
|
template<typename T, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > | operator- (const Dual< T, Dp > &d1, const Dual< T, Dp > &d2) |
| | Subtraction.
|
|
template<typename Ma, typename Mb> |
| detail::_ImplMatrixAddReturnType< Ma, Mb >::return_t | operator- (const Ma &a, const Mb &b) |
| template<typename Matrix1, typename Matrix2> |
| Matrix | operator- (const Matrix1 &a, const Matrix2 &b) |
|
template<typename T, typename U, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > | operator- (U s, const Dual< T, Dp > &d) |
| | Scalar - dual.
|
|
template<typename T, index_t N> |
| Rect< T, N > | operator- (VecType< T, N > p, const Rect< T, N > &r) |
|
template<typename T, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > & | operator-= (Dual< T, Dp > &x, const Dual< T, Dp > &y) |
| | Subtract and assign.
|
|
template<typename T, typename U, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > & | operator-= (Dual< T, Dp > &x, U s) |
| template<typename T, index_t N, Transform< T, N > Xf> |
| BezierSpline< T, N > | operator/ (const BezierSpline< T, N > &spline, const Xf &xf) |
| template<typename T, index_t N, Transform< T, N > Xf> |
| BSpline< T, N > | operator/ (const BSpline< T, N > &spline, const Xf &xf) |
| template<typename T, index_t N, Transform< T, N > Xf> |
| CatromSpline< T, N > | operator/ (const CatromSpline< T, N > &spline, const Xf &xf) |
| template<typename T, index_t N, Transform< T, N > Xf> |
| HermiteSpline< T, N > | operator/ (const HermiteSpline< T, N > &spline, const Xf &xf) |
|
template<typename T, index_t N> |
| Capsule< T, N > | operator/ (const Capsule< T, N > &c, const Isometry< T, N > &xf) |
| | Inverse-transform a capsule by an isometry.
|
|
template<typename T, index_t N> |
| Cylinder< T, N > | operator/ (const Cylinder< T, N > &c, const Isometry< T, N > &xf) |
| | Inverse-transform a cylinder by an isometry.
|
|
template<typename T, index_t N, typename Shape> |
| Dilated< Shape > | operator/ (const Dilated< Shape > &s, const Isometry< T, N > &xf) |
| | Inverse-transform a dilated shape by an isometry.
|
|
template<typename T, index_t N> |
| Simplex< T, N > | operator/ (const Simplex< T, N > &s, const Isometry< T, N > &xf) |
| | Inverse-transform a simplex by an isometry.
|
|
template<typename T, index_t N> |
| Sphere< T, N > | operator/ (const Sphere< T, N > &s, const Isometry< T, N > &xf) |
| | Inverse-transform a sphere by an isometry.
|
|
template<typename T, index_t N> |
| Vec< T, N > | operator/ (const Vec< T, N > &v, const Isometry< T, N > &i) |
| | Transform a point.
|
|
template<typename T, std::common_with< T > U, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > | operator/ (const Dual< T, Dp > &d, U s) |
| | Dual / scalar division.
|
|
template<typename T, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > | operator/ (const Dual< T, Dp > &d1, const Dual< T, Dp > &d2) |
| | Dual-dual division.
|
|
template<typename T, std::common_with< T > U, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > | operator/ (U s, const Dual< T, Dp > &d) |
| | Scalar / dual division.
|
|
template<typename T, index_t N> |
| Ray< T, N > | operator/ (const Ray< T, N > &ray, const Isometry< T, N > &xf) |
| | Inverse-transform a ray.
|
|
template<typename T, index_t N> |
| Ray< T, N > | operator/ (const Ray< T, N > &ray, const Similarity< T, N > &i) |
| | Inverse-transform a ray.
|
|
template<typename T, index_t N> |
| Ray< T, N > | operator/ (Ray< T, N > ray, const Rotation< T, N > &rot) |
| | Apply the inverse of a rotation to a ray.
|
|
template<typename T> |
| Vec< T, 2 > | operator/ (const Vec< T, 2 > &v, const Rotation< T, 2 > &r) |
| | Apply the inverse of a rotation to a vector.
|
|
template<typename T> |
| Vec< T, 3 > | operator/ (const Vec< T, 3 > &v, const Rotation< T, 3 > &r) |
| | Apply the inverse of a rotation to a vector.
|
|
template<typename Shape> |
| Similar< Shape > | operator/ (const Shape &s, const Similarity< typename Shape::elem_t, Shape::N > &xf) |
| | Transform the shape s by the inverse of xf.
|
|
template<typename Shape> |
| Similar< Shape > | operator/ (const Similar< Shape > &s, const Similarity< typename Shape::elem_t, Shape::N > &xf) |
| | Transform the shape s by the inverse of xf.
|
|
template<typename T, index_t N> |
| Capsule< T, N > | operator/ (const Capsule< T, N > &c, const Similarity< T, N > &xf) |
| | Inverse-transform a capsule by a similarity transform.
|
|
template<typename T, index_t N> |
| Cylinder< T, N > | operator/ (const Cylinder< T, N > &c, const Similarity< T, N > &xf) |
| | Inverse-transform a cylinder by a similarity transform.
|
|
template<typename T, index_t N, typename Shape> |
| Dilated< Shape > | operator/ (const Dilated< Shape > &s, const Similarity< T, N > &xf) |
| | Inverse-transform a dilated shape by a similarity transform.
|
|
template<typename T, index_t N> |
| Simplex< T, N > | operator/ (const Simplex< T, N > &s, const Similarity< T, N > &xf) |
| | Inverse-transform a simplex by a similarity transform.
|
|
template<typename T, index_t N> |
| Sphere< T, N > | operator/ (const Sphere< T, N > &s, const Similarity< T, N > &xf) |
| | Inverse-transform a sphere by a similarity transform.
|
|
template<typename T, index_t N> |
| Vec< T, N > | operator/ (const Vec< T, N > &v, const Similarity< T, N > &i) |
| | Transform a point.
|
|
template<typename Shape> |
| Transformed< Shape > | operator/ (const Shape &s, const AffineTransform< typename Shape::elem_t, Shape::N > &xf) |
| | Transform the shape s by the inverse of xf.
|
|
template<typename Shape> |
| Transformed< Shape > | operator/ (const Transformed< Shape > &s, const AffineTransform< typename Shape::elem_t, Shape::N > &xf) |
| | Transform the transformed shape s by the inverse of xf.
|
|
template<typename Shape, typename T, index_t N> |
| Transformed< Shape > | operator/ (const Transformed< Shape > &s, const Isometry< T, N > &xf) |
| | Inverse transform the shape s by an isometry xf.
|
|
template<typename Shape, typename T, index_t N> |
| Transformed< Shape > | operator/ (const Transformed< Shape > &s, const Similarity< T, N > &xf) |
| | Inverse transform the shape s by a similarity transform xf.
|
| template<typename T, index_t N> |
| const Vec< T, N > | operator/ (const Vec< T, N > &a, const Vec< T, N > &b) |
| template<typename T, index_t N, typename U> |
| Vec< T, N > | operator/ (const Vec< T, N > &v, U d) |
| template<typename T, index_t N, typename U> |
| Vec< T, N > | operator/ (const Vec< T, N > &v, U d) |
|
template<typename T, typename U, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > & | operator/= (Dual< T, Dp > &x, const Dual< U, Dp > &y) |
| | Divide and assign to dual.
|
|
template<typename T, std::common_with< T > U, DiscontinuityPolicy Dp> |
| constexpr Dual< T, Dp > & | operator/= (Dual< T, Dp > &x, U s) |
| | Divide and assign to dual.
|
|
template<typename Shape> |
| Similar< Shape > & | operator/= (Similar< Shape > &s, const Similarity< typename Shape::elem_t, Shape::N > &xf) |
| | In-place transform the shape s by the inverse of xf.
|
|
template<typename Shape> |
| Transformed< Shape > & | operator/= (Transformed< Shape > &s, const AffineTransform< typename Shape::elem_t, Shape::N > &xf) |
| | In-place transform the transformed shape s by the inverse of xf.
|
|
template<typename Ma, typename Mb> |
| std::enable_if< detail::IsMatrix< Ma >::valanddetail::IsMatrix< Mb >::valandnotdetail::MatrixDimensionMatch< Ma, Mb >::isStaticMatch, bool >::type | operator== (const Ma &a, const Mb &b) |
|
template<typename Ma, typename Mb> |
| std::enable_if< detail::IsMatrix< Ma >::valanddetail::IsMatrix< Mb >::valanddetail::MatrixDimensionMatch< Ma, Mb >::isStaticMatch, bool >::type | operator== (const Ma &a, const Mb &b) |
| template<typename Matrix1, typename Matrix2> |
| bool | operator== (const Matrix1 &a, const Matrix2 &b) |
|
template<typename T> |
| Vec< T, 2 > | orthogonal (const Vec< T, 2 > v[1]) |
|
template<typename T> |
| Vec< T, 3 > | orthogonal (const Vec< T, 3 > v[2]) |
| template<typename T, index_t N> |
| Vec< T, N > | orthogonal (const Vec< T, N > v[N-1]) |
| | Return a vector orthogonal to the given N-1 vectors.
|
|
template<typename T> |
| void | orthogonalize (Vec< T, 2 > basis[2], index_t _n=2) |
| template<typename T, index_t N> |
| void | orthogonalize (Vec< T, N > basis[], index_t n) |
| | Use the Gram-Schmidt process to orthogonalize a set of basis vectors.
|
| template<typename T, index_t N> |
| void | orthonormalize (Vec< T, N > basis[], index_t n) |
| | Use the Gram-Schmidt process to orthonormalize a set of basis vectors.
|
| template<typename RandomAccessIterator> |
| void | permutation_apply (index_t *p, index_t n, RandomAccessIterator v) |
| | Apply a permutation in-place, resetting the permutation to identity in the process.
|
| index_t | permutation_sign (index_t *p, index_t n) |
| | Compute the sign of a permutation, resetting the permutation to identity in the process.
|
|
template<typename T, typename U> |
| geom::Dual< T > | pow (const geom::Dual< T > &base, U xp) |
| | Returns base raised to exponent xp.
|
|
template<typename T, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | pow (const geom::Dual< T, P > &base, const geom::Dual< T, P > &xp) |
| | Returns base raised to exponent xp.
|
|
template<typename T, typename U, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | pow (U base, const geom::Dual< T, P > &xp) |
| | Returns base raised to exponent xp.
|
| template<typename T, index_t N> |
| Vec< T, N > | project_to_orthogonal_subspace (const Vec< T, N > bases[], Vec< T, N > x, index_t n) |
| | Project a vector onto an orthogonal subspace.
|
| template<typename T, index_t N> |
| Vec< T, N > | project_to_subspace (Vec< T, N > bases[], Vec< T, N > x, index_t n) |
| | Project a vector onto a non-orthogonal subspace.
|
| template<typename T> |
| Vec< T, 3 > | rainbow (double s) |
|
template<typename T, index_t N, typename Generator> |
| VecType< T, N > | random_gaussian (Generator &rng) |
| | Generate a random vector drawn from a multivariate gaussian distribution with mean 0 and variance 1.
|
|
template<typename T, index_t N, typename Generator> |
| VecType< T, N > | random_unit (Generator &rng) |
| | Generate a random vector with unit length.
|
|
template<typename T, index_t N> |
| AffineTransform< T, N > | remap_transform (const Rect< T, N > ®ion) |
| | Return a transformation which maps the unit interval to the region.
|
| template<typename T> |
| AffineTransform< T, 3 > | rotation (Quat< T > q) |
| template<typename T> |
| AffineTransform< T, 2 > | rotation (T radians) |
| template<typename T> |
| AffineTransform< T, 3 > | rotation (Vec< T, 3 > axis, const Vec< T, 3 > ¢er, T radians) |
| template<typename T> |
| AffineTransform< T, 3 > | rotation (Vec< T, 3 > axis, T radians) |
|
template<typename T> |
| AffineTransform< T, 3 > | rotation_x (T theta) |
|
template<typename T> |
| AffineTransform< T, 3 > | rotation_y (T theta) |
|
template<typename T> |
| AffineTransform< T, 3 > | rotation_z (T theta) |
|
template<typename T> |
| SimpleMatrix< T, 3, 3 > | rotmat (const Quat< T > &q) |
|
template<typename T> |
| void | rotmat (SimpleMatrix< T, 4, 4 > *into, const Quat< T > &q) |
|
template<typename T> |
| void | rotmat (SimpleMatrix< T, 4, 4 > *into, const Vec< T, 3 > &axis, T theta) |
|
template<typename T> |
| void | rotmat (SimpleMatrix< T, 4, 4 > *into, T x, T y, T z, T px, T py, T pz, T theta) |
|
template<typename T> |
| void | rotmat (SimpleMatrix< T, 4, 4 > *into, T x, T y, T z, T theta) |
|
template<typename T> |
| void | rotmat (SimpleMatrix< T, 4, 4 > *into, Vec< T, 3 > axis, Vec< T, 3 > ctr, T theta) |
|
template<typename T> |
| void | rotmat (SimpleMatrix< T, 4, 4 > *out_mat, SimpleMatrix< T, 4, 4 > *out_inv, const Vec< T, 3 > &axis, const Vec< T, 3 > &ctr, T theta) |
|
template<typename T> |
| void | rotmat (SimpleMatrix< T, 4, 4 > *out_mat, SimpleMatrix< T, 4, 4 > *out_inv, T x, T y, T z, T px, T py, T pz, T theta) |
|
template<typename T> |
| SimpleMatrix< T, 3, 3 > | rotmat_direction_align (const Vec< T, 3 > &dir, const Vec< T, 3 > &alignWith) |
|
template<typename T> |
| void | rotmat_direction_align (SimpleMatrix< T, 3, 3 > *into, const Vec< T, 3 > &dir, const Vec< T, 3 > &alignWith) |
|
template<typename T> |
| void | rotmat_direction_align (SimpleMatrix< T, 4, 4 > *into, const Vec< T, 3 > &dir, const Vec< T, 3 > &alignWith) |
|
template<typename T> |
| void | rotmat_x (SimpleMatrix< T, 4, 4 > *into, T theta) |
|
template<typename T> |
| SimpleMatrix< T, 3, 3 > | rotmat_x (T theta) |
|
template<typename T> |
| void | rotmat_y (SimpleMatrix< T, 4, 4 > *into, T theta) |
|
template<typename T> |
| SimpleMatrix< T, 3, 3 > | rotmat_y (T theta) |
|
template<typename T> |
| void | rotmat_z (SimpleMatrix< T, 4, 4 > *into, T theta) |
|
template<typename T> |
| SimpleMatrix< T, 3, 3 > | rotmat_z (T theta) |
| template<typename T, index_t N> |
| Dilated< Rect< T, N > > | roundrect (const Rect< T, N > &rect, T radius) |
| | Produce a rounded rectangle with corner radius radius.
|
| template<typename T, index_t N> |
| AffineTransform< T, N > | scale (const Vec< T, N > &sx) |
| template<typename T> |
| AffineTransform< T, 2 > | scale (T sx, T sy) |
| template<typename T> |
| AffineTransform< T, 3 > | scale (T sx, T sy, T sz) |
| template<typename U typename Matrix, typename Matrix> |
| void | scale (Matrix1 *d, U k, const Matrix &m) |
|
template<typename U, typename Mx, typename Md> |
| std::enable_if< detail::IsMatrix< Mx >::valandstd::is_scalar< U >::valueanddetail::MatrixDimensionMatch< Mx, Md >::isStaticMatch, void >::type | scale (Md *d, U k, const Mx &m) |
|
template<typename T> |
| AffineTransform< T, 1 > | scale (T sx) |
| template<typename U, typename Matrix> |
| Matrix | scale (U k, const Matrix &m) |
|
template<typename U, typename Mx> |
| std::enable_if< detail::IsMatrix< Mx >::valandstd::is_scalar< U >::value, typenamedetail::_ImplMatrixScale< Mx >::return_t >::type | scale (U k, const Mx &m) |
| template<typename T, index_t N> |
| Dilated< Hollow< Sphere< T, N > > > | shell (const Sphere< T, N > &s, T thickness) |
| | Create a spherical shell with wall thickness thickness around the Sphere s.
|
| template<typename T, index_t N> |
| Dilated< Hollow< Sphere< T, N > > > | shell (Vec< T, N > center, T r0, T r1) |
| | Create a spherical shell around center, with inner and outer radii r0 and r1.
|
|
template<typename T, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | sin (const geom::Dual< T, P > &d) |
| | Sine function.
|
| template<typename T, index_t N> |
| geom::Vec< T, N > | sin (const geom::Vec< T, N > &v) |
| template<typename T> |
| T | spherical_harmonic_coeff (index_t l, index_t m, T cos_alt, T azi) |
|
template<typename T, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | sqrt (const geom::Dual< T, P > &d) |
| | Square root.
|
| template<typename T, index_t N> |
| geom::Vec< T, N > | sqrt (const geom::Vec< T, N > &v) |
|
template<typename Ma, typename Mb> |
| std::enable_if< detail::MatrixDimensionMatch< Ma, Mb >::isStaticMatch, typenamedetail::_ImplMatrixAdd< Ma, Mb >::return_t >::type | sub (const Ma &a, const Mb &b) |
| template<typename Matrix1, typename Matrix2> |
| Matrix | sub (const Matrix1 &a, const Matrix2 &b) |
| template<typename Matrix, typename Matrix1, typename Matrix2> |
| void | sub (Matrix *d, const Matrix1 &a, const Matrix2 &b) |
|
template<typename Md, typename Ma, typename Mb> |
| std::enable_if< detail::MatrixDimensionMatch< Ma, Mb >::isStaticMatchanddetail::MatrixDimensionMatch< Ma, Md >::isStaticMatch, void >::type | sub (Md *d, const Ma &a, const Mb &b) |
|
template<typename T, geom::DiscontinuityPolicy P> |
| geom::Dual< T, P > | tan (const geom::Dual< T, P > &d) |
| | Tangent function.
|
| template<typename T, index_t N> |
| geom::Vec< T, N > | tan (const geom::Vec< T, N > &v) |
| template<typename T, index_t N> |
| bool | trace_simplex (const Vec< T, N > verts[N], const Ray< T, N > &ray, Vec< T, N-1 > *uv, T *s) |
| template<typename T, index_t N, MatrixLayout Lyt, StoragePolicy P> |
| AffineTransform< T, N > | transformation (const SimpleMatrix< T, N, N, Lyt, P > &mat) |
| template<typename T, index_t N> |
| AffineTransform< T, N > | translation (const Vec< T, N > &tx) |
| template<typename T> |
| AffineTransform< T, 2 > | translation (T tx, T ty) |
| template<typename T> |
| AffineTransform< T, 3 > | translation (T tx, T ty, T tz) |
|
template<typename T> |
| AffineTransform< T, 1 > | translation (T tx) |
| template<typename Matrix1> |
| Matrix | transpose (const Matrix1 &m) |
|
template<typename Mx> |
| std::enable_if< detail::IsMatrix< Mx >::val, typenamedetail::_ImplMtxTxpose< Mx >::return_t >::type | transpose (const Mx &m) |
| template<typename Matrix1, typename Matrix2> |
| void | transpose (Matrix1 *into, const Matrix2 &m) |
|
template<typename Md, typename Mx> |
| std::enable_if< detail::IsMatrix< Md >::valanddetail::IsMatrix< Mx >::valand(Md::ROWDIM==Mx::COLDIMorMd::ROWDIM *Mx::COLDIM==0) and(Md::COLDIM==Mx::ROWDIMorMd::COLDIM *Mx::ROWDIM==0), void >::type | transpose (Md *into, const Mx &m) |
|
template<typename T, index_t M, index_t N, MatrixLayout Lyt, StoragePolicy P> |
| std::enable_if< M *N==0orM==N, void >::type | transpose (SimpleMatrix< T, M, N, Lyt, P > *into, const SimpleMatrix< T, M, N, Lyt, P > &m) |
|
template<typename T, index_t N> |
| void | transpose_square_matrix (T *m) |
| | Transpose a square matrix with static dimensions.
|
|
template<typename T> |
| void | transpose_square_matrix (T *m, index_t n) |
| | Transpose a square matrix.
|
| template<typename T> |
| Vec< T, 3 > | triangle_normal (const Vec< T, 3 > p1, const Vec< T, 3 > p2, const Vec< T, 3 > p3) |
|
template<std::integral H> |
| constexpr H | truncated_constant (uint64_t k0, uint64_t k1) |
|
template<typename T, typename H> |
| constexpr H | type_constant () |
|
template<typename T, index_t N> |
| AffineTransform< T, N > | unmap_transform (const Rect< T, N > ®ion) |
| | Return a transformation which maps the region to the unit interval.
|
| template<typename T> |
| T | multiply_add (T m, T x, T b) |
| | Fused multiply-add.
|
| template<typename T> |
| T | diff_of_products (T a, T b, T c, T d) |
| template<typename T> |
| T | sum_of_products (T a, T b, T c, T d) |
|
template<typename T> |
| T | positive_mod (T a, T b) |
| template<typename T> |
| T | clamp (const T &v, const T &lo, const T &hi) |
| template<typename S, typename T> |
| std::common_type< S, T >::type | mix (S t, T a, T b) |
| template<typename S, typename T> |
| T | interp_linear (const S s[], const T p[], int dim) |
| template<typename S, typename T> |
| T | interp_cubic (S s, const T p[4]) |
| template<typename S, typename T> |
| T | interp_cubic (const S s[], const T p[], int dim) |
| template<typename T> |
| bool | quadratic_solve (T results[2], T a, T b, T c) |
| template<typename T> |
| T | angle_to (T radians_0, T radians_1) |
| template<typename T> |
| constexpr auto | ceil_div (T a, T b) |
| | Compute ceil(a/b).
|
|
template<typename T> |
| constexpr auto | snap (T a, T b) |
| | Snap a to the nearest multiple of b larger than or equal to a.
|
| template<typename T> |
| constexpr auto | floor_div (T a, T b) |
| | Compute floor(a/b).
|
template<typename T>
requires std::integral<T> |
| constexpr bool | is_power_of_two (T x) |
|
template<typename T> |
| constexpr T | radians (T degrees) |
| | Convert degrees to radians.
|
|
template<typename T> |
| constexpr T | degrees (T radians) |
| | Convert radians to degrees.
|
| template<typename T, bool RowMajor> |
| bool | cholesky (T *m, index_t n) |
| | Perform a Cholesky decomposition on a bare array.
|
| template<typename T, index_t M, index_t N> |
| bool | cholesky (SimpleMatrix< T, M, N > *m) |
| | Perform a Cholesky decomposition on a Matrix.
|
| template<typename T, bool RowMajor = true> |
| index_t | decomp_lup (T *m, index_t rows, index_t cols, index_t *reorder, bool *parity) |
| | LU decomposition, pivoting columns.
|
| template<typename T, bool RowMajor = true> |
| index_t | decomp_plu (T *m, index_t rows, index_t cols, index_t *reorder, bool *parity) |
| | LU decomposition, pivoting rows.
|
| template<typename T, bool RowMajor = true> |
| void | backsolve_plu (const T *plu, const index_t *p, index_t n, index_t m, T *x, const T *b, index_t skip=0) |
| | Solve the decomposed matrix equation LUX = PB for X, given LU and B.
|
| template<typename T, bool RowMajor = true> |
| void | backsolve_lu (const T *lu, index_t n, index_t m, T *x, index_t skip=0) |
| | Solve a decomposed system of linear equations LUX = B, without a permutation map.
|
| template<typename T, bool RowMajor = true> |
| bool | linear_solve (T *a, index_t n, index_t m, T *x, index_t skip=0) |
| | Solve the matrix equation AX = B for the matrix X, given matrices A and B.
|
| template<typename T, index_t N> |
| bool | linear_solve (Vec< T, N > bases[N], index_t m, Vec< T, N > *x, index_t skip=0) |
| | Write each vector in b in terms of the basis vectors in bases.
|