Rosetta 3.3
Public Types | Public Member Functions | Static Public Member Functions | Friends
numeric::xyzMatrix< T > Class Template Reference

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

#include <xyzMatrix.hh>

Collaboration diagram for numeric::xyzMatrix< T >:
Collaboration graph
[legend]

List of all members.

Public Types

typedefValue
typedef T & Reference
typedef T const & ConstReference
typedef T * Pointer
typedef T const * ConstPointer
typedef xyzVector< T > Vector
typedefvalue_type
typedef T & reference
typedef T const & const_reference
typedef T * pointer
typedef T const * const_pointer

Public Member Functions

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

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.
template<typename U >
static ColsPointer< U > cols (U const *cp)
 Pointer to contiguous column-ordered values named constructor/assignment.
template<typename U >
static ColPointers< U > cols (U const *xp, U const *yp, U const *zp)
 Pointers to contiguous columns named constructor/assignment.
template<typename U >
static xyzMatrix cols_constructor (U const *xp, U const *yp, U const *zp)
 Pointers to contiguous columns named constructor.
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.
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
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.
template<typename U >
static RowsPointer< U > rows (U const *rp)
 Pointer to contiguous row-ordered values named constructor/assignment.
template<typename U >
static RowPointers< U > rows (U const *xp, U const *yp, U const *zp)
 Pointers to contiguous rows named constructor/assignment.
template<typename U >
static xyzMatrix rows_constructor (U const *xp, U const *yp, U const *zp)
 Pointers to contiguous rows named constructor.
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.
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
static xyzMatrix diag (Value const &xx_a, Value const &yy_a, Value const &zz_a)
 Diagonal value named constructor.
template<typename U >
static xyzMatrix diag (xyzVector< U > const &diag_a)
 Diagonal xyzVector named constructor.
static xyzMatrix identity ()
 Identity xyzMatrix named constructor.
static xyzMatrix const & I ()
 Identity xyzMatrix for expressions.

Friends

class xyzMatrix
 Default constructor.
xyzVector< T > operator* (xyzMatrix< T > const &m, xyzVector< T > const &v)
 xyzMatrix * xyzVector
xyzVector< T > product (xyzMatrix< T > const &m, xyzVector< T > const &v)
 xyzMatrix * xyzVector product
xyzVector< T > & inplace_product (xyzMatrix< T > const &m, xyzVector< T > &v)
 xyzMatrix * xyzVector in-place product
xyzVector< T > transpose_product (xyzMatrix< T > const &m, xyzVector< T > const &v)
 xyzMatrix^T * xyzVector product
xyzVector< T > & inplace_transpose_product (xyzMatrix< T > const &m, xyzVector< T > &v)
 xyzMatrix^T * xyzVector in-place transpose product
xyzMatrix< T > outer_product (xyzVector< T > const &a, xyzVector< T > const &b)
 xyzVector xyzVector outer product
xyzMatrix< T > projection_matrix (xyzVector< T > const &v)
 geometric center
xyzMatrix< T > rotation_matrix (xyzVector< T > const &axis, T const &theta)
 Rotation matrix for rotation about an axis by an angle in radians.
xyzVector< T > rotation_axis (xyzMatrix< T > const &R, T &theta)
 Transformation from rotation matrix to helical axis of rotation.
xyzVector< T > eigenvalue_jacobi (xyzMatrix< T > const &a, T const &tol)
 Classic Jacobi algorithm for the eigenvalues of a real symmetric matrix.
xyzVector< T > eigenvector_jacobi (xyzMatrix< T > const &a, T const &tol, xyzMatrix< T > &J)
 Classic Jacobi algorithm for the eigenvalues and eigenvectors of a real symmetric matrix.
xyzMatrix< T > inverse (xyzMatrix< T > const &a)
xyzMatrix operator+ (xyzMatrix const &a, xyzMatrix const &b)
 xyzMatrix + xyzMatrix
xyzMatrix operator+ (xyzMatrix const &m, Value const &t)
 xyzMatrix + Value
xyzMatrix operator+ (Value const &t, xyzMatrix const &m)
 Value + xyzMatrix.
xyzMatrix operator- (xyzMatrix const &a, xyzMatrix const &b)
 xyzMatrix - xyzMatrix
