5
5
function MOI. supports_constraint (
6
6
bridge:: Type{<:BoolBridge{T, B1, B2}} ,
7
7
fct:: Type{<:MOI.AbstractFunction} ,
8
- set:: Type{<:CS.BoolSet {F1,F2,F1dim,F2dim,S1,S2}}
9
- ) where {T, B1, B2, F1, F2, F1dim, F2dim, S1<: BoolSet , S2<: BoolSet }
8
+ set:: Type{<:CS.AbstractBoolSet {F1,F2,F1dim,F2dim,S1,S2}}
9
+ ) where {T, B1, B2, F1, F2, F1dim, F2dim, S1<: AbstractBoolSet , S2<: AbstractBoolSet }
10
10
return MOI. supports_constraint (bridge, F1, S1) && MOI. supports_constraint (bridge, F2, S2)
11
11
end
12
12
13
13
function MOI. supports_constraint (
14
14
bridge:: Type{<:BoolBridge{T, B1, B2}} ,
15
15
fct:: Type{<:MOI.AbstractFunction} ,
16
- set:: Type{<:CS.BoolSet {F1,F2,F1dim,F2dim,S1,S2}}
17
- ) where {T, B1, B2, F1, F2, F1dim, F2dim, S1<: BoolSet , S2}
16
+ set:: Type{<:CS.AbstractBoolSet {F1,F2,F1dim,F2dim,S1,S2}}
17
+ ) where {T, B1, B2, F1, F2, F1dim, F2dim, S1<: AbstractBoolSet , S2}
18
18
direct_support, inner_bridge = how_supported (B1, B2, F2, S2)
19
19
if direct_support || inner_bridge != = nothing
20
20
return MOI. supports_constraint (bridge, F1, S1)
24
24
function MOI. supports_constraint (
25
25
bridge:: Type{<:BoolBridge{T, B1, B2}} ,
26
26
fct:: Type{<:MOI.AbstractFunction} ,
27
- set:: Type{<:CS.BoolSet {F1,F2,F1dim,F2dim,S1,S2}}
28
- ) where {T, B1, B2, F1, F2, F1dim, F2dim, S1, S2<: BoolSet }
27
+ set:: Type{<:CS.AbstractBoolSet {F1,F2,F1dim,F2dim,S1,S2}}
28
+ ) where {T, B1, B2, F1, F2, F1dim, F2dim, S1, S2<: AbstractBoolSet }
29
29
direct_support, inner_bridge = how_supported (B1, B2, F1, S1)
30
30
if direct_support || inner_bridge != = nothing
31
31
return MOI. supports_constraint (bridge, F2, S2)
35
35
function MOI. supports_constraint (
36
36
bridge:: Type{<:BoolBridge{T, B1, B2}} ,
37
37
fct:: Type{<:MOI.AbstractFunction} ,
38
- set:: Type{<:CS.BoolSet {F1,F2,F1dim,F2dim,S1,S2}}
38
+ set:: Type{<:CS.AbstractBoolSet {F1,F2,F1dim,F2dim,S1,S2}}
39
39
) where {T, B1, B2, F1, F2, F1dim, F2dim, S1, S2}
40
40
direct_support, inner_bridge = how_supported (B1, B2, F1, S1)
41
41
if ! direct_support && inner_bridge === nothing
50
50
51
51
function added_constraint_types (
52
52
bridge:: Type{<:BoolBridge{T, B1, B2}} ,
53
- :: Type{<:CS.BoolSet {F1,F2,F1dim,F2dim,S1,S2}}
53
+ :: Type{<:CS.AbstractBoolSet {F1,F2,F1dim,F2dim,S1,S2}}
54
54
) where {T,B1,B2,F1, F2, F1dim, F2dim, S1, S2}
55
55
set = get_bridged_and_set (bridge,F1,F2,F1dim,F2dim,S1,S2)
56
56
end
57
57
58
58
function MOIBC. concrete_bridge_type (
59
59
:: Type{<:BoolBridge{T,B1,B2}} ,
60
60
G:: Type{<:MOI.AbstractFunction} ,
61
- :: Type{<:CS.BoolSet {F1,F2,F1dim,F2dim,S1,S2}}
61
+ :: Type{<:CS.AbstractBoolSet {F1,F2,F1dim,F2dim,S1,S2}}
62
62
) where {T,B1,B2,F1, F2, F1dim, F2dim, S1, S2}
63
63
return BoolBridge{T,B1,B2,F1,F2,S1,S2}
64
64
end
65
65
66
- function MOIBC. bridge_constraint (B:: Type{<:BoolBridge{T, B1, B2, F1, F2, S1, S2}} , model, fct, set:: CS.BoolSet ) where {T, B1, B2, F1, F2, S1, S2}
66
+ function MOIBC. bridge_constraint (B:: Type{<:BoolBridge{T, B1, B2, F1, F2, S1, S2}} , model, fct, set:: CS.AbstractBoolSet ) where {T, B1, B2, F1, F2, S1, S2}
67
67
new_fct = map_function (B, fct, set)
68
68
new_set = map_set (B, set)
69
69
return BoolBridge {T,B1,B2,F1,F2,S1,S2} (MOI. add_constraint (model, new_fct, new_set))
@@ -142,13 +142,13 @@ function get_bridged_and_set(
142
142
F2:: Type{<:MOI.AbstractFunction} ,
143
143
F1dim,
144
144
F2dim,
145
- S1:: Type{<:BoolSet {F11,F12,F11dim,F12dim,S11,S12}} ,
146
- S2:: Type{<:BoolSet {F21,F22,F21dim,F22dim,S21,S22}}
145
+ S1:: Type{<:AbstractBoolSet {F11,F12,F11dim,F12dim,S11,S12}} ,
146
+ S2:: Type{<:AbstractBoolSet {F21,F22,F21dim,F22dim,S21,S22}}
147
147
) where {T, B1, B2, F11, F12,F11dim,F12dim, S11, S12, F21, F22, F21dim,F22dim, S21, S22}
148
148
lhs_constraint_types = get_bridged_and_set (bridge, F11, F12, F11dim, F12dim, S11, S12)
149
149
rhs_constraint_types = get_bridged_and_set (bridge, F21, F22, F21dim, F22dim, S21, S22)
150
150
new_F1, new_F2, new_S1, new_S2 = unpack_constraint_types (lhs_constraint_types, rhs_constraint_types)
151
- return [(MOI. VectorAffineFunction{T},BoolSet {new_F1,new_F2,F1dim,F2dim,new_S1,new_S2})]
151
+ return [(MOI. VectorAffineFunction{T},AbstractBoolSet {new_F1,new_F2,F1dim,F2dim,new_S1,new_S2})]
152
152
end
153
153
154
154
function get_bridged_and_set (
@@ -157,13 +157,13 @@ function get_bridged_and_set(
157
157
F2:: Type{<:MOI.AbstractFunction} ,
158
158
F1dim,
159
159
F2dim,
160
- S1:: Type{<:BoolSet {F11,F12,F11dim,F12dim,S11,S12}} ,
160
+ S1:: Type{<:AbstractBoolSet {F11,F12,F11dim,F12dim,S11,S12}} ,
161
161
S2
162
162
) where {T, B1, B2, F11, F12, F11dim, F12dim, S11, S12}
163
163
lhs_constraint_types = get_bridged_and_set (bridge, F11, F12, F11dim, F12dim, S11, S12)
164
164
rhs_constraint_types = get_constraint_types (B1, B2, F2, S2)
165
165
new_F1, new_F2, new_S1, new_S2 = unpack_constraint_types (lhs_constraint_types, rhs_constraint_types)
166
- return [(MOI. VectorAffineFunction{T},BoolSet {new_F1,new_F2,F1dim,F2dim,new_S1,new_S2})]
166
+ return [(MOI. VectorAffineFunction{T},AbstractBoolSet {new_F1,new_F2,F1dim,F2dim,new_S1,new_S2})]
167
167
end
168
168
169
169
function get_bridged_and_set (
@@ -173,12 +173,12 @@ function get_bridged_and_set(
173
173
F1dim,
174
174
F2dim,
175
175
S1,
176
- S2:: Type{<:BoolSet {F21,F22,F21dim,F22dim,S21,S22}}
176
+ S2:: Type{<:AbstractBoolSet {F21,F22,F21dim,F22dim,S21,S22}}
177
177
) where {T, B1, B2, F21, F22, F21dim, F22dim, S21, S22}
178
178
lhs_constraint_types = get_constraint_types (B1, B2, F1, S1)
179
179
rhs_constraint_types = get_bridged_and_set (bridge, F21, F22, F21dim, F22dim, S21, S22)
180
180
new_F1, new_F2, new_S1, new_S2 = unpack_constraint_types (lhs_constraint_types, rhs_constraint_types)
181
- return [(MOI. VectorAffineFunction{T},BoolSet {new_F1,new_F2,F1dim,F2dim,new_S1,new_S2})]
181
+ return [(MOI. VectorAffineFunction{T},AbstractBoolSet {new_F1,new_F2,F1dim,F2dim,new_S1,new_S2})]
182
182
end
183
183
184
184
function get_bridged_and_set (
@@ -193,14 +193,14 @@ function get_bridged_and_set(
193
193
lhs_constraint_types = get_constraint_types (B1, B2, F1, S1)
194
194
rhs_constraint_types = get_constraint_types (B1, B2, F2, S2)
195
195
new_F1, new_F2, new_S1, new_S2 = unpack_constraint_types (lhs_constraint_types, rhs_constraint_types)
196
- return [(MOI. VectorAffineFunction{T}, BoolSet {new_F1,new_F2,F1dim,F2dim,new_S1,new_S2})]
196
+ return [(MOI. VectorAffineFunction{T}, AbstractBoolSet {new_F1,new_F2,F1dim,F2dim,new_S1,new_S2})]
197
197
end
198
198
199
199
function map_function (
200
200
bridge:: Type{<:BoolBridge{T, B1, B2}} ,
201
201
fct,
202
- set:: CS.BoolSet {F1,F2,F1dim,F2dim,S1,S2}
203
- ) where {T,B1,B2,F1,F2,F1dim,F2dim,S1<: BoolSet ,S2<: BoolSet }
202
+ set:: CS.AbstractBoolSet {F1,F2,F1dim,F2dim,S1,S2}
203
+ ) where {T,B1,B2,F1,F2,F1dim,F2dim,S1<: AbstractBoolSet ,S2<: AbstractBoolSet }
204
204
f = MOIU. eachscalar (fct)
205
205
lhs_fct = map_function (bridge, f[1 : get_value (F1dim)], set. lhs_set)
206
206
rhs_fct = map_function (bridge, f[end - get_value (F2dim)+ 1 : end ], set. rhs_set)
210
210
function map_function (
211
211
bridge:: Type{<:BoolBridge{T, B1, B2}} ,
212
212
fct,
213
- set:: CS.BoolSet {F1,F2,F1dim,F2dim,S1,S2}
214
- ) where {T,B1,B2,F1,F2,F1dim,F2dim,S1<: BoolSet ,S2}
213
+ set:: CS.AbstractBoolSet {F1,F2,F1dim,F2dim,S1,S2}
214
+ ) where {T,B1,B2,F1,F2,F1dim,F2dim,S1<: AbstractBoolSet ,S2}
215
215
f = MOIU. eachscalar (fct)
216
216
lhs_fct = map_function (bridge, f[1 : get_value (F1dim)], set. lhs_set)
217
217
rhs_fct = get_mapped_fct (B1, B2, F2, S2, f[end - get_value (F2dim)+ 1 : end ])
221
221
function map_function (
222
222
bridge:: Type{<:BoolBridge{T, B1, B2}} ,
223
223
fct,
224
- set:: CS.BoolSet {F1,F2,F1dim,F2dim,S1,S2}
225
- ) where {T,B1,B2,F1,F2,F1dim,F2dim,S1,S2<: BoolSet }
224
+ set:: CS.AbstractBoolSet {F1,F2,F1dim,F2dim,S1,S2}
225
+ ) where {T,B1,B2,F1,F2,F1dim,F2dim,S1,S2<: AbstractBoolSet }
226
226
f = MOIU. eachscalar (fct)
227
227
lhs_fct = get_mapped_fct (B1, B2, F1, S1, f[1 : get_value (F1dim)])
228
228
rhs_fct = map_function (bridge, f[end - get_value (F2dim)+ 1 : end ], set. rhs_set)
232
232
function map_function (
233
233
bridge:: Type{<:BoolBridge{T, B1, B2}} ,
234
234
fct,
235
- set:: CS.BoolSet {F1,F2,F1dim,F2dim,S1,S2}
235
+ set:: CS.AbstractBoolSet {F1,F2,F1dim,F2dim,S1,S2}
236
236
) where {T,B1,B2,F1,F2,F1dim,F2dim,S1,S2}
237
237
f = MOIU. eachscalar (fct)
238
238
lhs_fct = get_mapped_fct (B1, B2, F1, S1, f[1 : get_value (F1dim)])
@@ -244,37 +244,37 @@ end
244
244
245
245
function map_set (
246
246
bridge:: Type{<:BoolBridge{T, B1, B2}} ,
247
- set:: CS.BoolSet {F1,F2,F1dim,F2dim,S1,S2}
248
- ) where {T,B1,B2,F1,F2,F1dim,F2dim,S1<: BoolSet ,S2<: BoolSet }
247
+ set:: CS.AbstractBoolSet {F1,F2,F1dim,F2dim,S1,S2}
248
+ ) where {T,B1,B2,F1,F2,F1dim,F2dim,S1<: AbstractBoolSet ,S2<: AbstractBoolSet }
249
249
lhs_set = map_set (bridge, set. lhs_set)
250
250
rhs_set = map_set (bridge, set. rhs_set)
251
- return typeof_without_parmas (set){F1,F2}(lhs_set, rhs_set)
251
+ return typeof_without_params (set){F1,F2}(lhs_set, rhs_set)
252
252
end
253
253
254
254
function map_set (
255
255
bridge:: Type{<:BoolBridge{T, B1, B2}} ,
256
- set:: CS.BoolSet {F1,F2,F1dim,F2dim,S1,S2}
257
- ) where {T,B1,B2,F1,F2,F1dim,F2dim,S1<: BoolSet ,S2}
256
+ set:: CS.AbstractBoolSet {F1,F2,F1dim,F2dim,S1,S2}
257
+ ) where {T,B1,B2,F1,F2,F1dim,F2dim,S1<: AbstractBoolSet ,S2}
258
258
lhs_set = map_set (bridge, set. lhs_set)
259
259
rhs_set = get_mapped_set (B1, B2, F2, S2, set. rhs_set)
260
- return typeof_without_parmas (set){F1,F2}(lhs_set, rhs_set)
260
+ return typeof_without_params (set){F1,F2}(lhs_set, rhs_set)
261
261
end
262
262
263
263
function map_set (
264
264
bridge:: Type{<:BoolBridge{T, B1, B2}} ,
265
- set:: CS.BoolSet {F1,F2,F1dim,F2dim,S1,S2}
266
- ) where {T,B1,B2,F1,F2,F1dim,F2dim,S1,S2<: BoolSet }
265
+ set:: CS.AbstractBoolSet {F1,F2,F1dim,F2dim,S1,S2}
266
+ ) where {T,B1,B2,F1,F2,F1dim,F2dim,S1,S2<: AbstractBoolSet }
267
267
lhs_set = get_mapped_set (B1, B2, F1, S1, set. lhs_set)
268
268
rhs_set = map_set (bridge, set. rhs_set)
269
- return typeof_without_parmas (set){F1,F2}(lhs_set, rhs_set)
269
+ return typeof_without_params (set){F1,F2}(lhs_set, rhs_set)
270
270
end
271
271
272
272
function map_set (
273
273
bridge:: Type{<:BoolBridge{T, B1, B2}} ,
274
- set:: CS.BoolSet {F1,F2,F1dim,F2dim,S1,S2}
274
+ set:: CS.AbstractBoolSet {F1,F2,F1dim,F2dim,S1,S2}
275
275
) where {T,B1,B2,F1,F2,F1dim,F2dim,S1,S2}
276
276
lhs_set = get_mapped_set (B1, B2, F1, S1, set. lhs_set)
277
277
rhs_set = get_mapped_set (B1, B2, F2, S2, set. rhs_set)
278
278
279
- return typeof_without_parmas (set){F1,F2}(lhs_set, rhs_set)
279
+ return typeof_without_params (set){F1,F2}(lhs_set, rhs_set)
280
280
end
0 commit comments