Open zach401 opened 2 years ago
Thanks @zach401 for taking a stab at this, very much appreciated.
Some input from my side regarding your questions:
eps
and delta
parameters hints at QDLDL not having dynamic regularization. We'd need to investigate the effect of not having this; in certain numerically challenging situations, this could help robustness. It's not hard to introduce, but would need adapting (a version of) QDLDL..a
or .so
fileAh and one more thing, any idea why the Appveyor build is failing?
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.
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.
tfactor_t1
andtrfactor_t2
which stored the time spend computing the sparsity pattern and time spend on the numerical solve respectively.long long
instead oflong
for consistency with QDLDL. If we prefer, we could update QDLDL to uselong
instead.eps
ordelta
arguments, so they have been removed.test/exponential/log_ax_x.h
, while the original test required an absolute error of<1e-11
the new linear system solver produced an absolute error<1.3e-11
.Open Questions:
This change is