114{
115 assert(mat.numRows() == mat.numColumns());
116 result_inv.resize(mat.numRows(), mat.numRows());
117
118 assert(result_inv.numRows() == mat.numRows());
119 assert(result_inv.numColumns() == mat.numRows());
120
121 if (mat.numRows() == 0)
122 {
123
124
125 return true;
126 }
127
129 size_t n = mat.numRows();
130 int nullspacedim;
131 FFPACK::Invert2(
132 mat.ring().field(), n, N.rowMajorArray(), n, result_inv.rowMajorArray(), n, nullspacedim);
133 return (nullspacedim == 0);
134}