add DualGeometricMeanCone and bridge - #3041
Merged
Merged
Conversation
araujoms
marked this pull request as draft
August 7, 2026 14:35
blegat
reviewed
Aug 7, 2026
Member
|
I guess you see now why we've only added sets when they became needed. It's a lot of work! |
Contributor
Author
|
Indeed. I intend to add the dual vector relative entropy cone as well, but I don't use the other cones so I'll leave them for when they're needed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #3037
I've added the set, related tests, and the bridge. Still missing are the bridge tests; I'm submitting the PR prematurely because it's already getting big and I'm getting nervous about losing stuff.
I also didn't add support in the file format, I don't know if that's desired.
Basic
AbstractScalarSetorAbstractVectorSettosrc/sets.jlisbitstype(S) == false, implementBase.copy(set::S)isbitstype(S) == false, implementBase.:(==)(x::S, y::S)AbstractVectorSet, implementdimension(set::S), unless thedimension is given by
set.dimension.Utilities
AbstractVectorSet, implementUtilities.set_dot,unless the dot product between two vectors in the set is equivalent to
LinearAlgebra.dotAbstractVectorSet, implementUtilities.set_with_dimensioninsrc/Utilities/matrix_of_constraints.jl@modelmacro at the bottom ofsrc/Utilities.model.jlDocumentation
along with an
## Exampleblock containing ajldoctestdocs/src/reference/standard_form.mddocs/src/manual/standard_form.mdTests
_set(::Type{S})method insrc/Test/test_basic_constraint.jland add the name of the set to the list at the bottom of that files
test/sets.jlMathOptFormat
https://github.com/jump-dev/MathOptFormatto addsupport for the new set New sets MathOptFormat#37
Optional
dual_set(::S)anddual_set_type(::Type{S})Testsubmodule exercising your new set