Skip to content

Commit 116410f

Browse files
authored
Use import as syntax (#280)
* Use import as syntax * MOIU * MOIT
1 parent 530ba09 commit 116410f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+204
-241
lines changed

bench/gram_to_poly.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ using SumOfSquares
22
using DynamicPolynomials
33

44
function gram_to_poly(n)
5-
model = MOIU.Model{Float64}()
5+
model = MOI.Utilities.Model{Float64}()
66
@polyvar x
77
monos = monomials(x, 0:n)
88
q, Q, con_Q = SumOfSquares.add_gram_matrix(model, MOI.PositiveSemidefiniteConeTriangle, monos, Float64)

bench/sos_polynomial.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ function sos_polynomial(n)
1212
tuple()
1313
)
1414
)
15-
model = MOIU.UniversalFallback(MOIU.Model{Float64}())
15+
model = MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}())
1616
x = MOI.add_variables(model, n)
1717
scalar = MOI.ScalarAffineFunction(MOI.ScalarAffineTerm.(1.0, x), 0.0)
1818
func = MOI.Utilities.vectorize([scalar for i in eachindex(monos)])

docs/src/tutorials/Extension/certificate.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ optimize!(model)
4040

4141
# We now define the Schmüdgen's certificate:
4242

43-
using MultivariateBases
44-
const MB = MultivariateBases
43+
import MultivariateBases as MB
4544
const SOS = SumOfSquares
4645
const SOSC = SOS.Certificate
4746
struct Schmüdgen{IC <: SOSC.AbstractIdealCertificate, CT <: SOS.SOSLikeCone, BT <: SOS.AbstractPolynomialBasis} <: SOSC.AbstractPreorderCertificate

docs/src/tutorials/Extension/univariate_solver.jl

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,9 @@ using Test #src
1717
module MyUnivariateSolver
1818

1919
import LinearAlgebra
20-
import MathOptInterface
21-
const MOI = MathOptInterface
22-
import MultivariatePolynomials
23-
const MP = MultivariatePolynomials
24-
import SumOfSquares
25-
const SOS = SumOfSquares
20+
import MathOptInterface as MOI
21+
import MultivariatePolynomials as MP
22+
import SumOfSquares as SOS
2623

2724
function decompose(p::MP.AbstractPolynomial, tol=1e-6)
2825
vars = MP.effective_variables(p)

docs/src/tutorials/Symmetry/cyclic.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ end
5050
# cyclically. So for instance, `CyclicElem(3, 1)` would transform
5151
# `x_1^3*x_2*x_3^4` into `x_1^4*x_2^3*x_3`.
5252

53-
import MultivariatePolynomials
54-
const MP = MultivariatePolynomials
53+
import MultivariatePolynomials as MP
5554

5655
using SumOfSquares
5756

docs/src/tutorials/Symmetry/permutation_symmetry.jl

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,9 @@
44
#md # [![](https://img.shields.io/badge/show-nbviewer-579ACA.svg)](@__NBVIEWER_ROOT_URL__/generated/Symmetry/symmetry_reduction.ipynb)
55
# **Adapted from**: [SymbolicWedderburn example](https://github.com/kalmarek/SymbolicWedderburn.jl/blob/tw/ex_sos/examples/ex_C4.jl)
66

7-
import MutableArithmetics
8-
const MA = MutableArithmetics
7+
import MutableArithmetics as MA
98
using MultivariatePolynomials
10-
const MP = MultivariatePolynomials
119
using MultivariateBases
12-
const MB = MultivariateBases
1310

1411
using Test #src
1512
using DynamicPolynomials

src/Bridges/Constraint/Constraint.jl

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,16 @@ module Constraint
22

33
using LinearAlgebra
44

5-
using MutableArithmetics
6-
const MA = MutableArithmetics
5+
import MutableArithmetics as MA
76

8-
using MathOptInterface
9-
const MOI = MathOptInterface
10-
const MOIU = MOI.Utilities
11-
const MOIB = MOI.Bridges
7+
import MathOptInterface as MOI
128

