embotech / ecos

A lightweight conic solver for second-order cone programming.
GNU General Public License v3.0
479 stars 123 forks source link

Add qdldl lin sys solver #211

Open zach401 opened 2 years ago

zach401 commented 2 years ago

Replaced LDL library with QDLDL which is available under an Apache license.

The goal of this change is to remove a dependency on GPL licensed code.

For the most part this was a one-to-one replacement. There were a few breaking changes, however.

Open Questions:


This change is Reviewable

adomahidi commented 2 years ago

Thanks @zach401 for taking a stab at this, very much appreciated.

Some input from my side regarding your questions:

adomahidi commented 2 years ago

Ah and one more thing, any idea why the Appveyor build is failing?

imciner2 commented 2 years ago

Do we want to use a submodule for QDLDL like OSQP, or copy the repository directly, like LDL was previously?

I'd suggest just copying the files for QDLDL into ECOS directly and making a note of which version they are so that you can keep track of if they need to be updated in the future. We decided in OSQP to actually move away from the submodule for QDLDL in the upcoming 1.0 release because it had been a major source of pain for users who just wanted to clone the repo or download a GitHub tarball of the source code (since the default clone is not recursive, and the GitHub-generated tarball doesn't recurse into submodules), so we have had to end up producing our own tarball for users who want the complete code for the latest releases.