Skip to content

Making Hypatia more extensible #849

@rcywongaa

Description

@rcywongaa

First of all, thanks for the amazing library!

This is a followup to #839

My understanding is that one of the main features of Hypatia is its ability to model user-specified cones via the generic cone interface. However, at the moment, using a custom cone requires editing and/or duplicating multiple files/functions: src/MathOptInterface/wrapper.jl and src/MathOptInterface/cones.jl which isn't really relevant to the cone.

I'm wondering if we could make it easier to make Hypatia work with custom cones.

I've played around a bit and found that we could make things easier by merging the Cone and MOI.AbstractVectorSet versions of cones together thus only having one Cone interface that also works with MOI.

See #848 for a draft of the minimal changes (not including cleaning up examples, etc.)

This allows users allows to just implement the Cone interface and have stuff work out of the box (it seems).

I understand this is perhaps a substantial change and lots of examples/benchmarks may need to be cleaned up after this change so I'd like to hear your feedback before doing anything else.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions