Lines Matching refs:matrix

67 namespace matrix {
128 // 2x2 matrix inverse is easy.
133 // Assuming the input matrix is:
160 // From the Wikipedia article on matrix inversion's section on fast 3x3
161 // matrix inversion:
167 // Assuming the input matrix is:
228 * Inversion function which switches on the matrix size.
229 * @warning This function assumes the matrix is invertible. The result is
231 * make sure the matrix is not singular.
234 inline constexpr MATRIX PURE inverse(const MATRIX& matrix) {
236 return (MATRIX::NUM_ROWS == 2) ? fastInverse2<MATRIX>(matrix) :
237 ((MATRIX::NUM_ROWS == 3) ? fastInverse3<MATRIX>(matrix) :
238 gaussJordanInverse<MATRIX>(matrix));
251 "invalid dimension of matrix multiply result.");
253 "invalid dimension of matrix multiply result.");
265 // for now we only handle square matrix transpose
355 } // namespace matrix
380 // matrix *= matrix
384 lhs = matrix::multiply<BASE<T> >(lhs, rhs);
397 // matrix * matrix, result is a matrix of the same type than the lhs matrix
400 return matrix::multiply<BASE<T> >(lhs, rhs);
405 * TMatSquareFunctions implements functions on a matrix of type BASE<T>.
429 friend inline CONSTEXPR BASE<T> PURE inverse(const BASE<T>& matrix) {
430 return matrix::inverse(matrix);
433 return matrix::transpose(m);
436 return matrix::trace(m);
532 * Create a matrix from euler angles using YPR around YXZ respectively
548 * Create a matrix from euler angles using YPR around ZYX respectively
594 return matrix::extractQuat(static_cast<const BASE<T>&>(*this));
629 return matrix::asString(static_cast<const BASE<T>&>(*this));