Skip to content

Commit

Permalink
support problem and variable names
Browse files Browse the repository at this point in the history
  • Loading branch information
rschwarz committed Dec 22, 2018
1 parent f34c1d0 commit 92d42b9
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion src/MOI_wrapper.jl
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ MOI.supports_constraint(o::Optimizer, ::Type{<:SF}, ::Type{<:SS}) = true
MOI.supports(::Optimizer, ::MOI.ObjectiveSense) = true
MOI.supports(::Optimizer, ::MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}) = true

MOIU.supports_default_copy_to(model::Optimizer, copy_names::Bool) = !copy_names
MOIU.supports_default_copy_to(model::Optimizer, copy_names::Bool) = true

struct Param <: MOI.AbstractOptimizerAttribute
name::String
Expand Down Expand Up @@ -131,6 +131,9 @@ function MOI.copy_to(dest::Optimizer, src::MOI.ModelLike; kws...)
MOIU.automatic_copy_to(dest, src; kws...)
end

MOI.get(o::Optimizer, ::MOI.Name) = SCIPgetProbName(get_scip(o))
MOI.set(o::Optimizer, ::MOI.Name, name::String) = @SC SCIPsetProbName(get_scip(o), name)

function MOI.add_variable(o::Optimizer)
allow_modification(o)
i::Int = add_variable(o.mscip)
Expand All @@ -143,6 +146,16 @@ MOI.add_variables(o::Optimizer, n) = [MOI.add_variable(o) for i=1:n]
MOI.get(o::Optimizer, ::MOI.NumberOfVariables) = length(o.mscip.vars)
MOI.get(o::Optimizer, ::MOI.ListOfVariableIndices) = VI.(1:length(o.mscip.vars))

MOI.get(o::Optimizer, ::MOI.VariableName, vi::VI) = SCIPvarGetName(get_var(o, vi))
function MOI.set(o::Optimizer, ::MOI.VariableName, vi::VI, name::String)
@SC SCIPchgVarName(get_scip(o), get_var(o, vi), name)
end

function MOI.get(o::Optimizer, ::Type{VI}, name::String)
var = SCIPfindVar(get_scip(o), name)
return VI(o.var[var])
end

function MOI.add_constraint(o::Optimizer, func::MOI.SingleVariable,
set::S) where S <: SS
allow_modification(o)
Expand Down

0 comments on commit 92d42b9

Please sign in to comment.