-
Notifications
You must be signed in to change notification settings - Fork 270
Open
Description
Calling optimize() with an SDP problem from the SemidefiniteProgramming package can throw errors even when the instance is well-formed and feasible. For instance, the script:
loadPackage "SemidefiniteProgramming";
optimize(sdp(matrix{{0, 0}, {0, 1}}, 1:matrix{{1, 0}, {0, 0}}, matrix{{1}}), Solver=>"M2");
throws the error:
/usr/share/Macaulay2/Core/robust.m2:101:30:(1):[22]: error: no method for binary operator * applied to objects:
null (of class Nothing)
* | 1 0 | (of class Matrix)
| 0 0 |
/usr/share/Macaulay2/SemidefiniteProgramming.m2:531:48:(2):[21]: --back trace--
/usr/share/Macaulay2/Core/lists.m2:326:62:(1):[20]: --back trace--
/usr/share/Macaulay2/Core/lists.m2:326:49:(1):[19]: --back trace--
/usr/share/Macaulay2/Core/lists.m2:326:32:(1):[18]: --back trace--
/usr/share/Macaulay2/Core/matrix1.m2:30:18:(1):[17]: --back trace--
/usr/share/Macaulay2/Core/methods.m2:154:98:(1):[15]: --back trace--
/usr/share/Macaulay2/Core/option.m2:17:14:(1):[14]: --back trace--
/usr/share/Macaulay2/SemidefiniteProgramming.m2:531:20:(2):[13]: --back trace--
/usr/share/Macaulay2/Core/option.m2:17:14:(1):[12]: --back trace--
/usr/share/Macaulay2/SemidefiniteProgramming.m2:494:42:(2):[11]: --back trace--
/usr/share/Macaulay2/Core/option.m2:17:14:(1):[10]: --back trace--
/usr/share/Macaulay2/SemidefiniteProgramming.m2:392:37:(2):[9]: --back trace--
/usr/share/Macaulay2/Core/methods.m2:154:98:(1):[8]: --back trace--
example.m2:2:8:(3):[6]: --back trace--
/usr/share/Macaulay2/Core/startup.m2:65:23:(0):[6]: --back trace--
/usr/share/Macaulay2/Core/Core.m2:131:28:(1):[5]: --back trace--
/usr/share/Macaulay2/Core/Core.m2:127:13:(1):[3]: --back trace--
/usr/share/Macaulay2/Core/Core.m2:138:29:(1):[2]: --back trace--
/usr/share/Macaulay2/Core/startup.m2:533:66:(0):[1]: --back trace--
/usr/share/Macaulay2/Core/startup.m2:623:30:(0): --back trace--
I ran into this error while trying to use the lowerBound() function from the SumsOfSquares package, which internally constructs a similar instance:
loadPackage "SumsOfSquares";
QQ[x];
lowerBound(x^2, RoundTol=>infinity, Solver=>"M2");
This is with M2 version 1.25.11 from ppa:macaulay2/macaulay2 on Ubuntu 24.04.
EDIT: I've added the Solver=>"M2" option to the example inputs for better reproducibility.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels