Rosetta
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
numeric::xyzMatrix< T > Class Template Reference

xyzMatrix: Fast 3x3 xyz matrix template More...

#include <xyzMatrix.hh>

Public Types

typedef T Value
 
typedef TReference
 
typedef T const & ConstReference
 
typedef TPointer
 
typedef T const * ConstPointer
 
typedef xyzVector< TVector
 
typedef T value_type
 
typedef Treference
 
typedef T const & const_reference
 
typedef Tpointer
 
typedef T const * const_pointer
 

Public Member Functions

 xyzMatrix ()
 Default constructor. More...
 
 xyzMatrix (xyzMatrix const &m)
 Copy constructor. More...
 
template<typename U >
 xyzMatrix (xyzMatrix< U > const &m)
 Copy constructor. More...
 
 xyzMatrix (Value const &t)
 Uniform value constructor. More...
 
 ~xyzMatrix ()
 Destructor. More...
 
template<typename U >
 xyzMatrix (ColsPointer< U > const &c)
 Pointer to contiguous column-ordered values constructor. More...
 
template<typename U >
 xyzMatrix (ColPointers< U > const &c)
 Pointers to contiguous columns constructor. More...
 
template<typename U >
 xyzMatrix (ColVectors< U > const &c)
 Columns constructor. More...
 
template<typename U >
 xyzMatrix (RowsPointer< U > const &r)
 Pointer to contiguous row-ordered values constructor. More...
 
template<typename U >
 xyzMatrix (RowPointers< U > const &r)
 Pointers to contiguous rows constructor. More...
 
template<typename U >
 xyzMatrix (RowVectors< U > const &r)
 Rows constructor. More...
 
xyzMatrixoperator= (xyzMatrix const &m)
 Copy assignment. More...
 
template<typename U >
xyzMatrixoperator= (xyzMatrix< U > const &m)
 Copy assignment. More...
 
template<typename U >
xyzMatrixoperator+= (xyzMatrix< U > const &m)
 += xyzMatrix More...
 
template<typename U >
xyzMatrixoperator-= (xyzMatrix< U > const &m)
 -= xyzMatrix More...
 
template<typename U >
xyzMatrixoperator*= (xyzMatrix< U > const &m)
 *= xyzMatrix More...
 
template<typename U >
xyzMatrixoperator= (ColsPointer< U > const &c)
 Assignment from pointer to contiguous column-ordered values. More...
 
template<typename U >
xyzMatrixoperator= (RowsPointer< U > const &r)
 Assignment from pointer to contiguous row-ordered values. More...
 
template<typename U >
xyzMatrixoperator= (ColPointers< U > const &c)
 Assignment from pointers to contiguous columns. More...
 
template<typename U >
xyzMatrixoperator= (RowPointers< U > const &r)
 Assignment from pointers to contiguous rows. More...
 
template<typename U >
xyzMatrixoperator= (ColVectors< U > const &c)
 xyzVector columns assignment More...
 
template<typename U >
xyzMatrixoperator= (RowVectors< U > const &r)
 xyzVector rows assignment More...
 
xyzMatrixoperator= (Value const &t)
 = Value More...
 
xyzMatrixoperator+= (Value const &t)
 += Value More...
 
xyzMatrixoperator-= (Value const &t)
 -= Value More...
 
xyzMatrixoperator*= (Value const &t)
 *= Value More...
 
xyzMatrixoperator/= (Value const &t)
 /= Value More...
 
xyzVector< Toperator* (xyzVector< T > const &v) const
 xyzMatrix * xyzVector More...
 
xyzMatrix< Toperator* (xyzMatrix< T > const &m) const
 xyzMatrix * xyzMatrix More...
 
xyzMatrix operator+ (xyzMatrix const &m) const
 xyzMatrix + xyzMatrix More...
 
xyzMatrix operator+ (Value const &t) const
 xyzMatrix + Value More...
 
xyzMatrix operator- (xyzMatrix const &m) const
 xyzMatrix - xyzMatrix More...
 
xyzMatrix operator- (Value const &t) const
 xyzMatrix - Value More...
 
xyzMatrix operator* (Value const &t) const
 xyzMatrix * Value More...
 
xyzMatrix operator/ (Value const &t) const
 xyzMatrix / Value More...
 
xyzMatrixclear ()
 Clear. More...
 
xyzMatrixzero ()
 Set to the zero xyzMatrix. More...
 
xyzMatrixto_identity ()
 Set to the identity xyzMatrix. More...
 
xyzMatrixto_diag (Value const &xx_a, Value const &yy_a, Value const &zz_a)
 Set to diagonal xyzMatrix from value. More...
 
template<typename U >
xyzMatrixto_diag (xyzVector< U > const &diag_a)
 Set to diagonal xyzMatrix from xyzVector. More...
 
xyzMatrixset_diagonal (Value const &xx_a, Value const &yy_a, Value const &zz_a)
 set diagonal of xyzMatrix from value More...
 
template<typename U >
xyzMatrixset_diagonal (xyzVector< U > const &diag_a)
 Set diagonal of xyzMatrix from xyzVector. More...
 
xyzMatrixadd_diagonal (Value const &xx_a, Value const &yy_a, Value const &zz_a)
 Add values to diagonal of xyzMatrix. More...
 
template<typename U >
xyzMatrixadd_diagonal (xyzVector< U > const &diag_a)
 Add xyzVector to diagonal of xyzMatrix. More...
 
xyzMatrixsubtract_diagonal (Value const &xx_a, Value const &yy_a, Value const &zz_a)
 Subtract values from diagonal of xyzMatrix. More...
 
template<typename U >
xyzMatrixsubtract_diagonal (xyzVector< U > const &diag_a)
 Subtract xyzVector from diagonal of xyzMatrix. More...
 
xyzMatrixtranspose ()
 Transpose. More...
 
template<typename U >
xyzMatrixright_multiply_by (xyzMatrix< U > const &m)
 Right multiply by xyzMatrix. More...
 
template<typename U >
xyzMatrixright_multiply_by_transpose (xyzMatrix< U > const &m)
 Right multiply by transpose xyzMatrix. More...
 
template<typename U >
xyzMatrixleft_multiply_by (xyzMatrix< U > const &m)
 Left multiply by xyzMatrix. More...
 
template<typename U >
xyzMatrixleft_multiply_by_transpose (xyzMatrix< U > const &m)
 Left multiply by transpose xyzMatrix. More...
 
Vector col_x () const
 Column x. More...
 
