doom3-gpl
Doom 3 GPL source release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
idMatX Class Reference

#include <Matrix.h>

Public Member Functions

 idMatX (void)
 
 idMatX (int rows, int columns)
 
 idMatX (int rows, int columns, float *src)
 
 ~idMatX (void)
 
void Set (int rows, int columns, const float *src)
 
void Set (const idMat3 &m1, const idMat3 &m2)
 
void Set (const idMat3 &m1, const idMat3 &m2, const idMat3 &m3, const idMat3 &m4)
 
const floatoperator[] (int index) const
 
floatoperator[] (int index)
 
idMatXoperator= (const idMatX &a)
 
idMatX operator* (const float a) const
 
idVecX operator* (const idVecX &vec) const
 
idMatX operator* (const idMatX &a) const
 
idMatX operator+ (const idMatX &a) const
 
idMatX operator- (const idMatX &a) const
 
idMatXoperator*= (const float a)
 
idMatXoperator*= (const idMatX &a)
 
idMatXoperator+= (const idMatX &a)
 
idMatXoperator-= (const idMatX &a)
 
bool Compare (const idMatX &a) const
 
bool Compare (const idMatX &a, const float epsilon) const
 
bool operator== (const idMatX &a) const
 
bool operator!= (const idMatX &a) const
 
void SetSize (int rows, int columns)
 
void ChangeSize (int rows, int columns, bool makeZero=false)
 
int GetNumRows (void) const
 
int GetNumColumns (void) const
 
void SetData (int rows, int columns, float *data)
 
void Zero (void)
 
void Zero (int rows, int columns)
 
void Identity (void)
 
void Identity (int rows, int columns)
 
void Diag (const idVecX &v)
 
void Random (int seed, float l=0.0f, float u=1.0f)
 
void Random (int rows, int columns, int seed, float l=0.0f, float u=1.0f)
 
void Negate (void)
 
void Clamp (float min, float max)
 
idMatXSwapRows (int r1, int r2)
 
idMatXSwapColumns (int r1, int r2)
 
idMatXSwapRowsColumns (int r1, int r2)
 
idMatXRemoveRow (int r)
 
idMatXRemoveColumn (int r)
 
idMatXRemoveRowColumn (int r)
 
void ClearUpperTriangle (void)
 
void ClearLowerTriangle (void)
 
void SquareSubMatrix (const idMatX &m, int size)
 
float MaxDifference (const idMatX &m) const
 
bool IsSquare (void) const
 
bool IsZero (const float epsilon=MATRIX_EPSILON) const
 
bool IsIdentity (const float epsilon=MATRIX_EPSILON) const
 
bool IsDiagonal (const float epsilon=MATRIX_EPSILON) const
 
bool IsTriDiagonal (const float epsilon=MATRIX_EPSILON) const
 
bool IsSymmetric (const float epsilon=MATRIX_EPSILON) const
 
bool IsOrthogonal (const float epsilon=MATRIX_EPSILON) const
 
bool IsOrthonormal (const float epsilon=MATRIX_EPSILON) const
 
bool IsPMatrix (const float epsilon=MATRIX_EPSILON) const
 
bool IsZMatrix (const float epsilon=MATRIX_EPSILON) const
 
bool IsPositiveDefinite (const float epsilon=MATRIX_EPSILON) const
 
bool IsSymmetricPositiveDefinite (const float epsilon=MATRIX_EPSILON) const
 
bool IsPositiveSemiDefinite (const float epsilon=MATRIX_EPSILON) const
 
bool IsSymmetricPositiveSemiDefinite (const float epsilon=MATRIX_EPSILON) const
 
float Trace (void) const
 
float Determinant (void) const
 
idMatX Transpose (void) const
 
idMatXTransposeSelf (void)
 
idMatX Inverse (void) const
 
bool InverseSelf (void)
 
idMatX InverseFast (void) const
 
bool InverseFastSelf (void)
 
bool LowerTriangularInverse (void)
 
bool UpperTriangularInverse (void)
 
idVecX Multiply (const idVecX &vec) const
 
idVecX TransposeMultiply (const idVecX &vec) const
 
idMatX Multiply (const idMatX &a) const
 
idMatX TransposeMultiply (const idMatX &a) const
 
void Multiply (idVecX &dst, const idVecX &vec) const
 
void MultiplyAdd (idVecX &dst, const idVecX &vec) const
 
void MultiplySub (idVecX &dst, const idVecX &vec) const
 
