Registered Member
|
I'm using version 3.1.0.a2 for some sparse linear algebra, and I'm building a sparse matrix from a triplet set with setFromTriplets().
If I compile in release mode everything seem to work fine. If I compile in debug mod and run my program, an assertion within eigen is triggered within SparseMatrix.h (l. 385) : Assertion `(m_outerIndex[outer+1]-m_outerIndex[outer]==0 || m_data.index(m_data.size()-1)<inner) && "Invalid ordered insertion (invalid inner index)"' failed. So it complains that the ordering of my insertion is wrong, but I thought the ordering did not matter when I used setFromTriplets. The assertion gets triggered at the second line in the following code:
Any ideas? Best, Jens |
Moderator
|
maybe you could try the rc1 release to see if the issue is still there. (note that SimplicialLDLt has been renamed SimplicialLDLT and same for SimplicialLLt -> SimplicialLDLT)
|
Registered Member
|
Thanks.
The reason for the assertion being triggered was not the insertion order but that my matrix was not spd (!). I guess the factorizer just gets stuck and throws this error when that happens. I was just confused by the error message ... Jens |
Moderator
|
I see, you can check for such errors at runtime with:
solver.info()==Eigen::Success |
Registered users: Baidu [Spider], Bing [Bot], Google [Bot], rblackwell