xyzMatrixcol_x (Vector const &v)
 Column x assignment. More...
 
Vector col_y () const
 Column y. More...
 
xyzMatrixcol_y (Vector const &v)
 Column y assignment. More...
 
Vector col_z () const
 Column z. More...
 
xyzMatrixcol_z (Vector const &v)
 Column z assignment. More...
 
Vector col (int const i) const
 Column( i ): 1-based index. More...
 
xyzMatrixcol (int const i, Vector const &v)
 Column( i, xyzVector ) assignment: 1-base index. More...
 
Vector row_x () const
 Row x. More...
 
xyzMatrixrow_x (Vector const &v)
 Row x assignment. More...
 
Vector row_y () const
 Row y. More...
 
xyzMatrixrow_y (Vector const &v)
 Row y assignment. More...
 
Vector row_z () const
 Row z. More...
 
xyzMatrixrow_z (Vector const &v)
 Row z assignment. More...
 
Vector row (int const i) const
 Row ( i ): 1-based index. More...
 
xyzMatrixrow (int const i, Vector const &v)
 Row ( i, xyzVector ) assignment: 1-based index. More...
 
bool is_finite () const
 Test if there's any non-finite (inf, NAN) values in the vector. More...
 
Value const & xx () const
 Value xx const. More...
 
Valuexx ()
 Value xx. More...
 
Value const & xy () const
 Value xy const. More...
 
Valuexy ()
 Value xy. More...
 
Value const & xz () const
 Value xz const. More...
 
Valuexz ()
 Value xz. More...
 
Value const & yx () const
 Value yx const. More...
 
Valueyx ()
 Value yx. More...
 
Value const & yy () const
 Value yy const. More...
 
Valueyy ()
 Value yy. More...
 
Value const & yz () const
 Value yz const. More...
 
Valueyz ()
 Value yz. More...
 
Value const & zx () const
 Value zx const. More...
 
Valuezx ()
 Value zx. More...
 
Value const & zy () const
 Value zy const. More...
 
Valuezy ()
 Value zy. More...
 
Value const & zz () const
 Value zz const. More...
 
Valuezz ()
 Value zz. More...
 
Value const & operator() (int const i, int const j) const
 xyzMatrix( i, j ) const: 1-based index More...
 
Valueoperator() (int const i, int const j)
 xyzMatrix( i, j ): 1-based index More...
 
void xx (Value const &xx_a)
 xx assignment More...
 
void xy (Value const &xy_a)
 xy assignment More...
 
void xz (Value const &xz_a)
 xz assignment More...
 
void yx (Value const &yx_a)
 yx assignment More...
 
void yy (Value const &yy_a)
 yy assignment More...
 
void yz (Value const &yz_a)
 yz assignment More...
 
void zx (Value const &zx_a)
 zx assignment More...
 
void zy (Value const &zy_a)
 zy assignment More...
 
void zz (Value const &zz_a)
 zz assignment More...
 
bool is_zero () const
 Is zero? More...
 
bool is_identity () const
 Is identity? More...
 
Value det () const
 Determinant. More...
 
Value trace () const
 Trace. More...
 
xyzMatrix transposed () const
 Transposed copy. More...
 
xyzMatrix< Tinverse () const
 

Static Public Member Functions

static xyzMatrix cols (Value const &xx_a, Value const &yx_a, Value const &zx_a, Value const &xy_a, Value const &yy_a, Value const &zy_a, Value const &xz_a, Value const &yz_a, Value const &zz_a)
 Column-ordered value named constructor. More...
 
template<typename U >
static ColsPointer< U > cols (U const *cp)
 Pointer to contiguous column-ordered values named constructor/assignment. More...
 
template<typename U >
static ColPointers< U > cols (U const *xp, U const *yp, U const *zp)
 Pointers to contiguous columns named constructor/assignment. More...
 
template<typename U >
static xyzMatrix cols_constructor (U const *xp, U const *yp, U const *zp)
 Pointers to contiguous columns named constructor. More...
 
template<typename U >
static ColVectors< U > cols (xyzVector< U > const &col_x, xyzVector< U > const &col_y, xyzVector< U > const &col_z)
 Column vectors named constructor/assignment. More...
 
template<typename U >
static xyzMatrix cols_constructor (xyzVector< U > const &col_x, xyzVector< U > const &col_y, xyzVector< U > const &col_z)
 xyzVector columns named constructor More...
 
static xyzMatrix rows (Value const &xx_a, Value const &xy_a, Value const &xz_a, Value const &yx_a, Value const &yy_a, Value const &yz_a, Value const &zx_a, Value const &zy_a, Value const &zz_a)
 Row-ordered value named constructor. More...
 
template<typename U >
static RowsPointer< U > rows (U const *rp)
 Pointer to contiguous row-ordered values named constructor/assignment. More...
 
template<typename U >
static RowPointers< U > rows (U const *xp, U const *yp, U const *zp)
 Pointers to contiguous rows named constructor/assignment. More...
 
template<typename U >
static xyzMatrix rows_constructor (U const *xp, U const *yp, U const *zp)
 Pointers to contiguous rows named constructor. More...
 
template<typename U >
static RowVectors< U > rows (xyzVector< U > const &row_x, xyzVector< U > const &row_y, xyzVector< U > const &row_z)
 Row vectors named constructor/assignment. More...
 
template<typename U >
static xyzMatrix rows_constructor (xyzVector< U > const &row_x, xyzVector< U > const &row_y, xyzVector< U > const &row_z)
 xyzVector rows named constructor More...
 
static xyzMatrix diag (Value const &xx_a, Value const &yy_a, Value const &zz_a)
 Diagonal value named constructor. More...
 
template<typename U >
static xyzMatrix diag (xyzVector< U > const &diag_a)
 Diagonal xyzVector named constructor. More...
 
static xyzMatrix identity ()
 Identity xyzMatrix named constructor. More...
 
static xyzMatrix const & I ()
 Identity xyzMatrix for expressions. More...
 

Private Member Functions

 xyzMatrix (Value const &xx_a, Value const &xy_a, Value const &xz_a, Value const &yx_a, Value const &yy_a, Value const &yz_a, Value const &zx_a, Value const &zy_a, Value const &zz_a)
 Row-ordered value constructor. More...
 

Private Attributes

Value xx_
 Elements of the 3x3 matrix. More...
 
Value xy_
 
Value xz_
 
Value yx_
 
Value yy_
 
Value yz_
 
Value zx_
 
Value zy_
 
Value zz_
 

Friends