void TransposeMultiply (idVecX &dst, const idVecX &vec) const
 
void TransposeMultiplyAdd (idVecX &dst, const idVecX &vec) const
 
void TransposeMultiplySub (idVecX &dst, const idVecX &vec) const
 
void Multiply (idMatX &dst, const idMatX &a) const
 
void TransposeMultiply (idMatX &dst, const idMatX &a) const
 
int GetDimension (void) const
 
const idVec6SubVec6 (int row) const
 
idVec6SubVec6 (int row)
 
const idVecX SubVecX (int row) const
 
idVecX SubVecX (int row)
 
const floatToFloatPtr (void) const
 
floatToFloatPtr (void)
 
const char * ToString (int precision=2) const
 
void Update_RankOne (const idVecX &v, const idVecX &w, float alpha)
 
void Update_RankOneSymmetric (const idVecX &v, float alpha)
 
void Update_RowColumn (const idVecX &v, const idVecX &w, int r)
 
void Update_RowColumnSymmetric (const idVecX &v, int r)
 
void Update_Increment (const idVecX &v, const idVecX &w)
 
void Update_IncrementSymmetric (const idVecX &v)
 
void Update_Decrement (int r)
 
bool Inverse_GaussJordan (void)
 
bool Inverse_UpdateRankOne (const idVecX &v, const idVecX &w, float alpha)
 
bool Inverse_UpdateRowColumn (const idVecX &v, const idVecX &w, int r)
 
bool Inverse_UpdateIncrement (const idVecX &v, const idVecX &w)
 
bool Inverse_UpdateDecrement (const idVecX &v, const idVecX &w, int r)
 
void Inverse_Solve (idVecX &x, const idVecX &b) const
 
bool LU_Factor (int *index, float *det=NULL)
 
bool LU_UpdateRankOne (const idVecX &v, const idVecX &w, float alpha, int *index)
 
bool LU_UpdateRowColumn (const idVecX &v, const idVecX &w, int r, int *index)
 
bool LU_UpdateIncrement (const idVecX &v, const idVecX &w, int *index)
 
bool LU_UpdateDecrement (const idVecX &v, const idVecX &w, const idVecX &u, int r, int *index)
 
void LU_Solve (idVecX &x, const idVecX &b, const int *index) const
 
void LU_Inverse (idMatX &inv, const int *index) const
 
void LU_UnpackFactors (idMatX &L, idMatX &U) const
 
void LU_MultiplyFactors (idMatX &m, const int *index) const
 
bool QR_Factor (idVecX &c, idVecX &d)
 
bool QR_UpdateRankOne (idMatX &R, const idVecX &v, const idVecX &w, float alpha)
 
bool QR_UpdateRowColumn (idMatX &R, const idVecX &v, const idVecX &w, int r)
 
bool QR_UpdateIncrement (idMatX &R, const idVecX &v, const idVecX &w)
 
bool QR_UpdateDecrement (idMatX &R, const idVecX &v, const idVecX &w, int r)
 
void QR_Solve (idVecX &x, const idVecX &b, const idVecX &c, const idVecX &d) const
 
void QR_Solve (idVecX &x, const idVecX &b, const idMatX &R) const
 
void QR_Inverse (idMatX &inv, const idVecX &c, const idVecX &d) const
 
void QR_UnpackFactors (idMatX &Q, idMatX &R, const idVecX &c, const idVecX &d) const
 
void QR_MultiplyFactors (idMatX &m, const idVecX &c, const idVecX &d) const
 
bool SVD_Factor (idVecX &w, idMatX &V)
 
void SVD_Solve (idVecX &x, const idVecX &b, const idVecX &w, const idMatX &V) const
 
void SVD_Inverse (idMatX &inv, const idVecX &w, const idMatX &V) const
 
void SVD_MultiplyFactors (idMatX &m, const idVecX &w, const idMatX &V) const
 
bool Cholesky_Factor (void)
 
bool Cholesky_UpdateRankOne (const idVecX &v, float alpha, int offset=0)
 
bool Cholesky_UpdateRowColumn (const idVecX &v, int r)
 
bool Cholesky_UpdateIncrement (const idVecX &v)
 
bool Cholesky_UpdateDecrement (const idVecX &v, int r)
 
void Cholesky_Solve (idVecX &x, const idVecX &b) const
 
void Cholesky_Inverse (idMatX &inv) const
 
void Cholesky_MultiplyFactors (idMatX &m) const
 
bool LDLT_Factor (void)
 