xyzMatrix operator- (xyzMatrix const &m, Value const &t)
 xyzMatrix - Value
xyzMatrix operator- (Value const &t, xyzMatrix const &m)
 Value - xyzMatrix.
xyzMatrix operator* (xyzMatrix const &a, xyzMatrix const &b)
 xyzMatrix * xyzMatrix
xyzMatrix operator* (xyzMatrix const &m, Value const &t)
 xyzMatrix * Value
xyzMatrix operator* (Value const &t, xyzMatrix const &m)
 Value * xyzMatrix.
xyzMatrix operator/ (xyzMatrix const &m, Value const &t)
 xyzMatrix / Value
bool operator== (xyzMatrix const &a, xyzMatrix const &b)
 xyzMatrix == xyzMatrix
bool operator!= (xyzMatrix const &a, xyzMatrix const &b)
 xyzMatrix != xyzMatrix
bool operator< (xyzMatrix const &a, xyzMatrix const &b)
 xyzMatrix < xyzMatrix
bool operator<= (xyzMatrix const &a, xyzMatrix const &b)
 xyzMatrix <= xyzMatrix
bool operator>= (xyzMatrix const &a, xyzMatrix const &b)
 xyzMatrix >= xyzMatrix
bool operator> (xyzMatrix const &a, xyzMatrix const &b)
 xyzMatrix > xyzMatrix
bool operator== (xyzMatrix const &m, Value const &t)
 xyzMatrix == Value
bool operator!= (xyzMatrix const &m, Value const &t)
 xyzMatrix != Value
bool operator< (xyzMatrix const &m, Value const &t)
 xyzMatrix < Value
bool operator<= (xyzMatrix const &m, Value const &t)
 xyzMatrix <= Value
bool operator>= (xyzMatrix const &m, Value const &t)
 xyzMatrix >= Value
bool operator> (xyzMatrix const &m, Value const &t)
 xyzMatrix > Value
bool operator== (Value const &t, xyzMatrix const &m)
 Value == xyzMatrix.
bool operator!= (Value const &t, xyzMatrix const &m)
 Value != xyzMatrix.
bool operator< (Value const &t, xyzMatrix const &m)
 Value < xyzMatrix.
bool operator<= (Value const &t, xyzMatrix const &m)
 Value <= xyzMatrix.
bool operator>= (Value const &t, xyzMatrix const &m)
 Value >= xyzMatrix.
bool operator> (Value const &t, xyzMatrix const &m)
 Value > xyzMatrix.

Detailed Description

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

xyzMatrix: Fast 3x3 xyz matrix template

xyzMatrix is a fast 3x3 matrix template class. Functions are inlined and loop-free for optimal speed. The destructor is declared non-virtual for speed so xyzMatrix is not set up for use as a base class. As a template class, xyzMatrix can hold various value types.

Forward declarations and typedefs for common value types are provided in the file xyzMatrix.fwd.hh. This header should be included in files that only use the names of the xyzMatrix types (e.g., function declarations and functions that just pass the types through to other functions by pointer or reference).

Common operations that are normally coded in loops are provided and include:

right_multiply_by() - Multiply on the right by an xyzMatrix

right_multiply_by_transpose() - Multiply on the right by the transpose of an xyzMatrix

left_multiply_by() - Multiply on the left by an xyzMatrix

left_multiply_by_transpose() - Multiply on the left by the transpose of an xyzMatrix

det() - Determinant

trace() - Trace

transpose() - Transpose

transposed() - Transposed copy

NOte that tranpose() and transposed() follow the library convention that the 'ed' version does not modify the xyzMatrix, but generates an xyzMatrix.

xyzMatrix offers a number of construction methods including several column or row oriented methods: from nine elements, from pointer(s) to contiguous values, or from three xyzVectors.

Additionally, the header xyz_functions.hh contains common functions that interact with xyzMatrix such as:

product() - xyzMatrix xyzVector product

inplace_product() - xyzMatrix xyzVector product, input xyzVector is modified

outer_product() - xyzVector xyzVector outer product

projection_matrix() - projection matrix onto the line through an xyzVector

rotation_matrix() - rotation matrix about a helical axis through the origin through an angle

rotation_axis() - transformation from rotation matrix to helical axis of rotation