template<typename >
class xyzMatrix
 
xyzVector< Toperator* (xyzMatrix< T > const &m, xyzVector< T > const &v)
 
xyzVector< Tproduct (xyzMatrix< T > const &m, xyzVector< T > const &v)
 xyzMatrix * xyzVector product More...
 
xyzVector< T > & inplace_product (xyzMatrix< T > const &m, xyzVector< T > &v)
 xyzMatrix * xyzVector in-place product More...
 
xyzVector< Ttranspose_product (xyzMatrix< T > const &m, xyzVector< T > const &v)
 xyzMatrix^T * xyzVector product More...
 
xyzVector< T > & inplace_transpose_product (xyzMatrix< T > const &m, xyzVector< T > &v)
 xyzMatrix^T * xyzVector in-place transpose product More...
 
xyzMatrix< Touter_product (xyzVector< T > const &a, xyzVector< T > const &b)
 xyzVector xyzVector outer product More...
 
xyzMatrix< Tprojection_matrix (xyzVector< T > const &v)
 geometric center More...
 
xyzMatrix< Trotation_matrix (xyzVector< T > const &axis, T const &theta)
 Rotation matrix for rotation about an axis by an angle in radians. More...
 
xyzVector< Trotation_axis (xyzMatrix< T > const &R, T &theta)
 Transformation from rotation matrix to helical axis of rotation. More...
 
xyzVector< Teigenvalue_jacobi (xyzMatrix< T > const &a, T const &tol)
 Classic Jacobi algorithm for the eigenvalues of a real symmetric matrix. More...
 
xyzVector< Teigenvector_jacobi (xyzMatrix< T > const &a, T const &tol, xyzMatrix< T > &J)
 Classic Jacobi algorithm for the eigenvalues and eigenvectors of a real symmetric matrix. More...
 
xyzMatrix< Tinverse (xyzMatrix< T > const &a)
 
xyzMatrix operator+ (Value const &t, xyzMatrix const &m)
 Value + xyzMatrix. More...
 
xyzMatrix operator- (Value const &t, xyzMatrix const &m)
 Value - xyzMatrix. More...
 
xyzMatrix operator* (Value const &t, xyzMatrix const &m)
 Value * xyzMatrix. More...
 
bool operator== (xyzMatrix const &a, xyzMatrix const &b)
 xyzMatrix == xyzMatrix More...
 
bool operator!= (xyzMatrix const &a, xyzMatrix const &b)
 xyzMatrix != xyzMatrix More...
 
bool operator< (xyzMatrix const &a, xyzMatrix const &b)
 xyzMatrix < xyzMatrix More...
 
bool operator<= (xyzMatrix const &a, xyzMatrix const &b)
 xyzMatrix <= xyzMatrix More...
 
bool operator>= (xyzMatrix const &a, xyzMatrix const &b)
 xyzMatrix >= xyzMatrix More...
 
bool operator> (xyzMatrix const &a, xyzMatrix const &b)
 xyzMatrix > xyzMatrix More...
 
bool operator== (xyzMatrix const &m, Value const &t)
 xyzMatrix == Value More...
 
bool operator!= (xyzMatrix const &m, Value const &t)
 xyzMatrix != Value More...
 
bool operator< (xyzMatrix const &m, Value const &t)
 xyzMatrix < Value More...
 
bool operator<= (xyzMatrix const &m, Value const &t)
 xyzMatrix <= Value More...
 
bool operator>= (xyzMatrix const &m, Value const &t)
 xyzMatrix >= Value More...
 
bool operator> (xyzMatrix const &m, Value const &t)
 xyzMatrix > Value More...
 
bool operator== (Value const &t, xyzMatrix const &m)
 Value == xyzMatrix. More...
 
bool operator!= (Value const &t, xyzMatrix const &m)
 Value != xyzMatrix. More...
 
bool operator< (Value const &t, xyzMatrix const &m)
 Value < xyzMatrix. More...
 
bool operator<= (Value const &t, xyzMatrix const &m)
 Value <= xyzMatrix. More...
 
bool operator>= (Value const &t, xyzMatrix const &m)
 Value >= xyzMatrix. More...
 
bool operator> (Value const &t, xyzMatrix const &m)
 Value > xyzMatrix. More...
 

Detailed Description

template<typename T>
class numeric::xyzMatrix< T >

xyzMatrix: Fast 3x3 xyz matrix template

Member Typedef Documentation

◆ const_pointer

template<typename T >
typedef T const* numeric::xyzMatrix< T >::const_pointer

◆ const_reference

template<typename T >
typedef T const& numeric::xyzMatrix< T >::const_reference

◆ ConstPointer

template<typename T >
typedef T const* numeric::xyzMatrix< T >::ConstPointer

◆ ConstReference

template<typename T >
typedef T const& numeric::xyzMatrix< T >::ConstReference

◆ Pointer

template<typename T >
typedef T* numeric::xyzMatrix< T >::Pointer

◆ pointer

template<typename T >
typedef T* numeric::xyzMatrix< T >::pointer

◆ Reference

template<typename T >
typedef T& numeric::xyzMatrix< T >::Reference

◆ reference

template<typename T >
typedef T& numeric::xyzMatrix< T >::reference

◆ Value

template<typename T >
typedef T numeric::xyzMatrix< T >::Value

◆ value_type

template<typename T >
typedef T numeric::xyzMatrix< T >::value_type

◆ Vector

template<typename T >
typedef xyzVector< T > numeric::xyzMatrix< T >::Vector

Constructor & Destructor Documentation

◆ xyzMatrix() [1/11]

template<typename T >
numeric::xyzMatrix< T >::xyzMatrix ( )
inline

Default constructor.

Note
Values are uninitialized for efficiency

◆ xyzMatrix() [2/11]

template<typename T >
numeric::xyzMatrix< T >::xyzMatrix ( xyzMatrix< T > const &  m)
inline

Copy constructor.

◆ xyzMatrix() [3/11]

template<typename T >
template<typename U >
numeric::xyzMatrix< T >::xyzMatrix ( xyzMatrix< U > const &  m)
inline

Copy constructor.

◆ xyzMatrix() [4/11]

template<typename T >
numeric::xyzMatrix< T >::xyzMatrix ( Value const &  t)
inlineexplicit

Uniform value constructor.

◆ ~xyzMatrix()

template<typename T >
numeric::xyzMatrix< T >::~xyzMatrix ( )
inline

Destructor.

◆ xyzMatrix() [5/11]

