@@ -5,31 +5,22 @@ struct ZeroPolynomialInAlgebraicSetBridge{
55 F<: MOI.AbstractVectorFunction ,
66 Z<: SA.AbstractBasis ,
77 DT<: SS.AbstractAlgebraicSet ,
8- MT<: MP.AbstractMonomial ,
9- MVT<: AbstractVector{MT} ,
8+ B<: MB.SubBasis ,
109} <: MOI.Bridges.Constraint.AbstractBridge
1110 zero_constraint:: MOI.ConstraintIndex {
1211 F,
13- PolyJuMP. ZeroPolynomialSet{
14- SS. FullSpace,
15- Z,
16- MB. SubBasis{MB. Monomial,MT,MVT},
17- },
12+ PolyJuMP. ZeroPolynomialSet{SS. FullSpace,Z,B},
1813 }
1914 domain:: DT
20- basis:: MB.SubBasis{MB.Monomial,MT,MVT}
15+ basis:: B
2116end
2217
2318function MOI. Bridges. Constraint. bridge_constraint (
24- :: Type{ZeroPolynomialInAlgebraicSetBridge{T,F,Z,DT,MT,MVT }} ,
19+ :: Type{ZeroPolynomialInAlgebraicSetBridge{T,F,Z,DT,B }} ,
2520 model:: MOI.ModelLike ,
2621 f:: MOI.AbstractVectorFunction ,
27- s:: PolyJuMP.ZeroPolynomialSet {
28- <: SS.AbstractAlgebraicSet ,
29- Z,
30- MB. SubBasis{MB. Monomial,MT,MVT},
31- },
32- ) where {T,F,Z,DT,MT,MVT}
22+ s:: PolyJuMP.ZeroPolynomialSet{<:SS.AbstractAlgebraicSet,Z,B} ,
23+ ) where {T,F,Z,DT,B}
3324 p = MP. polynomial (MB. algebra_element (MOI. Utilities. scalarize (f), s. basis))
3425 # As `*(::MOI.ScalarAffineFunction{T}, ::S)` is only defined if `S == T`, we
3526 # need to call `similar`. This is critical since `T` is
@@ -46,7 +37,7 @@ function MOI.Bridges.Constraint.bridge_constraint(
4637 MB. SubBasis {MB.Monomial} (MP. monomials (r)),
4738 ),
4839 )
49- return ZeroPolynomialInAlgebraicSetBridge {T,F,Z,DT,MT,MVT } (
40+ return ZeroPolynomialInAlgebraicSetBridge {T,F,Z,DT,B } (
5041 zero_constraint,
5142 s. domain,
5243 s. basis,
@@ -68,52 +59,34 @@ function MOI.Bridges.added_constrained_variable_types(
6859end
6960
7061function MOI. Bridges. added_constraint_types (
71- :: Type{<:ZeroPolynomialInAlgebraicSetBridge{T,F,Z,DT,MT,MVT}} ,
72- ) where {T,F,Z,DT,MT,MVT}
73- return [(
74- F,
75- PolyJuMP. ZeroPolynomialSet{
76- SS. FullSpace,
77- Z,
78- MB. SubBasis{MB. Monomial,MT,MVT},
79- },
80- )]
62+ :: Type{<:ZeroPolynomialInAlgebraicSetBridge{T,F,Z,DT,B}} ,
63+ ) where {T,F,Z,DT,B}
64+ return [(F, PolyJuMP. ZeroPolynomialSet{SS. FullSpace,Z,B})]
8165end
8266
8367function MOI. Bridges. Constraint. concrete_bridge_type (
8468 :: Type{<:ZeroPolynomialInAlgebraicSetBridge{T}} ,
8569 F:: Type{<:MOI.AbstractVectorFunction} ,
86- :: Type{<:PolyJuMP.ZeroPolynomialSet{DT,Z,MB.SubBasis{MB.Monomial,MT,MVT} }} ,
87- ) where {T,Z,DT<: SS.AbstractAlgebraicSet ,MT,MVT }
70+ :: Type{<:PolyJuMP.ZeroPolynomialSet{DT,Z,B }} ,
71+ ) where {T,Z,DT<: SS.AbstractAlgebraicSet ,B }
8872 G = MOI. Utilities. promote_operation (- , T, F, F)
89- return ZeroPolynomialInAlgebraicSetBridge{T,G,Z,DT,MT,MVT }
73+ return ZeroPolynomialInAlgebraicSetBridge{T,G,Z,DT,B }
9074end
9175
9276# Attributes, Bridge acting as an model
9377function MOI. get (
94- :: ZeroPolynomialInAlgebraicSetBridge{T,F,Z,DT,MT,MVT} ,
95- :: MOI.NumberOfConstraints {
96- F,
97- PolyJuMP. ZeroPolynomialSet{
98- SS. FullSpace,
99- Z,
100- MB. SubBasis{MB. Monomial,MT,MVT},
101- },
102- },
103- ) where {T,F,Z,DT,MT,MVT}
78+ :: ZeroPolynomialInAlgebraicSetBridge{T,F,Z,DT,B} ,
79+ :: MOI.NumberOfConstraints{F,PolyJuMP.ZeroPolynomialSet{SS.FullSpace,Z,B}} ,
80+ ) where {T,F,Z,DT,B}
10481 return 1
10582end
10683function MOI. get (
107- b:: ZeroPolynomialInAlgebraicSetBridge{T,F,Z,DT,MT,MVT } ,
84+ b:: ZeroPolynomialInAlgebraicSetBridge{T,F,Z,DT,B } ,
10885 :: MOI.ListOfConstraintIndices {
10986 F,
110- PolyJuMP. ZeroPolynomialSet{
111- SS. FullSpace,
112- Z,
113- MB. SubBasis{MB. Monomial,MT,MVT},
114- },
87+ PolyJuMP. ZeroPolynomialSet{SS. FullSpace,Z,B},
11588 },
116- ) where {T,F,Z,DT,MT,MVT }
89+ ) where {T,F,Z,DT,B }
11790 return [b. zero_constraint]
11891end
11992
@@ -153,7 +126,7 @@ function MOI.get(
153126 set = MOI. get (model, MOI. ConstraintSet (), bridge. zero_constraint)
154127 μ = MM. measure (dual, set. basis)
155128 I = SS. ideal (bridge. domain)
156- return [dot (rem (mono, I), μ) for mono in bridge. basis. monomials ]
129+ return [dot (rem (mono, I), μ) for mono in MB . keys_as_monomials ( bridge. basis) ]
157130end
158131
159132function MOI. get (
0 commit comments