@@ -15,13 +15,14 @@ function MOI.Bridges.Constraint.bridge_constraint(
1515 m = size (set. α, 1 )
1616 ν = Matrix {MOI.VariableIndex} (undef, m, m)
1717 A = SignomialAGECone
18- c = Vector {MOI.ConstraintIndex{MOI.VectorOfVariables,A}} (undef, m)
18+ age_constraints =
19+ Vector {MOI.ConstraintIndex{MOI.VectorOfVariables,A}} (undef, m)
1920 for k in 1 : m
20- ν[k, :], c[k] = MOI. add_constrained_variables (model, A (set. α, k))
21+ ν[k, :], age_constraints[k] =
22+ MOI. add_constrained_variables (model, A (set. α, k))
2123 end
2224 scalars = MOI. Utilities. eachscalar (func)
23- n = size (set. α, 2 )
24- equality_constraints = map (1 : n) do i
25+ equality_constraints = map (1 : m) do i
2526 f = MOI. ScalarAffineFunction (
2627 MOI. ScalarAffineTerm .(one (T), ν[:, i]),
2728 zero (T),
@@ -32,7 +33,7 @@ function MOI.Bridges.Constraint.bridge_constraint(
3233 MOI. EqualTo (zero (T)),
3334 )
3435 end
35- return SAGEBridge {T,F,G} (ν, c , equality_constraints)
36+ return SAGEBridge {T,F,G} (ν, age_constraints , equality_constraints)
3637end
3738
3839function MOI. supports_constraint (
@@ -67,3 +68,20 @@ function MOI.Bridges.Constraint.concrete_bridge_type(
6768 )
6869 return SAGEBridge{T,F,G}
6970end
71+
72+ function MOI. get (
73+ model:: MOI.ModelLike ,
74+ attr:: DecompositionAttribute ,
75+ bridge:: SAGEBridge ,
76+ )
77+ return filter! (
78+ ! isempty,
79+ [
80+ filter (
81+ x -> ! isapprox (x, zero (x), atol= attr. tol),
82+ MOI. get (model, MOI. VariablePrimal (attr. result_index), bridge. ν[k, :])
83+ )
84+ for k in axes (bridge. ν, 1 )
85+ ]
86+ )
87+ end
0 commit comments