File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -13,6 +13,8 @@ struct SemOptimizerNLopt <: SemOptimizer{:NLopt}
1313 inequality_constraints:: Vector{NLoptConstraint}
1414end
1515
16+ SEM. SemOptimizer_impltype (:: Val{:NLopt} ) = SemOptimizerNLopt
17+
1618# ###########################################################################################
1719# ## Constructor
1820# ###########################################################################################
109111
110112SEM. SemOptimizer (:: Val{:NLopt} , args... ; kwargs... ) = SemOptimizerNLopt (args... ; kwargs... )
111113
112- SEM. optimizer_engine_doc (engine:: Val{:NLopt} ) = doc (SemOptimizerNLopt)
113-
114114# ###########################################################################################
115115# ## Recommended methods
116116# ###########################################################################################
Original file line number Diff line number Diff line change 99
1010SEM. SemOptimizer {:Proximal} (args... ; kwargs... ) = SemOptimizerProximal (args... ; kwargs... )
1111
12- SEM. optimizer_engine_doc (engine :: Val{:Proximal} ) = doc ( SemOptimizerProximal)
12+ SEM. SemOptimizer_impltype ( :: Val{:Proximal} ) = SemOptimizerProximal
1313
1414"""
1515Connects to `ProximalAlgorithms.jl` as the optimization backend. For more information on
Original file line number Diff line number Diff line change @@ -14,7 +14,7 @@ struct SemOptimizerEmpty <: SemOptimizer{:Empty} end
1414
1515SemOptimizer (:: Val{:Empty} ) = SemOptimizerEmpty ()
1616
17- optimizer_engine_doc (engine :: Val{:Empty} ) = doc ( SemOptimizerEmpty)
17+ SemOptimizer_impltype ( :: Val{:Empty} ) = SemOptimizerEmpty
1818
1919# ###########################################################################################
2020# ## Recommended methods
Original file line number Diff line number Diff line change @@ -64,15 +64,20 @@ into the current session.
6464"""
6565optimizer_engines () = Symbol[optimizer_engine (opt_type) for opt_type in subtypes (SemOptimizer)]
6666
67+ # return the type implementing SemOptimizer{engine}
68+ # should be overridden in the extension
69+ SemOptimizer_impltype (engine:: Symbol ) = SemOptimizer_impltype (Val (engine))
70+
71+ SemOptimizer_impltype (:: Val{E} ) where {E} = throw_engine_error (E)
72+
6773"""
6874 optimizer_engine_doc(engine::Symbol)
6975
70- Shows information on the optimizer engine.
71- For a list of available engines, call `optimizer_engines`.
72- """
73- optimizer_engine_doc (engine) = optimizer_engine_doc (Val (engine))
76+ Shows documentation for the optimizer engine.
7477
75- optimizer_engine_doc (:: Val{E} ) where {E} = throw_engine_error (E)
78+ For a list of available engines, call [`optimizer_engines`](@ref).
79+ """
80+ optimizer_engine_doc (engine) = doc (SemOptimizer_impltype (engine))
7681
7782"""
7883 fit([optim::SemOptimizer], model::AbstractSem;
Original file line number Diff line number Diff line change @@ -61,7 +61,7 @@ SemOptimizerOptim(;
6161
6262SemOptimizer (:: Val{:Optim} , args... ; kwargs... ) = SemOptimizerOptim (args... ; kwargs... )
6363
64- SEM . optimizer_engine_doc (engine :: Val{:Optim} ) = doc ( SemOptimizerOptim)
64+ SemOptimizer_impltype ( :: Val{:Optim} ) = SemOptimizerOptim
6565
6666# ###########################################################################################
6767# ## Recommended methods
You can’t perform that action at this time.
0 commit comments