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 float * operator[] (int index) const
 
float * operator[] (int index)
 
idMatX & operator= (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
 
idMatX & operator*= (const float a)
 
idMatX & operator*= (const idMatX &a)
 
idMatX & operator+= (const idMatX &a)
 
idMatX & operator-= (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)
 
idMatX & SwapRows (int r1, int r2)
 
idMatX & SwapColumns (int r1, int r2)
 
idMatX & SwapRowsColumns (int r1, int r2)
 
idMatX & RemoveRow (int r)
 
idMatX & RemoveColumn (int r)
 
idMatX & RemoveRowColumn (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
 
idMatX & TransposeSelf (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 idVec6 & SubVec6 (int row) const
 
idVec6 & SubVec6 (int row)
 
const idVecX SubVecX (int row) const
 
idVecX SubVecX (int row)
 
const float * ToFloatPtr (void) const
 
float * ToFloatPtr (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
 
float * mat
 

Static Private Attributes

static float temp [MATX_MAX_TEMP+4]
 
static float * tempPtr = (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)
 
idVecX & operator*= (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: