@@ -30,10 +30,12 @@ Solver name: Dual model with HiGHS attached
3030function dual_optimizer (
3131 optimizer_constructor;
3232 coefficient_type:: Type{T} = Float64,
33+ with_cache_type = coefficient_type,
34+ with_bridge_type = coefficient_type,
3335 kwargs... ,
3436) where {T<: Number }
35- return () ->
36- DualOptimizer {T} (MOI . instantiate (optimizer_constructor) , kwargs... )
37+ inner = MOI . instantiate (optimizer_constructor; with_cache_type, with_bridge_type)
38+ return () -> DualOptimizer {T} (inner , kwargs... )
3739end
3840
3941struct DualOptimizer{T,OT<: MOI.ModelLike } <: MOI.AbstractOptimizer
@@ -84,19 +86,8 @@ function DualOptimizer{T}(
8486 dual_optimizer:: OT ;
8587 kwargs... ,
8688) where {T,OT<: MOI.ModelLike }
87- dual_problem = DualProblem {T} (
88- MOI. Bridges. full_bridge_optimizer (
89- MOI. Utilities. CachingOptimizer (
90- MOI. Utilities. UniversalFallback (MOI. Utilities. Model {T} ()),
91- dual_optimizer,
92- ),
93- T,
94- ),
95- )
96- # discover the type of
97- # MOI.Utilities.CachingOptimizer(MOI.Utilities.Model{T}(), dual_optimizer)
98- OptimizerType = typeof (dual_problem. dual_model)
99- return DualOptimizer {T,OptimizerType} (dual_problem, kwargs... )
89+ dual_problem = DualProblem {T} (dual_optimizer)
90+ return DualOptimizer {T,typeof(dual_optimizer)} (dual_problem; kwargs... )
10091end
10192
10293DualOptimizer () = error (" DualOptimizer must have a solver attached" )
0 commit comments