-
Notifications
You must be signed in to change notification settings - Fork 25
add MOI interface for complex PSD cone #315
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Now everything is working, except that JuMP doesn't want to use the new cone! I have to explicitly remove the inefficient bridge via |
|
You can tweak the bridging cost to make that your bridges are preferred over the inefficient one. MOI.Bridges.bridging_cost(::Type{<:YourBridge}) = 0.1 |
|
That was it, thanks a lot. |
blegat
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, the buildkit failure is unrelated
|
@araujoms the only question that comes to my mind is: Is the interface/bridge really covered by the tests? I can only see a set of tests removed in this PR :D |
|
That was a list of the MOI tests to be excluded, so by removing it I'm actually adding it =) But the honest answer to your question is that I don't know. I assume MOI has plenty of tests already for the complex PSD cone. If that's not the case I'm happy to write one. I did add a test of the low-level interface in a previous PR. |
|
Now that the bridging costs are lowered, it should be used by the MOI tests. |
odow
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm happy if @blegat is happy
I've added a MOI interface for the complex PSD cone according to the design @blegat suggested here, adding the sets
ScaledComplexPSDConeandComplexPositiveSemidefiniteConeTriangleand using the chain of bridgesMOI.HermitianPositiveSemidefiniteConeTriangle->ComplexPositiveSemidefiniteConeTriangle->MOI.Scaled{ComplexPositiveSemidefiniteConeTriangle}->ScaledComplexPSDCone.Still missing is the middle part
ComplexPositiveSemidefiniteConeTriangle->MOI.Scaled{ComplexPositiveSemidefiniteConeTriangle}, which I don't know how to do, but I expect it will be rather simple. I added the functionsset_dotandset_coefficientsforComplexPositiveSemidefiniteConeTriangle, which I assume are necessary forMOI.Scaledto work.