@@ -20,39 +20,39 @@ Base.delete!(idxmap::IndexMap, ci::MOI.ConstraintIndex) = delete!(idxmap.conmap,
20
20
Base. keys (idxmap:: IndexMap ) = Iterators. flatten ((keys (idxmap. varmap), keys (idxmap. conmap)))
21
21
22
22
"""
23
- passattributes! (dest::MOI.ModelLike, src::MOI.ModelLike, copy_names::Bool, idxmap::IndexMap, passattr!::Function=MOI.set)
23
+ pass_attributes (dest::MOI.ModelLike, src::MOI.ModelLike, copy_names::Bool, idxmap::IndexMap, passattr!::Function=MOI.set)
24
24
25
25
Pass the model attributes from the model `src` to the model `dest` using `canpassattr` to check if the attribute can be passed and `passattr!` to pass the attribute. Does not copy `Name` if `copy_names` is `false`.
26
26
27
- passattributes! (dest::MOI.ModelLike, src::MOI.ModelLike, copy_names::Bool, idxmap::IndexMap, vis_src::Vector{MOI.VariableIndex}, passattr!::Function=MOI.set)
27
+ pass_attributes (dest::MOI.ModelLike, src::MOI.ModelLike, copy_names::Bool, idxmap::IndexMap, vis_src::Vector{MOI.VariableIndex}, passattr!::Function=MOI.set)
28
28
29
29
Pass the variable attributes from the model `src` to the model `dest` using `canpassattr` to check if the attribute can be passed and `passattr!` to pass the attribute. Does not copy `VariableName` if `copy_names` is `false`.
30
30
31
- passattributes! (dest::MOI.ModelLike, src::MOI.ModelLike, copy_names::Bool, idxmap::IndexMap, cis_src::Vector{MOI.ConstraintIndex{F, S}}, passattr!::Function=MOI.set) where {F, S}
31
+ pass_attributes (dest::MOI.ModelLike, src::MOI.ModelLike, copy_names::Bool, idxmap::IndexMap, cis_src::Vector{MOI.ConstraintIndex{F, S}}, passattr!::Function=MOI.set) where {F, S}
32
32
33
33
Pass the constraint attributes of `F`-in-`S` constraints from the model `src` to the model `dest` using `canpassattr` to check if the attribute can be passed and `passattr!` to pass the attribute. Does not copy `ConstraintName` if `copy_names` is `false`.
34
34
"""
35
- function passattributes! end
35
+ function pass_attributes end
36
36
37
- function passattributes! (dest:: MOI.ModelLike , src:: MOI.ModelLike , copy_names:: Bool , idxmap:: IndexMap , passattr!:: Function = MOI. set)
37
+ function pass_attributes (dest:: MOI.ModelLike , src:: MOI.ModelLike , copy_names:: Bool , idxmap:: IndexMap , passattr!:: Function = MOI. set)
38
38
# Copy model attributes
39
39
attrs = MOI. get (src, MOI. ListOfModelAttributesSet ())
40
- _passattributes! (dest, src, copy_names, idxmap, attrs, tuple (), tuple (), tuple (), passattr!)
40
+ _pass_attributes (dest, src, copy_names, idxmap, attrs, tuple (), tuple (), tuple (), passattr!)
41
41
end
42
- function passattributes! (dest:: MOI.ModelLike , src:: MOI.ModelLike , copy_names:: Bool , idxmap:: IndexMap , vis_src:: Vector{VI} , passattr!:: Function = MOI. set)
42
+ function pass_attributes (dest:: MOI.ModelLike , src:: MOI.ModelLike , copy_names:: Bool , idxmap:: IndexMap , vis_src:: Vector{VI} , passattr!:: Function = MOI. set)
43
43
# Copy variable attributes
44
44
attrs = MOI. get (src, MOI. ListOfVariableAttributesSet ())
45
45
vis_dest = map (vi -> idxmap[vi], vis_src)
46
- _passattributes! (dest, src, copy_names, idxmap, attrs, (VI,), (vis_src,), (vis_dest,), passattr!)
46
+ _pass_attributes (dest, src, copy_names, idxmap, attrs, (VI,), (vis_src,), (vis_dest,), passattr!)
47
47
end
48
- function passattributes! (dest:: MOI.ModelLike , src:: MOI.ModelLike , copy_names:: Bool , idxmap:: IndexMap , cis_src:: Vector{CI{F, S}} , passattr!:: Function = MOI. set) where {F, S}
48
+ function pass_attributes (dest:: MOI.ModelLike , src:: MOI.ModelLike , copy_names:: Bool , idxmap:: IndexMap , cis_src:: Vector{CI{F, S}} , passattr!:: Function = MOI. set) where {F, S}
49
49
# Copy constraint attributes
50
50
attrs = MOI. get (src, MOI. ListOfConstraintAttributesSet {F, S} ())
51
51
cis_dest = map (ci -> idxmap[ci], cis_src)
52
- _passattributes! (dest, src, copy_names, idxmap, attrs, (CI{F, S},), (cis_src,), (cis_dest,), passattr!)
52
+ _pass_attributes (dest, src, copy_names, idxmap, attrs, (CI{F, S},), (cis_src,), (cis_dest,), passattr!)
53
53
end
54
54
55
- function _passattributes! (dest:: MOI.ModelLike , src:: MOI.ModelLike , copy_names:: Bool , idxmap:: IndexMap , attrs, canargs, getargs, setargs, passattr!:: Function = MOI. set)
55
+ function _pass_attributes (dest:: MOI.ModelLike , src:: MOI.ModelLike , copy_names:: Bool , idxmap:: IndexMap , attrs, canargs, getargs, setargs, passattr!:: Function = MOI. set)
56
56
for attr in attrs
57
57
if (copy_names || ! (attr isa MOI. Name || attr isa MOI. VariableName || attr isa MOI. ConstraintName))
58
58
passattr! (dest, attr, setargs... , attribute_value_map (idxmap, MOI. get (src, attr, getargs... )))
@@ -76,7 +76,7 @@ function copyconstraints!(dest::MOI.ModelLike, src::MOI.ModelLike, copy_names::B
76
76
idxmap. conmap[ci_src] = ci_dest
77
77
end
78
78
79
- passattributes! (dest, src, copy_names, idxmap, cis_src)
79
+ pass_attributes (dest, src, copy_names, idxmap, cis_src)
80
80
end
81
81
82
82
attribute_value_map (idxmap, f:: MOI.AbstractFunction ) = mapvariables (idxmap, f)
@@ -97,10 +97,10 @@ function default_copy_to(dest::MOI.ModelLike, src::MOI.ModelLike, copy_names::Bo
97
97
end
98
98
99
99
# Copy variable attributes
100
- passattributes! (dest, src, copy_names, idxmap, vis_src)
100
+ pass_attributes (dest, src, copy_names, idxmap, vis_src)
101
101
102
102
# Copy model attributes
103
- passattributes! (dest, src, copy_names, idxmap)
103
+ pass_attributes (dest, src, copy_names, idxmap)
104
104
105
105
# Copy constraints
106
106
for (F, S) in MOI. get (src, MOI. ListOfConstraints ())
@@ -121,105 +121,105 @@ end
121
121
# To support `MOI.copy_to` using this 2-pass mechanism, implement the allocate-load interface defined below and do:
122
122
# MOI.copy_to(dest::ModelType, src::MOI.ModelLike) = MOIU.allocate_load(dest, src)
123
123
# In the implementation of the allocate-load interface, it can be assumed that the different functions will the called in the following order:
124
- # 1) `allocatevariables! `
125
- # 2) `allocate! ` and `allocateconstraint! `
126
- # 3) `loadvariables! ` and `allocateconstraint! `
127
- # 4) `load! ` and `loadconstraint! `
128
- # The interface is not meant to be used to create new constraints with `allocateconstraint! ` followed by `loadconstraint! ` after a solve, it is only meant for being used in this order to implement `MOI.copy_to`.
124
+ # 1) `allocate_variables `
125
+ # 2) `allocate` and `allocate_constraint `
126
+ # 3) `load_variables ` and `allocate_constraint `
127
+ # 4) `load` and `load_constraint `
128
+ # The interface is not meant to be used to create new constraints with `allocate_constraint ` followed by `load_constraint ` after a solve, it is only meant for being used in this order to implement `MOI.copy_to`.
129
129
130
130
"""
131
131
needs_allocate_load(model::MOI.ModelLike)::Bool
132
132
133
- Return a `Bool` indicating whether `model` does not support `add_variables`/`add_constraint`/`set` but supports `allocatevariables! `/`allocateconstraint! `/`allocate! `/`loadvariables! `/`loadconstraint! `/`load! `.
133
+ Return a `Bool` indicating whether `model` does not support `add_variables`/`add_constraint`/`set` but supports `allocate_variables `/`allocate_constraint `/`allocate`/`load_variables `/`load_constraint `/`load`.
134
134
That is, the allocate-load interface need to be used to copy an model to `model`.
135
135
"""
136
136
needs_allocate_load (:: MOI.ModelLike ) = false
137
137
138
138
"""
139
- allocatevariables! (model::MOI.ModelLike, nvars::Integer)
139
+ allocate_variables (model::MOI.ModelLike, nvars::Integer)
140
140
141
141
Creates `nvars` variables and returns a vector of `nvars` variable indices.
142
142
"""
143
- function allocatevariables! end
143
+ function allocate_variables end
144
144
145
145
"""
146
- allocate! (model::ModelLike, attr::ModelLikeAttribute, value)
147
- allocate! (model::ModelLike, attr::AbstractVariableAttribute, v::VariableIndex, value)
148
- allocate! (model::ModelLike, attr::AbstractConstraintAttribute, c::ConstraintIndex, value)
146
+ allocate(model::ModelLike, attr::ModelLikeAttribute, value)
147
+ allocate(model::ModelLike, attr::AbstractVariableAttribute, v::VariableIndex, value)
148
+ allocate(model::ModelLike, attr::AbstractConstraintAttribute, c::ConstraintIndex, value)
149
149
150
- Informs `model` that `load! ` will be called with the same arguments after `loadvariables! ` is called.
150
+ Informs `model` that `load` will be called with the same arguments after `load_variables ` is called.
151
151
"""
152
- function allocate! end
152
+ function allocate end
153
153
154
- function allocate! (model:: MOI.ModelLike , attr:: Union{MOI.AbstractVariableAttribute, MOI.AbstractConstraintAttribute} , indices:: Vector , values:: Vector )
154
+ function allocate (model:: MOI.ModelLike , attr:: Union{MOI.AbstractVariableAttribute, MOI.AbstractConstraintAttribute} , indices:: Vector , values:: Vector )
155
155
for (index, value) in zip (indices, values)
156
- allocate! (model, attr, index, value)
156
+ allocate (model, attr, index, value)
157
157
end
158
158
end
159
159
160
160
"""
161
- allocateconstraint! (model::MOI.ModelLike, f::MOI.AbstractFunction, s::MOI.AbstractSet)
161
+ allocate_constraint (model::MOI.ModelLike, f::MOI.AbstractFunction, s::MOI.AbstractSet)
162
162
163
- Returns the index for the constraint to be used in `loadconstraint! ` that will be called after `loadvariables! ` is called.
163
+ Returns the index for the constraint to be used in `load_constraint ` that will be called after `load_variables ` is called.
164
164
"""
165
- function allocateconstraint! end
165
+ function allocate_constraint end
166
166
167
167
"""
168
- loadvariables! (model::MOI.ModelLike, nvars::Integer)
168
+ load_variables (model::MOI.ModelLike, nvars::Integer)
169
169
170
- Prepares the `model` for `loadobjective!` and `loadconstraint! `.
170
+ Prepares the `model` for `loadobjective!` and `load_constraint `.
171
171
"""
172
- function loadvariables! end
172
+ function load_variables end
173
173
174
174
"""
175
- load! (model::ModelLike, attr::ModelLikeAttribute, value)
176
- load! (model::ModelLike, attr::AbstractVariableAttribute, v::VariableIndex, value)
177
- load! (model::ModelLike, attr::AbstractConstraintAttribute, c::ConstraintIndex, value)
175
+ load(model::ModelLike, attr::ModelLikeAttribute, value)
176
+ load(model::ModelLike, attr::AbstractVariableAttribute, v::VariableIndex, value)
177
+ load(model::ModelLike, attr::AbstractConstraintAttribute, c::ConstraintIndex, value)
178
178
179
- This has the same effect that `set` with the same arguments except that `allocate! ` should be called first before `loadvariables! `.
179
+ This has the same effect that `set` with the same arguments except that `allocate` should be called first before `load_variables `.
180
180
"""
181
- function load! end
181
+ function load end
182
182
183
- function load! (model:: MOI.ModelLike , attr:: Union{MOI.AbstractVariableAttribute, MOI.AbstractConstraintAttribute} , indices:: Vector , values:: Vector )
183
+ function load (model:: MOI.ModelLike , attr:: Union{MOI.AbstractVariableAttribute, MOI.AbstractConstraintAttribute} , indices:: Vector , values:: Vector )
184
184
for (index, value) in zip (indices, values)
185
- load! (model, attr, index, value)
185
+ load (model, attr, index, value)
186
186
end
187
187
end
188
188
189
189
"""
190
- loadconstraint! (model::MOI.ModelLike, ci::MOI.ConstraintIndex, f::MOI.AbstractFunction, s::MOI.AbstractSet)
190
+ load_constraint (model::MOI.ModelLike, ci::MOI.ConstraintIndex, f::MOI.AbstractFunction, s::MOI.AbstractSet)
191
191
192
192
Sets the constraint function and set for the constraint of index `ci`.
193
193
"""
194
- function loadconstraint! end
194
+ function load_constraint end
195
195
196
- function allocateconstraints! (dest:: MOI.ModelLike , src:: MOI.ModelLike , copy_names:: Bool , idxmap:: IndexMap , :: Type{F} , :: Type{S} ) where {F<: MOI.AbstractFunction , S<: MOI.AbstractSet }
196
+ function allocate_constraints (dest:: MOI.ModelLike , src:: MOI.ModelLike , copy_names:: Bool , idxmap:: IndexMap , :: Type{F} , :: Type{S} ) where {F<: MOI.AbstractFunction , S<: MOI.AbstractSet }
197
197
# Allocate constraints
198
198
cis_src = MOI. get (src, MOI. ListOfConstraintIndices {F, S} ())
199
199
200
200
for ci_src in cis_src
201
201
f_src = MOI. get (src, MOI. ConstraintFunction (), ci_src)
202
202
s = MOI. get (src, MOI. ConstraintSet (), ci_src)
203
203
f_dest = mapvariables (idxmap, f_src)
204
- ci_dest = allocateconstraint! (dest, f_dest, s)
204
+ ci_dest = allocate_constraint (dest, f_dest, s)
205
205
idxmap. conmap[ci_src] = ci_dest
206
206
end
207
207
208
- return passattributes! (dest, src, copy_names, idxmap, cis_src, allocate! )
208
+ return pass_attributes (dest, src, copy_names, idxmap, cis_src, allocate)
209
209
end
210
210
211
- function loadconstraints! (dest:: MOI.ModelLike , src:: MOI.ModelLike , copy_names:: Bool , idxmap:: IndexMap , :: Type{F} , :: Type{S} ) where {F<: MOI.AbstractFunction , S<: MOI.AbstractSet }
211
+ function load_constraints (dest:: MOI.ModelLike , src:: MOI.ModelLike , copy_names:: Bool , idxmap:: IndexMap , :: Type{F} , :: Type{S} ) where {F<: MOI.AbstractFunction , S<: MOI.AbstractSet }
212
212
# Load constraints
213
213
cis_src = MOI. get (src, MOI. ListOfConstraintIndices {F, S} ())
214
214
for ci_src in cis_src
215
215
ci_dest = idxmap[ci_src]
216
216
f_src = MOI. get (src, MOI. ConstraintFunction (), ci_src)
217
217
f_dest = mapvariables (idxmap, f_src)
218
218
s = MOI. get (src, MOI. ConstraintSet (), ci_src)
219
- loadconstraint! (dest, ci_dest, f_dest, s)
219
+ load_constraint (dest, ci_dest, f_dest, s)
220
220
end
221
221
222
- return passattributes! (dest, src, copy_names, idxmap, cis_src, load! )
222
+ return pass_attributes (dest, src, copy_names, idxmap, cis_src, load)
223
223
end
224
224
225
225
"""
@@ -235,36 +235,36 @@ function allocate_load(dest::MOI.ModelLike, src::MOI.ModelLike, copy_names::Bool
235
235
# Allocate variables
236
236
nvars = MOI. get (src, MOI. NumberOfVariables ())
237
237
vis_src = MOI. get (src, MOI. ListOfVariableIndices ())
238
- vis_dest = allocatevariables! (dest, nvars)
238
+ vis_dest = allocate_variables (dest, nvars)
239
239
for (var_src, var_dest) in zip (vis_src, vis_dest)
240
240
idxmap. varmap[var_src] = var_dest
241
241
end
242
242
243
243
# Allocate variable attributes
244
- passattributes! (dest, src, copy_names, idxmap, vis_src, allocate! )
244
+ pass_attributes (dest, src, copy_names, idxmap, vis_src, allocate)
245
245
246
246
# Allocate model attributes
247
- passattributes! (dest, src, copy_names, idxmap, allocate! )
247
+ pass_attributes (dest, src, copy_names, idxmap, allocate)
248
248
249
249
# Allocate constraints
250
250
for (F, S) in MOI. get (src, MOI. ListOfConstraints ())
251
251
# do the rest in copyconstraints! which is type stable
252
- allocateconstraints! (dest, src, copy_names, idxmap, F, S)
252
+ allocate_constraints (dest, src, copy_names, idxmap, F, S)
253
253
end
254
254
255
255
# Load variables
256
- loadvariables! (dest, nvars)
256
+ load_variables (dest, nvars)
257
257
258
258
# Load variable attributes
259
- passattributes! (dest, src, copy_names, idxmap, vis_src, load! )
259
+ pass_attributes (dest, src, copy_names, idxmap, vis_src, load)
260
260
261
261
# Load model attributes
262
- passattributes! (dest, src, copy_names, idxmap, load! )
262
+ pass_attributes (dest, src, copy_names, idxmap, load)
263
263
264
264
# Copy constraints
265
265
for (F, S) in MOI. get (src, MOI. ListOfConstraints ())
266
266
# do the rest in copyconstraints! which is type stable
267
- loadconstraints! (dest, src, copy_names, idxmap, F, S)
267
+ load_constraints (dest, src, copy_names, idxmap, F, S)
268
268
end
269
269
270
270
return idxmap
0 commit comments