eigen_assert(m_factorizationIsOk&&"The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
eigen_assert(m_factorizationIsOk&&"The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
constIndexsize=m_cholmodFactor->n;
constIndexsize=m_cholmodFactor->n;
EIGEN_UNUSED_VARIABLE(size);
EIGEN_UNUSED_VARIABLE(size);
eigen_assert(size==b.rows());
eigen_assert(size==b.rows());
// Cholmod needs column-major stoarge without inner-stride, which corresponds to the default behavior of Ref.
eigen_assert(m_factorizationIsOk&&"The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
eigen_assert(m_factorizationIsOk&&"The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
constIndexsize=m_cholmodFactor->n;
constIndexsize=m_cholmodFactor->n;
...
@@ -320,14 +314,16 @@ class CholmodBase : internal::noncopyable
...
@@ -320,14 +314,16 @@ class CholmodBase : internal::noncopyable
@@ -344,10 +340,61 @@ class CholmodBase : internal::noncopyable
...
@@ -344,10 +340,61 @@ class CholmodBase : internal::noncopyable
*/
*/
Derived&setShift(constRealScalar&offset)
Derived&setShift(constRealScalar&offset)
{
{
m_shiftOffset[0]=offset;
m_shiftOffset[0]=double(offset);
returnderived();
returnderived();
}
}
/** \returns the determinant of the underlying matrix from the current factorization */
Scalardeterminant()const
{
usingstd::exp;
returnexp(logDeterminant());
}
/** \returns the log determinant of the underlying matrix from the current factorization */
ScalarlogDeterminant()const
{
usingstd::log;
usingnumext::real;
eigen_assert(m_factorizationIsOk&&"The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");