template<typename T >
template<typename U >
numeric::xyzMatrix< T >::xyzMatrix ( ColsPointer< U > const &  c)
inline

Pointer to contiguous column-ordered values constructor.

See also
cols
Note
The cols named constructor/assignment provides a simple wrapper interface
Constructor usage: xyzMatrix m( xyzMatrix::cols( cols_pointer ) )
Assignment usage: m = xyzMatrix::cols( cols_pointer )

◆ xyzMatrix() [6/11]

template<typename T >
template<typename U >
numeric::xyzMatrix< T >::xyzMatrix ( ColPointers< U > const &  c)
inline

Pointers to contiguous columns constructor.

See also
cols
Note
The cols named constructor/assignment provides a simple wrapper interface
Constructor usage: xyzMatrix m( xyzMatrix::cols( x_col_pointer, y_col_pointer, z_col_pointer ) )
Assignment usage: m = xyzMatrix::cols( x_col_pointer, y_col_pointer, z_col_pointer )

◆ xyzMatrix() [7/11]

template<typename T >
template<typename U >
numeric::xyzMatrix< T >::xyzMatrix ( ColVectors< U > const &  c)
inline

Columns constructor.

See also
cols
Note
The cols named constructor/assignment provides a simple wrapper interface
Constructor usage: xyzMatrix m( xyzMatrix::cols( x_col_vector, y_col_vector, z_col_vector ) )

◆ xyzMatrix() [8/11]

template<typename T >
template<typename U >
numeric::xyzMatrix< T >::xyzMatrix ( RowsPointer< U > const &  r)
inline

Pointer to contiguous row-ordered values constructor.

See also
rows
Note
The rows named constructor/assignment provides a simple wrapper interface
Constructor usage: xyzMatrix m( xyzMatrix::rows( rows_pointer ) )
Assignment usage: m = xyzMatrix::rows( rows_pointer )

◆ xyzMatrix() [9/11]

template<typename T >
template<typename U >
numeric::xyzMatrix< T >::xyzMatrix ( RowPointers< U > const &  r)
inline

Pointers to contiguous rows constructor.

See also
rows
Note
The rows named constructor/assignment provides a simple wrapper interface
Constructor usage: xyzMatrix m( xyzMatrix::rows( x_row_pointer, y_row_pointer, z_row_pointer ) )
Assignment usage: m = xyzMatrix::rows( x_row_pointer, y_row_pointer, z_row_pointer )

◆ xyzMatrix() [10/11]

template<typename T >
template<typename U >
numeric::xyzMatrix< T >::xyzMatrix ( RowVectors< U > const &  r)
inline

Rows constructor.

See also
rows
Note
The rows named constructor/assignment provides a simple wrapper interface
Constructor usage: xyzMatrix m( xyzMatrix::rows( x_row_vector, y_row_vector, z_row_vector ) )

◆ xyzMatrix() [11/11]

template<typename T >
numeric::xyzMatrix< T >::xyzMatrix ( Value const &  xx_a,
Value const &  xy_a,
Value const &  xz_a,
Value const &  yx_a,
Value const &  yy_a,
Value const &  yz_a,
Value const &  zx_a,
Value const &  zy_a,
Value const &  zz_a 
)
inlineprivate

Row-ordered value constructor.

Note
Client code uses named constructors that specify the value order explicitly

Member Function Documentation

◆ add_diagonal() [1/2]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::add_diagonal ( Value const &  xx_a,
Value const &  yy_a,
Value const &  zz_a 
)
inline

◆ add_diagonal() [2/2]

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::add_diagonal ( xyzVector< U > const &  diag_a)
inline

◆ clear()

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::clear ( )
inline

◆ col() [1/2]

template<typename T >
Vector numeric::xyzMatrix< T >::col ( int const  i) const
inline

◆ col() [2/2]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::col ( int const  i,
Vector const &  v 
)
inline

◆ col_x() [1/2]

template<typename T >
Vector numeric::xyzMatrix< T >::col_x ( ) const
inline

◆ col_x() [2/2]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::col_x ( Vector const &  v)
inline

◆ col_y() [1/2]

template<typename T >
Vector numeric::xyzMatrix< T >::col_y ( ) const
inline

◆ col_y() [2/2]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::col_y ( Vector const &  v)
inline

◆ col_z() [1/2]

template<typename T >
Vector numeric::xyzMatrix< T >::col_z ( ) const
inline

◆ col_z() [2/2]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::col_z ( Vector const &  v)
inline

◆ cols() [1/4]

template<typename T >
template<typename U >
static ColsPointer< U > numeric::xyzMatrix< T >::cols ( U const *  cp)
inlinestatic

Pointer to contiguous column-ordered values named constructor/assignment.

Warning
No way to check that argument points to nine contiguous values
Note
Constructor usage: xyzMatrix m( xyzMatrix::cols( cols_pointer ) )
Assignment usage: m = xyzMatrix::cols( cols_pointer )

◆ cols() [2/4]

template<typename T >
template<typename U >
static ColPointers< U > numeric::xyzMatrix< T >::cols ( U const *  xp,
U const *  yp,
U const *  zp 
)
inlinestatic

Pointers to contiguous columns named constructor/assignment.

Warning
No way to check that arguments each point to three contiguous values
Note
Constructor usage: xyzMatrix m( xyzMatrix::cols( x_col_pointer, y_col_pointer, z_col_pointer ) )
Assignment usage: m = xyzMatrix::cols( x_col_pointer, y_col_pointer, z_col_pointer )

◆ cols() [3/4]

template<typename T >
static xyzMatrix numeric::xyzMatrix< T >::cols ( Value const &  xx_a,
Value const &  yx_a,
Value const &  zx_a,
Value const &  xy_a,
Value const &  yy_a,
Value const &  zy_a,
Value const &  xz_a,
Value const &  yz_a,
Value const &  zz_a 
)
inlinestatic

Column-ordered value named constructor.

Note
Constructor usage: xyzMatrix m( xyzMatrix::cols( xx_a, yx_a, zx_a, xy_a, yy_a, zy_a, xz_a, yz_a, zz_a ) )
Assignment usage: m = xyzMatrix::cols( xx_a, yx_a, zx_a, xy_a, yy_a, zy_a, xz_a, yz_a, zz_a )

References numeric::xyzMatrix< T >::xyzMatrix.

Referenced by numeric::random::random_rotation(), basic::sampling::orientations::Quaternion::rotation_matrix(), and slice_ellipsoid_envelope().

◆ cols() [4/4]

