Right now we have PSDCone. Do we have a JuMP name for every MOI set? Relevant for https://github.com/JuliaOpt/JuMP.jl/pull/1093.
We could also have SOCCone and RSOCCone.
SOCCone = "Second Order Cone Cone"
people don't care that it's a cone. they care that it's the epigraph of the L2-norm. same goes for PSDCone - all that's needed is "PSD" or "PSDmatrix"
and to me, in modeling, the RSOC is just kind of stupid. it's usually used for the epigraph of the perspective of the square function, which is much more natural to model with.
i'm fine with just using the MOI names. there should be a DCP package built on top of jump so people can model with simple functions, perspectives etc
SOCCone and RSOCCone are not really convincing. If we can't come up with elegant names then might as well just use the MOI names for clarity.
What might help is allowing people to drop the dimension argument and let JuMP infer it.
We could probably do something like
@constraint m fun in SecondOrderCone
and in th e macro we do SecondOrderCone(fun).
We simply need to define SecondOrderCone(f::VectorAffineFunction) = SecondOrderCone(length(f.constant)) and it would work.
For the names, the user would probably do const PSDC = PositiveSemidefiniteConeTriangle and const SOC = SecondOrderCone in his code. We could probably add these aliases in JuMP but not sure.
Most helpful comment
SOCCone = "Second Order Cone Cone"