ds4dm / Tulip.jl

Interior-point solver in pure Julia
Other
154 stars 20 forks source link

Is there a fresher reference for how HSD implementation currently works? #148

Closed pratyai closed 2 months ago

pratyai commented 2 months ago

Currently, the reference paper for Tulip is this AFAIK. However, I see some differences in the actual implementation, as follows:

I looked a bit through the commit history and their messages are not particularly insightful on this matter either. I imagine that these differences were introduce organically during the development of Tulip.

Has there been any paper / documentation / publicly accessible communication for the differences or how the current implementation is formulated?

Thanks!

mtanneau commented 2 months ago

Thanks for using Tulip and for reaching out about this :)

In what follows, all the equations number refer to the arxiv preprint.

The rationale behind most of this was that 1) the code was structured around a KKT module that solves augmented systems, and 2) I tried to minimize the number of redundant linear system solves.

pratyai commented 2 months ago

Thank you so much! Indeed the matter of the number of calls to KKT.solve! is quite clear after your explanation. I missed the fact that (64) is fixed for all the steps, and the preliminary step is computing just that. The hx, hy, h0 variables are also clear now.