template<typename T >
template<typename U >
static ColVectors< U > numeric::xyzMatrix< T >::cols ( xyzVector< U > const &  col_x,
xyzVector< U > const &  col_y,
xyzVector< U > const &  col_z 
)
inlinestatic

Column vectors named constructor/assignment.

Note
Constructor usage: xyzMatrix m( xyzMatrix::cols( x_col_vector, y_col_vector, z_col_vector ) )
Assignment usage: m = xyzMatrix::cols( x_col_vector, y_col_vector, z_col_vector )

References numeric::xyzMatrix< T >::col_x(), numeric::xyzMatrix< T >::col_y(), and numeric::xyzMatrix< T >::col_z().

◆ cols_constructor() [1/2]

template<typename T >
template<typename U >
static xyzMatrix numeric::xyzMatrix< T >::cols_constructor ( U const *  xp,
U const *  yp,
U const *  zp 
)
inlinestatic

Pointers to contiguous columns named constructor.

Warning
No way to check that arguments each point to three contiguous values
Note
Can be faster than cols() construction due to return value optimization
Constructor usage: xyzMatrix m( xyzMatrix::cols_constructor( x_col_pointer, y_col_pointer, z_col_pointer ) )

References numeric::xyzMatrix< T >::xyzMatrix.

◆ cols_constructor() [2/2]

template<typename T >
template<typename U >
static xyzMatrix numeric::xyzMatrix< T >::cols_constructor ( xyzVector< U > const &  col_x,
xyzVector< U > const &  col_y,
xyzVector< U > const &  col_z 
)
inlinestatic

xyzVector columns named constructor

Note
Can be faster than cols() construction due to return value optimization
Constructor usage: xyzMatrix m( xyzMatrix::cols_constructor( x_col_vector, y_col_vector, z_col_vector ) )

References numeric::xyzMatrix< T >::col_x(), numeric::xyzMatrix< T >::col_y(), numeric::xyzMatrix< T >::col_z(), and numeric::xyzMatrix< T >::xyzMatrix.

◆ det()

template<typename T >
Value numeric::xyzMatrix< T >::det ( ) const
inline

◆ diag() [1/2]

template<typename T >
static xyzMatrix numeric::xyzMatrix< T >::diag ( Value const &  xx_a,
Value const &  yy_a,
Value const &  zz_a 
)
inlinestatic

Diagonal value named constructor.

Note
diag refers to a diagonal matrix

References numeric::xyzMatrix< T >::xyzMatrix.

◆ diag() [2/2]

template<typename T >
template<typename U >
static xyzMatrix numeric::xyzMatrix< T >::diag ( xyzVector< U > const &  diag_a)
inlinestatic

Diagonal xyzVector named constructor.

Note
diag refers to a diagonal matrix

References numeric::xyzVector< T >::x_, numeric::xyzMatrix< T >::xyzMatrix, numeric::xyzVector< T >::y_, and numeric::xyzVector< T >::z_.

◆ I()

template<typename T >
static xyzMatrix const& numeric::xyzMatrix< T >::I ( )
inlinestatic

Identity xyzMatrix for expressions.

Note
identity() named constructor can be faster for construction
Returns reference to function-local static object so can be used in construction of global objects

◆ identity()

template<typename T >
static xyzMatrix numeric::xyzMatrix< T >::identity ( )
inlinestatic

Identity xyzMatrix named constructor.

Note
Can be faster than I() for construction due to return value optimization

References numeric::xyzMatrix< T >::xyzMatrix.

Referenced by numeric::alignVectorSets(), DetectSymmetry::apply(), SwapElementsMover2::apply(), and numeric::fourier::SHT::idx_to_rot().

◆ inverse()

template<typename T >
xyzMatrix< T > numeric::xyzMatrix< T >::inverse ( ) const
inline

◆ is_finite()

template<typename T >
bool numeric::xyzMatrix< T >::is_finite ( ) const
inline

◆ is_identity()

template<typename T >
bool numeric::xyzMatrix< T >::is_identity ( ) const
inline

◆ is_zero()

template<typename T >
bool numeric::xyzMatrix< T >::is_zero ( ) const
inline

◆ left_multiply_by()

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::left_multiply_by ( xyzMatrix< U > const &  m)
inline

◆ left_multiply_by_transpose()

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::left_multiply_by_transpose ( xyzMatrix< U > const &  m)
inline

◆ operator()() [1/2]

template<typename T >
Value& numeric::xyzMatrix< T >::operator() ( int const  i,
int const  j 
)
inline

◆ operator()() [2/2]

template<typename T >
Value const& numeric::xyzMatrix< T >::operator() ( int const  i,
int const  j 
) const
inline

◆ operator*() [1/3]

template<typename T >
xyzMatrix numeric::xyzMatrix< T >::operator* ( Value const &  t) const
inline

◆ operator*() [2/3]

template<typename T >
xyzMatrix<T> numeric::xyzMatrix< T >::operator* ( xyzMatrix< T > const &  m) const
inline

◆ operator*() [3/3]

template<typename T >
xyzVector<T> numeric::xyzMatrix< T >::operator* ( xyzVector< T > const &  v) const
inline

◆ operator*=() [1/2]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::operator*= ( Value const &  t)
inline

◆ operator*=() [2/2]

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::operator*= ( xyzMatrix< U > const &  m)
inline

◆ operator+() [1/2]

template<typename T >
xyzMatrix numeric::xyzMatrix< T >::operator+ ( Value const &  t) const
inline

◆ operator+() [2/2]

template<typename T >
xyzMatrix numeric::xyzMatrix< T >::operator+ ( xyzMatrix< T > const &  m) const
inline

◆ operator+=() [1/2]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::operator+= ( Value const &  t)
inline

◆ operator+=() [2/2]

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::operator+= ( xyzMatrix< U > const &  m)
inline

◆ operator-() [1/2]

template<typename T >
xyzMatrix numeric::xyzMatrix< T >::operator- ( Value const &  t) const
inline

◆ operator-() [2/2]

template<typename T >
xyzMatrix numeric::xyzMatrix< T >::operator- ( xyzMatrix< T > const &  m) const
inline

◆ operator-=() [1/2]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::operator-= ( Value const &  t)
inline

◆ operator-=() [2/2]

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::operator-= ( xyzMatrix< U > const &  m)
inline

◆ operator/()

template<typename T >
xyzMatrix numeric::xyzMatrix< T >::operator/ ( Value const &  t) const
inline

◆ operator/=()

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::operator/= ( Value const &  t)
inline

