From 106c7c65b4ae64be1b9a54dfef04d9fa267ae8d7 Mon Sep 17 00:00:00 2001 From: Valentin Kaisermayer Date: Wed, 26 Oct 2022 19:58:43 +0200 Subject: [PATCH] fixes empty --- lib/OptimizationMOI/src/OptimizationMOI.jl | 4 ++-- lib/OptimizationMOI/src/moi.jl | 6 +++--- lib/OptimizationMOI/src/nlp.jl | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/OptimizationMOI/src/OptimizationMOI.jl b/lib/OptimizationMOI/src/OptimizationMOI.jl index 5480848f8..bad06ccca 100644 --- a/lib/OptimizationMOI/src/OptimizationMOI.jl +++ b/lib/OptimizationMOI/src/OptimizationMOI.jl @@ -26,6 +26,7 @@ function _create_new_optimizer(model::MOI.OptimizerWithAttributes) end function _create_new_optimizer(model::MOI.AbstractOptimizer) + MOI.empty!(model) # important! ensure that the optimizer is empty if MOI.supports_incremental_interface(model) return model end @@ -36,8 +37,7 @@ function _create_new_optimizer(model::MOI.AbstractOptimizer) end function __map_optimizer_args(cache, - opt::Union{MOI.AbstractOptimizer, MOI.OptimizerWithAttributes - }; + opt::Union{MOI.AbstractOptimizer, MOI.OptimizerWithAttributes}; maxiters::Union{Number, Nothing} = nothing, maxtime::Union{Number, Nothing} = nothing, abstol::Union{Number, Nothing} = nothing, diff --git a/lib/OptimizationMOI/src/moi.jl b/lib/OptimizationMOI/src/moi.jl index cd75b1dcb..41e73df47 100644 --- a/lib/OptimizationMOI/src/moi.jl +++ b/lib/OptimizationMOI/src/moi.jl @@ -35,7 +35,8 @@ function MOIOptimizationCache(prob::OptimizationProblem, opt) opt) end -function reinit!(cache::MOIOptimizationCache; p = nothing) +SciMLBase.has_reinit(cache::MOIOptimizationCache) = true +function SciMLBase.reinit!(cache::MOIOptimizationCache; p = nothing) if !isnothing(p) cache.p = p end @@ -93,7 +94,6 @@ function SciMLBase.solve(cache::MOIOptimizationCache; kwargs...) maxiters = Optimization._check_and_convert_maxiters(maxiters) maxtime = Optimization._check_and_convert_maxtime(maxtime) - MOI.empty!(cache.opt) # important! ensure that the optimizer is empty opt_setup = __map_optimizer_args(cache, cache.opt; abstol = abstol, @@ -308,7 +308,7 @@ end function is_equality(expr::Expr) expr.head == :call || throw(MalformedExprException("$expr")) - expr.args[1] == :(=) + expr.args[1] in [:(==), :(=)] end function is_inequality(expr::Expr) diff --git a/lib/OptimizationMOI/src/nlp.jl b/lib/OptimizationMOI/src/nlp.jl index c9fb7c577..843433cb9 100644 --- a/lib/OptimizationMOI/src/nlp.jl +++ b/lib/OptimizationMOI/src/nlp.jl @@ -103,7 +103,8 @@ function MOIOptimizationNLPCache(prob::OptimizationProblem, opt) return MOIOptimizationNLPCache(evaluator, opt) end -function reinit!(cache::MOIOptimizationNLPCache; p = nothing) +SciMLBase.has_reinit(cache::MOIOptimizationNLPCache) = true +function SciMLBase.reinit!(cache::MOIOptimizationNLPCache; p = nothing) if !isnothing(p) cache.evaluator.reinit_cache.p = p end @@ -326,7 +327,6 @@ function SciMLBase.solve(cache::MOIOptimizationNLPCache; kwargs...) maxiters = Optimization._check_and_convert_maxiters(maxiters) maxtime = Optimization._check_and_convert_maxtime(maxtime) - MOI.empty!(cache.opt) # important! ensure that the optimizer is empty opt_setup = __map_optimizer_args(cache, cache.opt; abstol = abstol,