14 inline const internal::adjugate_impl<Derived> adjugate()
const;
16 inline void adjugateInPlace();
18 typedef BlockDiag<Derived,Dynamic> BlockDiagReturnType;
19 inline const BlockDiagReturnType blockDiag(Index rowFactor)
const;
21 typedef BlockTranspose<Derived,Dynamic> BlockTransposeReturnType;
22 inline const BlockTransposeReturnType blockTranspose(Index rowFactor)
const;
24 template<
typename IndicesType>
25 const RowSelection<Derived,IndicesType> selectRows(
const IndicesType & ind)
const;
33 Derived & M = derived();
40 while (piv!= nc && 0 == M(r, piv)) ++piv;
41 if (piv == nc )
continue;
45 M.block(r+1, piv+1, br, bc).noalias() -=
46 M.col(piv).tail(br) * M.row(r).tail(bc) / M(r, piv);
47 M.col(piv).tail(br).setZero();
57 const Derived & M = derived();
58 eigen_assert(M.rows() == M.cols() &&
"Matrix is not square.");
60 Matrix<Scalar, Dynamic, Dynamic> rvo1(M.rows(), M.rows());
64 rvo1 = M.template topLeftCorner<1, 1>().inverse();
67 rvo1 = M.template topLeftCorner<2, 2>().inverse();
70 rvo1 = M.template topLeftCorner<3, 3>().inverse();
73 rvo1 = M.template topLeftCorner<4, 4>().inverse();
76 gsWarn<<
"Inversion by LU for matrix of size "<<M.rows()<<
"\n";
void gaussElim()
Simple (inplace) Gauss elimination without any pivoting.
Definition: gsMatrixAddons.h:31
void cramerInverseInPlace()
Inplace inversion for small matrices using Cramer's Rule.
Definition: gsMatrixAddons.h:86
Matrix< Scalar, Dynamic, Dynamic > cramerInverse() const
Inversion for small matrices using Cramer's Rule.
Definition: gsMatrixAddons.h:55
#define index_t
Definition: gsConfig.h:32
#define gsWarn
Definition: gsDebug.h:50