bool LDLT_UpdateRankOne (const idVecX &v, float alpha, int offset=0)
 
bool LDLT_UpdateRowColumn (const idVecX &v, int r)
 
bool LDLT_UpdateIncrement (const idVecX &v)
 
bool LDLT_UpdateDecrement (const idVecX &v, int r)
 
void LDLT_Solve (idVecX &x, const idVecX &b) const
 
void LDLT_Inverse (idMatX &inv) const
 
void LDLT_UnpackFactors (idMatX &L, idMatX &D) const
 
void LDLT_MultiplyFactors (idMatX &m) const
 
void TriDiagonal_ClearTriangles (void)
 
bool TriDiagonal_Solve (idVecX &x, const idVecX &b) const
 
void TriDiagonal_Inverse (idMatX &inv) const
 
bool Eigen_SolveSymmetricTriDiagonal (idVecX &eigenValues)
 
bool Eigen_SolveSymmetric (idVecX &eigenValues)
 
bool Eigen_Solve (idVecX &realEigenValues, idVecX &imaginaryEigenValues)
 
void Eigen_SortIncreasing (idVecX &eigenValues)
 
void Eigen_SortDecreasing (idVecX &eigenValues)
 

Static Public Member Functions

static void Test (void)
 

Private Member Functions

void SetTempSize (int rows, int columns)
 
float DeterminantGeneric (void) const
 
bool InverseSelfGeneric (void)
 
void QR_Rotate (idMatX &R, int i, float a, float b)
 
float Pythag (float a, float b) const
 
void SVD_BiDiag (idVecX &w, idVecX &rv1, float &anorm)
 
void SVD_InitialWV (idVecX &w, idMatX &V, idVecX &rv1)
 
void HouseholderReduction (idVecX &diag, idVecX &subd)
 
bool QL (idVecX &diag, idVecX &subd)
 
void HessenbergReduction (idMatX &H)
 
void ComplexDivision (float xr, float xi, float yr, float yi, float &cdivr, float &cdivi)
 
bool HessenbergToRealSchur (idMatX &H, idVecX &realEigenValues, idVecX &imaginaryEigenValues)
 

Private Attributes

int numRows
 
int numColumns
 
int alloced
 
floatmat
 

Static Private Attributes

static float temp [MATX_MAX_TEMP+4]
 
static floattempPtr = (float *) ( ( (int) idMatX::temp + 15 ) & ~15 )
 
static int tempIndex = 0
 

Friends

idMatX operator* (const float a, const idMatX &m)
 
idVecX operator* (const idVecX &vec, const idMatX &m)
 
idVecXoperator*= (idVecX &vec, const idMatX &m)
 

Detailed Description

Definition at line 1786 of file Matrix.h.

Constructor & Destructor Documentation

ID_INLINE idMatX::idMatX ( void  )

Definition at line 1994 of file Matrix.h.

ID_INLINE idMatX::idMatX ( int  rows,
int  columns 
)
explicit

Definition at line 2006 of file Matrix.h.

ID_INLINE idMatX::idMatX ( int  rows,
int  columns,
float src 
)
explicit

Definition at line 2012 of file Matrix.h.

ID_INLINE idMatX::~idMatX ( void  )

Definition at line 1999 of file Matrix.h.

Member Function Documentation

void idMatX::ChangeSize ( int  rows,
int  columns,
bool  makeZero = false 
)

Definition at line 2948 of file Matrix.cpp.

bool idMatX::Cholesky_Factor ( void  )

Definition at line 5294 of file Matrix.cpp.

void idMatX::Cholesky_Inverse ( idMatX inv) const

Definition at line 5690 of file Matrix.cpp.

void idMatX::Cholesky_MultiplyFactors ( idMatX m) const

Definition at line 5719 of file Matrix.cpp.

void idMatX::Cholesky_Solve ( idVecX x,
const idVecX b 
) const

Definition at line 5657 of file Matrix.cpp.

bool idMatX::Cholesky_UpdateDecrement ( const idVecX v,
int  r 
)

Definition at line 5620 of file Matrix.cpp.

bool idMatX::Cholesky_UpdateIncrement ( const idVecX v)

Definition at line 5574 of file Matrix.cpp.

bool idMatX::Cholesky_UpdateRankOne ( const idVecX v,
float  alpha,
int  offset = 0 
)

Definition at line 5337 of file Matrix.cpp.

bool idMatX::Cholesky_UpdateRowColumn ( const idVecX v,
int  r 
)