eigenvalue_jacobi() - classic Jacobi algorithm for the eigenvalues of a real symmetric matrix

eigenvector_jacobi() - classic Jacobi algorithm for the eigenvalues and eigenvectors of a real symmetric matrix


Member Typedef Documentation

template<typename T>
typedef T const* numeric::xyzMatrix< T >::const_pointer
template<typename T>
typedef T const& numeric::xyzMatrix< T >::const_reference
template<typename T>
typedef T const* numeric::xyzMatrix< T >::ConstPointer
template<typename T>
typedef T const& numeric::xyzMatrix< T >::ConstReference
template<typename T>
typedef T* numeric::xyzMatrix< T >::pointer
template<typename T>
typedef T* numeric::xyzMatrix< T >::Pointer
template<typename T>
typedef T& numeric::xyzMatrix< T >::reference
template<typename T>
typedef T& numeric::xyzMatrix< T >::Reference
template<typename T>
numeric::xyzMatrix< T >::Value

typedef T Value;

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

typedef xyzVector< T > Vector;


Constructor & Destructor Documentation

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

Copy constructor.

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

Copy constructor.

template<typename T>
numeric::xyzMatrix< T >::xyzMatrix ( Value const &  t) [inline, explicit]

Uniform value constructor.

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

Destructor.

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 )
See also:
cols
Parameters:
[in]cColsPointer
Note:
The cols named constructor/assignment provides a simple wrapper interface
Constructor usage: xyzMatrix m( xyzMatrix::cols( pointer ) )
Assignment usage: m = xyzMatrix::cols( pointer )
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 )
See also:
cols
Parameters:
[in]cColPointers
Note:
The cols named constructor/assignment provides a simple wrapper interface
Constructor usage: xyzMatrix m( xyzMatrix::cols( pointer, pointer, pointer ) )
Assignment usage: m = xyzMatrix::cols( pointer, pointer, pointer )
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 ) )
See also:
cols
Parameters:
[in]cColVectors
Note:
The cols named constructor/assignment provides a simple wrapper interface
Constructor usage: xyzMatrix m( xyzMatrix::cols( xyzVector, xyzVector, xyzVector ) )
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 )
See also:
rows
Parameters:
[in]rRowsPointer
Note:
The rows named constructor/assignment provides a simple wrapper interface
Constructor usage: xyzMatrix m( xyzMatrix::rows( pointer ) )
Assignment usage: m = xyzMatrix::rows( pointer )
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 )
See also:
rows
Parameters:
[in]rRowPointers
Note:
The rows named constructor/assignment provides a simple wrapper interface
Constructor usage: xyzMatrix m( xyzMatrix::rows( pointer, pointer, pointer ) )
Assignment usage: m = xyzMatrix::rows( pointer, pointer, pointer )
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 ) )
See also:
rows
Parameters:
[in]rRowVectors
Note:
The rows named constructor/assignment provides a simple wrapper interface
Constructor usage: xyzMatrix m( xyzMatrix::rows( xyzVector, xyzVector, xyzVector ) )

Member Function Documentation

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

Add values to diagonal of xyzMatrix.

Parameters:
[in]xx_aValue to add to the xx_ data member
[in]yy_aValue to add to the yy_ data member
[in]zz_aValue to add to the zz_ data member
Returns:
Reference to the xyzMatrix with ( xx_a, yy_a, zz_a ) added to diagonal, off-diagonal elements unchanged
template<typename T>
template<typename U >
numeric::xyzMatrix< T >::add_diagonal ( xyzVector< U > const &  diag_a) [inline]

Add xyzVector to diagonal of xyzMatrix.

Parameters:
[in]diag_axyzVector to add to the diagonal of the xyzMatrix
Returns:
Reference to the xyzMatrix with diag_a added to diagonal, off-diagonal elements unchanged
template<typename T>
xyzMatrix& numeric::xyzMatrix< T >::clear ( ) [inline]

Clear.

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

Column( i ): 1-based index.

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

Column( i, xyzVector ) assignment: 1-base index.

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

Column x assignment.

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

Column y assignment.

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

Column z assignment.

