@@ -80,7 +80,8 @@ function MOI.get(
8080end
8181
8282# We cannot use MOI.Utilities.Hyperrectangle in case the vector type is not `Vector`
83- struct Hyperrectangle{T,LT<: AbstractVector{T} ,UT<: AbstractVector{T} } <: MOI.Utilities.AbstractVectorBounds
83+ struct Hyperrectangle{T,LT<: AbstractVector{T} ,UT<: AbstractVector{T} } < :
84+ MOI. Utilities. AbstractVectorBounds
8485 lower:: LT
8586 upper:: UT
8687end
@@ -90,12 +91,18 @@ MOI.Utilities.function_constants(::Hyperrectangle{T}, row) where {T} = zero(T)
9091# TODO specialize for SparseVector
9192function linear_function (c:: AbstractVector{T} ) where {T}
9293 return MOI. ScalarAffineFunction (
93- [MOI. ScalarAffineTerm (c[i], MOI. VariableIndex (i)) for i in eachindex (c)],
94+ [
95+ MOI. ScalarAffineTerm (c[i], MOI. VariableIndex (i)) for
96+ i in eachindex (c)
97+ ],
9498 zero (T),
9599 )
96100end
97101
98- function linear_objective (sense:: MOI.OptimizationSense , c:: AbstractVector{T} ) where {T}
102+ function linear_objective (
103+ sense:: MOI.OptimizationSense ,
104+ c:: AbstractVector{T} ,
105+ ) where {T}
99106 model = MOI. Utilities. ObjectiveContainer {T} ()
100107 MOI. set (model, MOI. ObjectiveSense (), sense)
101108 func = linear_function (c)
@@ -113,21 +120,14 @@ function MOI.Utilities.extract_function(
113120 for col in axes (A, 2 )
114121 val = A[row, col]
115122 if ! iszero (val)
116- push! (
117- func. terms,
118- MOI. ScalarAffineTerm (val, MOI. VariableIndex (col)),
119- )
123+ push! (func. terms, MOI. ScalarAffineTerm (val, MOI. VariableIndex (col)))
120124 end
121125 end
122126 return func
123127end
124128
125129# Copy-paste of MOI.Utilities.MutableSparseMatrixCSC
126- function _first_in_column (
127- A:: SparseMatrixCSC ,
128- row:: Integer ,
129- col:: Integer ,
130- )
130+ function _first_in_column (A:: SparseMatrixCSC , row:: Integer , col:: Integer )
131131 range = SparseArrays. nzrange (A, col)
132132 idx = searchsortedfirst (view (A. rowval, range), row)
133133 return get (range, idx, last (range) + 1 )
@@ -173,7 +173,10 @@ function nonnegative_variables(n, ::Type{T}) where {T}
173173 return model
174174end
175175
176- function interval_variables (lower:: AbstractVector{T} , upper:: AbstractVector{T} ) where {T}
176+ function interval_variables (
177+ lower:: AbstractVector{T} ,
178+ upper:: AbstractVector{T} ,
179+ ) where {T}
177180 @assert eachindex (lower) == eachindex (upper)
178181 model = MOI. Utilities. VariablesContainer {T} ()
179182 for i in eachindex (lower)
@@ -184,15 +187,18 @@ function interval_variables(lower::AbstractVector{T}, upper::AbstractVector{T})
184187 return model
185188end
186189
187- MOI. Utilities. @product_of_sets (
188- EqualTos,
189- MOI. EqualTo{T},
190- )
190+ MOI. Utilities. @product_of_sets (EqualTos, MOI. EqualTo{T},)
191191
192- function equality_constraints (A:: AbstractMatrix{T} , b:: AbstractVector{T} ) where {T}
192+ function equality_constraints (
193+ A:: AbstractMatrix{T} ,
194+ b:: AbstractVector{T} ,
195+ ) where {T}
193196 sets = EqualTos {T} ()
194197 for _ in eachindex (b)
195- MOI. Utilities. add_set (sets, MOI. Utilities. set_index (sets, MOI. EqualTo{T}))
198+ MOI. Utilities. add_set (
199+ sets,
200+ MOI. Utilities. set_index (sets, MOI. EqualTo{T}),
201+ )
196202 end
197203 MOI. Utilities. final_touch (sets)
198204 constants = Hyperrectangle (b, b)
@@ -201,15 +207,18 @@ function equality_constraints(A::AbstractMatrix{T}, b::AbstractVector{T}) where
201207 return model
202208end
203209
204- MOI. Utilities. @product_of_sets (
205- LessThans,
206- MOI. LessThan{T},
207- )
210+ MOI. Utilities. @product_of_sets (LessThans, MOI. LessThan{T},)
208211
209- function lessthan_constraints (A:: AbstractMatrix{T} , b:: AbstractVector{T} ) where {T}
212+ function lessthan_constraints (
213+ A:: AbstractMatrix{T} ,
214+ b:: AbstractVector{T} ,
215+ ) where {T}
210216 sets = LessThans {T} ()
211217 for _ in eachindex (b)
212- MOI. Utilities. add_set (sets, MOI. Utilities. set_index (sets, MOI. LessThan{T}))
218+ MOI. Utilities. add_set (
219+ sets,
220+ MOI. Utilities. set_index (sets, MOI. LessThan{T}),
221+ )
213222 end
214223 MOI. Utilities. final_touch (sets)
215224 constants = Hyperrectangle (FillArrays. Zeros {T} (length (b)), b)
@@ -218,15 +227,19 @@ function lessthan_constraints(A::AbstractMatrix{T}, b::AbstractVector{T}) where
218227 return model
219228end
220229
221- MOI. Utilities. @product_of_sets (
222- Intervals,
223- MOI. Interval{T},
224- )
230+ MOI. Utilities. @product_of_sets (Intervals, MOI. Interval{T},)
225231
226- function interval_constraints (A:: AbstractMatrix{T} , lower:: AbstractVector{T} , upper:: AbstractVector{T} ) where {T}
232+ function interval_constraints (
233+ A:: AbstractMatrix{T} ,
234+ lower:: AbstractVector{T} ,
235+ upper:: AbstractVector{T} ,
236+ ) where {T}
227237 sets = Intervals {T} ()
228238 for _ in eachindex (lower)
229- MOI. Utilities. add_set (sets, MOI. Utilities. set_index (sets, MOI. Interval{T}))
239+ MOI. Utilities. add_set (
240+ sets,
241+ MOI. Utilities. set_index (sets, MOI. Interval{T}),
242+ )
230243 end
231244 MOI. Utilities. final_touch (sets)
232245 constants = Hyperrectangle (lower, upper)
@@ -242,7 +255,11 @@ MOI.Utilities.@mix_of_scalar_sets(
242255 MOI. LessThan{T},
243256)
244257
245- function mix_of_constraints (A:: AbstractMatrix{T} , b:: AbstractVector{T} , senses:: Vector{ConstraintSense} ) where {T}
258+ function mix_of_constraints (
259+ A:: AbstractMatrix{T} ,
260+ b:: AbstractVector{T} ,
261+ senses:: Vector{ConstraintSense} ,
262+ ) where {T}
246263 @assert eachindex (b) == eachindex (senses)
247264 sets = MixedLinearSets {T} ()
248265 for sense in senses
@@ -266,7 +283,12 @@ s.t. A x == b
266283 x ≥ 0
267284```
268285"""
269- function lp_standard_form (sense:: MOI.OptimizationSense , c:: AbstractVector{T} , A:: AbstractMatrix{T} , b:: AbstractVector{T} ) where {T}
286+ function lp_standard_form (
287+ sense:: MOI.OptimizationSense ,
288+ c:: AbstractVector{T} ,
289+ A:: AbstractMatrix{T} ,
290+ b:: AbstractVector{T} ,
291+ ) where {T}
270292 m, n = size (A)
271293 @assert length (c) == n
272294 @assert length (b) == m
@@ -286,7 +308,12 @@ sense ⟨c, x⟩
286308s.t. Ax <= b
287309```
288310"""
289- function lp_geometric_form (sense:: MOI.OptimizationSense , c:: AbstractVector{T} , A:: AbstractMatrix{T} , b:: AbstractVector{T} ) where {T}
311+ function lp_geometric_form (
312+ sense:: MOI.OptimizationSense ,
313+ c:: AbstractVector{T} ,
314+ A:: AbstractMatrix{T} ,
315+ b:: AbstractVector{T} ,
316+ ) where {T}
290317 m, n = size (A)
291318 @assert length (c) == n
292319 @assert length (b) == m
0 commit comments