@@ -6858,7 +6858,10 @@ which is
6858
6858
[-1/2+im/2 (-1+√3)/2]
6859
6859
```
6860
6860
"""
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}
6862
6865
atol = config. atol
6863
6866
rtol = config. rtol
6864
6867
@@ -6885,7 +6888,12 @@ function test_conic_HermitianPositiveSemidefiniteConeTriangle_1(optimizer::MOI.M
6885
6888
MOI. set (optimizer, MOI. ObjectiveFunction {typeof(t)} (), t)
6886
6889
if _supports (config, MOI. optimize!)
6887
6890
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
+ ]
6889
6897
soc_primal = [
6890
6898
primal[1 ] - one (T),
6891
6899
√ T (2 ) * (primal[2 ] + one (T)),
@@ -6894,22 +6902,31 @@ function test_conic_HermitianPositiveSemidefiniteConeTriangle_1(optimizer::MOI.M
6894
6902
]
6895
6903
t_value = LinearAlgebra. norm (soc_primal)
6896
6904
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 =
6905
6912
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 =
6907
6920
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
6908
6925
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
6913
6930
end
6914
6931
end
6915
6932
return
@@ -6920,7 +6937,12 @@ function setup_test(
6920
6937
model:: MOIU.MockOptimizer ,
6921
6938
:: Config{T} ,
6922
6939
) 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
+ ]
6924
6946
soc_primal = [
6925
6947
primal[1 ] - one (T),
6926
6948
√ T (2 ) * (primal[2 ] + one (T)),
@@ -6930,14 +6952,20 @@ function setup_test(
6930
6952
t_value = LinearAlgebra. norm (soc_primal)
6931
6953
push! (primal, t_value)
6932
6954
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 )]
6935
6962
MOIU. set_mock_optimize! (
6936
6963
model,
6937
6964
(mock:: MOIU.MockOptimizer ) -> MOIU. mock_optimize! (
6938
6965
mock,
6939
6966
primal,
6940
- (MOI. VectorAffineFunction{T}, MOI. SecondOrderCone) => [soc_dual],
6967
+ (MOI. VectorAffineFunction{T}, MOI. SecondOrderCone) =>
6968
+ [soc_dual],
6941
6969
),
6942
6970
)
6943
6971
return
@@ -6951,28 +6979,27 @@ on [`MathOptInterface.HermitianPositiveSemidefiniteConeTriangle`](@ref)
6951
6979
variables.
6952
6980
```
6953
6981
"""
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}
6955
6986
atol = config. atol
6956
6987
rtol = config. rtol
6957
6988
6958
6989
MOI. empty! (optimizer)
6959
6990
set = MOI. HermitianPositiveSemidefiniteConeTriangle (3 )
6960
6991
x, cx = MOI. add_constrained_variables (optimizer, set)
6961
6992
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))
6967
6994
if _supports (config, MOI. optimize!)
6968
6995
MOI. optimize! (optimizer)
6969
6996
@test MOI. get (optimizer, MOI. VariablePrimal (), x) ≈ primal atol = atol rtol =
6970
6997
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
6973
7000
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
6976
7003
end
6977
7004
end
6978
7005
end
@@ -6987,7 +7014,10 @@ function setup_test(
6987
7014
(mock:: MOIU.MockOptimizer ) -> MOIU. mock_optimize! (
6988
7015
mock,
6989
7016
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 )],
6991
7021
),
6992
7022
)
6993
7023
model. eval_variable_constraint_dual = false
0 commit comments