Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 11 additions & 4 deletions src/bridges.jl
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,13 @@ function MOI.set(
return MOI.set(model, ForwardConstraintFunction(), bridge.constraint, value)
end

# We use the `MOI.Utilities` API so what we do should work
# both on `MOI.AbstractFunction` and on `Vector{Float64}`
const _GettableConstraintAttribute = Union{
ReverseConstraintFunction,
ForwardConstraintDual,
}

function MOI.set(
model::MOI.ModelLike,
attr::ForwardConstraintFunction,
Expand All @@ -60,7 +67,7 @@ end

function MOI.get(
model::MOI.ModelLike,
attr::ReverseConstraintFunction,
attr::_GettableConstraintAttribute,
bridge::MOI.Bridges.Constraint.VectorizeBridge,
)
return MOI.Utilities.eachscalar(
Expand All @@ -80,15 +87,15 @@ end

function MOI.get(
model::MOI.ModelLike,
attr::ReverseConstraintFunction,
attr::_GettableConstraintAttribute,
bridge::MOI.Bridges.Constraint.ScalarizeBridge,
)
return _vectorize(MOI.get.(model, attr, bridge.scalar_constraints))
end

function MOI.get(
model::MOI.ModelLike,
attr::DiffOpt.ReverseConstraintFunction,
attr::_GettableConstraintAttribute,
bridge::MOI.Bridges.Constraint.AbstractFunctionConversionBridge,
)
return MOI.get(model, attr, bridge.constraint)
Expand Down Expand Up @@ -123,7 +130,7 @@ end

function MOI.get(
model::MOI.ModelLike,
attr::DiffOpt.ReverseConstraintFunction,
attr::_GettableConstraintAttribute,
bridge::MOI.Bridges.Constraint.SetMapBridge,
)
func = MOI.get(model, attr, bridge.constraint)
Expand Down
Loading