Lines Matching refs:Matrix

51 class Matrix
64 Matrix (void);
65 explicit Matrix (const T& src);
66 explicit Matrix (const T src[Rows*Cols]);
67 Matrix (const Vector<T, Rows>& src);
68 Matrix (const Matrix<T, Rows, Cols>& src);
69 ~Matrix (void);
71 Matrix<T, Rows, Cols>& operator= (const Matrix<T, Rows, Cols>& src);
72 Matrix<T, Rows, Cols>& operator*= (const Matrix<T, Rows, Cols>& src);
98 Matrix<T, Rows0, Cols1> operator* (const Matrix<T, Rows0, Cols0>& a, const Matrix<T, Rows1, Cols1>& b);
102 Vector<T, Rows> operator* (const Matrix<T, Rows, Cols>& mtx, const Vector<T, Cols>& vec);
106 Vector<T, Cols> operator* (const Vector<T, Rows>& vec, const Matrix<T, Rows, Cols>& mtx);
113 static T doDeterminant (const Matrix<T, Size, Size>& mat);
114 static Matrix<T, Size, Size> doInverse (const Matrix<T, Size, Size>& mat);
120 static T doDeterminant (const Matrix<T, 2, 2>& mat);
121 static Matrix<T, 2, 2> doInverse (const Matrix<T, 2, 2>& mat);
127 static T doDeterminant (const Matrix<T, 3, 3>& mat);
128 static Matrix<T, 3, 3> doInverse (const Matrix<T, 3, 3>& mat);
134 static T doDeterminant (const Matrix<T, 4, 4>& mat);
135 static Matrix<T, 4, 4> doInverse (const Matrix<T, 4, 4>& mat);
142 T determinant (const Matrix<T, Size, Size>& mat)
148 Matrix<T, Size, Size> inverse (const Matrix<T, Size, Size>& mat)
158 T SquareMatrixOps<T, 2>::doDeterminant (const Matrix<T, 2, 2>& mat)
164 T SquareMatrixOps<T, 3>::doDeterminant (const Matrix<T, 3, 3>& mat)
175 T SquareMatrixOps<T, 4>::doDeterminant (const Matrix<T, 4, 4>& mat)
203 return + mat(0,0) * determinant(Matrix<T, 3, 3>(minorMatrices[0]))
204 - mat(0,1) * determinant(Matrix<T, 3, 3>(minorMatrices[1]))
205 + mat(0,2) * determinant(Matrix<T, 3, 3>(minorMatrices[2]))
206 - mat(0,3) * determinant(Matrix<T, 3, 3>(minorMatrices[3]));
210 Matrix<T, 2, 2> SquareMatrixOps<T, 2>::doInverse (const Matrix<T, 2, 2>& mat)
215 Matrix<T, 2, 2> retVal;
226 Matrix<T, 3, 3> SquareMatrixOps<T, 3>::doInverse (const Matrix<T, 3, 3>& mat)
251 const Matrix<T, 2, 2> invA = inverse(Matrix<T, 2, 2>(areaA));
252 const Matrix<T, 2, 1> matB = Matrix<T, 2, 1>(areaB);
253 const Matrix<T, 1, 2> matC = Matrix<T, 1, 2>(areaC);
254 const Matrix<T, 1, 1> matD = Matrix<T, 1, 1>(areaD);
257 const Matrix<T, 2, 2> zeroMat = Matrix<T, 2, 2>(nullField);
259 const Matrix<T, 2, 2> blockA = invA + invA*matB*schurComplement*matC*invA;
260 const Matrix<T, 2, 1> blockB = (zeroMat-invA)*matB*schurComplement;
261 const Matrix<T, 1, 2> blockC = matC*invA*(-schurComplement);
271 return Matrix<T, 3, 3>(result);
275 Matrix<T, 4, 4> SquareMatrixOps<T, 4>::doInverse (const Matrix<T, 4, 4>& mat)
302 const Matrix<T, 2, 2> invA = inverse(Matrix<T, 2, 2>(areaA));
303 const Matrix<T, 2, 2> matB = Matrix<T, 2, 2>(areaB);
304 const Matrix<T, 2, 2> matC = Matrix<T, 2, 2>(areaC);
305 const Matrix<T, 2, 2> matD = Matrix<T, 2, 2>(areaD);
307 const Matrix<T, 2, 2> schurComplement = inverse(matD - matC*invA*matB);
308 const Matrix<T, 2, 2> zeroMat = Matrix<T, 2, 2>(nullField);
310 const Matrix<T, 2, 2> blockA = invA + invA*matB*schurComplement*matC*invA;
311 const Matrix<T, 2, 2> blockB = (zeroMat-invA)*matB*schurComplement;
312 const Matrix<T, 2, 2> blockC = (zeroMat-schurComplement)*matC*invA;
313 const Matrix<T, 2, 2> blockD = schurComplement;
323 return Matrix<T, 4, 4>(result);
328 Matrix<T, Rows, Cols>::Matrix (void)
337 Matrix<T, Rows, Cols>::Matrix (const T& src)
346 Matrix<T, Rows, Cols>::Matrix (const T src[Rows*Cols])
355 Matrix<T, Rows, Cols>::Matrix (const Vector<T, Rows>& src)
365 Matrix<T, Rows, Cols>::Matrix (const Matrix<T, Rows, Cols>& src)
372 Matrix<T, Rows, Cols>::~Matrix (void)
378 Matrix<T, Rows, Cols>& Matrix<T, Rows, Cols>::operator= (const Matrix<T, Rows, Cols>& src)
388 Matrix<T, Rows, Cols>& Matrix<T, Rows, Cols>::operator*= (const Matrix<T, Rows, Cols>& src)
395 void Matrix<T, Rows, Cols>::setRow (int rowNdx, const Vector<T, Cols>& vec)
402 void Matrix<T, Rows, Cols>::setColumn (int colNdx, const Vector<T, Rows>& vec)
408 Vector<T, Cols> Matrix<T, Rows, Cols>::getRow (int rowNdx) const
417 Vector<T, Rows>& Matrix<T, Rows, Cols>::getColumn (int colNdx)
423 const Vector<T, Rows>& Matrix<T, Rows, Cols>::getColumn (int colNdx) const
429 Array<T, Rows*Cols> Matrix<T, Rows, Cols>::getColumnMajorData (void) const
440 Array<T, Rows*Cols> Matrix<T, Rows, Cols>::getRowMajorData (void) const
452 Matrix<T, Rows0, Cols1> operator* (const Matrix<T, Rows0, Cols0>& a, const Matrix<T, Rows1, Cols1>& b)
455 Matrix<T, Rows0, Cols1> res;
471 Vector<T, Rows> operator* (const Matrix<T, Rows, Cols>& mtx, const Vector<T, Cols>& vec)
486 Vector<T, Cols> operator* (const Vector<T, Rows>& vec, const Matrix<T, Rows, Cols>& mtx)
500 typedef Matrix<float, 2, 2> Matrix2f;
501 typedef Matrix<float, 3, 3> Matrix3f;
502 typedef Matrix<float, 4, 4> Matrix4f;
503 typedef Matrix<double, 2, 2> Matrix2d;
504 typedef Matrix<double, 3, 3> Matrix3d;
505 typedef Matrix<double, 4, 4> Matrix4d;
509 typedef Matrix<float, 3, 2> Mat2x3;
510 typedef Matrix<float, 4, 2> Mat2x4;
511 typedef Matrix<float, 2, 3> Mat3x2;
513 typedef Matrix<float, 4, 3> Mat3x4;
514 typedef Matrix<float, 2, 4> Mat4x2;
515 typedef Matrix<float, 3, 4> Mat4x3;
518 // Matrix-scalar operators.
521 Matrix<T, Rows, Cols> operator+ (const Matrix<T, Rows, Cols>& mtx, T scalar)
523 Matrix<T, Rows, Cols> res;
531 Matrix<T, Rows, Cols> operator- (const Matrix<T, Rows, Cols>& mtx, T scalar)
533 Matrix<T, Rows, Cols> res;
541 Matrix<T, Rows, Cols> operator* (const Matrix<T, Rows, Cols>& mtx, T scalar)
543 Matrix<T, Rows, Cols> res;
551 Matrix<T, Rows, Cols> operator/ (const Matrix<T, Rows, Cols>& mtx, T scalar)
553 Matrix<T, Rows, Cols> res;
560 // Matrix-matrix component-wise operators.
563 Matrix<T, Rows, Cols> operator+ (const Matrix<T, Rows, Cols>& a, const Matrix<T, Rows, Cols>& b)
565 Matrix<T, Rows, Cols> res;
573 Matrix<T, Rows, Cols> operator- (const Matrix<T, Rows, Cols>& a, const Matrix<T, Rows, Cols>& b)
575 Matrix<T, Rows, Cols> res;
583 Matrix<T, Rows, Cols> operator/ (const Matrix<T, Rows, Cols>& a, const Matrix<T, Rows, Cols>& b)
585 Matrix<T, Rows, Cols> res;