42 using namespace Eigen;
43 Matrix<int,Dynamic,1> nnz_row (a.nrow());
45 for (
size_type i = 0, q = 0, n = a.nrow(); i < n; ++i) {
46 nnz_row[i] = ia[i+1] - ia[i];
48 SparseMatrix<T> a_tmp (a.nrow(),a.ncol());
49 a_tmp.reserve (nnz_row);
50 for (
size_type i = 0, n = a.nrow(); i < n; ++i) {
52 a_tmp.insert (i, (*p).first) = (*p).second;
55 a_tmp.makeCompressed();
56 _llt_a.compute (a_tmp);
57 check_macro (_llt_a.info() == Success,
"cholmod LLt factorization failed: non-positive definite matrix");
60 if (base::option().compute_determinant) {
61 T det_a = _llt_a.determinant();
63 _det.exponant = _llt_a.logDeterminant() / log(
T(10));
check_macro(expr1.have_homogeneous_space(Xh1), "dual(expr1,expr2); expr1 should have homogeneous space. HINT: use dual(interpolate(Xh, expr1),expr2)")