Ticket #1725 (closed enhancement: fixed)

Opened 8 years ago

Last modified 8 years ago

Robustify QP solver in meas/multifit

Reported by: jbosch Owned by: jbosch
Priority: normal Milestone:
Component: meas_multifit Keywords:
Cc: dubcovsky, jbosch, rhl Blocked By:
Blocking: Project: LSST
Version Number:
How to repeat:

not applicable

Description

meas/multifit is using a Cholesky-based QP solver to handle linear least-squares problems with inequality constraints, and this doesn't work for semidefinite problems (which occur a lot when fitting point sources). Need to get into the guts of the solver and replace the Cholesky decompositions with something that can handle semidefinite matrices (considering Eigen's limitations, probably a full spectral decomposition).

Change History

comment:1 Changed 8 years ago by DefaultCC Plugin

  • Cc dubcovsky, jbosch, rhl added

comment:2 Changed 8 years ago by jbosch

  • Status changed from new to closed
  • Resolution set to fixed

Merged to trunk in r22862:

  • The QP solver itself has been cleaned up considerably: it now uses Eigen for almost all BLAS-2-style operations, and the goto statements inherited from QuadProg++ have been happily replaced with while loops.
  • QP solver still doesn't handle indefinite matrices itself, but Evaluation now does an SVD in advance to project out degenerate directions, and the QP solver has been customized for diagonal matrices to make sure we don't spend cycles doing Cholesky decompositions after we've already done an SVD.
  • Evaluation has been cleaned up: polymorphic linear solvers are gone, and it can now compute covariance matrices directly using the same SVD it uses to feed the QP solver.
Note: See TracTickets for help on using tickets.