Skip to content

Documentation

Documentation #259

Re-run triggered January 30, 2026 09:39
Status Failure
Total duration 6m 40s
Artifacts

documentation.yml

on: workflow_dispatch
Fit to window
Zoom out
Zoom in

Annotations

10 errors
build: ../../../.julia/packages/Documenter/xvqbW/src/utilities/utilities.jl#L47
Cannot resolve @ref for md"[NLopt-specific options](@ref `SemOptimizer(Val(:NLopt))`)" in docs/src/tutorials/backends/nlopt.md. - Exception trying to find docref for ``SemOptimizer(Val(:NLopt))``: unable to get the binding for ``SemOptimizer(Val(:NLopt))`` in module Main
build: ../../../.julia/packages/Documenter/xvqbW/src/utilities/utilities.jl#L47
failed to run `@example` block in docs/src/tutorials/regularization/regularization.md:160-164 ```@example reg update_partable!(partable, :estimate_mixed, fit_mixed, solution(fit_mixed)) details(partable) ``` exception = UndefVarError: `fit_mixed` not defined in `Main.__atexample__named__reg` Suggestion: add an appropriate import or assignment. This global was declared but not assigned. Stacktrace: [1] top-level scope @ regularization.md:161 [2] eval(m::Module, e::Any) @ Core ./boot.jl:489 [3] #61 @ ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:879 [inlined] [4] cd(f::Documenter.var"#61#62"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [5] (::Documenter.var"#59#60"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:878 [6] (::IOCapture.var"#12#13"{Type{InterruptException}, Documenter.var"#59#60"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:170 [7] with_logstate(f::IOCapture.var"#12#13"{Type{InterruptException}, Documenter.var"#59#60"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}}, logstate::Base.CoreLogging.LogState) @ Base.CoreLogging ./logging/logging.jl:542 [8] with_logger(f::Function, logger::Base.CoreLogging.ConsoleLogger) @ Base.CoreLogging ./logging/logging.jl:653 [9] capture(f::Documenter.var"#59#60"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any}) @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:167 [10] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document) @ Documenter ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:877
build: ../../../.julia/packages/Documenter/xvqbW/src/utilities/utilities.jl#L47
failed to run `@example` block in docs/src/tutorials/regularization/regularization.md:152-156 ```@example reg l0_and_l1_reg = SlicedSeparableSum((NormL0(20.0), NormL1(0.02), NormL0(0.0)), ([cov_inds], [9:11], [vcat(1:8, 12:25)])) fit_mixed = fit(model; engine = :Proximal, operator_g = l0_and_l1_reg) ``` exception = optimizer ":Proximal" requires "using ProximalAlgorithms". Stacktrace: [1] error(s::String) @ Base ./error.jl:44 [2] throw_engine_error(E::Symbol) @ StructuralEquationModels ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/src/optimizer/abstract.jl:10 [3] SemOptimizer(::Val{:Proximal}; kwargs::@kwargs{operator_g::ProximalOperators.SlicedSeparableSum{Tuple{Vector{ProximalOperators.NormL0{Float64}}, Vector{ProximalOperators.NormL1{Float64}}}, Vector{Vector{Vector}}, 2}}) @ StructuralEquationModels ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/src/optimizer/abstract.jl:43 [4] SemOptimizer{:Proximal}(; kwargs::@kwargs{operator_g::ProximalOperators.SlicedSeparableSum{Tuple{Vector{ProximalOperators.NormL0{Float64}}, Vector{ProximalOperators.NormL1{Float64}}}, Vector{Vector{Vector}}, 2}}) @ StructuralEquationModels ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/src/optimizer/abstract.jl:45 [5] SemOptimizer(; engine::Symbol, kwargs::@kwargs{operator_g::ProximalOperators.SlicedSeparableSum{Tuple{Vector{ProximalOperators.NormL0{Float64}}, Vector{ProximalOperators.NormL1{Float64}}}, Vector{Vector{Vector}}, 2}}) @ StructuralEquationModels ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/src/optimizer/abstract.jl:39 [6] SemOptimizer @ ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/src/optimizer/abstract.jl:39 [inlined] [7] fit(model::Sem{SemObservedData{Matrix{Float64}, Float64}, RAM{NoMeanStruct, Matrix{Float64}, Matrix{Float64}, Matrix{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Nothing, Nothing, RAMMatrices, Matrix{Float64}, Matrix{Float64}, Matrix{Float64}, Matrix{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Nothing}, SemLoss{Tuple{SemML{ExactHessian, Matrix{Float64}, Matrix{Float64}, Vector{Float64}}}, Tuple{StructuralEquationModels.SemWeight{Nothing}}}}; engine::Symbol, start_val::Nothing, kwargs::@kwargs{operator_g::ProximalOperators.SlicedSeparableSum{Tuple{Vector{ProximalOperators.NormL0{Float64}}, Vector{ProximalOperators.NormL1{Float64}}}, Vector{Vector{Vector}}, 2}}) @ StructuralEquationModels ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/src/optimizer/abstract.jl:119 [8] top-level scope @ regularization.md:155 [9] eval(m::Module, e::Any) @ Core ./boot.jl:489 [10] #61 @ ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:879 [inlined] [11] cd(f::Documenter.var"#61#62"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [12] (::Documenter.var"#59#60"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:878 [13] (::IOCapture.var"#12#13"{Type{InterruptException}, Documenter.var"#59#60"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:170 [14] with_logstate(f::IOCapture.var"#12#13"{Type{InterruptException}, Documenter.var"#59#60"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}}, logstate::Base.CoreLogging.LogState) @ Base.CoreLogging ./logging/logging.jl:542 [15] with_logger(f::Function, logger::Base.CoreLogging.ConsoleLogger) @ Base.CoreLogging ./logging/logging.jl:653 [16] capture(f::Documenter.var"#59#60"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::
build: ../../../.julia/packages/Documenter/xvqbW/src/utilities/utilities.jl#L47
failed to run `@example` block in docs/src/tutorials/regularization/regularization.md:134-136 ```@example reg fit_lasso2 = fit(model; engine = :Proximal, operator_g = NormL1(λ)) ``` exception = optimizer ":Proximal" requires "using ProximalAlgorithms". Stacktrace: [1] error(s::String) @ Base ./error.jl:44 [2] throw_engine_error(E::Symbol) @ StructuralEquationModels ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/src/optimizer/abstract.jl:10 [3] SemOptimizer(::Val{:Proximal}; kwargs::@kwargs{operator_g::ProximalOperators.NormL1{Vector{Float64}}}) @ StructuralEquationModels ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/src/optimizer/abstract.jl:43 [4] SemOptimizer{:Proximal}(; kwargs::@kwargs{operator_g::ProximalOperators.NormL1{Vector{Float64}}}) @ StructuralEquationModels ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/src/optimizer/abstract.jl:45 [5] SemOptimizer(; engine::Symbol, kwargs::@kwargs{operator_g::ProximalOperators.NormL1{Vector{Float64}}}) @ StructuralEquationModels ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/src/optimizer/abstract.jl:39 [6] SemOptimizer @ ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/src/optimizer/abstract.jl:39 [inlined] [7] fit(model::Sem{SemObservedData{Matrix{Float64}, Float64}, RAM{NoMeanStruct, Matrix{Float64}, Matrix{Float64}, Matrix{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Nothing, Nothing, RAMMatrices, Matrix{Float64}, Matrix{Float64}, Matrix{Float64}, Matrix{Float64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, Nothing}, SemLoss{Tuple{SemML{ExactHessian, Matrix{Float64}, Matrix{Float64}, Vector{Float64}}}, Tuple{StructuralEquationModels.SemWeight{Nothing}}}}; engine::Symbol, start_val::Nothing, kwargs::@kwargs{operator_g::ProximalOperators.NormL1{Vector{Float64}}}) @ StructuralEquationModels ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/src/optimizer/abstract.jl:119 [8] top-level scope @ regularization.md:135 [9] eval(m::Module, e::Any) @ Core ./boot.jl:489 [10] #61 @ ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:879 [inlined] [11] cd(f::Documenter.var"#61#62"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [12] (::Documenter.var"#59#60"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:878 [13] (::IOCapture.var"#12#13"{Type{InterruptException}, Documenter.var"#59#60"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:170 [14] with_logstate(f::IOCapture.var"#12#13"{Type{InterruptException}, Documenter.var"#59#60"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}}, logstate::Base.CoreLogging.LogState) @ Base.CoreLogging ./logging/logging.jl:542 [15] with_logger(f::Function, logger::Base.CoreLogging.ConsoleLogger) @ Base.CoreLogging ./logging/logging.jl:653 [16] capture(f::Documenter.var"#59#60"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any}) @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:167 [17] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document) @ Documenter ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:877
build: ../../../.julia/packages/Documenter/xvqbW/src/utilities/utilities.jl#L47
failed to run `@example` block in docs/src/tutorials/regularization/regularization.md:121-129 ```@example reg sem_fit = fit(model) update_estimate!(partable, sem_fit) update_partable!(partable, :estimate_lasso, fit_lasso, solution(fit_lasso)) details(partable) ``` exception = UndefVarError: `fit_lasso` not defined in `Main.__atexample__named__reg` Suggestion: add an appropriate import or assignment. This global was declared but not assigned. Stacktrace: [1] top-level scope @ regularization.md:126 [2] eval(m::Module, e::Any) @ Core ./boot.jl:489 [3] #61 @ ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:879 [inlined] [4] cd(f::Documenter.var"#61#62"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [5] (::Documenter.var"#59#60"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:878 [6] (::IOCapture.var"#12#13"{Type{InterruptException}, Documenter.var"#59#60"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:170 [7] with_logstate(f::IOCapture.var"#12#13"{Type{InterruptException}, Documenter.var"#59#60"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}}, logstate::Base.CoreLogging.LogState) @ Base.CoreLogging ./logging/logging.jl:542 [8] with_logger(f::Function, logger::Base.CoreLogging.ConsoleLogger) @ Base.CoreLogging ./logging/logging.jl:653 [9] capture(f::Documenter.var"#59#60"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any}) @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:167 [10] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document) @ Documenter ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:877
build: ../../../.julia/packages/Documenter/xvqbW/src/utilities/utilities.jl#L47
failed to run `@example` block in docs/src/tutorials/regularization/regularization.md:114-117 ```@example reg fit_lasso = fit(optimizer_lasso, model) ``` exception = UndefVarError: `optimizer_lasso` not defined in `Main.__atexample__named__reg` Suggestion: add an appropriate import or assignment. This global was declared but not assigned. Stacktrace: [1] top-level scope @ regularization.md:116 [2] eval(m::Module, e::Any) @ Core ./boot.jl:489 [3] #61 @ ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:879 [inlined] [4] cd(f::Documenter.var"#61#62"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [5] (::Documenter.var"#59#60"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:878 [6] (::IOCapture.var"#12#13"{Type{InterruptException}, Documenter.var"#59#60"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:170 [7] with_logstate(f::IOCapture.var"#12#13"{Type{InterruptException}, Documenter.var"#59#60"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}}, logstate::Base.CoreLogging.LogState) @ Base.CoreLogging ./logging/logging.jl:542 [8] with_logger(f::Function, logger::Base.CoreLogging.ConsoleLogger) @ Base.CoreLogging ./logging/logging.jl:653 [9] capture(f::Documenter.var"#59#60"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any}) @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:167 [10] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document) @ Documenter ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:877
build: ../../../.julia/packages/Documenter/xvqbW/src/utilities/utilities.jl#L47
failed to run `@example` block in docs/src/tutorials/regularization/regularization.md:103-110 ```@example reg λ = zeros(31); λ[cov_inds] .= 0.02 optimizer_lasso = SemOptimizer( engine = :Proximal, operator_g = NormL1(λ) ) ``` exception = optimizer ":Proximal" requires "using ProximalAlgorithms". Stacktrace: [1] error(s::String) @ Base ./error.jl:44 [2] throw_engine_error(E::Symbol) @ StructuralEquationModels ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/src/optimizer/abstract.jl:10 [3] SemOptimizer(::Val{:Proximal}; kwargs::@kwargs{operator_g::ProximalOperators.NormL1{Vector{Float64}}}) @ StructuralEquationModels ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/src/optimizer/abstract.jl:43 [4] SemOptimizer{:Proximal}(; kwargs::@kwargs{operator_g::ProximalOperators.NormL1{Vector{Float64}}}) @ StructuralEquationModels ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/src/optimizer/abstract.jl:45 [5] SemOptimizer(; engine::Symbol, kwargs::@kwargs{operator_g::ProximalOperators.NormL1{Vector{Float64}}}) @ StructuralEquationModels ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/src/optimizer/abstract.jl:39 [6] top-level scope @ regularization.md:106 [7] eval(m::Module, e::Any) @ Core ./boot.jl:489 [8] #61 @ ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:879 [inlined] [9] cd(f::Documenter.var"#61#62"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [10] (::Documenter.var"#59#60"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:878 [11] (::IOCapture.var"#12#13"{Type{InterruptException}, Documenter.var"#59#60"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:170 [12] with_logstate(f::IOCapture.var"#12#13"{Type{InterruptException}, Documenter.var"#59#60"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}}, logstate::Base.CoreLogging.LogState) @ Base.CoreLogging ./logging/logging.jl:542 [13] with_logger(f::Function, logger::Base.CoreLogging.ConsoleLogger) @ Base.CoreLogging ./logging/logging.jl:653 [14] capture(f::Documenter.var"#59#60"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any}) @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:167 [15] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document) @ Documenter ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:877
build: docs/build/tutorials/regularization/loading.jl#L1617
Error during loading of extension SEMProximalOptExt of StructuralEquationModels, use `Base.retry_load_extensions()` to retry. exception = 1-element ExceptionStack: The following 1 direct dependency failed to precompile: SEMProximalOptExt Failed to precompile SEMProximalOptExt [4f592323-c12b-57ca-a074-0c68e79e74bd] to "/home/runner/.julia/compiled/v1.12/SEMProximalOptExt/jl_R4evSk". ERROR: LoadError: UndefVarError: `ProximalResult` not defined in `SEMProximalOptExt` Suggestion: check for spelling errors or missing imports. Stacktrace: [1] top-level scope @ ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/ext/SEMProximalOptExt/ProximalAlgorithms.jl:50 [2] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:307 [3] top-level scope @ ~/work/StructuralEquationModels.jl/StructuralEquationModels.jl/ext/SEMProximalOptExt/SEMProximalOptExt.jl:12 [4] include(mod::Module, _path::String) @ Base ./Base.jl:306 [5] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing) @ Base ./loading.jl:3024 [6] top-level scope @ stdin:5 [7] eval(m::Module, e::Any) @ Core ./boot.jl:489 [8] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:2870 [9] include_string @ ./loading.jl:2880 [inlined] [10] exec_options(opts::Base.JLOptions) @ Base ./client.jl:315 [11] _start() @ Base ./client.jl:550 in expression starting at /home/runner/work/StructuralEquationModels.jl/StructuralEquationModels.jl/ext/SEMProximalOptExt/ProximalAlgorithms.jl:50 in expression starting at /home/runner/work/StructuralEquationModels.jl/StructuralEquationModels.jl/ext/SEMProximalOptExt/SEMProximalOptExt.jl:1 in expression starting at stdin:
build: ../../../.julia/packages/Documenter/xvqbW/src/utilities/utilities.jl#L47
undefined binding 'SemOptimizerNLopt' in `@docs` block in docs/src/tutorials/concept.md:115-119 ```@docs SemOptimizer SemOptimizerOptim SemOptimizerNLopt ```
build: ../../../.julia/packages/Documenter/xvqbW/src/utilities/utilities.jl#L47
undefined binding 'SemOptimizerOptim' in `@docs` block in docs/src/tutorials/concept.md:115-119 ```@docs SemOptimizer SemOptimizerOptim SemOptimizerNLopt ```