Skip to content
Merged
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
50 changes: 19 additions & 31 deletions src/iis.jl
Original file line number Diff line number Diff line change
Expand Up @@ -69,30 +69,26 @@ end

struct InfeasibleModel end

function MOI.set(
optimizer::Optimizer,
attr::InfeasibleModel,
model::MOI.ModelLike,
)
function MOI.set(optimizer::Optimizer, ::InfeasibleModel, model::MOI.ModelLike)
optimizer.original_model = model
# this also resets the results
results = InfeasibilityData[]
status = MOI.COMPUTE_CONFLICT_NOT_CALLED
return
end

# function MOI.get(optimizer::Optimizer, attr::InfeasibleModel)
# function MOI.get(optimizer::Optimizer, ::InfeasibleModel)
# return optimizer.original_model
# end

struct InnerOptimizer end

function MOI.set(optimizer::Optimizer, attr::InnerOptimizer, solver)
function MOI.set(optimizer::Optimizer, ::InnerOptimizer, solver)
optimizer.optimizer = solver
return
end

# function MOI.get(optimizer::Optimizer, attr::InnerOptimizer)
# function MOI.get(optimizer::Optimizer, ::InnerOptimizer)
# return optimizer.optimizer
# end

Expand All @@ -112,73 +108,65 @@ end
# return optimizer.optimizer_attributes[attr.attr]
# end

function MOI.set(optimizer::Optimizer, attr::MOI.TimeLimitSec, value::Float64)
function MOI.set(optimizer::Optimizer, ::MOI.TimeLimitSec, value::Float64)
optimizer.time_limit = value
return
end

function MOI.get(optimizer::Optimizer, attr::MOI.TimeLimitSec)
function MOI.get(optimizer::Optimizer, ::MOI.TimeLimitSec)
return optimizer.time_limit
end

function MOI.set(optimizer::Optimizer, attr::MOI.Silent, value::Bool)
function MOI.set(optimizer::Optimizer, ::MOI.Silent, value::Bool)
optimizer.verbose = value
return
end

function MOI.get(optimizer::Optimizer, attr::MOI.Silent)
function MOI.get(optimizer::Optimizer, ::MOI.Silent)
return optimizer.verbose
end

struct SkipFeasibilityCheck <: MOI.AbstractOptimizerAttribute end

function MOI.set(optimizer::Optimizer, attr::SkipFeasibilityCheck, value::Bool)
function MOI.set(optimizer::Optimizer, ::SkipFeasibilityCheck, value::Bool)
optimizer.skip_feasibility_check = value
return
end

function MOI.get(optimizer::Optimizer, attr::SkipFeasibilityCheck)
function MOI.get(optimizer::Optimizer, ::SkipFeasibilityCheck)
return optimizer.skip_feasibility_check
end

struct StopIfInfeasibleBounds end

function MOI.set(
optimizer::Optimizer,
attr::StopIfInfeasibleBounds,
value::Bool,
)
function MOI.set(optimizer::Optimizer, ::StopIfInfeasibleBounds, value::Bool)
optimizer.stop_if_infeasible_bounds = value
return
end

function MOI.get(optimizer::Optimizer, attr::StopIfInfeasibleBounds)
function MOI.get(optimizer::Optimizer, ::StopIfInfeasibleBounds)
return optimizer.stop_if_infeasible_bounds
end

struct StopIfInfeasibleRanges end

function MOI.set(
optimizer::Optimizer,
attr::StopIfInfeasibleRanges,
value::Bool,
)
function MOI.set(optimizer::Optimizer, ::StopIfInfeasibleRanges, value::Bool)
optimizer.stop_if_infeasible_ranges = value
return
end

function MOI.get(optimizer::Optimizer, attr::StopIfInfeasibleRanges)
function MOI.get(optimizer::Optimizer, ::StopIfInfeasibleRanges)
return optimizer.stop_if_infeasible_ranges
end

struct DeletionFilter end

function MOI.set(optimizer::Optimizer, attr::DeletionFilter, value::Bool)
function MOI.set(optimizer::Optimizer, ::DeletionFilter, value::Bool)
optimizer.deletion_filter = value
return
end

function MOI.get(optimizer::Optimizer, attr::DeletionFilter)
function MOI.get(optimizer::Optimizer, ::DeletionFilter)
return optimizer.deletion_filter
end

Expand Down Expand Up @@ -208,13 +196,13 @@ function MOI.get(optimizer::Optimizer, ::ElasticFilterIgnoreIntegrality)
return optimizer.ignore_integrality
end

function MOI.get(optimizer::Optimizer, attr::MOI.ConflictStatus)
function MOI.get(optimizer::Optimizer, ::MOI.ConflictStatus)
return optimizer.status
end

function MOI.get(
optimizer::Optimizer,
attr::MOI.ConstraintConflictStatus,
::MOI.ConstraintConflictStatus,
con::MOI.ConstraintIndex,
)
return MOI.get(optimizer, ConstraintConflictStatus(1), con)
Expand All @@ -223,7 +211,7 @@ end
# this should be moved to MOI
struct ConflictCount <: MOI.AbstractModelAttribute end

function MOI.get(optimizer::Optimizer, attr::ConflictCount)
function MOI.get(optimizer::Optimizer, ::ConflictCount)
return length(optimizer.results)
end

Expand Down
Loading