Skip to content

Commit 353eacf

Browse files
committed
[Bridges] fix querying result attributes with result_index != 1
1 parent 02dc52c commit 353eacf

File tree

4 files changed

+16
-9
lines changed

4 files changed

+16
-9
lines changed

src/Bridges/Constraint/bridges/det.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ function MOI.get(
232232
bridge::LogDetBridge,
233233
)
234234
d = length(bridge.lcindex)
235-
Δ = MOI.get(model, MOI.VariablePrimal(), bridge.Δ)
235+
Δ = MOI.get(model, MOI.VariablePrimal(attr.result_index), bridge.Δ)
236236
t =
237237
MOI.get(model, attr, bridge.tlindex) +
238238
sum(MOI.get(model, attr, ci)[1] for ci in bridge.lcindex)

src/Bridges/Constraint/bridges/norm_spec_nuc_to_psd.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -200,10 +200,10 @@ end
200200
# constraint is (tr(U) + tr(V), 2X) in NormNuclearCone.
201201
function MOI.get(
202202
model::MOI.ModelLike,
203-
::MOI.ConstraintDual,
203+
attr::MOI.ConstraintDual,
204204
bridge::NormSpectralBridge,
205205
)
206-
dual = MOI.get(model, MOI.ConstraintDual(), bridge.psd_index)
206+
dual = MOI.get(model, attr, bridge.psd_index)
207207
column_dim = bridge.column_dim
208208
side_dim = bridge.row_dim + column_dim
209209
t = sum(dual[MOI.Utilities.trimap(i, i)] for i in 1:side_dim)
@@ -450,11 +450,11 @@ end
450450

451451
function MOI.get(
452452
model::MOI.ModelLike,
453-
::MOI.ConstraintPrimal,
453+
attr::MOI.ConstraintPrimal,
454454
bridge::NormNuclearBridge,
455455
)
456-
ge_primal = MOI.get(model, MOI.ConstraintPrimal(), bridge.ge_index)
457-
psd_primal = MOI.get(model, MOI.ConstraintPrimal(), bridge.psd_index)
456+
ge_primal = MOI.get(model, attr, bridge.ge_index)
457+
psd_primal = MOI.get(model, attr, bridge.psd_index)
458458
side_dim = bridge.row_dim + bridge.column_dim
459459
t =
460460
ge_primal +

src/Bridges/Objective/bridges/slack.jl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,11 @@ function MOI.get(
155155
# value of `bridge.slack`. Since `bridge.constraint` is `g - slack`, we can
156156
# get the value of the original objective by summing the value of `slack`
157157
# with the `ConstraintPrimal` of the constraint.
158-
obj_slack_constant =
159-
MOI.get(model, MOI.ConstraintPrimal(), bridge.constraint)
158+
obj_slack_constant = MOI.get(
159+
model,
160+
MOI.ConstraintPrimal(attr.result_index),
161+
bridge.constraint,
162+
)
160163
return obj_slack_constant + slack + bridge.constant
161164
end
162165

src/Bridges/Objective/bridges/vector_slack.jl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,11 @@ function MOI.get(
159159
N = attr_g.result_index
160160
attr_f = MOI.Bridges.ObjectiveFunctionValue{MOI.VectorOfVariables}(N)
161161
objective_value = MOI.get(model, attr_f)
162-
con_primal = MOI.get(model, MOI.ConstraintPrimal(), bridge.constraint)
162+
con_primal = MOI.get(
163+
model,
164+
MOI.ConstraintPrimal(attr_g.result_index),
165+
bridge.constraint,
166+
)
163167
sense = MOI.get(model, MOI.ObjectiveSense())
164168
if sense == MOI.MIN_SENSE
165169
# con_primal = objective_value - f(x)

0 commit comments

Comments
 (0)