template<typename T>
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 
) [inline, static]

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 )
Parameters:
[in]xx_aValue to assign to the xx_ data member
[in]yx_aValue to assign to the yx_ data member
[in]zx_aValue to assign to the zx_ data member
[in]xy_aValue to assign to the xy_ data member
[in]yy_aValue to assign to the yy_ data member
[in]zy_aValue to assign to the zy_ data member
[in]xz_aValue to assign to the xz_ data member
[in]yz_aValue to assign to the yz_ data member
[in]zz_aValue to assign to the zz_ data member
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 )
Returns:
xyzMatrix with arguments ordered column-wise

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

template<typename T>
template<typename U >
numeric::xyzMatrix< T >::cols ( U const *  cp) [inline, static]

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 )
Warning:
Danger! No way to check that argument points to nine contiguous values
Parameters:
[in]cpPointer to nine contiguous values
Note:
Constructor usage: xyzMatrix m( xyzMatrix::cols( pointer ) )
Assignment usage: m = xyzMatrix::cols( pointer )
template<typename T>
template<typename U >
numeric::xyzMatrix< T >::cols ( xyzVector< U > const &  col_x,
xyzVector< U > const &  col_y,
xyzVector< U > const &  col_z 
) [inline, static]

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 )
Parameters:
[in]col_xx (first) column
[in]col_yy (second) column
[in]col_zz (third) column
Note:
Constructor usage: xyzMatrix m( xyzMatrix::cols( xyzVector, xyzVector, xyzVector ) )
Assignment usage: m = xyzMatrix::cols( xyzVector, xyzVector, xyzVector )

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

template<typename T>
template<typename U >
numeric::xyzMatrix< T >::cols ( U const *  xp,
U const *  yp,
U const *  zp 
) [inline, static]

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 )
Warning:
Danger! No way to check that arguments each point to three contiguous values
Parameters:
[in]xpPointer to x (first) column
[in]ypPointer to y (second) column
[in]zpPointer to z (third) column
Note:
Constructor usage: xyzMatrix m( xyzMatrix::cols( pointer, pointer, pointer ) )
Assignment usage: m = xyzMatrix::cols( pointer, pointer, pointer )
template<typename T>
template<typename U >
numeric::xyzMatrix< T >::cols_constructor ( U const *  xp,
U const *  yp,
U const *  zp 
) [inline, static]

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 ) )
Warning:
Danger! No way to check that arguments each point to three contiguous values
Parameters:
[in]xpPointer to x (first) column
[in]ypPointer to y (second) column
[in]zpPointer to z (third) column
Note:
Can be faster than cols() construction due to return value optimization
Constructor usage: xyzMatrix m( xyzMatrix::cols_constructor( pointer, pointer, pointer ) )

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

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

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 ) )
Parameters:
[in]col_xx (first) column
[in]col_yy (second) column
[in]col_zz (third) column
Note:
Can be faster than cols() construction due to return value optimization
Constructor usage: xyzMatrix m( xyzMatrix::cols_constructor( xyzVector, xyzVector, xyzVector ) )

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

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

Determinant.

Returns:
Determinant of xyzMatrix (scalar)

Referenced by numeric::inverse().

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

Diagonal value named constructor.

Note:
diag refers to a diagonal matrix
Parameters:
[in]xx_aValue to assign to the xx_ data member
[in]yy_aValue to assign to the yy_ data member
[in]zz_aValue to assign to the zz_ data member
Note:
diag refers to a diagonal matrix
Returns:
xyzMatrix with xx_a, yy_a, zz_a assigned to the diagonal, 0 to the off-diagonal elements

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

template<typename T>
template<typename U >
numeric::xyzMatrix< T >::diag ( xyzVector< U > const &  diag_a) [inline, static]

Diagonal xyzVector named constructor.

Note:
diag refers to a diagonal matrix
Parameters:
[in]diag_axyzVector to assign to the diagonal of the xyzMatrix
Note:
diag refers to a diagonal matrix
Returns:
xyzMatrix with diag_a assigned to the diagonal, 0 to the off-diagonal elements

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

template<typename T>
numeric::xyzMatrix< T >::I ( ) [inline, static]

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
I_constructor() named constructor can be faster for construction
Returns reference to static local object so can be used in construction of global objects
Returns:
Reference to identity xyzMatrix
template<typename T>
numeric::xyzMatrix< T >::identity ( ) [inline, static]

Identity xyzMatrix named constructor.

Note:
Can be faster than I() for construction due to return value optimization
Can be faster than static member function I() for construction due to return value optimization

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

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

Is identity?

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

Is zero?

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

Left multiply by xyzMatrix.

Parameters:
[in]mxyzMatrix to left multipy the xyzMatrix
Note:
Same as *= xyzMatrix
Returns:
Reference to the xyzMatrix product

References rosetta_py::utility::rankorder::x.

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

Left multiply by transpose xyzMatrix.

Parameters:
[in]mxyzMatrix to transpose and left multipy the xyzMatrix
Returns:
Reference to the xyzMatrix product

References rosetta_py::utility::rankorder::x.

Referenced by numeric::eigenvalue_jacobi(), and numeric::eigenvector_jacobi().

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

xyzMatrix( i, j ) const: 1-based index

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

xyzMatrix( i, j ): 1-based index

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

*= xyzMatrix

Note:
Same as right_multiply_by( xyzMatrix )
Parameters:
[in]mxyzMatrix to right multipy the xyzMatrix
Note:
Same as right multiply by xyzMatrix
Returns:
Reference to the xyzMatrix product

References rosetta_py::utility::rankorder::x.

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

*= Value

Parameters:
[in]tscalar by which to multiply each element of the xyzMatrix
Returns:
Reference to the xyzMatrix

References sd::t.

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

+= xyzMatrix

Parameters:
[in]mxyzMatrix to add to the xyzMatrix
Returns:
Reference to the xyzMatrix sum
template<typename T>
numeric::xyzMatrix< T >::operator+= ( Value const &  t) [inline]

+= Value

Parameters:
[in]tscalar to add to each element
Returns:
Reference to the xyzMatrix

References sd::t.

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

-= xyzMatrix

Parameters:
[in]mxyzMatrix to subtract from the xyzMatrix
Returns:
Reference to the xyzMatrix difference
template<typename T>
numeric::xyzMatrix< T >::operator-= ( Value const &  t) [inline]

-= Value

Parameters:
[in]tscalar to subtract from each element
Returns:
Reference to the xyzMatrix

References sd::t.

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

/= Value

Parameters:
[in]tscalar by which to divide each element of the xyzMatrix
Returns:
Reference to the xyzMatrix
template<typename T>
numeric::xyzMatrix< T >::operator= ( xyzMatrix< T > const &  m) [inline]

Copy assignment.

Parameters:
[in]mxyzMatrix to assign to the xyzMatrix
Returns:
Reference to the xyzMatrix
template<typename T>
template<typename U >
numeric::xyzMatrix< T >::operator= ( xyzMatrix< U > const &  m) [inline]

Copy assignment.

Parameters:
[in]mxyzMatrix to assign to the xyzMatrix
Returns:
Reference to the xyzMatrix
template<typename T>
template<typename U >
numeric::xyzMatrix< T >::operator= ( ColsPointer< U > const &  c) [inline]

Assignment from pointer to contiguous column-ordered values.

Note:
Use via named assignment wrapper: m = xyzMatrix::cols( pointer )
Parameters:
[in]cColsPointer wrapper
Note:
Use via named assignment wrapper: m = xyzMatrix::cols( pointer )
Returns:
Reference to the xyzMatrix
template<typename T>
template<typename U >
numeric::xyzMatrix< T >::operator= ( ColPointers< U > const &  c) [inline]

Assignment from pointers to contiguous columns.

Note:
Use via named assignment wrapper: m = xyzMatrix::cols( pointer, pointer, pointer )
Parameters:
[in]cColPointers wrapper
Note:
Use via named assignment wrapper: m = xyzMatrix::cols( pointer, pointer, pointer )
Returns:
Reference to the xyzMatrix
template<typename T>
template<typename U >
numeric::xyzMatrix< T >::operator= ( RowPointers< U > const &  r) [inline]

Assignment from pointers to contiguous rows.

Note:
Use via named assignment wrapper: m = xyzMatrix::rows( pointer, pointer, pointer )
Parameters:
[in]rRowPointers wrapper
Note:
Use via named assignment wrapper: m = xyzMatrix::rows( pointer, pointer, pointer )
Returns:
Reference to the xyzMatrix
template<typename T>
template<typename U >
numeric::xyzMatrix< T >::operator= ( ColVectors< U > const &  c) [inline]

xyzVector columns assignment

Note:
Use via named assignment wrapper: m = xyzMatrix::cols( xyzVector, xyzVector, xyzVector )
Parameters:
[in]cColVectors wrapper
Note:
Use via named assignment wrapper: m = xyzMatrix::cols( xyzVector, xyzVector, xyzVector )
Returns:
Reference to the xyzMatrix
template<typename T>
template<typename U >
numeric::xyzMatrix< T >::operator= ( RowsPointer< U > const &  r) [inline]

Assignment from pointer to contiguous row-ordered values.

Note:
Use via named assignment wrapper: m = xyzMatrix::rows( pointer )
Parameters:
[in]rRowsPointer wrapper
Note:
Use via named assignment wrapper: m = xyzMatrix::rows( pointer )
Returns:
Reference to the xyzMatrix
template<typename T>
template<typename U >
numeric::xyzMatrix< T >::operator= ( RowVectors< U > const &  r) [inline]

xyzVector rows assignment

Note:
Use via named assignment wrapper: m = xyzMatrix::rows( xyzVector, xyzVector, xyzVector )
Parameters:
[in]rRowVectors wrapper
Note:
Use via named assignment wrapper: m = xyzMatrix::rows( pointer, pointer, pointer )
Returns:
Reference to the xyzMatrix
template<typename T>
numeric::xyzMatrix< T >::operator= ( Value const &  t) [inline]

= Value

Parameters:
[in]tscalar to assign to each element
Returns:
Reference to the xyzMatrix

References sd::t.

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

Right multiply by xyzMatrix.

Note:
Same as *= xyzMatrix
Parameters:
[in]mxyzMatrix to right multipy the xyzMatrix
Note:
Same as *= xyzMatrix
Returns:
Reference to the xyzMatrix product

References rosetta_py::utility::rankorder::x.

Referenced by numeric::eigenvalue_jacobi(), and numeric::eigenvector_jacobi().

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

Right multiply by transpose xyzMatrix.

Parameters:
[in]mxyzMatrix to transpose and right multipy the xyzMatrix
Returns:
Reference to the xyzMatrix product

References rosetta_py::utility::rankorder::x.

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

Row ( i, xyzVector ) assignment: 1-based index.

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

Row ( i ): 1-based index.

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

Row x.

Referenced by numeric::xyzMatrix< T >::rows().

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

Row x assignment.

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

Row y.

Referenced by numeric::xyzMatrix< T >::rows().

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

Row y assignment.

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

Row z.

Referenced by numeric::xyzMatrix< T >::rows().

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

Row z assignment.

template<typename T>
template<typename U >
numeric::xyzMatrix< T >::rows ( U const *  rp) [inline, static]

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 )
Warning:
Danger! No way to check that argument points to nine contiguous values
Parameters:
[in]rpPointer to nine contiguous values
Note:
Constructor usage: xyzMatrix m( xyzMatrix::rows( pointer ) )
Assignment usage: m = xyzMatrix::rows( pointer )
template<typename T>
template<typename U >
numeric::xyzMatrix< T >::rows ( U const *  xp,
U const *  yp,
U const *  zp 
) [inline, static]

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 )
Warning:
Danger! No way to check that arguments each point to three contiguous values
Parameters:
[in]xpPointer to x (first) row
[in]ypPointer to y (second) row
[in]zpPointer to z (third) row
Note:
Constructor usage: xyzMatrix m( xyzMatrix::rows( pointer, pointer, pointer ) )
Assignment usage: m = xyzMatrix::rows( pointer, pointer, pointer )
template<typename T>
template<typename U >
numeric::xyzMatrix< T >::rows ( xyzVector< U > const &  row_x,
xyzVector< U > const &  row_y,
xyzVector< U > const &  row_z 
) [inline, static]

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 )
Parameters:
[in]row_xx (first) row
[in]row_yy (second) row
[in]row_zz (third) row
Note:
Constructor usage: xyzMatrix m( xyzMatrix::rows( xyzVector, xyzVector, xyzVector ) )
Assignment usage: m = xyzMatrix::rows( xyzVector, xyzVector, xyzVector )

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

template<typename T>
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 
) [inline, static]

Row-ordered value named constructor.

Note:
Constructor usage: xyzMatrix m( xyzMatrix::rows( xx_a, xy_a, xz_a, yx_a, yy_a, yz_a, zx_a, zy_a, zz_a ) )
Assignment usage: m = xyzMatrix::rows( xx_a, xy_a, xz_a, yx_a, yy_a, yz_a, zx_a, zy_a, zz_a )
Parameters:
[in]xx_aValue to assign to the xx_ data member
[in]xy_aValue to assign to the xy_ data member
[in]xz_aValue to assign to the xz_ data member
[in]yx_aValue to assign to the yx_ data member
[in]yy_aValue to assign to the yy_ data member
[in]yz_aValue to assign to the yz_ data member
[in]zx_aValue to assign to the zx_ data member
[in]zy_aValue to assign to the zy_ data member
[in]zz_aValue to assign to the zz_ data member
Note:
Constructor usage: xyzMatrix m( xyzMatrix::rows( xx_a, xy_a, xz_a,
yx_a, yy_a, yz_a,
zx_a, zy_a, zz_a ) )
Assignment usage: m = xyzMatrix::rows( xx_a, xy_a, xz_a,
yx_a, yy_a, yz_a,
zx_a, zy_a, zz_a )
Returns:
xyzMatrix with arguments ordered row-wise

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

Referenced by numeric::x_rotation_matrix(), numeric::y_rotation_matrix(), and numeric::z_rotation_matrix().

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

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 ) )
Warning:
Danger! No way to check that arguments each point to three contiguous values
Parameters:
[in]xpPointer to x (first) row
[in]ypPointer to y (second) row
[in]zpPointer to z (third) row
Note:
Can be faster than rows() construction due to return value optimization
Constructor usage: xyzMatrix m( xyzMatrix::rows_constructor( pointer, pointer, pointer ) )

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

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

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 ) )
Parameters:
[in]row_xx (first) row
[in]row_yy (second) row
[in]row_zz (third) row
Note:
Can be faster than rows() construction due to return value optimization
Constructor usage: xyzMatrix m( xyzMatrix::rows_constructor( xyzVector, xyzVector, xyzVector ) )

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

template<typename T>
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)
Parameters:
[in]xx_aValue to assign to the xx_ data member
[in]yy_aValue to assign to the yy_ data member
[in]zz_aValue to assign to the zz_ data member
Note:
Resets the diagonal of the matrix only (diagonal refers to diagonal entries of a matrix)
Returns:
Reference to the xyzMatrix with diagonal reset to xx_a, yy_a, zz_a, off-diagonal elements unchanged
template<typename T>
template<typename U >
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
Parameters:
[in]diag_axyzVector to assign to the diagonal of the xyzMatrix
Note:
Resets the diagonal of the matrix only (diagonal refers to diagonal entries of a matrix)
Returns:
Reference to the xyzMatrix with diagonal reset to diag_a, off-diagonal elements unchanged
template<typename T>
numeric::xyzMatrix< T >::subtract_diagonal ( Value const &  xx_a,
Value const &  yy_a,
Value const &  zz_a 
) [inline]

Subtract values from diagonal of xyzMatrix.

Parameters:
[in]xx_aValue to add to the xx_ data member
[in]yy_aValue to add to the yy_ data member
[in]zz_aValue to add to the zz_ data member
Returns:
Reference to the xyzMatrix with ( xx_a, yy_a, zz_a ) subtracted from diagonal, off-diagonal elements unchanged
template<typename T>
template<typename U >
numeric::xyzMatrix< T >::subtract_diagonal ( xyzVector< U > const &  diag_a) [inline]

Subtract xyzVector from diagonal of xyzMatrix.

Parameters:
[in]diag_axyzVector to subtract from the diagonal of the xyzMatrix
Returns:
Reference to the xyzMatrix with diag_a subtracted from diagonal, off-diagonal elements unchanged
template<typename T>
numeric::xyzMatrix< T >::to_diag ( Value const &  xx_a,
Value const &  yy_a,
Value const &  zz_a 
) [inline]

Set to diagonal xyzMatrix from value.

Note:
Resets the entire matrix (diag refers to a diagonal matrix)
Parameters:
[in]xx_aValue to assign to the xx_ data member
[in]yy_aValue to assign to the yy_ data member
[in]zz_aValue to assign to the zz_ data member
Note:
Resets the entire matrix (diag refers to a diagonal matrix)
Returns:
Reference to the xyzMatrix with xx_a, yy_a, zz_a assigned to the diagonal, 0 to the off-diagonal elements
template<typename T>
template<typename U >
numeric::xyzMatrix< T >::to_diag ( xyzVector< U > const &  diag_a) [inline]

Set to diagonal xyzMatrix from xyzVector.

Note:
Resets the entire matrix (diag refers to a diagonal matrix)
Parameters:
[in]diag_axyzVector to assign to the diagonal of the xyzMatrix
Note:
Resets the entire matrix (diag refers to a diagonal matrix)
Returns:
Reference to the xyzMatrix with diag_a assigned to the diagonal, 0 to the off-diagonal elements
template<typename T>
numeric::xyzMatrix< T >::to_identity ( ) [inline]

Set to the identity xyzMatrix.

Returns:
Reference to the xyzMatrix

Referenced by numeric::eigenvector_jacobi(), and numeric::jacobi_rotation().

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

Trace.

Returns:
Trace of xyzMatrix (scalar)

Referenced by numeric::rotation_axis().

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

Transpose.

Returns:
Reference to the xyzMatrix with elements transposed.

References color_pdb::temp.

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

Transposed copy.

Returns:
Transposed copy of xyzMatrix

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

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

Value xx const.

Referenced by numeric::alignVectorSets(), and numeric::operator>>().

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

Value xx.

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

xx assignment

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

xy assignment

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

Value xy.

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

Value xy const.

Referenced by numeric::alignVectorSets(), and numeric::operator>>().

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

Value xz const.

Referenced by numeric::alignVectorSets(), and numeric::operator>>().

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

xz assignment

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

Value xz.

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

yx assignment

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

Value yx const.

Referenced by numeric::alignVectorSets(), and numeric::operator>>().

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

Value yx.

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

Value yy.

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

Value yy const.

Referenced by numeric::alignVectorSets(), and numeric::operator>>().

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

yy assignment

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

Value yz const.

Referenced by numeric::alignVectorSets(), and numeric::operator>>().

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

yz assignment

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

Value yz.

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

Set to the zero xyzMatrix.

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

zx assignment

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

Value zx.

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

Value zx const.

Referenced by numeric::alignVectorSets(), and numeric::operator>>().

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

Value zy const.

Referenced by numeric::alignVectorSets(), and numeric::operator>>().

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

zy assignment

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

Value zy.

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

zz assignment

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

Value zz.

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

Value zz const.

Referenced by numeric::alignVectorSets(), and numeric::operator>>().


Friends And Related Function Documentation

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
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
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
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
template<typename T>
xyzMatrix< T > inverse ( xyzMatrix< T > const &  a) [friend]
template<typename T>
bool operator!= ( Value const &  t,
xyzMatrix< T > const &  m 
) [friend]

Value != xyzMatrix.

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

xyzMatrix != Value

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

xyzMatrix * xyzVector

Note:
Same as product( xyzMatrix, xyzVector )
template<typename T>
xyzMatrix operator* ( xyzMatrix< T > const &  a,
xyzMatrix< T > const &  b 
) [friend]
template<typename T>
xyzMatrix operator* ( xyzMatrix< T > const &  m,
Value const &  t 
) [friend]

xyzMatrix * Value

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

Value * xyzMatrix.

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

Value + xyzMatrix.

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

xyzMatrix + Value

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

xyzMatrix - Value

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

Value - xyzMatrix.

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

xyzMatrix / Value

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

xyzMatrix < Value

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

Value < xyzMatrix.

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

xyzMatrix <= Value

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

Value <= xyzMatrix.

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

Value == xyzMatrix.

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

xyzMatrix == Value

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

xyzMatrix > Value

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

Value > xyzMatrix.

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

Value >= xyzMatrix.

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

xyzMatrix >= Value

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

xyzVector xyzVector outer product

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

xyzMatrix * xyzVector product

Note:
Same as xyzMatrix * xyzVector
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
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]
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.

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

xyzMatrix^T * xyzVector product

template<typename T>
numeric::xyzMatrix< T >::xyzMatrix [friend]

Default constructor.

Note:
Values are uninitialized for efficiency

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines