Skip to content

Commit 38a06ab

Browse files
committed
Fix format
1 parent 8eb190b commit 38a06ab

File tree

4 files changed

+99
-42
lines changed

4 files changed

+99
-42
lines changed

src/Bridges/Variable/bridges/hermitian.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,10 @@ function _variable_map(idx::MOI.Bridges.IndexInVector, n)
272272
i
273273
end
274274
end
275-
function _variable(bridge::HermitianToSymmetricPSDBridge, i::MOI.Bridges.IndexInVector)
275+
function _variable(
276+
bridge::HermitianToSymmetricPSDBridge,
277+
i::MOI.Bridges.IndexInVector,
278+
)
276279
return bridge.variables[_variable_map(i, length(bridge.con12diag))]
277280
end
278281

src/Test/test_conic.jl

Lines changed: 60 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6858,7 +6858,10 @@ which is
68586858
[-1/2+im/2 (-1+√3)/2]
68596859
```
68606860
"""
6861-
function test_conic_HermitianPositiveSemidefiniteConeTriangle_1(optimizer::MOI.ModelLike, config::Config{T}) where {T}
6861+
function test_conic_HermitianPositiveSemidefiniteConeTriangle_1(
6862+
optimizer::MOI.ModelLike,
6863+
config::Config{T},
6864+
) where {T}
68626865
atol = config.atol
68636866
rtol = config.rtol
68646867

@@ -6885,7 +6888,12 @@ function test_conic_HermitianPositiveSemidefiniteConeTriangle_1(optimizer::MOI.M
68856888
MOI.set(optimizer, MOI.ObjectiveFunction{typeof(t)}(), t)
68866889
if _supports(config, MOI.optimize!)
68876890
MOI.optimize!(optimizer)
6888-
primal = [(T(1) + T(3)) / T(2), -T(1) / T(2), (-T(1) + T(3)) / T(2), T(1) / T(2)]
6891+
primal = [
6892+
(T(1) + T(3)) / T(2),
6893+
-T(1) / T(2),
6894+
(-T(1) + T(3)) / T(2),
6895+
T(1) / T(2),
6896+
]
68896897
soc_primal = [
68906898
primal[1] - one(T),
68916899
T(2) * (primal[2] + one(T)),
@@ -6894,22 +6902,31 @@ function test_conic_HermitianPositiveSemidefiniteConeTriangle_1(optimizer::MOI.M
68946902
]
68956903
t_value = LinearAlgebra.norm(soc_primal)
68966904
soc_primal = [t_value; soc_primal]
6897-
dual = [(T(3) - T(3)) / T(6), T(3)/T(6), (T(3) + T(3)) / T(6), -√T(3)/T(6)]
6898-
@test MOI.Utilities.set_dot(primal, dual, set) 0 atol = atol rtol = rtol
6899-
soc_dual = [one(T), -dual[1], -dual[2]*√T(2), -dual[3], -dual[4]*√T(2)]
6900-
@test MOI.Utilities.set_dot(soc_primal, soc_dual, soc_set) 0 atol = atol rtol = rtol
6901-
@test (MOI.get(optimizer, MOI.VariablePrimal(), x), primal, config)
6902-
rtol
6903-
@test MOI.get(optimizer, MOI.VariablePrimal(), t) t_value atol = atol rtol = rtol
6904-
@test MOI.get(optimizer, MOI.ConstraintPrimal(), cx) primal atol = atol rtol =
6905+
dual = [
6906+
(T(3) - T(3)) / T(6),
6907+
T(3) / T(6),
6908+
(T(3) + T(3)) / T(6),
6909+
-√T(3) / T(6),
6910+
]
6911+
@test MOI.Utilities.set_dot(primal, dual, set) 0 atol = atol rtol =
69056912
rtol
6906-
@test MOI.get(optimizer, MOI.ConstraintPrimal(), con_soc) soc_primal atol = atol rtol =
6913+
soc_dual =
6914+
[one(T), -dual[1], -dual[2] * T(2), -dual[3], -dual[4] * T(2)]
6915+
@test MOI.Utilities.set_dot(soc_primal, soc_dual, soc_set) 0 atol =
6916+
atol rtol = rtol
6917+
@test (MOI.get(optimizer, MOI.VariablePrimal(), x), primal, config)
6918+
rtol
6919+
@test MOI.get(optimizer, MOI.VariablePrimal(), t) t_value atol = atol rtol =
69076920
rtol
6921+
@test MOI.get(optimizer, MOI.ConstraintPrimal(), cx) primal atol =
6922+
atol rtol = rtol
6923+
@test MOI.get(optimizer, MOI.ConstraintPrimal(), con_soc) soc_primal atol =
6924+
atol rtol = rtol
69086925
if _supports(config, MOI.ConstraintDual)
6909-
@test MOI.get(optimizer, MOI.ConstraintDual(), cx) dual atol = atol rtol =
6910-
rtol
6911-
@test MOI.get(optimizer, MOI.ConstraintDual(), con_soc) soc_dual atol = atol rtol =
6912-
rtol
6926+
@test MOI.get(optimizer, MOI.ConstraintDual(), cx) dual atol =
6927+
atol rtol = rtol
6928+
@test MOI.get(optimizer, MOI.ConstraintDual(), con_soc) soc_dual atol =
6929+
atol rtol = rtol
69136930
end
69146931
end
69156932
return
@@ -6920,7 +6937,12 @@ function setup_test(
69206937
model::MOIU.MockOptimizer,
69216938
::Config{T},
69226939
) where {T}
6923-
primal = [(T(1) + T(3)) / T(2), -T(1) / T(2), (-T(1) + T(3)) / T(2), T(1) / T(2)]
6940+
primal = [
6941+
(T(1) + T(3)) / T(2),
6942+
-T(1) / T(2),
6943+
(-T(1) + T(3)) / T(2),
6944+
T(1) / T(2),
6945+
]
69246946
soc_primal = [
69256947
primal[1] - one(T),
69266948
T(2) * (primal[2] + one(T)),
@@ -6930,14 +6952,20 @@ function setup_test(
69306952
t_value = LinearAlgebra.norm(soc_primal)
69316953
push!(primal, t_value)
69326954
soc_primal = [t_value; soc_primal]
6933-
dual = [(T(3) - T(3)) / T(6), T(3)/T(6), (T(3) + T(3)) / T(6), -√T(3)/T(6)]
6934-
soc_dual = [one(T), -dual[1], -dual[2]*√T(2), -dual[3], -dual[4]*√T(2)]
6955+
dual = [
6956+
(T(3) - T(3)) / T(6),
6957+
T(3) / T(6),
6958+
(T(3) + T(3)) / T(6),
6959+
-√T(3) / T(6),
6960+
]
6961+
soc_dual = [one(T), -dual[1], -dual[2] * T(2), -dual[3], -dual[4] * T(2)]
69356962
MOIU.set_mock_optimize!(
69366963
model,
69376964
(mock::MOIU.MockOptimizer) -> MOIU.mock_optimize!(
69386965
mock,
69396966
primal,
6940-
(MOI.VectorAffineFunction{T}, MOI.SecondOrderCone) => [soc_dual],
6967+
(MOI.VectorAffineFunction{T}, MOI.SecondOrderCone) =>
6968+
[soc_dual],
69416969
),
69426970
)
69436971
return
@@ -6951,28 +6979,27 @@ on [`MathOptInterface.HermitianPositiveSemidefiniteConeTriangle`](@ref)
69516979
variables.
69526980
```
69536981
"""
6954-
function test_conic_HermitianPositiveSemidefiniteConeTriangle_2(optimizer::MOI.ModelLike, config::Config{T}) where {T}
6982+
function test_conic_HermitianPositiveSemidefiniteConeTriangle_2(
6983+
optimizer::MOI.ModelLike,
6984+
config::Config{T},
6985+
) where {T}
69556986
atol = config.atol
69566987
rtol = config.rtol
69576988

69586989
MOI.empty!(optimizer)
69596990
set = MOI.HermitianPositiveSemidefiniteConeTriangle(3)
69606991
x, cx = MOI.add_constrained_variables(optimizer, set)
69616992
primal = T[1, 0, 1, 0, 0, 0, -1, 0, 0]
6962-
MOI.add_constraints(
6963-
optimizer,
6964-
x,
6965-
MOI.EqualTo.(primal),
6966-
)
6993+
MOI.add_constraints(optimizer, x, MOI.EqualTo.(primal))
69676994
if _supports(config, MOI.optimize!)
69686995
MOI.optimize!(optimizer)
69696996
@test MOI.get(optimizer, MOI.VariablePrimal(), x) primal atol = atol rtol =
69706997
rtol
6971-
@test MOI.get(optimizer, MOI.ConstraintPrimal(), cx) primal atol = atol rtol =
6972-
rtol
6998+
@test MOI.get(optimizer, MOI.ConstraintPrimal(), cx) primal atol =
6999+
atol rtol = rtol
69737000
if _supports(config, MOI.ConstraintDual)
6974-
@test MOI.get(optimizer, MOI.ConstraintDual(), cx) zeros(9) atol = atol rtol =
6975-
rtol
7001+
@test MOI.get(optimizer, MOI.ConstraintDual(), cx) zeros(9) atol =
7002+
atol rtol = rtol
69767003
end
69777004
end
69787005
end
@@ -6987,7 +7014,10 @@ function setup_test(
69877014
(mock::MOIU.MockOptimizer) -> MOIU.mock_optimize!(
69887015
mock,
69897016
T[1, 0, 1, 0, 0, 0, -1, 0, 0],
6990-
(MOI.VectorOfVariables, MOI.HermitianPositiveSemidefiniteConeTriangle) => [zeros(T, 9)],
7017+
(
7018+
MOI.VectorOfVariables,
7019+
MOI.HermitianPositiveSemidefiniteConeTriangle,
7020+
) => [zeros(T, 9)],
69917021
),
69927022
)
69937023
model.eval_variable_constraint_dual = false

src/sets.jl

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -800,11 +800,8 @@ struct HermitianPositiveSemidefiniteConeTriangle <: AbstractVectorSet
800800
end
801801

802802
function dimension(set::HermitianPositiveSemidefiniteConeTriangle)
803-
return dimension(
804-
PositiveSemidefiniteConeTriangle(set.side_dimension),
805-
) + dimension(
806-
PositiveSemidefiniteConeTriangle(set.side_dimension - 1),
807-
)
803+
return dimension(PositiveSemidefiniteConeTriangle(set.side_dimension)) +
804+
dimension(PositiveSemidefiniteConeTriangle(set.side_dimension - 1))
808805
end
809806

810807
"""

test/Bridges/Variable/hermitian.jl

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,50 @@ function test_conic_HermitianPositiveSemidefiniteConeTriangle_1()
2828
T = Float64
2929
mock = MOI.Utilities.MockOptimizer(MOI.Utilities.Model{T}())
3030
bridged_mock = MOI.Bridges.Variable.HermitianToSymmetricPSD{T}(mock)
31-
primal = [(T(1) + T(3)) / T(2), -T(1) / T(2), (-T(1) + T(3)) / T(2), T(1) / T(2)]
31+
primal = [
32+
(T(1) + T(3)) / T(2),
33+
-T(1) / T(2),
34+
(-T(1) + T(3)) / T(2),
35+
T(1) / T(2),
36+
]
3237
soc_primal = [
3338
primal[1] - one(T),
3439
T(2) * (primal[2] + one(T)),
3540
primal[3] + one(T),
3641
T(2) * (primal[4] - one(T)),
3742
]
3843
t_value = norm(soc_primal)
39-
real_primal = [primal[1:3]; zero(T); -primal[4]; primal[1]; primal[4]; zero(T); primal[2:3]; t_value]
40-
dual = [(T(3) - T(3)) / T(6), T(3)/T(6), (T(3) + T(3)) / T(6), -√T(3)/T(6)]
41-
soc_dual = [one(T), -dual[1], -dual[2]*√T(2), -dual[3], -dual[4]*√T(2)]
44+
real_primal = [
45+
primal[1:3]
46+
zero(T)
47+
-primal[4]
48+
primal[1]
49+
primal[4]
50+
zero(T)
51+
primal[2:3]
52+
t_value
53+
]
54+
dual = [
55+
(T(3) - T(3)) / T(6),
56+
T(3) / T(6),
57+
(T(3) + T(3)) / T(6),
58+
-√T(3) / T(6),
59+
]
60+
soc_dual = [one(T), -dual[1], -dual[2] * T(2), -dual[3], -dual[4] * T(2)]
4261
mock.optimize! =
4362
(mock::MOI.Utilities.MockOptimizer) -> MOI.Utilities.mock_optimize!(
4463
mock,
4564
real_primal,
46-
(MOI.VectorAffineFunction{T}, MOI.SecondOrderCone) => [soc_dual],
47-
(MOI.ScalarAffineFunction{T}, MOI.EqualTo{T}) => [dual[1]/T(2); zero(T); dual[2]; -dual[2]; dual[3]/T(2); zero(T)],
65+
(MOI.VectorAffineFunction{T}, MOI.SecondOrderCone) =>
66+
[soc_dual],
67+
(MOI.ScalarAffineFunction{T}, MOI.EqualTo{T}) => [
68+
dual[1] / T(2)
69+
zero(T)
70+
dual[2]
71+
-dual[2]
72+
dual[3] / T(2)
73+
zero(T)
74+
],
4875
)
4976
MOI.Test.test_conic_HermitianPositiveSemidefiniteConeTriangle_1(
5077
bridged_mock,

0 commit comments

Comments
 (0)