Definition at line 5392 of file Matrix.cpp.

ID_INLINE void idMatX::Clamp ( float  min,
float  max 
)

Definition at line 2370 of file Matrix.h.

ID_INLINE void idMatX::ClearLowerTriangle ( void  )

Definition at line 2421 of file Matrix.h.

ID_INLINE void idMatX::ClearUpperTriangle ( void  )

Definition at line 2414 of file Matrix.h.

ID_INLINE bool idMatX::Compare ( const idMatX a) const

Definition at line 2211 of file Matrix.h.

ID_INLINE bool idMatX::Compare ( const idMatX a,
const float  epsilon 
) const

Definition at line 2225 of file Matrix.h.

void idMatX::ComplexDivision ( float  xr,
float  xi,
float  yr,
float  yi,
float cdivr,
float cdivi 
)
private

Definition at line 6656 of file Matrix.cpp.

ID_INLINE float idMatX::Determinant ( void  ) const

Definition at line 2539 of file Matrix.h.

float idMatX::DeterminantGeneric ( void  ) const
private

Definition at line 7138 of file Matrix.cpp.

ID_INLINE void idMatX::Diag ( const idVecX v)

Definition at line 2326 of file Matrix.h.

bool idMatX::Eigen_Solve ( idVecX realEigenValues,
idVecX imaginaryEigenValues 
)

Definition at line 7066 of file Matrix.cpp.

bool idMatX::Eigen_SolveSymmetric ( idVecX eigenValues)

Definition at line 6550 of file Matrix.cpp.

bool idMatX::Eigen_SolveSymmetricTriDiagonal ( idVecX eigenValues)

Definition at line 6520 of file Matrix.cpp.

void idMatX::Eigen_SortDecreasing ( idVecX eigenValues)

Definition at line 7113 of file Matrix.cpp.

void idMatX::Eigen_SortIncreasing ( idVecX eigenValues)

Definition at line 7088 of file Matrix.cpp.

ID_INLINE int idMatX::GetDimension ( void  ) const

Definition at line 2907 of file Matrix.h.

int idMatX::GetNumColumns ( void  ) const
inline

Definition at line 1822 of file Matrix.h.

int idMatX::GetNumRows ( void  ) const
inline

Definition at line 1821 of file Matrix.h.

void idMatX::HessenbergReduction ( idMatX H)
private

Definition at line 6569 of file Matrix.cpp.

bool idMatX::HessenbergToRealSchur ( idMatX H,
idVecX realEigenValues,
idVecX imaginaryEigenValues 
)
private

Definition at line 6678 of file Matrix.cpp.

void idMatX::HouseholderReduction ( idVecX diag,
idVecX subd 
)
private

Definition at line 6337 of file Matrix.cpp.

ID_INLINE void idMatX::Identity ( void  )

Definition at line 2308 of file Matrix.h.

ID_INLINE void idMatX::Identity ( int  rows,
int  columns 
)

Definition at line 2320 of file Matrix.h.

ID_INLINE idMatX idMatX::Inverse ( void  ) const

Definition at line 2582 of file Matrix.h.

bool idMatX::Inverse_GaussJordan ( void  )

Definition at line 3620 of file Matrix.cpp.

void idMatX::Inverse_Solve ( idVecX x,
const idVecX b 
) const

Definition at line 3846 of file Matrix.cpp.

bool idMatX::Inverse_UpdateDecrement ( const idVecX v,
const idVecX w,
int  r 
)

Definition at line 3812 of file Matrix.cpp.

bool idMatX::Inverse_UpdateIncrement ( const idVecX v,
const idVecX w 
)

Definition at line 3787 of file Matrix.cpp.

bool idMatX::Inverse_UpdateRankOne ( const idVecX v,
const idVecX w,
float  alpha 
)

Definition at line 3709 of file Matrix.cpp.

bool idMatX::Inverse_UpdateRowColumn ( const idVecX v,
const idVecX w,
int  r 
)

Definition at line 3753 of file Matrix.cpp.

ID_INLINE idMatX idMatX::InverseFast ( void  ) const

Definition at line 2618 of file Matrix.h.

ID_INLINE bool idMatX::InverseFastSelf ( void  )

Definition at line 2628 of file Matrix.h.

ID_INLINE bool idMatX::InverseSelf ( void  )

Definition at line 2592 of file Matrix.h.

bool idMatX::InverseSelfGeneric ( void  )
private

Definition at line 7159 of file Matrix.cpp.

ID_INLINE bool idMatX::IsDiagonal ( const float  epsilon = MATRIX_EPSILON) const

Definition at line 2480 of file Matrix.h.

ID_INLINE bool idMatX::IsIdentity ( const float  epsilon = MATRIX_EPSILON) const

Definition at line 2467 of file Matrix.h.

bool idMatX::IsOrthogonal ( const float  epsilon = MATRIX_EPSILON) const

Definition at line 3072 of file Matrix.cpp.

bool idMatX::IsOrthonormal ( const float  epsilon = MATRIX_EPSILON) const

Definition at line 3104 of file Matrix.cpp.

bool idMatX::IsPMatrix ( const float  epsilon = MATRIX_EPSILON) const

Definition at line 3147 of file Matrix.cpp.

bool idMatX::IsPositiveDefinite ( const float  epsilon = MATRIX_EPSILON) const

Definition at line 3227 of file Matrix.cpp.

bool idMatX::IsPositiveSemiDefinite ( const float  epsilon = MATRIX_EPSILON) const

Definition at line 3301 of file Matrix.cpp.

bool idMatX::IsSquare ( void  ) const
inline

Definition at line 1844 of file Matrix.h.

ID_INLINE bool idMatX::IsSymmetric ( const float  epsilon = MATRIX_EPSILON) const

Definition at line 2512 of file Matrix.h.

bool idMatX::IsSymmetricPositiveDefinite ( const float  epsilon = MATRIX_EPSILON) const

Definition at line 3277 of file Matrix.cpp.

bool idMatX::IsSymmetricPositiveSemiDefinite ( const float  epsilon = MATRIX_EPSILON) const

Definition at line 3366 of file Matrix.cpp.

ID_INLINE bool idMatX::IsTriDiagonal ( const float  epsilon = MATRIX_EPSILON) const

Definition at line 2493 of file Matrix.h.

ID_INLINE bool idMatX::IsZero ( const float  epsilon = MATRIX_EPSILON) const

Definition at line 2455 of file Matrix.h.

bool idMatX::IsZMatrix ( const float  epsilon = MATRIX_EPSILON) const

Definition at line 3202 of file Matrix.cpp.

bool idMatX::LDLT_Factor ( void  )

Definition at line 5750 of file Matrix.cpp.

void idMatX::LDLT_Inverse ( idMatX inv) const

Definition at line 6162 of file Matrix.cpp.

void idMatX::LDLT_MultiplyFactors ( idMatX m) const

Definition at line 6212 of file Matrix.cpp.

void idMatX::LDLT_Solve ( idVecX x,
const idVecX b 
) const

Definition at line 6124 of file Matrix.cpp.

void idMatX::LDLT_UnpackFactors ( idMatX L,
idMatX D 
) const

Definition at line 6191 of file Matrix.cpp.

bool idMatX::LDLT_UpdateDecrement ( const idVecX v,
int  r 
)

Definition at line 6087 of file Matrix.cpp.

bool idMatX::LDLT_UpdateIncrement ( const idVecX v)

Definition at line 6041 of file Matrix.cpp.

bool idMatX::LDLT_UpdateRankOne ( const idVecX v,
float  alpha,
int  offset = 0 
)

Definition at line 5795 of file Matrix.cpp.

bool idMatX::LDLT_UpdateRowColumn ( const idVecX v,
int  r 
)

Definition at line 5847 of file Matrix.cpp.

bool idMatX::LowerTriangularInverse ( void  )

Definition at line 3383 of file Matrix.cpp.

bool idMatX::LU_Factor ( int index,
float det = NULL 
)

Definition at line 3863 of file Matrix.cpp.

void idMatX::LU_Inverse ( idMatX inv,
const int index 
) const

Definition at line 4344 of file Matrix.cpp.

void idMatX::LU_MultiplyFactors ( idMatX m,
const int index 
) const

Definition at line 4396 of file Matrix.cpp.

void idMatX::LU_Solve ( idVecX x,
const idVecX b,
const int index 
) const

Definition at line 4308 of file Matrix.cpp.

void idMatX::LU_UnpackFactors ( idMatX L,
idMatX U 
) const

Definition at line 4373 of file Matrix.cpp.

bool idMatX::LU_UpdateDecrement ( const idVecX v,
const idVecX w,
const idVecX u,
int  r,
int index 
)

Definition at line 4219 of file Matrix.cpp.

bool idMatX::LU_UpdateIncrement ( const idVecX v,
const idVecX w,
int index 
)

Definition at line 4170 of file Matrix.cpp.

bool idMatX::LU_UpdateRankOne ( const idVecX v,
const idVecX w,
float  alpha,
int index 
)

Definition at line 3947 of file Matrix.cpp.

bool idMatX::LU_UpdateRowColumn ( const idVecX v,
const idVecX w,
int  r,
int index 
)

Definition at line 4022 of file Matrix.cpp.

ID_INLINE float idMatX::MaxDifference ( const idMatX m) const

Definition at line 2437 of file Matrix.h.

ID_INLINE idVecX idMatX::Multiply ( const idVecX vec) const

Definition at line 2655 of file Matrix.h.

ID_INLINE idMatX idMatX::Multiply ( const idMatX a) const

Definition at line 2669 of file Matrix.h.

ID_INLINE void idMatX::Multiply ( idVecX dst,
const idVecX vec 
) const

Definition at line 2711 of file Matrix.h.

ID_INLINE void idMatX::Multiply ( idMatX dst,
const idMatX a 
) const

Definition at line 2843 of file Matrix.h.

ID_INLINE void idMatX::MultiplyAdd ( idVecX dst,
const idVecX vec 
) const

Definition at line 2733 of file Matrix.h.

ID_INLINE void idMatX::MultiplySub ( idVecX dst,
const idVecX vec 
) const

Definition at line 2755 of file Matrix.h.

ID_INLINE void idMatX::Negate ( void  )

Definition at line 2358 of file Matrix.h.

ID_INLINE bool idMatX::operator!= ( const idMatX a) const

Definition at line 2243 of file Matrix.h.

ID_INLINE idMatX idMatX::operator* ( const float  a) const

Definition at line 2070 of file Matrix.h.

ID_INLINE idVecX idMatX::operator* ( const idVecX vec) const

Definition at line 2086 of file Matrix.h.

ID_INLINE idMatX idMatX::operator* ( const idMatX a) const

Definition at line 2100 of file Matrix.h.

ID_INLINE idMatX & idMatX::operator*= ( const float  a)

Definition at line 2148 of file Matrix.h.

ID_INLINE idMatX & idMatX::operator*= ( const idMatX a)

Definition at line 2162 of file Matrix.h.

ID_INLINE idMatX idMatX::operator+ ( const idMatX a) const

Definition at line 2114 of file Matrix.h.

ID_INLINE idMatX & idMatX::operator+= ( const idMatX a)

Definition at line 2168 of file Matrix.h.

ID_INLINE idMatX idMatX::operator- ( const idMatX a) const

Definition at line 2131 of file Matrix.h.

ID_INLINE idMatX & idMatX::operator-= ( const idMatX a)

Definition at line 2183 of file Matrix.h.

ID_INLINE idMatX & idMatX::operator= ( const idMatX a)

Definition at line 2059 of file Matrix.h.

ID_INLINE bool idMatX::operator== ( const idMatX a) const

Definition at line 2239 of file Matrix.h.

ID_INLINE const float * idMatX::operator[] ( int  index) const

Definition at line 2049 of file Matrix.h.

ID_INLINE float * idMatX::operator[] ( int  index)

Definition at line 2054 of file Matrix.h.

float idMatX::Pythag ( float  a,
float  b 
) const
private

Definition at line 4870 of file Matrix.cpp.

bool idMatX::QL ( idVecX diag,
idVecX subd 
)
private

Definition at line 6442 of file Matrix.cpp.

bool idMatX::QR_Factor ( idVecX c,
idVecX d 
)

Definition at line 4435 of file Matrix.cpp.

void idMatX::QR_Inverse ( idMatX inv,
const idVecX c,
const idVecX d 
) const

Definition at line 4764 of file Matrix.cpp.

void idMatX::QR_MultiplyFactors ( idMatX m,
const idVecX c,
const idVecX d 
) const

Definition at line 4830 of file Matrix.cpp.

void idMatX::QR_Rotate ( idMatX R,
int  i,
float  a,
float  b 
)
private

Definition at line 4504 of file Matrix.cpp.

void idMatX::QR_Solve ( idVecX x,
const idVecX b,
const idVecX c,
const idVecX d 
) const

Definition at line 4694 of file Matrix.cpp.

void idMatX::QR_Solve ( idVecX x,
const idVecX b,
const idMatX R 
) const

Definition at line 4737 of file Matrix.cpp.

void idMatX::QR_UnpackFactors ( idMatX Q,
idMatX R,
const idVecX c,
const idVecX d 
) const

Definition at line 4793 of file Matrix.cpp.

bool idMatX::QR_UpdateDecrement ( idMatX R,
const idVecX v,
const idVecX w,
int  r 
)

Definition at line 4659 of file Matrix.cpp.

bool idMatX::QR_UpdateIncrement ( idMatX R,
const idVecX v,
const idVecX w 
)

Definition at line 4631 of file Matrix.cpp.

bool idMatX::QR_UpdateRankOne ( idMatX R,
const idVecX v,
const idVecX w,
float  alpha 
)

Definition at line 4547 of file Matrix.cpp.

bool idMatX::QR_UpdateRowColumn ( idMatX R,
const idVecX v,
const idVecX w,
int  r 
)

Definition at line 4598 of file Matrix.cpp.

ID_INLINE void idMatX::Random ( int  seed,
float  l = 0.0f,
float  u = 1.0f 
)

Definition at line 2333 of file Matrix.h.

ID_INLINE void idMatX::Random ( int  rows,
int  columns,
int  seed,
float  l = 0.0f,
float  u = 1.0f 
)

Definition at line 2345 of file Matrix.h.

idMatX & idMatX::RemoveColumn ( int  r)

Definition at line 3020 of file Matrix.cpp.

idMatX & idMatX::RemoveRow ( int  r)

Definition at line 3001 of file Matrix.cpp.

idMatX & idMatX::RemoveRowColumn ( int  r)

Definition at line 3040 of file Matrix.cpp.

ID_INLINE void idMatX::Set ( int  rows,
int  columns,
const float src 
)

Definition at line 2018 of file Matrix.h.

ID_INLINE void idMatX::Set ( const idMat3 m1,
const idMat3 m2 
)

Definition at line 2023 of file Matrix.h.

ID_INLINE void idMatX::Set ( const idMat3 m1,
const idMat3 m2,
const idMat3 m3,
const idMat3 m4 
)

Definition at line 2035 of file Matrix.h.

ID_INLINE void idMatX::SetData ( int  rows,
int  columns,
float data 
)

Definition at line 2278 of file Matrix.h.

ID_INLINE void idMatX::SetSize ( int  rows,
int  columns 
)

Definition at line 2247 of file Matrix.h.

ID_INLINE void idMatX::SetTempSize ( int  rows,
int  columns 
)
private

Definition at line 2262 of file Matrix.h.

ID_INLINE void idMatX::SquareSubMatrix ( const idMatX m,
int  size 
)

Definition at line 2428 of file Matrix.h.

ID_INLINE const idVec6 & idMatX::SubVec6 ( int  row) const

Definition at line 2911 of file Matrix.h.

ID_INLINE idVec6 & idMatX::SubVec6 ( int  row)

Definition at line 2916 of file Matrix.h.

ID_INLINE const idVecX idMatX::SubVecX ( int  row) const

Definition at line 2921 of file Matrix.h.

ID_INLINE idVecX idMatX::SubVecX ( int  row)

Definition at line 2928 of file Matrix.h.

void idMatX::SVD_BiDiag ( idVecX w,
idVecX rv1,
float anorm 
)
private

Definition at line 4893 of file Matrix.cpp.

bool idMatX::SVD_Factor ( idVecX w,
idMatX V 
)

Definition at line 5057 of file Matrix.cpp.

void idMatX::SVD_InitialWV ( idVecX w,
idMatX V,
idVecX rv1 
)
private

Definition at line 4983 of file Matrix.cpp.

void idMatX::SVD_Inverse ( idMatX inv,
const idVecX w,
const idMatX V 
) const

Definition at line 5223 of file Matrix.cpp.

void idMatX::SVD_MultiplyFactors ( idMatX m,
const idVecX w,
const idMatX V 
) const

Definition at line 5260 of file Matrix.cpp.

void idMatX::SVD_Solve ( idVecX x,
const idVecX b,
const idVecX w,
const idMatX V 
) const

Definition at line 5185 of file Matrix.cpp.

ID_INLINE idMatX & idMatX::SwapColumns ( int  r1,
int  r2 
)

Definition at line 2393 of file Matrix.h.

ID_INLINE idMatX & idMatX::SwapRows ( int  r1,
int  r2 
)

Definition at line 2382 of file Matrix.h.

ID_INLINE idMatX & idMatX::SwapRowsColumns ( int  r1,
int  r2 
)

Definition at line 2407 of file Matrix.h.

void idMatX::Test ( void  )
static

Definition at line 7193 of file Matrix.cpp.

ID_INLINE const float * idMatX::ToFloatPtr ( void  ) const

Definition at line 2935 of file Matrix.h.

ID_INLINE float * idMatX::ToFloatPtr ( void  )

Definition at line 2939 of file Matrix.h.

const char * idMatX::ToString ( int  precision = 2) const

Definition at line 3439 of file Matrix.cpp.

ID_INLINE float idMatX::Trace ( void  ) const

Definition at line 2527 of file Matrix.h.

ID_INLINE idMatX idMatX::Transpose ( void  ) const

Definition at line 2562 of file Matrix.h.

ID_INLINE idVecX idMatX::TransposeMultiply ( const idVecX vec) const

Definition at line 2683 of file Matrix.h.

ID_INLINE idMatX idMatX::TransposeMultiply ( const idMatX a) const

Definition at line 2697 of file Matrix.h.

ID_INLINE void idMatX::TransposeMultiply ( idVecX dst,
const idVecX vec 
) const

Definition at line 2777 of file Matrix.h.

ID_INLINE void idMatX::TransposeMultiply ( idMatX dst,
const idMatX a 
) const

Definition at line 2875 of file Matrix.h.

ID_INLINE void idMatX::TransposeMultiplyAdd ( idVecX dst,
const idVecX vec 
) const

Definition at line 2799 of file Matrix.h.

ID_INLINE void idMatX::TransposeMultiplySub ( idVecX dst,
const idVecX vec 
) const

Definition at line 2821 of file Matrix.h.

ID_INLINE idMatX & idMatX::TransposeSelf ( void  )

Definition at line 2577 of file Matrix.h.

void idMatX::TriDiagonal_ClearTriangles ( void  )

Definition at line 6247 of file Matrix.cpp.

void idMatX::TriDiagonal_Inverse ( idMatX inv) const

Definition at line 6304 of file Matrix.cpp.

bool idMatX::TriDiagonal_Solve ( idVecX x,
const idVecX b 
) const

Definition at line 6266 of file Matrix.cpp.

void idMatX::Update_Decrement ( int  r)

Definition at line 3609 of file Matrix.cpp.

void idMatX::Update_Increment ( const idVecX v,
const idVecX w 
)

Definition at line 3557 of file Matrix.cpp.

void idMatX::Update_IncrementSymmetric ( const idVecX v)

Definition at line 3586 of file Matrix.cpp.

void idMatX::Update_RankOne ( const idVecX v,
const idVecX w,
float  alpha 
)

Definition at line 3450 of file Matrix.cpp.

void idMatX::Update_RankOneSymmetric ( const idVecX v,
float  alpha 
)

Definition at line 3472 of file Matrix.cpp.

void idMatX::Update_RowColumn ( const idVecX v,
const idVecX w,
int  r 
)

Definition at line 3500 of file Matrix.cpp.

void idMatX::Update_RowColumnSymmetric ( const idVecX v,
int  r 
)

Definition at line 3528 of file Matrix.cpp.

bool idMatX::UpperTriangularInverse ( void  )

Definition at line 3412 of file Matrix.cpp.

ID_INLINE void idMatX::Zero ( void  )

Definition at line 2291 of file Matrix.h.

ID_INLINE void idMatX::Zero ( int  rows,
int  columns 
)

Definition at line 2299 of file Matrix.h.

Friends And Related Function Documentation

idMatX operator* ( const float  a,
const idMatX m 
)
friend

Definition at line 2198 of file Matrix.h.

idVecX operator* ( const idVecX vec,
const idMatX m 
)
friend

Definition at line 2202 of file Matrix.h.

idVecX& operator*= ( idVecX vec,
const idMatX m 
)
friend

Definition at line 2206 of file Matrix.h.

Member Data Documentation

int idMatX::alloced
private

Definition at line 1972 of file Matrix.h.

float* idMatX::mat
private

Definition at line 1973 of file Matrix.h.

int idMatX::numColumns
private

Definition at line 1971 of file Matrix.h.

int idMatX::numRows
private

Definition at line 1970 of file Matrix.h.

float idMatX::temp
staticprivate

Definition at line 1975 of file Matrix.h.

int idMatX::tempIndex = 0
staticprivate

Definition at line 1977 of file Matrix.h.

float * idMatX::tempPtr = (float *) ( ( (int) idMatX::temp + 15 ) & ~15 )
staticprivate

Definition at line 1976 of file Matrix.h.


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