13-
import MultivariatePolynomials
14-
const MP = MultivariatePolynomials
9+
import MultivariatePolynomials as MP
1510
import MultivariateBases
1611
import SemialgebraicSets
1712
import MultivariateMoments
1813
import PolyJuMP
19-
import SumOfSquares
20-
const SOS = SumOfSquares
14+
import SumOfSquares as SOS
2115
const Certificate = SOS.Certificate
2216

2317
# Symmetric PSD matrix bridges

src/Bridges/Constraint/diagonally_dominant.jl

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
struct DiagonallyDominantBridge{T, F, G} <: MOIB.Constraint.AbstractBridge
1+
struct DiagonallyDominantBridge{T, F, G} <: MOI.Bridges.Constraint.AbstractBridge
22
# |Qij| variables
33
abs_vars::Vector{MOI.VariableIndex}
44
# |Qij| ≥ +Qij
@@ -11,15 +11,15 @@ struct DiagonallyDominantBridge{T, F, G} <: MOIB.Constraint.AbstractBridge
1111
dominance::Vector{MOI.ConstraintIndex{F, MOI.GreaterThan{T}}}
1212
end
1313

14-
function MOIB.Constraint.bridge_constraint(
14+
function MOI.Bridges.Constraint.bridge_constraint(
1515
::Type{DiagonallyDominantBridge{T, F, G}},
1616
model::MOI.ModelLike, f::MOI.AbstractVectorFunction,
1717
s::SOS.DiagonallyDominantConeTriangle) where {T, F, G}
1818

1919
@assert MOI.output_dimension(f) == MOI.dimension(s)
2020
n = s.side_dimension
2121
g = F[zero(F) for i in 1:n]
22-
fs = MOIU.eachscalar(f)
22+
fs = MOI.Utilities.eachscalar(f)
2323
num_off_diag = MOI.dimension(s) - n
2424
CI = MOI.ConstraintIndex{MOI.ScalarAffineFunction{T}, MOI.GreaterThan{T}}
2525
abs_vars = Vector{MOI.VariableIndex}(undef, num_off_diag)
@@ -35,15 +35,15 @@ function MOIB.Constraint.bridge_constraint(
3535
# abs ≥ |Qij|
3636
abs_vars[koff] = MOI.add_variable(model)
3737
fabs = abs_vars[koff]
38-
MOIU.operate!(-, T, g[j], fabs)
39-
MOIU.operate!(-, T, g[i], fabs)
38+
MOI.Utilities.operate!(-, T, g[j], fabs)
39+
MOI.Utilities.operate!(-, T, g[i], fabs)
4040
abs_plus[koff] = MOI.add_constraint(
41-
model, MOIU.operate(+, T, fabs, fs[k]), MOI.GreaterThan(0.0))
41+
model, MOI.Utilities.operate(+, T, fabs, fs[k]), MOI.GreaterThan(0.0))
4242
abs_minus[koff] = MOI.add_constraint(
43-
model, MOIU.operate(-, T, fabs, fs[k]), MOI.GreaterThan(0.0))
43+
model, MOI.Utilities.operate(-, T, fabs, fs[k]), MOI.GreaterThan(0.0))
4444
end
4545
k += 1
46-
MOIU.operate!(+, T, g[j], fs[k])
46+
MOI.Utilities.operate!(+, T, g[j], fs[k])
4747
end
4848
dominance = map(f -> MOI.add_constraint(model, f, MOI.GreaterThan(0.0)), g)
4949
return DiagonallyDominantBridge{T, F, G}(abs_vars, abs_plus, abs_minus,
@@ -55,23 +55,23 @@ function MOI.supports_constraint(::Type{<:DiagonallyDominantBridge},
5555
::Type{<:SOS.DiagonallyDominantConeTriangle})
5656
return true
5757
end
58-
function MOIB.added_constrained_variable_types(::Type{<:DiagonallyDominantBridge})
58+
function MOI.Bridges.added_constrained_variable_types(::Type{<:DiagonallyDominantBridge})
5959
return Tuple{DataType}[]
6060
end
61-
function MOIB.added_constraint_types(::Type{<:DiagonallyDominantBridge{T, F}}) where {T, F}
61+
function MOI.Bridges.added_constraint_types(::Type{<:DiagonallyDominantBridge{T, F}}) where {T, F}
6262
added = [(F, MOI.GreaterThan{T})]
6363
if F != MOI.ScalarAffineFunction{T}
6464
push!(added, (MOI.ScalarAffineFunction{T}, MOI.GreaterThan{T}))
6565
end
6666
return added
6767
end
68-
function MOIB.Constraint.concrete_bridge_type(
68+
function MOI.Bridges.Constraint.concrete_bridge_type(
6969
::Type{<:DiagonallyDominantBridge{T}},
7070
G::Type{<:MOI.AbstractVectorFunction},
7171
::Type{SOS.DiagonallyDominantConeTriangle}) where T
7272

73-
S = MOIU.scalar_type(G)
74-
F = MOIU.promote_operation(-, T, S, MOI.VariableIndex)
73+
S = MOI.Utilities.scalar_type(G)
74+
F = MOI.Utilities.promote_operation(-, T, S, MOI.VariableIndex)
7575
return DiagonallyDominantBridge{T, F, G}
7676
end
7777

@@ -135,7 +135,7 @@ end
135135
function MOI.get(model::MOI.ModelLike, attr::MOI.ConstraintFunction,
136136
bridge::DiagonallyDominantBridge{T, F, G}) where {T, F, G}
137137
set = MOI.get(model, MOI.ConstraintSet(), bridge)
138-
H = MOIU.scalar_type(G)
138+
H = MOI.Utilities.scalar_type(G)
139139
g = Vector{H}(undef, MOI.dimension(set))
140140
k = 0
141141
koff = 0
@@ -144,15 +144,15 @@ function MOI.get(model::MOI.ModelLike, attr::MOI.ConstraintFunction,
144144
k += 1
145145
koff += 1
146146
func = MOI.get(model, attr, bridge.abs_plus[koff])
147-
g[k] = MOIU.convert_approx(H, MOIU.remove_variable(
147+
g[k] = MOI.Utilities.convert_approx(H, MOI.Utilities.remove_variable(
148148
func, bridge.abs_vars))
149149
end
150150
k += 1
151151
func = MOI.get(model, attr, bridge.dominance[j])
152-
g[k] = MOIU.convert_approx(H, MOIU.remove_variable(
152+
g[k] = MOI.Utilities.convert_approx(H, MOI.Utilities.remove_variable(
153153
func, bridge.abs_vars))
154154
end
155-
return MOIU.vectorize(g)
155+
return MOI.Utilities.vectorize(g)
156156
end
157157

158158
# TODO ConstraintPrimal

src/Bridges/Constraint/empty.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
struct EmptyBridge{T} <: MOIB.Constraint.AbstractBridge
1+
struct EmptyBridge{T} <: MOI.Bridges.Constraint.AbstractBridge
22
end
33

4-
function MOIB.Constraint.bridge_constraint(
4+
function MOI.Bridges.Constraint.bridge_constraint(
55
::Type{EmptyBridge{T}}, model::MOI.ModelLike, f::MOI.AbstractVectorFunction,
66
s::SOS.EmptyCone) where {T}
77
@assert MOI.output_dimension(f) == MOI.dimension(s)
@@ -13,13 +13,13 @@ function MOI.supports_constraint(
1313
::Type{<:SOS.EmptyCone})
1414
return true
1515
end
16-
function MOIB.added_constrained_variable_types(::Type{<:EmptyBridge})
16+
function MOI.Bridges.added_constrained_variable_types(::Type{<:EmptyBridge})
1717
return Tuple{DataType}[]
1818
end
19-
function MOIB.added_constraint_types(::Type{<:EmptyBridge})
19+
function MOI.Bridges.added_constraint_types(::Type{<:EmptyBridge})
2020
return Tuple{DataType, DataType}[]
2121
end
22-
function MOIB.Constraint.concrete_bridge_type(
22+
function MOI.Bridges.Constraint.concrete_bridge_type(
2323
::Type{<:EmptyBridge{T}}, ::Type{<:MOI.AbstractVectorFunction},
2424
::Type{SOS.EmptyCone}) where T
2525
return EmptyBridge{T}

src/Bridges/Constraint/psd2x2.jl

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
# PSD constraints on 2x2 matrices are SOC representable.
22
# [Q11 Q12] is PSD iff Q11, Q22 ≥ 0 and Q11*Q22 ≥ Q12 ^2
33
# [Q12 Q22] <=> 2*Q11*Q22 ≥ (√2*Q12)^2
4-
struct PositiveSemidefinite2x2Bridge{T, F} <: MOIB.Constraint.AbstractBridge
4+
struct PositiveSemidefinite2x2Bridge{T, F} <: MOI.Bridges.Constraint.AbstractBridge
55
rsoc::MOI.ConstraintIndex{F, MOI.RotatedSecondOrderCone}
66
end
77

8-
function MOIB.Constraint.bridge_constraint(
8+
function MOI.Bridges.Constraint.bridge_constraint(
99
::Type{PositiveSemidefinite2x2Bridge{T, F}},
1010
model::MOI.ModelLike, f::MOI.AbstractVectorFunction,
1111
s::SOS.PositiveSemidefinite2x2ConeTriangle) where {T, F}
1212
@assert MOI.output_dimension(f) == MOI.dimension(s)
13-
fs = MOIU.eachscalar(f)
14-
g = MOIU.operate(vcat, T, fs[1], fs[3], 2 * fs[2])
13+
fs = MOI.Utilities.eachscalar(f)
14+
g = MOI.Utilities.operate(vcat, T, fs[1], fs[3], 2 * fs[2])
1515
rsoc = MOI.add_constraint(model, g, MOI.RotatedSecondOrderCone(3))
1616
return PositiveSemidefinite2x2Bridge{T, F}(rsoc)
1717
end
@@ -21,19 +21,19 @@ function MOI.supports_constraint(::Type{<:PositiveSemidefinite2x2Bridge},
2121
::Type{SOS.PositiveSemidefinite2x2ConeTriangle})
2222
return true
2323
end
24-
function MOIB.added_constrained_variable_types(::Type{<:PositiveSemidefinite2x2Bridge})
24+
function MOI.Bridges.added_constrained_variable_types(::Type{<:PositiveSemidefinite2x2Bridge})
2525
return Tuple{DataType}[]
2626
end
27-
function MOIB.added_constraint_types(::Type{PositiveSemidefinite2x2Bridge{T, F}}) where {T, F}
27+
function MOI.Bridges.added_constraint_types(::Type{PositiveSemidefinite2x2Bridge{T, F}}) where {T, F}
2828
return [(F, MOI.RotatedSecondOrderCone)]
2929
end
30-
function MOIB.Constraint.concrete_bridge_type(
30+
function MOI.Bridges.Constraint.concrete_bridge_type(
3131
::Type{<:PositiveSemidefinite2x2Bridge{T}},
3232
F::Type{<:MOI.AbstractVectorFunction},
3333
::Type{SOS.PositiveSemidefinite2x2ConeTriangle}) where T
34-
S = MOIU.scalar_type(F)
35-
G = MOIU.promote_operation(*, T, T, S)
36-
H = MOIU.promote_operation(vcat, T, G)
34+
S = MOI.Utilities.scalar_type(F)
35+
G = MOI.Utilities.promote_operation(*, T, T, S)
36+
H = MOI.Utilities.promote_operation(vcat, T, G)
3737
return PositiveSemidefinite2x2Bridge{T, H}
3838
end
3939

0 commit comments

Comments
 (0)