Skip to content

Add VectorNonlinearOracle set - #2860

Merged
odow merged 10 commits into
masterfrom
od/VectorNonlinearOracle
Oct 6, 2025
Merged

odow merged 10 commits into
masterfrom
od/VectorNonlinearOracle

Conversation

@odow

@odow odow commented Oct 2, 2025 •

Copy link
Copy Markdown
Member
  • Still need to test a few things, and check that it's okay once I update Ipopt

Basic

  • Add a new AbstractScalarSet or AbstractVectorSet to src/sets.jl
  • If isbitstype(S) == false, implement Base.copy(set::S)
  • If isbitstype(S) == false, implement Base.:(==)(x::S, y::S)
  • If an AbstractVectorSet, implement dimension(set::S), unless the
    dimension is given by set.dimension.

Utilities

  • If an AbstractVectorSet, implement Utilities.set_dot,
    unless the dot product between two vectors in the set is equivalent to
    LinearAlgebra.dot
  • If an AbstractVectorSet, implement Utilities.set_with_dimension in
    src/Utilities/matrix_of_constraints.jl
  • Add the set to the @model macro at the bottom of src/Utilities.model.jl

Documentation

  • Add a docstring, which gives the mathematical definition of the set,
    along with an ## Example block containing a jldoctest
  • Add the docstring to docs/src/reference/standard_form.md
  • Add the set to the relevant table in docs/src/manual/standard_form.md

Tests

  • Define a new _set(::Type{S}) method in src/Test/test_basic_constraint.jl
    and add the name of the set to the list at the bottom of that files
  • If the set has any checks in its constructor, add tests to test/sets.jl

MathOptFormat

  • Open an issue at https://github.com/jump-dev/MathOptFormat to add
    support for the new set {{ replace with link to the issue }}

Optional

  • Implement dual_set(::S) and dual_set_type(::Type{S})
  • Add new tests to the Test submodule exercising your new set
  • Add new bridges to convert your set into more commonly used sets

@odow
odow marked this pull request as ready for review October 3, 2025 03:30
@odow

odow commented Oct 6, 2025

Copy link
Copy Markdown
Member Author

Any objections?

@odow
odow merged commit 95aab34 into master Oct 6, 2025
31 checks passed
@odow
odow deleted the od/VectorNonlinearOracle branch October 6, 2025 20:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants