Fix stupid sparse bugs with outerSize == 0

This commit is contained in:
Charles Schlosser
2023-01-28 02:03:09 +00:00
parent 0471e61b4c
commit 6987a200bb
2 changed files with 22 additions and 48 deletions

View File

@@ -60,14 +60,14 @@ class SparseCompressedBase
/** \returns the number of non zero coefficients */
inline Index nonZeros() const
{
if(Derived::IsVectorAtCompileTime && outerIndexPtr()==0)
return derived().nonZeros();
else if(isCompressed())
return outerIndexPtr()[derived().outerSize()]-outerIndexPtr()[0];
else if(derived().outerSize()==0)
return 0;
else
return innerNonZeros().sum();
if (Derived::IsVectorAtCompileTime && outerIndexPtr() == 0)
return derived().nonZeros();
else if (derived().outerSize() == 0)
return 0;
else if (isCompressed())
return outerIndexPtr()[derived().outerSize()] - outerIndexPtr()[0];
else
return innerNonZeros().sum();
}
/** \returns a const pointer to the array of values.