I am working on a problem that involves semidefinite programming (constrained optimization of fairly large positive definite matrices). The software is written in C++ and calls DSDP 5.8 to solve the SDP problem. It works as advertised on small/medium test problems (up to 200 x 200 matrices, ~$10^5$ constraints), but dies due to indexing errors on larger tasks. The reason is, of course, that the authors of
int variables for indices (and
int-s for indexing arrays) instead of e.g.
long and with the larger problems the 4 byte
int-s eventually overflow.
Before I start modifying a C source that has not been updated since 2006, I thought I might ask the community here: does anyone have, by any chance, a modified version of
DSDP that uses
long for indices (and
size_t for the index arrays)? These types are usually 8 bytes long on modern 64-bit platforms.
My other option would be to swap out
DSDP and use another SDP solver instead. Please understand that I am reluctant to do this because I would have to adapt my software to a new API. Having said that, feel free to recommend open-source SDP solvers for first-order cone programming that can deal with large problems. I am aware of CVXOPT but that is written in Python; and MOSEK is not FOSS as far as I can tell.