Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/Bridges/Constraint/det.jl
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ function MOI.get(
MOI.ExponentialCone,
},
) where {T}
return b.lcindex
return copy(b.lcindex)
end

function MOI.get(
Expand Down Expand Up @@ -409,7 +409,7 @@ end
# Attributes, Bridge acting as a model
MOI.get(b::RootDetBridge, ::MOI.NumberOfVariables) = length(b.Δ)

MOI.get(b::RootDetBridge, ::MOI.ListOfVariableIndices) = b.Δ
MOI.get(b::RootDetBridge, ::MOI.ListOfVariableIndices) = copy(b.Δ)

function MOI.get(
::RootDetBridge{T},
Expand Down
4 changes: 2 additions & 2 deletions src/Bridges/Constraint/geomean.jl
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ end
# Attributes, Bridge acting as a model
MOI.get(b::GeoMeanBridge, ::MOI.NumberOfVariables) = length(b.xij)

MOI.get(b::GeoMeanBridge, ::MOI.ListOfVariableIndices) = b.xij
MOI.get(b::GeoMeanBridge, ::MOI.ListOfVariableIndices) = copy(b.xij)

function MOI.get(
::GeoMeanBridge{T,F},
Expand Down Expand Up @@ -204,7 +204,7 @@ function MOI.get(
b::GeoMeanBridge{T,F,G},
::MOI.ListOfConstraintIndices{G,MOI.RotatedSecondOrderCone},
) where {T,F,G}
return b.socrc
return copy(b.socrc)
end

function MOI.get(
Expand Down
2 changes: 1 addition & 1 deletion src/Bridges/Constraint/norm_to_lp.jl
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ end

# Attributes, Bridge acting as a model
MOI.get(b::NormOneBridge, ::MOI.NumberOfVariables) = length(b.y)
MOI.get(b::NormOneBridge, ::MOI.ListOfVariableIndices) = b.y
MOI.get(b::NormOneBridge, ::MOI.ListOfVariableIndices) = copy(b.y)
function MOI.get(
b::NormOneBridge{T,F},
::MOI.NumberOfConstraints{F,MOI.Nonnegatives},
Expand Down
8 changes: 6 additions & 2 deletions src/Bridges/Constraint/relentr_to_exp.jl
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,11 @@ end
function MOI.get(bridge::RelativeEntropyBridge, ::MOI.NumberOfVariables)
return length(bridge.y)
end
MOI.get(bridge::RelativeEntropyBridge, ::MOI.ListOfVariableIndices) = bridge.y

function MOI.get(bridge::RelativeEntropyBridge, ::MOI.ListOfVariableIndices)
return copy(bridge.y)
end

function MOI.get(
bridge::RelativeEntropyBridge{T,F},
::MOI.NumberOfConstraints{F,MOI.GreaterThan{T}},
Expand All @@ -110,7 +114,7 @@ function MOI.get(
bridge::RelativeEntropyBridge{T,F,G},
::MOI.ListOfConstraintIndices{G,MOI.ExponentialCone},
) where {T,F,G}
return bridge.exp_indices
return copy(bridge.exp_indices)
end

# References
Expand Down
2 changes: 1 addition & 1 deletion src/Bridges/Constraint/scalarize.jl
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ function MOI.get(
bridge::ScalarizeBridge{T,F,S},
::MOI.ListOfConstraintIndices{F,S},
) where {T,F,S}
return bridge.scalar_constraints
return copy(bridge.scalar_constraints)
end

# References
Expand Down
2 changes: 1 addition & 1 deletion src/Bridges/Constraint/slack.jl
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ end

# Attributes, Bridge acting as a model
MOI.get(b::VectorSlackBridge, ::MOI.NumberOfVariables) = length(b.slack)
MOI.get(b::VectorSlackBridge, ::MOI.ListOfVariableIndices) = b.slack
MOI.get(b::VectorSlackBridge, ::MOI.ListOfVariableIndices) = copy(b.slack)

# Attributes, Bridge acting as a constraint
function MOI.set(
Expand Down
2 changes: 1 addition & 1 deletion src/Bridges/Constraint/soc_to_nonconvex_quad.jl
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ function MOI.get(
MOI.GreaterThan{T},
},
) where {T}
return bridge.var_pos
return copy(bridge.var_pos)
end

# References
Expand Down
2 changes: 1 addition & 1 deletion src/Bridges/Variable/flip_sign.jl
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ function MOI.get(bridge::FlipSignBridge, ::MOI.NumberOfVariables)
end

function MOI.get(bridge::FlipSignBridge, ::MOI.ListOfVariableIndices)
return bridge.flipped_variables
return copy(bridge.flipped_variables)
end

function MOI.get(
Expand Down
2 changes: 1 addition & 1 deletion src/Bridges/Variable/free.jl
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ function MOI.get(bridge::FreeBridge, ::MOI.NumberOfVariables)
end

function MOI.get(bridge::FreeBridge, ::MOI.ListOfVariableIndices)
return vcat(bridge.variables)
return copy(bridge.variables)
end

function MOI.get(
Expand Down
6 changes: 3 additions & 3 deletions src/Bridges/Variable/rsoc_to_psd.jl
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ function MOI.get(bridge::RSOCtoPSDBridge, ::MOI.NumberOfVariables)
end

function MOI.get(bridge::RSOCtoPSDBridge, ::MOI.ListOfVariableIndices)
return bridge.variables
return copy(bridge.variables)
end

function MOI.get(
Expand Down Expand Up @@ -123,7 +123,7 @@ function MOI.get(
bridge::RSOCtoPSDBridge{T},
::MOI.ListOfConstraintIndices{MOI.SingleVariable,MOI.EqualTo{T}},
) where {T}
return bridge.off_diag
return copy(bridge.off_diag)
end

function MOI.get(
Expand All @@ -137,7 +137,7 @@ function MOI.get(
bridge::RSOCtoPSDBridge{T},
::MOI.ListOfConstraintIndices{MOI.ScalarAffineFunction{T},MOI.EqualTo{T}},
) where {T}
return bridge.diag
return copy(bridge.diag)
end

# References
Expand Down
2 changes: 1 addition & 1 deletion src/Bridges/Variable/rsoc_to_soc.jl
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ function MOI.get(bridge::RSOCtoSOCBridge, ::MOI.NumberOfVariables)
end

function MOI.get(bridge::RSOCtoSOCBridge, ::MOI.ListOfVariableIndices)
return bridge.variables
return copy(bridge.variables)
end

function MOI.get(
Expand Down
2 changes: 1 addition & 1 deletion src/Bridges/Variable/soc_to_rsoc.jl
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ function MOI.get(bridge::SOCtoRSOCBridge, ::MOI.NumberOfVariables)
end

function MOI.get(bridge::SOCtoRSOCBridge, ::MOI.ListOfVariableIndices)
return bridge.variables
return copy(bridge.variables)
end

function MOI.get(
Expand Down
4 changes: 2 additions & 2 deletions src/Bridges/bridge_optimizer.jl
Original file line number Diff line number Diff line change
Expand Up @@ -632,8 +632,8 @@ function get_all_including_bridged(
)
list = MOI.get(b.model, attr)
if !isempty(Variable.bridges(b))
# TODO(odow): Fix this!
list = append!(copy(list), keys(Variable.bridges(b)))
# The conversion from `keys` into a `Vector` happens inside `append!`.
append!(list, keys(Variable.bridges(b)))
end
return list
end
Expand Down