Skip to content

Commit 800dae2

Browse files
committed
Clean up API for create inner model
1 parent 410ae5e commit 800dae2

File tree

1 file changed

+6
-15
lines changed

1 file changed

+6
-15
lines changed

src/MOI_wrapper.jl

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,12 @@ Solver name: Dual model with HiGHS attached
3030
function 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...)
3739
end
3840

3941
struct 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...)
10091
end
10192

10293
DualOptimizer() = error("DualOptimizer must have a solver attached")

0 commit comments

Comments
 (0)