◆ operator=() [1/9]

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::operator= ( ColPointers< U > const &  c)
inline

◆ operator=() [2/9]

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::operator= ( ColsPointer< U > const &  c)
inline

◆ operator=() [3/9]

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::operator= ( ColVectors< U > const &  c)
inline

◆ operator=() [4/9]

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::operator= ( RowPointers< U > const &  r)
inline

◆ operator=() [5/9]

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::operator= ( RowsPointer< U > const &  r)
inline

◆ operator=() [6/9]

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::operator= ( RowVectors< U > const &  r)
inline

◆ operator=() [7/9]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::operator= ( Value const &  t)
inline

◆ operator=() [8/9]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::operator= ( xyzMatrix< T > const &  m)
inline

◆ operator=() [9/9]

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::operator= ( xyzMatrix< U > const &  m)
inline

◆ right_multiply_by()

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::right_multiply_by ( xyzMatrix< U > const &  m)
inline

◆ right_multiply_by_transpose()

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::right_multiply_by_transpose ( xyzMatrix< U > const &  m)
inline

◆ row() [1/2]

template<typename T >
Vector numeric::xyzMatrix< T >::row ( int const  i) const
inline

◆ row() [2/2]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::row ( int const  i,
Vector const &  v 
)
inline

◆ row_x() [1/2]

template<typename T >
Vector numeric::xyzMatrix< T >::row_x ( ) const
inline

◆ row_x() [2/2]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::row_x ( Vector const &  v)
inline

◆ row_y() [1/2]

template<typename T >
Vector numeric::xyzMatrix< T >::row_y ( ) const
inline

◆ row_y() [2/2]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::row_y ( Vector const &  v)
inline

◆ row_z() [1/2]

template<typename T >
Vector numeric::xyzMatrix< T >::row_z ( ) const
inline

◆ row_z() [2/2]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::row_z ( Vector const &  v)
inline

◆ rows() [1/4]

template<typename T >
template<typename U >
static RowsPointer< U > numeric::xyzMatrix< T >::rows ( U const *  rp)
inlinestatic

Pointer to contiguous row-ordered values named constructor/assignment.

Warning
No way to check that argument points to nine contiguous values
Note
Constructor usage: xyzMatrix m( xyzMatrix::rows( rows_pointer ) )
Assignment usage: m = xyzMatrix::rows( rows_pointer )

References basic::options::OptionKeys::sc::rp.

◆ rows() [2/4]

template<typename T >
template<typename U >
static RowPointers< U > numeric::xyzMatrix< T >::rows ( U const *  xp,
U const *  yp,
U const *  zp 
)
inlinestatic

Pointers to contiguous rows named constructor/assignment.

Warning
No way to check that arguments each point to three contiguous values
Note
Constructor usage: xyzMatrix m( xyzMatrix::rows( x_row_pointer, y_row_pointer, z_row_pointer ) )
Assignment usage: m = xyzMatrix::rows( x_row_pointer, y_row_pointer, z_row_pointer )

◆ rows() [3/4]

template<typename T >
static xyzMatrix numeric::xyzMatrix< T >::rows ( Value const &  xx_a,
Value const &  xy_a,
Value const &  xz_a,
Value const &  yx_a,
Value const &  yy_a,
Value const &  yz_a,
Value const &  zx_a,
Value const &  zy_a,
Value const &  zz_a 
)
inlinestatic

◆ rows() [4/4]

template<typename T >
template<typename U >
static RowVectors< U > numeric::xyzMatrix< T >::rows ( xyzVector< U > const &  row_x,
xyzVector< U > const &  row_y,
xyzVector< U > const &  row_z 
)
inlinestatic

Row vectors named constructor/assignment.

Note
Constructor usage: xyzMatrix m( xyzMatrix::rows( x_row_vector, y_row_vector, z_row_vector ) )
Assignment usage: m = xyzMatrix::rows( x_row_vector, y_row_vector, z_row_vector )

References numeric::xyzMatrix< T >::row_x(), numeric::xyzMatrix< T >::row_y(), and numeric::xyzMatrix< T >::row_z().

◆ rows_constructor() [1/2]

template<typename T >
template<typename U >
static xyzMatrix numeric::xyzMatrix< T >::rows_constructor ( U const *  xp,
U const *  yp,
U const *  zp 
)
inlinestatic

Pointers to contiguous rows named constructor.

Warning
No way to check that arguments each point to three contiguous values
Note
Can be faster than rows() construction due to return value optimization
Constructor usage: xyzMatrix m( xyzMatrix::rows_constructor( x_row_pointer, y_row_pointer, z_row_pointer ) )

References numeric::xyzMatrix< T >::xyzMatrix.

Referenced by numeric::HomogeneousTransform< T >::rotation_matrix().

◆ rows_constructor() [2/2]

template<typename T >
template<typename U >
static xyzMatrix numeric::xyzMatrix< T >::rows_constructor ( xyzVector< U > const &  row_x,
xyzVector< U > const &  row_y,
xyzVector< U > const &  row_z 
)
inlinestatic

xyzVector rows named constructor

Note
Can be faster than rows() construction due to return value optimization
Constructor usage: xyzMatrix m( xyzMatrix::rows_constructor( x_row_vector, y_row_vector, z_row_vector ) )

References numeric::xyzMatrix< T >::row_x(), numeric::xyzMatrix< T >::row_y(), numeric::xyzMatrix< T >::row_z(), and numeric::xyzMatrix< T >::xyzMatrix.

◆ set_diagonal() [1/2]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::set_diagonal ( Value const &  xx_a,
Value const &  yy_a,
Value const &  zz_a 
)
inline

set diagonal of xyzMatrix from value

Note
Resets the diagonal of the matrix only (diagonal refers to diagonal entries of a matrix)

References numeric::xyzMatrix< T >::xx_, numeric::xyzMatrix< T >::yy_, and numeric::xyzMatrix< T >::zz_.

◆ set_diagonal() [2/2]

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::set_diagonal ( xyzVector< U > const &  diag_a)
inline

Set diagonal of xyzMatrix from xyzVector.

