Skip to content

Commit

Permalink
Update to the new MOI scaled set (#283)
Browse files Browse the repository at this point in the history
  • Loading branch information
blegat committed Sep 9, 2023
1 parent 1238563 commit c60fd5e
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 8 deletions.
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ SCS_jll = "f4f2fc5b-1d94-523c-97ea-2ab488bedf4b"
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"

[compat]
MathOptInterface = "1.17"
MathOptInterface = "1.20"
Requires = "1"
SCS_GPU_jll = "=3.2.3"
SCS_MKL_jll = "=3.2.2, =3.2.3"
Expand Down
15 changes: 8 additions & 7 deletions src/MOI_wrapper/scaled_psd_cone_bridge.jl
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@
side_dimension::Int
end
Similar to `MOI.ScaledPositiveSemidefiniteConeTriangle` but it the vectorization
is the lower triangular part column-wise (or the upper triangular part row-wise).
Similar to `MOI.Scaled{MOI.PositiveSemidefiniteConeTriangle}` but it the
vectorization is the lower triangular part column-wise (or the upper triangular
part row-wise).
"""
struct ScaledPSDCone <: MOI.AbstractVectorSet
side_dimension::Int
Expand All @@ -30,7 +31,7 @@ end
struct ScaledPSDConeBridge{T,F} <: MOI.Bridges.Constraint.SetMapBridge{
T,
ScaledPSDCone,
MOI.ScaledPositiveSemidefiniteConeTriangle,
MOI.Scaled{MOI.PositiveSemidefiniteConeTriangle},
F,
F,
}
Expand All @@ -40,23 +41,23 @@ end
function MOI.Bridges.Constraint.concrete_bridge_type(
::Type{ScaledPSDConeBridge{T}},
::Type{F},
::Type{MOI.ScaledPositiveSemidefiniteConeTriangle},
::Type{MOI.Scaled{MOI.PositiveSemidefiniteConeTriangle}},
) where {T,F<:MOI.AbstractVectorFunction}
return ScaledPSDConeBridge{T,F}
end

function MOI.Bridges.map_set(
::Type{<:ScaledPSDConeBridge},
set::MOI.ScaledPositiveSemidefiniteConeTriangle,
set::MOI.Scaled{MOI.PositiveSemidefiniteConeTriangle},
)
return ScaledPSDCone(set.side_dimension)
return ScaledPSDCone(MOI.side_dimension(set))
end

function MOI.Bridges.inverse_map_set(
::Type{<:ScaledPSDConeBridge},
set::ScaledPSDCone,
)
return MOI.ScaledPositiveSemidefiniteConeTriangle(set.side_dimension)
return MOI.Scaled(MOI.PositiveSemidefiniteConeTriangle(set.side_dimension))
end

function _upper_to_lower_triangular_permutation(dim::Int)
Expand Down

0 comments on commit c60fd5e

Please sign in to comment.