Skip to content

Commit 04e4c91

Browse files
committed
address comments
1 parent 89a23b9 commit 04e4c91

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

src/Bridges/Constraint/norm_spec_nuc_to_psd.jl

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ struct NormSpectralBridge{T, F, G} <: AbstractBridge
99
column_dim::Int # column dimension of X
1010
psd_index::CI{F, MOI.PositiveSemidefiniteConeTriangle}
1111
end
12-
function bridge_constraint(::Type{NormSpectralBridge{T, F, G}}, model::MOI.ModelLike, f::MOI.AbstractVectorFunction, s::MOI.NormSpectralCone) where {T, F, G}
12+
function bridge_constraint(::Type{NormSpectralBridge{T, F, G}}, model::MOI.ModelLike, f::G, s::MOI.NormSpectralCone) where {T, F, G}
1313
f_scalars = MOIU.eachscalar(f)
1414
t = f_scalars[1]
1515
row_dim = s.row_dim
1616
column_dim = s.column_dim
17-
@assert row_dim <= column_dim # TODO informative error if not
17+
@assert row_dim <= column_dim
1818
side_dim = row_dim + column_dim
1919
psd_set = MOI.PositiveSemidefiniteConeTriangle(side_dim)
2020
psd_func = MOIU.zero_with_output_dimension(F, MOI.dimension(psd_set))
@@ -48,11 +48,9 @@ MOI.delete(model::MOI.ModelLike, c::NormSpectralBridge) = MOI.delete(model, c.ps
4848
# Attributes, Bridge acting as a constraint
4949
function MOI.get(model::MOI.ModelLike, ::MOI.ConstraintFunction, c::NormSpectralBridge{T, F, G}) where {T, F, G}
5050
psd_func = MOIU.eachscalar(MOI.get(model, MOI.ConstraintFunction(), c.psd_index))
51-
# TODO is it OK to just take the t value from first diagonal index?
5251
t = psd_func[1]
5352
side_dim = c.row_dim + c.column_dim
5453
X = psd_func[[trimap(i, j) for j in 1:c.column_dim for i in (c.column_dim + 1):side_dim]]
55-
# TODO need the convert_approx?
5654
return MOIU.convert_approx(G, MOIU.operate(vcat, T, t, X))
5755
end
5856
MOI.get(model::MOI.ModelLike, ::MOI.ConstraintSet, c::NormSpectralBridge) = MOI.NormSpectralCone(c.row_dim, c.column_dim)
@@ -88,11 +86,11 @@ struct NormNuclearBridge{T, F, G, H} <: AbstractBridge
8886
ge_index::CI{F, MOI.GreaterThan{T}}
8987
psd_index::CI{G, MOI.PositiveSemidefiniteConeTriangle}
9088
end
91-
function bridge_constraint(::Type{NormNuclearBridge{T, F, G, H}}, model::MOI.ModelLike, f::MOI.AbstractVectorFunction, s::MOI.NormNuclearCone) where {T, F, G, H}
89+
function bridge_constraint(::Type{NormNuclearBridge{T, F, G, H}}, model::MOI.ModelLike, f::H, s::MOI.NormNuclearCone) where {T, F, G, H}
9290
f_scalars = MOIU.eachscalar(f)
9391
row_dim = s.row_dim
9492
column_dim = s.column_dim
95-
@assert row_dim <= column_dim # TODO informative error if not
93+
@assert row_dim <= column_dim
9694
side_dim = row_dim + column_dim
9795
U_dim = div(column_dim * (column_dim + 1), 2)
9896
V_dim = div(row_dim * (row_dim + 1), 2)

0 commit comments

Comments
 (0)