osqp / qdldl

A free LDL factorisation routine
Apache License 2.0
79 stars 39 forks source link

etree counting error for very large matrices #24

Closed goulart-paul closed 5 years ago

goulart-paul commented 5 years ago

If QDLDL is compiled without long integer types, then it is possible for the elimination tree calculation to return a negative or otherwise incorrect non-zero count due to integer overflow when the matrix being factored is very large.

The etree function should be modified to ensure that the Lnz count is monotonically increasing and non-negative in etree to protect against overflow.

This problem manifests itself in particular on QPLIB 9008.