|
cheshirekow
v0.1.0
|
simple template expression library for linear algebra More...
Namespaces | |
| cross_matrix | |
| euler | |
Classes | |
| class | _CrossMatrix |
| cross-product matrix of a vector More... | |
| class | _Difference |
| expression template for difference of two matrix expressions More... | |
| class | _LValue |
| expression template for rvalues More... | |
| class | _Normalize |
| Expression template presents a view of a matrix where each element is normalized, such that the sum of the elements is 1.0. More... | |
| class | _RValue |
| expression template for rvalues More... | |
| class | _RView |
| expression template for subset of a matrix expression More... | |
| class | _Scale |
| class | _Sum |
| expression template for sum of two matrix expressions More... | |
| class | _Transpose |
| expression template for difference of two matrix expressions More... | |
| class | AxisAngle |
| Encodes a rotation in 3-dimensions by an return RView<Scalar, Exp, rows, Exp::COLS>(static_cast<Exp const&>(A), i, 0);axis of rotation and an angle magnitude of rotation about that axis. More... | |
| class | CoordinateAxis |
| A 3x1 normal vector with one unity element. More... | |
| class | CoordinateAxisAngle |
| An axis angle rotation about a coordinate axis. More... | |
| class | Eye |
A N x N matrix expression for the identity matrix. More... | |
| class | LView |
| expression template for subset of a matrix expression More... | |
| class | Matrix |
| class | Quaternion |
| class | StreamAssignment |
| assignment More... | |
Typedefs | |
| typedef AxisAngle< double > | AxisAngled |
| typedef AxisAngle< float > | AxisAnglef |
| typedef CoordinateAxis< double, 0 > | AxisXd |
| typedef CoordinateAxis< float, 0 > | AxisXf |
| typedef CoordinateAxis< double, 1 > | AxisYd |
| typedef CoordinateAxis< float, 1 > | AxisYf |
| typedef CoordinateAxis< double, 2 > | AxisZd |
| typedef CoordinateAxis< float, 2 > | AxisZf |
| typedef CoordinateAxisAngle < double, 0 > | CoordinateAxisAngleXd |
| typedef CoordinateAxisAngle < float, 0 > | CoordinateAxisAngleXf |
| typedef CoordinateAxisAngle < double, 1 > | CoordinateAxisAngleYd |
| typedef CoordinateAxisAngle < float, 1 > | CoordinateAxisAngleYf |
| typedef CoordinateAxisAngle < double, 2 > | CoordinateAxisAngleZd |
| typedef CoordinateAxisAngle < float, 2 > | CoordinateAxisAngleZf |
| typedef Eye< double, 2 > | Eye2d |
| typedef Eye< float, 2 > | Eye2f |
| typedef Eye< double, 3 > | Eye3d |
| typedef Eye< float, 3 > | Eye3f |
| typedef Eye< double, 4 > | Eye4d |
| typedef Eye< float, 4 > | Eye4f |
| typedef int | Index |
| typedef Matrix< double, 2, 2 > | Matrix2d |
| typedef Matrix< float, 2, 2 > | Matrix2f |
| typedef Matrix< double, 3, 3 > | Matrix3d |
| typedef Matrix< float, 3, 3 > | Matrix3f |
| typedef Matrix< double, 4, 4 > | Matrix4d |
| typedef Matrix< float, 4, 4 > | Matrix4f |
| typedef Quaternion< double > | Quaterniond |
| typedef Quaternion< float > | Quaternionf |
| typedef unsigned int | Size |
| typedef Matrix< double, 2, 1 > | Vector2d |
| typedef Matrix< float, 2, 1 > | Vector2f |
| typedef Matrix< double, 3, 1 > | Vector3d |
| typedef Matrix< float, 3, 1 > | Vector3f |
| typedef Matrix< double, 4, 1 > | Vector4d |
| typedef Matrix< float, 4, 1 > | Vector4f |
Functions | |
| template<typename Scalar , class Exp > | |
| void | AxisAngleToQuaternion (const fiber::_RValue< Scalar, Exp > &axis, const Scalar angle, Quaternion< Scalar > *q) |
| template<typename Scalar > | |
| void | AxisAngleToQuaternion (const AxisAngle< Scalar > &axis_angle, Quaternion< Scalar > *q) |
| template<typename Scalar , class Exp > | |
| void | AxisAngleToRotationMatrix (const AxisAngle< Scalar > &axis_angle, _LValue< Scalar, Exp > *R) |
| template<int rows, int cols, typename Scalar , class Exp > | |
| LView< Scalar, Exp, rows, cols > | Block (_LValue< Scalar, Exp > &A, int i, int j) |
| template<typename Scalar , class Exp > | |
| LView< Scalar, Exp, Exp::ROWS_, 1 > | Column (_LValue< Scalar, Exp > &A, int j) |
| template<int cols, typename Scalar , class Exp > | |
| LView< Scalar, Exp, Exp::ROWS_, cols > | Columns (_LValue< Scalar, Exp > &A, int j) |
| template<typename Scalar > | |
| Quaternion< Scalar > | Conjugate (Quaternion< Scalar > const &q) |
| template<typename Scalar , int Axis> | |
| void | CoordinateAxisAngleToQuaternion (const CoordinateAxisAngle< Scalar, Axis > &axis_angle, Quaternion< Scalar > *q) |
| template<typename Scalar , int Axis, class Exp > | |
| void | CoordinateAxisAngleToRotationMatrix (const CoordinateAxisAngle< Scalar, Axis > &axis_angle, _LValue< Scalar, Exp > *R) |
| template<typename Scalar , class Exp > | |
| _CrossMatrix< Scalar, Exp > | CrossMatrix (_RValue< Scalar, Exp > const &A) |
| cross-product matrix of a vector More... | |
| template<typename Scalar , class Exp1 , class Exp2 > | |
| Scalar | Dot (_RValue< Scalar, Exp1 > const &A, _RValue< Scalar, Exp2 > const &B) |
| Dot product of two vectors. More... | |
| template<typename Scalar , int Axis1, int Axis2, int Axis3> | |
| void | EulerAnglesToQuaternion (const euler::Angles< Scalar, Axis1, Axis2, Axis3 > &euler, Quaternion< Scalar > *q) |
| template<typename Scalar , class Exp > | |
| _RView< Scalar, Exp, Exp::ROWS_, 1 > | GetColumn (_RValue< Scalar, Exp > const &A, int j) |
| template<int cols, typename Scalar , class Exp > | |
| _RView< Scalar, Exp, Exp::ROWS_, cols > | GetColumns (_RValue< Scalar, Exp > const &A, int j) |
| template<typename Scalar , class Exp > | |
| _RView< Scalar, Exp, 1, Exp::COLS_ > | GetRow (_RValue< Scalar, Exp > const &A, int i) |
| template<int rows, typename Scalar , class Exp > | |
| _RView< Scalar, Exp, rows, Exp::COLS_ > | GetRows (_RValue< Scalar, Exp > const &A, int i) |
| template<typename Scalar , class Exp > | |
| _LValue< Scalar, Exp > & | LValue (_LValue< Scalar, Exp > &exp) |
| Explicitly expose _LValue of an expressions, can be used to help the compiler disambiguate overloads. More... | |
| template<typename Scalar , class Exp > | |
| Scalar | Norm (_RValue< Scalar, Exp > const &A) |
| Return the 2-norm of a vector. More... | |
| template<typename Scalar , class Exp > | |
| Scalar | Norm (_RValue< Scalar, Exp > const &A, int n) |
| Return the n-norm of a vector. More... | |
| template<typename Scalar , class Exp > | |
| _Normalize< Scalar, Exp > | Normalize (_RValue< Scalar, Exp > const &A) |
| Prresents a view of a matrix or vector where each element is normalized, such that the sum of the elements is 1.0. More... | |
| template<typename Scalar , class Exp1 , class Exp2 > | |
| Matrix< Scalar, Exp1::ROWS_, Exp2::COLS_ > | operator* (_RValue< Scalar, Exp1 > const &A, _RValue< Scalar, Exp2 > const &B) |
| Matrix multiplication. More... | |
| template<typename Scalar , class Exp > | |
| _Scale< Scalar, Exp > | operator* (Scalar s, _RValue< Scalar, Exp > const &A) |
| template<typename Scalar , class Exp > | |
| _Scale< Scalar, Exp > | operator* (_RValue< Scalar, Exp > const &A, Scalar s) |
| template<typename Scalar > | |
| Quaternion< Scalar > | operator* (Quaternion< Scalar > const &q_A, Quaternion< Scalar > const &q_B) |
| We define quaternion multiplication as in Diebel. More... | |
| template<typename Scalar , class Exp1 , class Exp2 > | |
| _Sum< Scalar, Exp1, Exp2 > | operator+ (_RValue< Scalar, Exp1 > const &A, _RValue< Scalar, Exp2 > const &B) |
| template<typename Scalar , class Exp1 , class Exp2 > | |
| _Difference< Scalar, Exp1, Exp2 > | operator- (_RValue< Scalar, Exp1 > const &A, _RValue< Scalar, Exp2 > const &B) |
| template<typename Scalar , class Mat > | |
| std::ostream & | operator<< (std::ostream &out, _RValue< Scalar, Mat > const &M) |
| template<typename Scalar , class Exp > | |
| void | QuaternionToAxisAngle (const Quaternion< Scalar > &q, fiber::_LValue< Scalar, Exp > *axis, Scalar *angle) |
| template<typename Scalar , class Exp > | |
| void | QuaternionToRotationMatrix (const Quaternion< Scalar > &q, fiber::_LValue< Scalar, Exp > *R) |
| template<typename Scalar , class Exp > | |
| void | RotationMatrixToQuaternion (const fiber::_RValue< Scalar, Exp > &R, Quaternion< Scalar > *q) |
| template<typename Scalar , class Exp > | |
| LView< Scalar, Exp, 1, Exp::COLS_ > | Row (_LValue< Scalar, Exp > &A, int i) |
| template<int rows, typename Scalar , class Exp > | |
| LView< Scalar, Exp, rows, Exp::COLS_ > | Rows (_LValue< Scalar, Exp > &A, int i) |
| template<typename Scalar , class Exp > | |
| const _RValue< Scalar, Exp > & | RValue (const _RValue< Scalar, Exp > &exp) |
| Explicitly expose _RValue of an expressions, can be used to help the compiler disambiguate overloads. More... | |
| template<typename Scalar , class Exp > | |
| Scalar | SquaredNorm (_RValue< Scalar, Exp > const &A) |
| Return the squared 2-norm of a vector. More... | |
| template<typename Scalar , class Exp > | |
| _Transpose< Scalar, Exp > | Transpose (_RValue< Scalar, Exp > const &A) |
| template<int rows, int cols, typename Scalar , class Exp > | |
| _RView< Scalar, Exp, rows, cols > | View (_RValue< Scalar, Exp > const &A, Index i, Index j) |
simple template expression library for linear algebra
| typedef AxisAngle<double> fiber::AxisAngled |
Definition at line 135 of file axis_angle.h.
| typedef AxisAngle<float> fiber::AxisAnglef |
Definition at line 136 of file axis_angle.h.
| typedef CoordinateAxis<double,0> fiber::AxisXd |
Definition at line 138 of file axis_angle.h.
| typedef CoordinateAxis<float,0> fiber::AxisXf |
Definition at line 142 of file axis_angle.h.
| typedef CoordinateAxis<double,1> fiber::AxisYd |
Definition at line 139 of file axis_angle.h.
| typedef CoordinateAxis<float,1> fiber::AxisYf |
Definition at line 143 of file axis_angle.h.
| typedef CoordinateAxis<double,2> fiber::AxisZd |
Definition at line 140 of file axis_angle.h.
| typedef CoordinateAxis<float,2> fiber::AxisZf |
Definition at line 144 of file axis_angle.h.
| typedef CoordinateAxisAngle<double,0> fiber::CoordinateAxisAngleXd |
Definition at line 146 of file axis_angle.h.
| typedef CoordinateAxisAngle<float,0> fiber::CoordinateAxisAngleXf |
Definition at line 150 of file axis_angle.h.
| typedef CoordinateAxisAngle<double,1> fiber::CoordinateAxisAngleYd |
Definition at line 147 of file axis_angle.h.
| typedef CoordinateAxisAngle<float,1> fiber::CoordinateAxisAngleYf |
Definition at line 151 of file axis_angle.h.
| typedef CoordinateAxisAngle<double,2> fiber::CoordinateAxisAngleZd |
Definition at line 148 of file axis_angle.h.
| typedef CoordinateAxisAngle<float,2> fiber::CoordinateAxisAngleZf |
Definition at line 152 of file axis_angle.h.
| typedef Eye<double,2> fiber::Eye2d |
Definition at line 60 of file identity.h.
| typedef Eye<float,2> fiber::Eye2f |
Definition at line 64 of file identity.h.
| typedef Eye<double,3> fiber::Eye3d |
Definition at line 61 of file identity.h.
| typedef Eye<float,3> fiber::Eye3f |
Definition at line 65 of file identity.h.
| typedef Eye<double,4> fiber::Eye4d |
Definition at line 62 of file identity.h.
| typedef Eye<float,4> fiber::Eye4f |
Definition at line 66 of file identity.h.
| typedef int fiber::Index |
| typedef Matrix<double,2,2> fiber::Matrix2d |
| typedef Matrix<float,2,2> fiber::Matrix2f |
| typedef Matrix<double,3,3> fiber::Matrix3d |
| typedef Matrix<float,3,3> fiber::Matrix3f |
| typedef Matrix<double,4,4> fiber::Matrix4d |
| typedef Matrix<float,4,4> fiber::Matrix4f |
| typedef Quaternion<double> fiber::Quaterniond |
Definition at line 182 of file quaternion.h.
| typedef Quaternion<float> fiber::Quaternionf |
Definition at line 183 of file quaternion.h.
| typedef unsigned int fiber::Size |
| typedef Matrix<double,2,1> fiber::Vector2d |
| typedef Matrix<float,2,1> fiber::Vector2f |
| typedef Matrix<double,3,1> fiber::Vector3d |
| typedef Matrix<float,3,1> fiber::Vector3f |
| typedef Matrix<double,4,1> fiber::Vector4d |
| typedef Matrix<float,4,1> fiber::Vector4f |
| void fiber::AxisAngleToQuaternion | ( | const fiber::_RValue< Scalar, Exp > & | axis, |
| const Scalar | angle, | ||
| Quaternion< Scalar > * | q | ||
| ) |
We follow the counter-clockwise right hand convention. For example, if r is a vector in the x-y plane and the axis of rotation is the z-axis, then | q * [0 r]' * q |(1-3) is a vector in the x-y plane corresponding to r rotated by the angle, theta, in the counter-clockwise direction.
Definition at line 50 of file rotation_conversions.h.
| void fiber::AxisAngleToQuaternion | ( | const AxisAngle< Scalar > & | axis_angle, |
| Quaternion< Scalar > * | q | ||
| ) |
We follow the counter-clockwise right hand convention. For example, if r is a vector in the x-y plane and the axis of rotation is the z-axis, then | q * [0 r]' * q |(1-3) is a vector in the x-y plane corresponding to r rotated by the angle, theta, in the counter-clockwise direction.
Definition at line 68 of file rotation_conversions.h.
| void fiber::AxisAngleToRotationMatrix | ( | const AxisAngle< Scalar > & | axis_angle, |
| _LValue< Scalar, Exp > * | R | ||
| ) |
We follow the counter-clockwise right hand convention. For example, if r is a vector in the x-y plane and the axis of rotation is the z-axis, then R*r is a vector in the x-y plane corresponding to r rotated by the angle, theta, in the counter-clockwise direction.
Definition at line 80 of file rotation_conversions.h.
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 150 of file quaternion.h.
| void fiber::CoordinateAxisAngleToQuaternion | ( | const CoordinateAxisAngle< Scalar, Axis > & | axis_angle, |
| Quaternion< Scalar > * | q | ||
| ) |
We follow the counter-clockwise right hand convention. For example, if r is a vector in the x-y plane and the axis of rotation is the z-axis, then | q * [0 r]' * q |(1-3) is a vector in the x-y plane corresponding to r rotated by the angle, theta, in the counter-clockwise direction.
Definition at line 97 of file rotation_conversions.h.
| void fiber::CoordinateAxisAngleToRotationMatrix | ( | const CoordinateAxisAngle< Scalar, Axis > & | axis_angle, |
| _LValue< Scalar, Exp > * | R | ||
| ) |
We follow the counter-clockwise right hand convention. For example, if r is a vector in the x-y plane and the axis of rotation is the z-axis, then R*r is a vector in the x-y plane corresponding to r rotated by the angle, theta, in the counter-clockwise direction.
Definition at line 116 of file rotation_conversions.h.
|
inline |
cross-product matrix of a vector
Given a vector v, the CrossMatrix of v is the skew symmetric 3x3 matrix given by: | 0 -v[2] v[1] | | v[2] 0 -v[0] | | -v[1] v[0] 0 |
Definition at line 101 of file cross_matrix.h.
|
inline |
| void fiber::EulerAnglesToQuaternion | ( | const euler::Angles< Scalar, Axis1, Axis2, Axis3 > & | euler, |
| Quaternion< Scalar > * | q | ||
| ) |
Definition at line 305 of file rotation_conversions.h.
|
inline |
|
inline |
|
inline |
|
inline |
| _LValue<Scalar, Exp>& fiber::LValue | ( | _LValue< Scalar, Exp > & | exp | ) |
|
inline |
Return the 2-norm of a vector.
Definition at line 41 of file normalize.h.
|
inline |
Return the n-norm of a vector.
Definition at line 47 of file normalize.h.
|
inline |
Prresents a view of a matrix or vector where each element is normalized, such that the sum of the elements is 1.0.
Definition at line 87 of file normalize.h.
|
inline |
|
inline |
|
inline |
|
inline |
We define quaternion multiplication as in Diebel.
The quaternion multiplication q*p is equivalent to the matrix left-multiply of Q(q)*p where Q(q) =
* | q0 -q1 -q2 -q3 | * | q1 q0 -q3 q2 | * | q2 q3 q0 -q1 | * | q3 -q2 q1 q0 | *
Definition at line 166 of file quaternion.h.
|
inline |
|
inline |
Definition at line 65 of file difference.h.
| std::ostream& fiber::operator<< | ( | std::ostream & | out, |
| _RValue< Scalar, Mat > const & | M | ||
| ) |
| void fiber::QuaternionToAxisAngle | ( | const Quaternion< Scalar > & | q, |
| fiber::_LValue< Scalar, Exp > * | axis, | ||
| Scalar * | angle | ||
| ) |
TODO(bialkowski): need scalar traits to determine this threshold
Definition at line 137 of file rotation_conversions.h.
| void fiber::QuaternionToRotationMatrix | ( | const Quaternion< Scalar > & | q, |
| fiber::_LValue< Scalar, Exp > * | R | ||
| ) |
Definition at line 152 of file rotation_conversions.h.
| void fiber::RotationMatrixToQuaternion | ( | const fiber::_RValue< Scalar, Exp > & | R, |
| Quaternion< Scalar > * | q | ||
| ) |
Definition at line 172 of file rotation_conversions.h.
|
inline |
|
inline |
| const _RValue<Scalar, Exp>& fiber::RValue | ( | const _RValue< Scalar, Exp > & | exp | ) |
|
inline |
Return the squared 2-norm of a vector.
Definition at line 35 of file normalize.h.
|
inline |
Definition at line 54 of file transpose.h.