From b8d4b18f19c7ae7e79f8e20d0339c456acd64897 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Sat, 6 Sep 2025 09:21:12 +0200 Subject: [PATCH 1/6] Fix diff_optimizer with no bridge --- src/moi_wrapper.jl | 4 ++-- test/jump_wrapper.jl | 10 +++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/moi_wrapper.jl b/src/moi_wrapper.jl index d6cdca517..1025a1061 100644 --- a/src/moi_wrapper.jl +++ b/src/moi_wrapper.jl @@ -37,7 +37,7 @@ function diff_optimizer( add_poi = allow_parametric_opt_interface && !MOI.supports_add_constrained_variable( - optimizer.model, + isnothing(with_bridge_type) ? optimizer : optimizer.model, MOI.Parameter{Float64}, ) # When we do `MOI.copy_to(diff, optimizer)` we need to efficiently `MOI.get` @@ -48,7 +48,7 @@ function diff_optimizer( caching_opt = if with_outer_cache MOI.Utilities.CachingOptimizer( MOI.Utilities.UniversalFallback( - MOI.Utilities.Model{with_bridge_type}(), + MOI.Utilities.Model{something(with_bridge_type, Float64)}(), ), add_poi ? POI.Optimizer(optimizer) : optimizer, ) diff --git a/test/jump_wrapper.jl b/test/jump_wrapper.jl index 68d7be386..6ea97d577 100644 --- a/test/jump_wrapper.jl +++ b/test/jump_wrapper.jl @@ -46,10 +46,14 @@ function test_jump_api() ], ineq in [true, false], _min in [true, false], - flip in [true, false] + flip in [true, false], + with_bridge_type in [Float64, nothing] + if isnothing(with_bridge_type) && SOLVER === SCS.Optimizer + continue + end - @testset "$(MODEL) with: $(SOLVER), $(ineq ? "ineqs" : "eqs"), $(_min ? "Min" : "Max"), $(flip ? "geq" : "leq")" begin - model = MODEL(SOLVER) + @testset "$(MODEL) with: $(SOLVER), $(ineq ? "ineqs" : "eqs"), $(_min ? "Min" : "Max"), $(flip ? "geq" : "leq") bridge:$with_bridge_type" begin + model = MODEL(SOLVER; with_bridge_type) set_silent(model) p_val = 4.0 From 2b355ee1782e00dce0b243f8589884cf1ef6b48f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Sat, 6 Sep 2025 09:22:39 +0200 Subject: [PATCH 2/6] Remove outer cache --- src/moi_wrapper.jl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/moi_wrapper.jl b/src/moi_wrapper.jl index 1025a1061..b64074f1c 100644 --- a/src/moi_wrapper.jl +++ b/src/moi_wrapper.jl @@ -29,6 +29,9 @@ function diff_optimizer( with_outer_cache = true, allow_parametric_opt_interface = true, ) + if isnothing(with_bridge_type) && !isnothing(with_cache_type) + with_outer_cache = false # Otherwise we'll have two caches in a row + end optimizer = MOI.instantiate( optimizer_constructor; with_bridge_type, @@ -48,7 +51,7 @@ function diff_optimizer( caching_opt = if with_outer_cache MOI.Utilities.CachingOptimizer( MOI.Utilities.UniversalFallback( - MOI.Utilities.Model{something(with_bridge_type, Float64)}(), + MOI.Utilities.Model{with_bridge_type}(), ), add_poi ? POI.Optimizer(optimizer) : optimizer, ) From d3508f4dad25bf6778ca7ad335dc86cdf49de518 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Sat, 6 Sep 2025 09:57:41 +0200 Subject: [PATCH 3/6] Fix --- src/moi_wrapper.jl | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/moi_wrapper.jl b/src/moi_wrapper.jl index b64074f1c..5f5859e29 100644 --- a/src/moi_wrapper.jl +++ b/src/moi_wrapper.jl @@ -29,9 +29,6 @@ function diff_optimizer( with_outer_cache = true, allow_parametric_opt_interface = true, ) - if isnothing(with_bridge_type) && !isnothing(with_cache_type) - with_outer_cache = false # Otherwise we'll have two caches in a row - end optimizer = MOI.instantiate( optimizer_constructor; with_bridge_type, @@ -51,7 +48,7 @@ function diff_optimizer( caching_opt = if with_outer_cache MOI.Utilities.CachingOptimizer( MOI.Utilities.UniversalFallback( - MOI.Utilities.Model{with_bridge_type}(), + MOI.Utilities.Model{something(with_bridge_type, with_cache_type)}(), ), add_poi ? POI.Optimizer(optimizer) : optimizer, ) From a9fe346c4ad6e63262411c90db35a90ef660f093 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Sat, 6 Sep 2025 09:58:12 +0200 Subject: [PATCH 4/6] Fix format --- test/jump_wrapper.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/test/jump_wrapper.jl b/test/jump_wrapper.jl index 6ea97d577..6588ab0c9 100644 --- a/test/jump_wrapper.jl +++ b/test/jump_wrapper.jl @@ -48,6 +48,7 @@ function test_jump_api() _min in [true, false], flip in [true, false], with_bridge_type in [Float64, nothing] + if isnothing(with_bridge_type) && SOLVER === SCS.Optimizer continue end From 9c115e2575989d49d8ef2bd15152f5d7bb7c81d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Sat, 6 Sep 2025 10:00:00 +0200 Subject: [PATCH 5/6] Fix format --- src/moi_wrapper.jl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/moi_wrapper.jl b/src/moi_wrapper.jl index 5f5859e29..dd4fb7586 100644 --- a/src/moi_wrapper.jl +++ b/src/moi_wrapper.jl @@ -48,7 +48,9 @@ function diff_optimizer( caching_opt = if with_outer_cache MOI.Utilities.CachingOptimizer( MOI.Utilities.UniversalFallback( - MOI.Utilities.Model{something(with_bridge_type, with_cache_type)}(), + MOI.Utilities.Model{ + something(with_bridge_type, with_cache_type) + }(), ), add_poi ? POI.Optimizer(optimizer) : optimizer, ) From 35f399e28a5e5d4b5fa2e45ece6b9946b7a19ff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Sat, 6 Sep 2025 10:13:44 +0200 Subject: [PATCH 6/6] Fix format --- src/moi_wrapper.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/moi_wrapper.jl b/src/moi_wrapper.jl index dd4fb7586..ab5745e33 100644 --- a/src/moi_wrapper.jl +++ b/src/moi_wrapper.jl @@ -49,7 +49,7 @@ function diff_optimizer( MOI.Utilities.CachingOptimizer( MOI.Utilities.UniversalFallback( MOI.Utilities.Model{ - something(with_bridge_type, with_cache_type) + something(with_bridge_type, with_cache_type), }(), ), add_poi ? POI.Optimizer(optimizer) : optimizer,