Note
Resets the diagonal of the matrix only (diagonal refers to diagonal

References numeric::xyzVector< T >::x_, numeric::xyzMatrix< T >::xx_, numeric::xyzVector< T >::y_, numeric::xyzMatrix< T >::yy_, numeric::xyzVector< T >::z_, and numeric::xyzMatrix< T >::zz_.

◆ subtract_diagonal() [1/2]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::subtract_diagonal ( Value const &  xx_a,
Value const &  yy_a,
Value const &  zz_a 
)
inline

◆ subtract_diagonal() [2/2]

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::subtract_diagonal ( xyzVector< U > const &  diag_a)
inline

◆ to_diag() [1/2]

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::to_diag ( Value const &  xx_a,
Value const &  yy_a,
Value const &  zz_a 
)
inline

◆ to_diag() [2/2]

template<typename T >
template<typename U >
xyzMatrix& numeric::xyzMatrix< T >::to_diag ( xyzVector< U > const &  diag_a)
inline

◆ to_identity()

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::to_identity ( )
inline

◆ trace()

template<typename T >
Value numeric::xyzMatrix< T >::trace ( ) const
inline

◆ transpose()

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::transpose ( )
inline

◆ transposed()

template<typename T >
xyzMatrix numeric::xyzMatrix< T >::transposed ( ) const
inline

◆ xx() [1/3]

template<typename T >
Value& numeric::xyzMatrix< T >::xx ( )
inline

Value xx.

References numeric::xyzMatrix< T >::xx_.

◆ xx() [2/3]

template<typename T >
Value const& numeric::xyzMatrix< T >::xx ( ) const
inline

◆ xx() [3/3]

template<typename T >
void numeric::xyzMatrix< T >::xx ( Value const &  xx_a)
inline

xx assignment

References numeric::xyzMatrix< T >::xx_.

◆ xy() [1/3]

template<typename T >
Value& numeric::xyzMatrix< T >::xy ( )
inline

Value xy.

References numeric::xyzMatrix< T >::xy_.

◆ xy() [2/3]

template<typename T >
Value const& numeric::xyzMatrix< T >::xy ( ) const
inline

◆ xy() [3/3]

template<typename T >
void numeric::xyzMatrix< T >::xy ( Value const &  xy_a)
inline

xy assignment

References numeric::xyzMatrix< T >::xy_.

◆ xz() [1/3]

template<typename T >
Value& numeric::xyzMatrix< T >::xz ( )
inline

Value xz.

References numeric::xyzMatrix< T >::xz_.

◆ xz() [2/3]

template<typename T >
Value const& numeric::xyzMatrix< T >::xz ( ) const
inline

◆ xz() [3/3]

template<typename T >
void numeric::xyzMatrix< T >::xz ( Value const &  xz_a)
inline

xz assignment

References numeric::xyzMatrix< T >::xz_.

◆ yx() [1/3]

template<typename T >
Value& numeric::xyzMatrix< T >::yx ( )
inline

Value yx.

References numeric::xyzMatrix< T >::yx_.

◆ yx() [2/3]

template<typename T >
Value const& numeric::xyzMatrix< T >::yx ( ) const
inline

◆ yx() [3/3]

template<typename T >
void numeric::xyzMatrix< T >::yx ( Value const &  yx_a)
inline

yx assignment

References numeric::xyzMatrix< T >::yx_.

◆ yy() [1/3]

template<typename T >
Value& numeric::xyzMatrix< T >::yy ( )
inline

Value yy.

References numeric::xyzMatrix< T >::yy_.

◆ yy() [2/3]

template<typename T >
Value const& numeric::xyzMatrix< T >::yy ( ) const
inline

◆ yy() [3/3]

template<typename T >
void numeric::xyzMatrix< T >::yy ( Value const &  yy_a)
inline

yy assignment

References numeric::xyzMatrix< T >::yy_.

◆ yz() [1/3]

template<typename T >
Value& numeric::xyzMatrix< T >::yz ( )
inline

Value yz.

References numeric::xyzMatrix< T >::yz_.

◆ yz() [2/3]

template<typename T >
Value const& numeric::xyzMatrix< T >::yz ( ) const
inline

◆ yz() [3/3]

template<typename T >
void numeric::xyzMatrix< T >::yz ( Value const &  yz_a)
inline

yz assignment

References numeric::xyzMatrix< T >::yz_.

◆ zero()

template<typename T >
xyzMatrix& numeric::xyzMatrix< T >::zero ( )
inline

◆ zx() [1/3]

template<typename T >
Value& numeric::xyzMatrix< T >::zx ( )
inline

Value zx.

References numeric::xyzMatrix< T >::zx_.

◆ zx() [2/3]

template<typename T >
Value const& numeric::xyzMatrix< T >::zx ( ) const
inline

◆ zx() [3/3]

template<typename T >
void numeric::xyzMatrix< T >::zx ( Value const &  zx_a)
inline

zx assignment

References numeric::xyzMatrix< T >::zx_.

◆ zy() [1/3]

template<typename T >
Value& numeric::xyzMatrix< T >::zy ( )
inline

Value zy.

References numeric::xyzMatrix< T >::zy_.

◆ zy() [2/3]

template<typename T >
Value const& numeric::xyzMatrix< T >::zy ( ) const
inline

◆ zy() [3/3]

template<typename T >
void numeric::xyzMatrix< T >::zy ( Value const &  zy_a)
inline

zy assignment

References numeric::xyzMatrix< T >::zy_.

◆ zz() [1/3]

template<typename T >
Value& numeric::xyzMatrix< T >::zz ( )
inline

Value zz.

References numeric::xyzMatrix< T >::zz_.

◆ zz() [2/3]

template<typename T >
Value const& numeric::xyzMatrix< T >::zz ( ) const
inline

◆ zz() [3/3]

template<typename T >
void numeric::xyzMatrix< T >::zz ( Value const &  zz_a)
inline

zz assignment

References numeric::xyzMatrix< T >::zz_.

Friends And Related Function Documentation

◆ eigenvalue_jacobi

template<typename T >
xyzVector< T > eigenvalue_jacobi ( xyzMatrix< T > const &  a,
T const &  tol 
)
friend

Classic Jacobi algorithm for the eigenvalues of a real symmetric matrix.

Note
Use eigenvector_jacobi if eigenvectors are also desired

◆ eigenvector_jacobi

template<typename T >
xyzVector< T > eigenvector_jacobi ( xyzMatrix< T > const &  a,
T const &  tol,
xyzMatrix< T > &  J 
)
friend

Classic Jacobi algorithm for the eigenvalues and eigenvectors of a real symmetric matrix.

Note
Use eigenvalue_jacobi if eigenvectors are not desired

◆ inplace_product

template<typename T >
xyzVector< T >& inplace_product ( xyzMatrix< T > const &  m,
xyzVector< T > &  v 
)
friend

xyzMatrix * xyzVector in-place product

Note
Input xyzVector is modified

◆ inplace_transpose_product

template<typename T >
xyzVector< T >& inplace_transpose_product ( xyzMatrix< T > const &  m,
xyzVector< T > &  v 
)
friend

xyzMatrix^T * xyzVector in-place transpose product

Note
Input xyzVector is modified

◆ inverse

template<typename T >
xyzMatrix< T > inverse ( xyzMatrix< T > const &  a)
friend

◆ operator!= [1/3]

template<typename T >
bool operator!= ( Value const &  t,
xyzMatrix< T > const &  m 
)
friend

Value != xyzMatrix.

◆ operator!= [2/3]

template<typename T >
bool operator!= ( xyzMatrix< T > const &  a,
xyzMatrix< T > const &  b 
)
friend

◆ operator!= [3/3]

template<typename T >
bool operator!= ( xyzMatrix< T > const &  m,
Value const &  t 
)
friend

xyzMatrix != Value

◆ operator* [1/2]

template<typename T >
xyzMatrix operator* ( Value const &  t,
xyzMatrix< T > const &  m 
)
friend

Value * xyzMatrix.

◆ operator* [2/2]

template<typename T >
xyzVector< T > operator* ( xyzMatrix< T > const &  m,
xyzVector< T > const &  v 
)
friend

◆ operator+

template<typename T >
xyzMatrix operator+ ( Value const &  t,
xyzMatrix< T > const &  m 
)
friend

Value + xyzMatrix.

◆ operator-

template<typename T >
xyzMatrix operator- ( Value const &  t,
xyzMatrix< T > const &  m 
)
friend

Value - xyzMatrix.

◆ operator< [1/3]

template<typename T >
bool operator< ( Value const &  t,
xyzMatrix< T > const &  m 
)
friend

Value < xyzMatrix.

◆ operator< [2/3]

template<typename T >
bool operator< ( xyzMatrix< T > const &  a,
xyzMatrix< T > const &  b 
)
friend

◆ operator< [3/3]

template<typename T >
bool operator< ( xyzMatrix< T > const &  m,
Value const &  t 
)
friend

xyzMatrix < Value

◆ operator<= [1/3]

template<typename T >
bool operator<= ( Value const &  t,
xyzMatrix< T > const &  m 
)
friend

Value <= xyzMatrix.

◆ operator<= [2/3]

template<typename T >
bool operator<= ( xyzMatrix< T > const &  a,
xyzMatrix< T > const &  b 
)
friend

◆ operator<= [3/3]

template<typename T >
bool operator<= ( xyzMatrix< T > const &  m,
Value const &  t 
)
friend

xyzMatrix <= Value

◆ operator== [1/3]

template<typename T >
bool operator== ( Value const &  t,
xyzMatrix< T > const &  m 
)
friend

Value == xyzMatrix.

◆ operator== [2/3]

template<typename T >
bool operator== ( xyzMatrix< T > const &  a,
xyzMatrix< T > const &  b 
)
friend

◆ operator== [3/3]

template<typename T >
bool operator== ( xyzMatrix< T > const &  m,
Value const &  t 
)
friend

xyzMatrix == Value

◆ operator> [1/3]

template<typename T >
bool operator> ( Value const &  t,
xyzMatrix< T > const &  m 
)
friend

Value > xyzMatrix.

◆ operator> [2/3]

template<typename T >
bool operator> ( xyzMatrix< T > const &  a,
xyzMatrix< T > const &  b 
)
friend

◆ operator> [3/3]

template<typename T >
bool operator> ( xyzMatrix< T > const &  m,
Value const &  t 
)
friend

xyzMatrix > Value

◆ operator>= [1/3]

template<typename T >
bool operator>= ( Value const &  t,
xyzMatrix< T > const &  m 
)
friend

Value >= xyzMatrix.

◆ operator>= [2/3]

template<typename T >
bool operator>= ( xyzMatrix< T > const &  a,
xyzMatrix< T > const &  b 
)
friend

◆ operator>= [3/3]

template<typename T >
bool operator>= ( xyzMatrix< T > const &  m,
Value const &  t 
)
friend

xyzMatrix >= Value

◆ outer_product

template<typename T >
xyzMatrix< T > outer_product ( xyzVector< T > const &  a,
xyzVector< T > const &  b 
)
friend

xyzVector xyzVector outer product

◆ product

template<typename T >
xyzVector< T > product ( xyzMatrix< T > const &  m,
xyzVector< T > const &  v 
)
friend

xyzMatrix * xyzVector product

Note
Same as xyzMatrix * xyzVector

◆ projection_matrix

template<typename T >
xyzMatrix< T > projection_matrix ( xyzVector< T > const &  v)
friend

geometric center

Note
compute the geometric center of a list of points

Projection matrix onto the line through a vector

◆ rotation_axis

template<typename T >
xyzVector< T > rotation_axis ( xyzMatrix< T > const &  R,
T theta 
)
friend

Transformation from rotation matrix to helical axis of rotation.

Note
Input matrix must be orthogonal
Angle of rotation is also returned
Orientation of axis chosen so that the angle of rotation is non-negative [0,pi]

◆ rotation_matrix

template<typename T >
xyzMatrix< T > rotation_matrix ( xyzVector< T > const &  axis,
T const &  theta 
)
friend

Rotation matrix for rotation about an axis by an angle in radians.

◆ transpose_product

template<typename T >
xyzVector< T > transpose_product ( xyzMatrix< T > const &  m,
xyzVector< T > const &  v 
)
friend

xyzMatrix^T * xyzVector product

◆ xyzMatrix

template<typename T >
template<typename >
friend class xyzMatrix
friend

Member Data Documentation

◆ xx_

template<typename T >
Value numeric::xyzMatrix< T >::xx_
private

◆ xy_

template<typename T >
Value numeric::xyzMatrix< T >::xy_
private

◆ xz_

template<typename T >
Value numeric::xyzMatrix< T >::xz_
private

◆ yx_

template<typename T >
Value numeric::xyzMatrix< T >::yx_
private

◆ yy_

template<typename T >
Value numeric::xyzMatrix< T >::yy_
private

◆ yz_

template<typename T >
Value numeric::xyzMatrix< T >::yz_
private

◆ zx_

template<typename T >
Value numeric::xyzMatrix< T >::zx_
private

◆ zy_

template<typename T >
Value numeric::xyzMatrix< T >::zy_
private

◆ zz_

template<typename T >
Value numeric::xyzMatrix< T >::zz_
private

The documentation for this class was generated from the following files: