added determinant() to util/Matrix module
git-svn-id: svn://anubis/fart/trunk@10 7f9b0f55-74a9-4bce-be96-3c2cd072584d
This commit is contained in:
parent
f63a1b8c3c
commit
aec4a17e45
@ -14,6 +14,39 @@ Matrix Matrix::identity()
|
||||
return res;
|
||||
}
|
||||
|
||||
double Matrix::determinant()
|
||||
{
|
||||
return m_matrix[0][0]*m_matrix[1][1]*m_matrix[2][2]*m_matrix[3][3]
|
||||
+ m_matrix[0][0]*m_matrix[1][2]*m_matrix[2][3]*m_matrix[3][1]
|
||||
+ m_matrix[0][0]*m_matrix[1][3]*m_matrix[2][1]*m_matrix[3][2]
|
||||
+ m_matrix[0][1]*m_matrix[1][0]*m_matrix[2][3]*m_matrix[3][2]
|
||||
|
||||
+ m_matrix[0][1]*m_matrix[1][2]*m_matrix[2][0]*m_matrix[3][3]
|
||||
+ m_matrix[0][1]*m_matrix[1][3]*m_matrix[2][2]*m_matrix[3][0]
|
||||
+ m_matrix[0][2]*m_matrix[1][0]*m_matrix[2][1]*m_matrix[3][3]
|
||||
+ m_matrix[0][2]*m_matrix[1][1]*m_matrix[2][3]*m_matrix[3][0]
|
||||
|
||||
+ m_matrix[0][2]*m_matrix[1][3]*m_matrix[2][0]*m_matrix[3][1]
|
||||
+ m_matrix[0][3]*m_matrix[1][0]*m_matrix[2][2]*m_matrix[3][1]
|
||||
+ m_matrix[0][3]*m_matrix[1][1]*m_matrix[2][0]*m_matrix[3][2]
|
||||
+ m_matrix[0][3]*m_matrix[1][2]*m_matrix[2][1]*m_matrix[3][0]
|
||||
|
||||
- m_matrix[0][0]*m_matrix[1][1]*m_matrix[2][3]*m_matrix[3][2]
|
||||
- m_matrix[0][0]*m_matrix[1][2]*m_matrix[2][1]*m_matrix[3][3]
|
||||
- m_matrix[0][0]*m_matrix[1][3]*m_matrix[2][2]*m_matrix[3][1]
|
||||
- m_matrix[0][1]*m_matrix[1][0]*m_matrix[2][2]*m_matrix[3][3]
|
||||
|
||||
- m_matrix[0][1]*m_matrix[1][2]*m_matrix[2][3]*m_matrix[3][0]
|
||||
- m_matrix[0][1]*m_matrix[1][3]*m_matrix[2][0]*m_matrix[3][2]
|
||||
- m_matrix[0][2]*m_matrix[1][0]*m_matrix[2][3]*m_matrix[3][1]
|
||||
- m_matrix[0][2]*m_matrix[1][1]*m_matrix[2][0]*m_matrix[3][3]
|
||||
|
||||
- m_matrix[0][2]*m_matrix[1][3]*m_matrix[2][1]*m_matrix[3][0]
|
||||
- m_matrix[0][3]*m_matrix[1][0]*m_matrix[2][1]*m_matrix[3][2]
|
||||
- m_matrix[0][3]*m_matrix[1][1]*m_matrix[2][2]*m_matrix[3][0]
|
||||
- m_matrix[0][3]*m_matrix[1][2]*m_matrix[2][0]*m_matrix[3][1];
|
||||
}
|
||||
|
||||
Matrix operator*(const Matrix & m1, const Matrix & m2)
|
||||
{
|
||||
Matrix res;
|
||||
|
@ -11,6 +11,7 @@ class Matrix
|
||||
Matrix_row_t & operator[](int idx) { return m_matrix[idx]; }
|
||||
const Matrix_row_t & operator[](int idx) const { return m_matrix[idx]; }
|
||||
static Matrix identity();
|
||||
double determinant();
|
||||
|
||||
protected:
|
||||
double m_matrix[4][4];
|
||||
|
Loading…
x
Reference in New Issue
Block a user