Namespace of algebraic structure. More...
Namespaces | |
| namespace | internal |
Classes | |
| struct | h_mat |
| N-Dimensional matrix with homogeneous coordinates. More... | |
| class | h_vec |
| N-Dimensional vector with homogeneous coordinates. More... | |
| class | mat |
| class | quat |
| class | vec |
Functions | |
| template<typename T > | |
| bool | about_equal (const T &f, const T &q) |
| bool | about_equal (const quat &p, const quat &q) |
| template<typename T > | |
| mln::trait::value_< typename mln::trait::op::times< T, T > ::ret >::sum | det (const mat< 3, 3, T > &m) |
| template<typename T > | |
| mln::trait::value_< typename mln::trait::op::times< T, T > ::ret >::sum | det (const mat< 2, 2, T > &m) |
| quat | exp (const quat &q) |
| bool | interpol_ok (const quat &p, const quat &q, float h) |
| template<unsigned N, typename T > | |
| bool | ldlt_decomp (mat< N, N, T > &A, vec< N, T > &rdiag) |
| Perform LDL^T decomposition of a symmetric positive definite matrix. | |
| template<unsigned N, typename T > | |
| void | ldlt_solve (const mat< N, N, T > &A, const vec< N, T > &rdiag, const vec< N, T > &B, vec< N, T > &x) |
| Solve A x = B after mln::algebra::ldlt_decomp. | |
| quat | lerp (const quat &p, const quat &q, float h) |
| quat | log (const quat &q) |
| template<typename T > | |
| mat< 3, 3, T > | make (const T &t00, const T &t01, const T &t02, const T &t10, const T &t11, const T &t12, const T &t20, const T &t21, const T &t22) |
| template<typename T > | |
| mat< 2, 2, T > | make (const T &t00, const T &t01, const T &t10, const T &t11) |
| template<unsigned n, unsigned o, typename T , unsigned m, typename U > | |
| mat< n, m, typename mln::trait::value_< typename mln::trait::op::times< T, U > ::ret >::sum > | operator* (const mat< n, o, T > &lhs, const mat< o, m, U > &rhs) |
| template<unsigned o, typename T , typename U > | |
| mln::trait::value_< typename mln::trait::op::times< T, U > ::ret >::sum | operator* (const mat< 1, o, T > &lhs, const mat< o, 1, U > &rhs) |
| template<unsigned n, typename T , typename U > | |
| mln::trait::value_< typename mln::trait::op::times< T, U > ::ret >::sum | operator* (const vec< n, T > &lhs, const vec< n, U > &rhs) |
| Scalar product (dot product). | |
| template<unsigned n, typename T , typename S > | |
| vec< n, typename mln::trait::op::times< T, S > ::ret > | operator* (const vec< n, T > &lhs, const mln::value::scalar_< S > &s) |
| template<unsigned n, unsigned m, typename T , typename U > | |
| vec< n, typename mln::trait::value_< typename mln::trait::op::times< T, U > ::ret >::sum > | operator* (const mat< n, m, T > &lhs, const vec< m, U > &rhs) |
| quat | operator* (const quat &lhs, const quat &rhs) |
| template<typename S > | |
| quat | operator* (const quat &lhs, const value::scalar_< S > &rhs) |
| template<unsigned m, typename T , typename U > | |
| mat< m, m, typename mln::trait::op::times< T, U > ::ret > | operator* (const vec< m, T > &lhs, const mat< 1, m, U > &rhs) |
| template<unsigned m, typename T , typename U > | |
| mln::trait::value_< typename mln::trait::op::times< T, U > ::ret >::sum | operator* (const mat< 1, m, T > &lhs, const vec< m, U > &rhs) |
| template<unsigned n, unsigned m, typename T , typename S > | |
| mat< n, m, typename mln::trait::op::times< T, S > ::ret > | operator* (const mat< n, m, T > &lhs, const value::scalar_< S > &s) |
| quat | operator+ (const quat &lhs, const quat &rhs) |
| template<unsigned n, typename T , typename U > | |
| vec< n, typename mln::trait::op::plus< T, U > ::ret > | operator+ (const vec< n, T > &lhs, const vec< n, U > &rhs) |
| template<unsigned n, unsigned m, typename T , typename U > | |
| mat< n, m, typename mln::trait::op::plus< T, U > ::ret > | operator+ (const mat< n, m, T > &lhs, const mat< n, m, U > &rhs) |
| template<unsigned n, unsigned m, typename T , typename U > | |
| mat< n, m, typename mln::trait::op::minus< T, U > ::ret > | operator- (const mat< n, m, T > &lhs, const mat< n, m, U > &rhs) |
| template<unsigned n, typename T , typename U > | |
| vec< n, typename mln::trait::op::minus< T, U > ::ret > | operator- (const vec< n, T > &lhs, const vec< n, U > &rhs) |
| template<unsigned n, typename T > | |
| vec< n, typename mln::trait::op::uminus< T > ::ret > | operator- (const vec< n, T > &rhs) |
| quat | operator- (const quat &lhs, const quat &rhs) |
| template<unsigned n, unsigned m, typename T > | |
| mat< n, m, typename mln::trait::op::uminus< T > ::ret > | operator- (const mat< n, m, T > &lhs) |
| template<typename S > | |
| quat | operator/ (const quat &lhs, const value::scalar_< S > &rhs) |
| template<unsigned n, typename T , typename S > | |
| vec< n, typename mln::trait::op::div< T, S > ::ret > | operator/ (const vec< n, T > &lhs, const mln::value::scalar_< S > &s) |
| template<unsigned n, unsigned m, typename T , typename S > | |
| mat< n, m, typename mln::trait::op::div< T, S > ::ret > | operator/ (const mat< n, m, T > &lhs, const value::scalar_< S > &s) |
| template<unsigned n, unsigned m, typename T > | |
| std::ostream & | operator<< (std::ostream &ostr, const mat< n, m, T > &v) |
| std::ostream & | operator<< (std::ostream &ostr, const quat &q) |
| template<unsigned n, typename T > | |
| std::ostream & | operator<< (std::ostream &ostr, const vec< n, T > &v) |
| template<unsigned n, typename T , typename U > | |
| bool | operator== (const vec< n, T > &lhs, const vec< n, U > &rhs) |
| template<unsigned n, unsigned m, typename T , typename U > | |
| bool | operator== (const mat< n, m, T > &lhs, const mat< n, m, U > &rhs) |
| template<unsigned n, typename T > | |
| std::istream & | operator>> (std::istream &istr, vec< n, T > &v) |
| quat | pow (const quat &q, double t) |
| quat | slerp (const quat &p, const quat &q, float h) |
| quat | slerp_2 (const quat &p, const quat &q, float h) |
| quat | slerp_3 (const quat &p, const quat &q, float h) |
| quat | slerp_4 (const quat &p, const quat &q, float h) |
| quat | slerp_5 (const quat &p, const quat &q, float h) |
| template<typename P > | |
| P | to_point (const vec< P::dim, float > &v) |
| template<unsigned n, typename T > | |
| mln::value::props< T >::sum | tr (const mat< n, n, T > &m) |
| template<typename T , typename U > | |
| vec< 3, typename mln::trait::op::times< T, U > ::ret > | vprod (const vec< 3, T > &lhs, const vec< 3, U > &rhs) |
| Vectorial product (cross product). | |
Namespace of algebraic structure.
| bool mln::algebra::about_equal | ( | const T & | f, | |
| const T & | q | |||
| ) | [inline] |
Definition at line 593 of file quat.hh.
References mln::math::abs().
Referenced by exp(), mln::algebra::quat::is_null(), mln::algebra::quat::is_pure(), mln::algebra::quat::is_unit(), mln::algebra::quat::set_unit(), slerp(), slerp_2(), slerp_3(), slerp_4(), and slerp_5().
| bool mln::algebra::about_equal | ( | const quat & | p, | |
| const quat & | q | |||
| ) | [inline] |
Definition at line 599 of file quat.hh.
References mln::norm::l2(), and mln::algebra::quat::to_vec().
| mln::trait::value_< typename mln::trait::op::times< T, T >::ret >::sum mln::algebra::det | ( | const mat< 3, 3, T > & | m | ) | [inline] |
Definition at line 841 of file algebra/mat.hh.
| mln::trait::value_< typename mln::trait::op::times< T, T >::ret >::sum mln::algebra::det | ( | const mat< 2, 2, T > & | m | ) | [inline] |
Definition at line 833 of file algebra/mat.hh.
Referenced by mln::algebra::internal::inverse().
| quat mln::algebra::exp | ( | const quat & | q | ) | [inline] |
Definition at line 573 of file quat.hh.
References about_equal(), mln::norm::l2(), mln::algebra::quat::s(), and mln::algebra::quat::v().
Referenced by pow().
| bool mln::algebra::interpol_ok | ( | const quat & | p, | |
| const quat & | q, | |||
| float | h | |||
| ) | [inline] |
| bool mln::algebra::ldlt_decomp | ( | mat< N, N, T > & | A, | |
| vec< N, T > & | rdiag | |||
| ) | [inline] |
Perform LDL^T decomposition of a symmetric positive definite matrix.
Like Cholesky, but no square roots. Overwrites lower triangle of matrix.
From Trimesh's ldltdc routine.
Definition at line 79 of file misc.hh.
Referenced by mln::geom::mesh_curvature().
| void mln::algebra::ldlt_solve | ( | const mat< N, N, T > & | A, | |
| const vec< N, T > & | rdiag, | |||
| const vec< N, T > & | B, | |||
| vec< N, T > & | x | |||
| ) | [inline] |
Solve A x = B after mln::algebra::ldlt_decomp.
Definition at line 112 of file misc.hh.
Referenced by mln::geom::mesh_curvature().
| quat mln::algebra::lerp | ( | const quat & | p, | |
| const quat & | q, | |||
| float | h | |||
| ) | [inline] |
| quat mln::algebra::log | ( | const quat & | q | ) | [inline] |
Definition at line 565 of file quat.hh.
References mln::algebra::quat::is_unit(), mln::algebra::quat::theta(), and mln::algebra::quat::uv().
Referenced by pow().
| mat< 3, 3, T > mln::algebra::make | ( | const T & | t00, | |
| const T & | t01, | |||
| const T & | t02, | |||
| const T & | t10, | |||
| const T & | t11, | |||
| const T & | t12, | |||
| const T & | t20, | |||
| const T & | t21, | |||
| const T & | t22 | |||
| ) | [inline] |
Definition at line 628 of file algebra/mat.hh.
| mat< 2, 2, T > mln::algebra::make | ( | const T & | t00, | |
| const T & | t01, | |||
| const T & | t10, | |||
| const T & | t11 | |||
| ) | [inline] |
Definition at line 616 of file algebra/mat.hh.
Referenced by mln::algebra::internal::inverse().
| mat< n, m, typename mln::trait::value_< typename mln::trait::op::times< T, U >::ret >::sum > mln::algebra::operator* | ( | const mat< n, o, T > & | lhs, | |
| const mat< o, m, U > & | rhs | |||
| ) | [inline] |
Definition at line 697 of file algebra/mat.hh.
References mln::rhs, and mln::literal::zero.
| mln::trait::value_< typename mln::trait::op::times< T, U >::ret >::sum mln::algebra::operator* | ( | const mat< 1, o, T > & | lhs, | |
| const mat< o, 1, U > & | rhs | |||
| ) | [inline] |
Definition at line 714 of file algebra/mat.hh.
References mln::rhs, and mln::literal::zero.
| mln::trait::value_< typename mln::trait::op::times< T, U >::ret >::sum mln::algebra::operator* | ( | const vec< n, T > & | lhs, | |
| const vec< n, U > & | rhs | |||
| ) | [inline] |
Scalar product (dot product).
Definition at line 632 of file algebra/vec.hh.
References mln::literal::zero.
| vec< n, typename mln::trait::op::times< T, S >::ret > mln::algebra::operator* | ( | const vec< n, T > & | lhs, | |
| const mln::value::scalar_< S > & | s | |||
| ) | [inline] |
Definition at line 646 of file algebra/vec.hh.
References mln::value::scalar_< T >::to_equiv().
| vec< n, typename mln::trait::value_< typename mln::trait::op::times< T, U >::ret >::sum > mln::algebra::operator* | ( | const mat< n, m, T > & | lhs, | |
| const vec< m, U > & | rhs | |||
| ) | [inline] |
Definition at line 728 of file algebra/mat.hh.
References mln::literal::zero.
| quat mln::algebra::operator* | ( | const quat & | lhs, | |
| const quat & | rhs | |||
| ) | [inline] |
Definition at line 534 of file quat.hh.
References mln::algebra::quat::s(), mln::algebra::quat::v(), and vprod().
| quat mln::algebra::operator* | ( | const quat & | lhs, | |
| const value::scalar_< S > & | rhs | |||
| ) | [inline] |
Definition at line 543 of file quat.hh.
References mln::value::scalar_< T >::to_equiv(), and mln::algebra::quat::to_vec().
| mat< m, m, typename mln::trait::op::times< T, U >::ret > mln::algebra::operator* | ( | const vec< m, T > & | lhs, | |
| const mat< 1, m, U > & | rhs | |||
| ) | [inline] |
Definition at line 759 of file algebra/mat.hh.
References mln::rhs.
| mln::trait::value_< typename mln::trait::op::times< T, U >::ret >::sum mln::algebra::operator* | ( | const mat< 1, m, T > & | lhs, | |
| const vec< m, U > & | rhs | |||
| ) | [inline] |
Definition at line 745 of file algebra/mat.hh.
References mln::literal::zero.
| mat< n, m, typename mln::trait::op::times< T, S >::ret > mln::algebra::operator* | ( | const mat< n, m, T > & | lhs, | |
| const value::scalar_< S > & | s | |||
| ) | [inline] |
Definition at line 773 of file algebra/mat.hh.
References mln::value::scalar_< T >::to_equiv().
| quat mln::algebra::operator+ | ( | const quat & | lhs, | |
| const quat & | rhs | |||
| ) | [inline] |
Definition at line 520 of file quat.hh.
References mln::algebra::quat::to_vec().
| vec< n, typename mln::trait::op::plus< T, U >::ret > mln::algebra::operator+ | ( | const vec< n, T > & | lhs, | |
| const vec< n, U > & | rhs | |||
| ) | [inline] |
Definition at line 590 of file algebra/vec.hh.
| mat< n, m, typename mln::trait::op::plus< T, U >::ret > mln::algebra::operator+ | ( | const mat< n, m, T > & | lhs, | |
| const mat< n, m, U > & | rhs | |||
| ) | [inline] |
Definition at line 658 of file algebra/mat.hh.
References mln::rhs.
| mat< n, m, typename mln::trait::op::minus< T, U >::ret > mln::algebra::operator- | ( | const mat< n, m, T > & | lhs, | |
| const mat< n, m, U > & | rhs | |||
| ) | [inline] |
Definition at line 670 of file algebra/mat.hh.
References mln::rhs.
| vec< n, typename mln::trait::op::minus< T, U >::ret > mln::algebra::operator- | ( | const vec< n, T > & | lhs, | |
| const vec< n, U > & | rhs | |||
| ) | [inline] |
Definition at line 618 of file algebra/vec.hh.
| vec< n, typename mln::trait::op::uminus< T >::ret > mln::algebra::operator- | ( | const vec< n, T > & | rhs | ) | [inline] |
Definition at line 604 of file algebra/vec.hh.
| quat mln::algebra::operator- | ( | const quat & | lhs, | |
| const quat & | rhs | |||
| ) | [inline] |
Definition at line 527 of file quat.hh.
References mln::algebra::quat::to_vec().
| mat< n, m, typename mln::trait::op::uminus< T >::ret > mln::algebra::operator- | ( | const mat< n, m, T > & | lhs | ) | [inline] |
Definition at line 682 of file algebra/mat.hh.
References mln::rhs.
| quat mln::algebra::operator/ | ( | const quat & | lhs, | |
| const value::scalar_< S > & | rhs | |||
| ) | [inline] |
Definition at line 552 of file quat.hh.
References mln::rhs, mln::value::scalar_< T >::to_equiv(), and mln::algebra::quat::to_vec().
| vec< n, typename mln::trait::op::div< T, S >::ret > mln::algebra::operator/ | ( | const vec< n, T > & | lhs, | |
| const mln::value::scalar_< S > & | s | |||
| ) | [inline] |
Definition at line 670 of file algebra/vec.hh.
References mln::value::equiv(), mln::value::scalar_< T >::to_equiv(), and mln::literal::zero.
| mat< n, m, typename mln::trait::op::div< T, S >::ret > mln::algebra::operator/ | ( | const mat< n, m, T > & | lhs, | |
| const value::scalar_< S > & | s | |||
| ) | [inline] |
Definition at line 786 of file algebra/mat.hh.
References mln::value::scalar_< T >::to_equiv().
| std::ostream & mln::algebra::operator<< | ( | std::ostream & | ostr, | |
| const mat< n, m, T > & | v | |||
| ) | [inline] |
Definition at line 801 of file algebra/mat.hh.
References mln::debug::format().
| std::ostream & mln::algebra::operator<< | ( | std::ostream & | ostr, | |
| const quat & | q | |||
| ) | [inline] |
Definition at line 514 of file quat.hh.
References mln::algebra::quat::to_vec().
| std::ostream & mln::algebra::operator<< | ( | std::ostream & | ostr, | |
| const vec< n, T > & | v | |||
| ) | [inline] |
Definition at line 686 of file algebra/vec.hh.
References mln::debug::format().
| bool mln::algebra::operator== | ( | const vec< n, T > & | lhs, | |
| const vec< n, U > & | rhs | |||
| ) | [inline] |
Definition at line 577 of file algebra/vec.hh.
| bool mln::algebra::operator== | ( | const mat< n, m, T > & | lhs, | |
| const mat< n, m, U > & | rhs | |||
| ) | [inline] |
Definition at line 646 of file algebra/mat.hh.
References mln::rhs.
| std::istream & mln::algebra::operator>> | ( | std::istream & | istr, | |
| vec< n, T > & | v | |||
| ) | [inline] |
Definition at line 700 of file algebra/vec.hh.
| quat mln::algebra::pow | ( | const quat & | q, | |
| double | t | |||
| ) | [inline] |
| quat mln::algebra::slerp | ( | const quat & | p, | |
| const quat & | q, | |||
| float | h | |||
| ) | [inline] |
Definition at line 630 of file quat.hh.
References about_equal(), interpol_ok(), lerp(), and mln::algebra::quat::sprod().
Referenced by slerp_2(), slerp_3(), slerp_4(), and slerp_5().
| quat mln::algebra::slerp_2 | ( | const quat & | p, | |
| const quat & | q, | |||
| float | h | |||
| ) | [inline] |
Definition at line 641 of file quat.hh.
References about_equal(), mln::algebra::quat::conj(), interpol_ok(), pow(), and slerp().
| quat mln::algebra::slerp_3 | ( | const quat & | p, | |
| const quat & | q, | |||
| float | h | |||
| ) | [inline] |
Definition at line 650 of file quat.hh.
References about_equal(), mln::algebra::quat::conj(), interpol_ok(), pow(), and slerp().
| quat mln::algebra::slerp_4 | ( | const quat & | p, | |
| const quat & | q, | |||
| float | h | |||
| ) | [inline] |
Definition at line 659 of file quat.hh.
References about_equal(), mln::algebra::quat::conj(), interpol_ok(), pow(), and slerp().
| quat mln::algebra::slerp_5 | ( | const quat & | p, | |
| const quat & | q, | |||
| float | h | |||
| ) | [inline] |
Definition at line 668 of file quat.hh.
References about_equal(), mln::algebra::quat::conj(), interpol_ok(), pow(), and slerp().
| P mln::algebra::to_point | ( | const vec< P::dim, float > & | v | ) | [inline] |
Definition at line 726 of file algebra/vec.hh.
| mln::value::props< T >::sum mln::algebra::tr | ( | const mat< n, n, T > & | m | ) | [inline] |
Definition at line 819 of file algebra/mat.hh.
References mln::literal::zero.
| vec< 3, typename mln::trait::op::times< T, U >::ret > mln::algebra::vprod | ( | const vec< 3, T > & | lhs, | |
| const vec< 3, U > & | rhs | |||
| ) | [inline] |
Vectorial product (cross product).
Definition at line 713 of file algebra/vec.hh.
Referenced by mln::geom::mesh_corner_point_area(), mln::geom::mesh_curvature(), mln::geom::mesh_normal(), and operator*().
1.7.1