From 7d7bb2161045682d7a985fee26c30cdb08329880 Mon Sep 17 00:00:00 2001 From: AdityaPandeyCN Date: Sat, 21 Mar 2026 10:08:20 +0530 Subject: [PATCH 1/7] add parallel particle swarm benchmarks Signed-off-by: AdityaPandeyCN --- benchmarks/GlobalOptimization/CondaPkg.toml | 2 + .../pso_global_optimizers.jmd | 430 ++++++++++++++++++ 2 files changed, 432 insertions(+) create mode 100644 benchmarks/GlobalOptimization/CondaPkg.toml create mode 100644 benchmarks/GlobalOptimization/pso_global_optimizers.jmd diff --git a/benchmarks/GlobalOptimization/CondaPkg.toml b/benchmarks/GlobalOptimization/CondaPkg.toml new file mode 100644 index 000000000..2b924f81e --- /dev/null +++ b/benchmarks/GlobalOptimization/CondaPkg.toml @@ -0,0 +1,2 @@ +[deps] +python = ">=3.10,<3.13" diff --git a/benchmarks/GlobalOptimization/pso_global_optimizers.jmd b/benchmarks/GlobalOptimization/pso_global_optimizers.jmd new file mode 100644 index 000000000..92950c1dd --- /dev/null +++ b/benchmarks/GlobalOptimization/pso_global_optimizers.jmd @@ -0,0 +1,430 @@ +--- +title: PSO Global Optimizer Benchmarks +author: Utkarsh, Chris Rackauckas +--- + +This benchmark evaluates Particle Swarm Optimization (PSO) variants from +[ParallelParticleSwarms.jl](https://github.com/SciML/ParallelParticleSwarms.jl) +against established global optimizers on the +[BlackBoxOptimizationBenchmarking.jl](https://github.com/jonathanBieler/BlackBoxOptimizationBenchmarking.jl) +suite, using the [Optimization.jl](https://github.com/SciML/Optimization.jl) interface. + +## Setup +```julia +using BlackBoxOptimizationBenchmarking, Plots, Optimization, Memoize, Statistics, Printf +import BlackBoxOptimizationBenchmarking: Chain, BenchmarkSetup, BenchmarkResults, + BBOBFunction, FunctionCallsCounter, solve_problem, pinit, compute_CI +const BBOB = BlackBoxOptimizationBenchmarking + +using OptimizationBBO, OptimizationOptimJL, OptimizationNLopt +using OptimizationSciPy + +using ParallelParticleSwarms +using KernelAbstractions: CPU +using StaticArrays, LinearAlgebra + +const PSOKernel = ParallelParticleSwarms.ParallelPSOKernel +const SyncPSOKernel = ParallelParticleSwarms.ParallelSyncPSOKernel +const SerPSO = ParallelParticleSwarms.SerialPSO +const HPso = ParallelParticleSwarms.HybridPSO +``` + +## PSO Benchmark Harness +```julia +function pso_solve(opt, f::BBOBFunction, D::Int, maxiters::Int; local_maxiters::Int = 30) + obj = (x, p) -> f.f(Vector(x)) + ad = opt isa HPso ? AutoForwardDiff() : Optimization.SciMLBase.NoAD() + optf = OptimizationFunction{false}(obj, ad) + lb = SVector{D}(ntuple(_ -> -5.0, Val(D))) + ub = SVector{D}(ntuple(_ -> 5.0, Val(D))) + x0 = SVector{D}(ntuple(_ -> -5.0 + rand() * 10.0, Val(D))) + prob = OptimizationProblem{false}(optf, x0, nothing; lb = lb, ub = ub) + + if opt isa HPso + solve(prob, opt; maxiters = maxiters, local_maxiters = local_maxiters, + abstol = 1e-8, reltol = 1e-8) + else + solve(prob, opt; maxiters = maxiters) + end +end + +function _extract_u(sol, D) + u = sol.u + u isa SVector && return u + u[] +end + +function pso_benchmark(opt, funcs, run_length; + Ntrials = 10, dimension = 3, local_maxiters = 30, Δf = 1e-6, CI_quantile = 0.25) + Nf = length(funcs) + Nr = length(run_length) + success = zeros(Float64, Nf, Nr) + dist = zeros(Float64, Nf, Nr) + fmin = zeros(Float64, Nf, Nr) + + for f in funcs + try pso_solve(opt, f, dimension, 5; local_maxiters) catch; end + end + + t0 = time() + for (fi, f) in enumerate(funcs) + xopt = SVector{dimension}(f.x_opt[1:dimension]) + for (ri, rl) in enumerate(run_length) + hits = 0; dsum = 0.0; fsum = 0.0 + for _ in 1:Ntrials + sol = try pso_solve(opt, f, dimension, rl; local_maxiters) catch; nothing end + if sol !== nothing + u = _extract_u(sol, dimension) + fval = sol.objective isa Real ? Float64(sol.objective) : Float64(sol.objective[]) + hits += abs(fval - f.f_opt) < Δf ? 1 : 0 + dsum += norm(u .- xopt) + fsum += fval - f.f_opt + end + end + success[fi, ri] = hits / Ntrials + dist[fi, ri] = dsum / Ntrials + fmin[fi, ri] = fsum / Ntrials + end + end + elapsed = time() - t0 + + Neff = Ntrials * Nf + sr = vec(mean(success, dims = 1)) + sc = vec(sum(success .* Ntrials, dims = 1)) .|> round .|> Int + ci = BBOB.compute_CI(sr, Neff, CI_quantile) + + BenchmarkResults( + run_length = collect(run_length), + success_count = sc, + success_rate = sr, + success_rate_qlow = ci.success_rate_qlow, + success_rate_qhigh = ci.success_rate_qhigh, + distance_to_minimizer = vec(mean(dist, dims = 1)), + minimum = vec(mean(fmin, dims = 1)), + runtime = elapsed, + Neffective = Neff, + callcount = Float64.(run_length), + success_rate_per_function = [success[fi, end] for fi in 1:Nf], + ) +end + +function pso_tts(opt, funcs; Ntrials = 10, dimension = 3, Δf = 1e-6, + local_maxiters = 30, max_run_length = 500) + all_times = Float64[] + for f in funcs + for _ in 1:Ntrials + tracked_f, t0_ref, tts_ref = make_success_tracker(f.f, f.f_opt, Δf) + obj = (x, p) -> tracked_f(Vector(x)) + ad = opt isa HPso ? AutoForwardDiff() : Optimization.SciMLBase.NoAD() + optf = OptimizationFunction{false}(obj, ad) + D = dimension + lb = SVector{D}(ntuple(_ -> -5.0, Val(D))) + ub = SVector{D}(ntuple(_ -> 5.0, Val(D))) + x0 = SVector{D}(ntuple(_ -> -5.0 + rand() * 10.0, Val(D))) + prob = OptimizationProblem{false}(optf, x0, nothing; lb = lb, ub = ub) + try + t0_ref[] = time() + if opt isa HPso + solve(prob, opt; maxiters = max_run_length, local_maxiters = local_maxiters, + abstol = 1e-8, reltol = 1e-8) + else + solve(prob, opt; maxiters = max_run_length) + end + push!(all_times, tts_ref[]) + catch + push!(all_times, Inf) + end + end + end + all_times +end +``` + +## Time-to-Success Framework +```julia +function make_success_tracker(f_raw, f_opt, Δf) + t0 = Ref(time()) + time_to_success = Ref(Inf) + function tracked_f(u) + val = f_raw(u) + if val < Δf + f_opt && time_to_success[] == Inf + time_to_success[] = time() - t0[] + end + return val + end + return tracked_f, t0, time_to_success +end + +function solve_problem_timed(optimizer::BenchmarkSetup, tracked_f, D::Int, run_length::Int; + u0 = pinit(D)) + method = optimizer.method + optf = OptimizationFunction((u, _) -> tracked_f(u), AutoForwardDiff()) + if optimizer.isboxed + prob = OptimizationProblem(optf, u0, lb = fill(-5.5, D), ub = fill(5.5, D)) + else + prob = OptimizationProblem(optf, u0) + end + solve(prob, method; maxiters = run_length) +end + +function solve_problem_timed(m::Chain, tracked_f, D::Int, run_length::Int) + rl1 = round(Int, m.p * run_length) + rl2 = run_length - rl1 + sol = solve_problem_timed(m.first, tracked_f, D, rl1) + solve_problem_timed(m.second, tracked_f, D, rl2; u0 = sol.u) +end + +function benchmark_time_to_success( + optimizer::Union{Chain, BenchmarkSetup}, f::BBOBFunction; + Ntrials::Int = 10, dimension::Int = 3, Δf::Real = 1e-6, max_run_length::Int = 10_000 +) + times = Float64[] + for _ in 1:Ntrials + tracked_f, t0_ref, tts_ref = make_success_tracker(f.f, f.f_opt, Δf) + try + t0_ref[] = time() + solve_problem_timed(optimizer, tracked_f, dimension, max_run_length) + push!(times, tts_ref[]) + catch err + push!(times, Inf) + end + end + return times +end + +benchmark_time_to_success(optimizer, f; kwargs...) = + benchmark_time_to_success(BenchmarkSetup(optimizer), f; kwargs...) + +function benchmark_time_to_success( + optimizer::Union{Chain, BenchmarkSetup}, funcs::Vector{BBOBFunction}; + Ntrials::Int = 10, dimension::Int = 3, Δf::Real = 1e-6, max_run_length::Int = 10_000 +) + all_times = Float64[] + for f in funcs + append!(all_times, benchmark_time_to_success( + optimizer, f; Ntrials, dimension, Δf, max_run_length)) + end + return all_times +end + +benchmark_time_to_success(optimizer, funcs::Vector{BBOBFunction}; kwargs...) = + benchmark_time_to_success(BenchmarkSetup(optimizer), funcs; kwargs...) + +function success_rate_cdf(all_times::Vector{Float64}, time_thresholds::AbstractVector{Float64}) + N = length(all_times) + [count(x -> x <= t, all_times) / N for t in time_thresholds] +end +``` + +## Configure Optimizers +```julia +chain = (t; isboxed = false) -> Chain( + BenchmarkSetup(t, isboxed = isboxed), + BenchmarkSetup(NelderMead(), isboxed = false), + 0.9) + +test_functions = BBOB.list_functions() +dimension = 3 +run_length = round.(Int, 10 .^ LinRange(1, 5, 10)) + +const MARKERS = [:circle, :diamond, :utriangle, :square, :star5, :dtriangle, :pentagon, + :hexagon, :cross, :xcross, :rtriangle, :ltriangle, :star4, :star8, :heptagon, :octagon, + :vline, :hline, :+, :x] +const LINESTYLES = [:solid, :dash, :dot, :dashdot, :dashdotdot] + +cpu_setup = Dict( + "NelderMead" => NelderMead(), + "NLopt.GN_CRS2_LM()" => chain(NLopt.GN_CRS2_LM(), isboxed = true), + "BBO_adaptive_de_rand_1_bin" => chain(BBO_adaptive_de_rand_1_bin(), isboxed = true), + "BBO_adaptive_de_rand_1_bin_radiuslimited" => chain( + BBO_adaptive_de_rand_1_bin_radiuslimited(), isboxed = true), + "BBO_de_rand_2_bin" => chain(BBO_de_rand_2_bin(), isboxed = true), + "ScipyDifferentialEvolution" => chain(ScipyDifferentialEvolution(), isboxed = true), +) + +cpu_labels = sort(collect(keys(cpu_setup))) + +num_particles = 250 + +pso_setup = Dict( + "SerialPSO" => SerPSO(num_particles), + "PSOKernel sync" => PSOKernel(num_particles; backend = CPU(), global_update = true), + "SyncPSOKernel" => SyncPSOKernel(num_particles; backend = CPU()), + "HybridPSO-LBFGS" => HPso(pso = PSOKernel(num_particles; backend = CPU()); backend = CPU()), +) + +pso_labels = sort(collect(keys(pso_setup))) +``` + +## Run CPU Baselines +```julia +@memoize run_cpu_bench(algo) = BBOB.benchmark( + cpu_setup[algo], test_functions, run_length, Ntrials = 10, dimension = dimension) +@memoize run_cpu_tts(algo) = benchmark_time_to_success( + cpu_setup[algo], test_functions, Ntrials = 10, dimension = dimension) + +cpu_results_raw = Vector{Union{BenchmarkResults, Nothing}}(undef, length(cpu_labels)) +cpu_tts = Dict{String, Vector{Float64}}() +for (i, algo) in enumerate(cpu_labels) + @info "CPU: $algo ..." + try + cpu_results_raw[i] = run_cpu_bench(algo) + cpu_tts[algo] = run_cpu_tts(algo) + @info " done" success=round(cpu_results_raw[i].success_rate[end], digits = 3) + catch err + @warn "CPU $algo failed, skipping" exception = err + cpu_results_raw[i] = nothing + end +end + +valid_cpu = [(cpu_labels[i], cpu_results_raw[i]) for i in eachindex(cpu_labels) if cpu_results_raw[i] !== nothing] +cpu_labels_ok = [v[1] for v in valid_cpu] +cpu_results = Dict(v[1] => v[2] for v in valid_cpu) +``` + +## Run PSO Variants +```julia +@memoize run_pso_bench(algo) = pso_benchmark( + pso_setup[algo], test_functions, run_length; + Ntrials = 10, dimension = dimension) +@memoize run_pso_tts(algo) = pso_tts( + pso_setup[algo], test_functions; + Ntrials = 10, dimension = dimension) + +pso_results = Dict{String, BenchmarkResults}() +pso_tts_results = Dict{String, Vector{Float64}}() +for algo in pso_labels + @info "PSO: $algo ..." + try + pso_results[algo] = run_pso_bench(algo) + pso_tts_results[algo] = run_pso_tts(algo) + @info " done" success=round(pso_results[algo].success_rate[end], digits = 3) + catch err + @warn "$algo failed, skipping" exception=(err, catch_backtrace()) + end +end + +available_pso = [l for l in pso_labels if haskey(pso_results, l)] +``` + +## Success Rate vs. Iterations +```julia +all_labels = vcat(cpu_labels_ok, available_pso) +all_results = vcat( + [cpu_results[l] for l in cpu_labels_ok], + [pso_results[l] for l in available_pso]) + +idx = sortperm([r.success_rate[end] for r in all_results], rev = true) + +p = plot(xscale = :log10, legend = :outerright, + size = (700, 350), margin = 10Plots.px, dpi = 200, + xlabel = "Iterations", ylabel = "Success rate", ylim = (0, 1)) +for (j, i) in enumerate(idx) + r = all_results[i] + plot!(r.run_length, r.success_rate, label = all_labels[i], + showribbon = false, lw = 2.5, xlim = (1, 1e5), + markershape = MARKERS[mod1(j, length(MARKERS))], + linestyle = LINESTYLES[mod1(j, length(LINESTYLES))], + markersize = 4, markerstrokewidth = 0) +end +p +``` + +## Success Rate vs. Wall-Clock Time +```julia +all_tts = merge( + Dict(k => v for (k, v) in cpu_tts if k in cpu_labels_ok), + pso_tts_results) + +all_finite = filter(isfinite, vcat(values(all_tts)...)) +if !isempty(all_finite) + t_lo = minimum(all_finite) / 2 + t_hi = maximum(all_finite) * 2 + time_thresholds = 10 .^ range(log10(t_lo), log10(t_hi), length = 50) + + cdfs = Dict(l => success_rate_cdf(all_tts[l], time_thresholds) for l in all_labels if haskey(all_tts, l)) + tts_labels = [l for l in all_labels if haskey(cdfs, l)] + idx = sortperm([cdfs[l][end] for l in tts_labels], rev = true) + + p = plot(xscale = :log10, legend = :outerright, + size = (700, 350), margin = 10Plots.px, dpi = 200, + xlabel = "Wall time (s)", ylabel = "Success rate", ylim = (0, 1)) + for (j, i) in enumerate(idx) + plot!(time_thresholds, cdfs[tts_labels[i]], label = tts_labels[i], lw = 2.5, + markershape = MARKERS[mod1(j, length(MARKERS))], + linestyle = LINESTYLES[mod1(j, length(LINESTYLES))], + markersize = 4, markerstrokewidth = 0) + end + p +else + @warn "No finite time-to-success recorded" +end +``` + +## Success Rate per Function Heatmap +```julia +all_srpf = reduce(hcat, r.success_rate_per_function for r in all_results) +func_names = string.(test_functions) + +idx = sortperm(mean(all_srpf, dims = 1)[:], rev = false) +idxfunc = 1:length(test_functions) + +heatmap(func_names[idxfunc], all_labels[idx], all_srpf[idxfunc, idx]', + cmap = :RdYlGn, xticks = :all, yticks = :all, xrotation = 45, dpi = 200) +``` + +## Distance to Minimizer vs. Iterations +```julia +idx = sortperm([r.distance_to_minimizer[end] for r in all_results], rev = false) + +p = plot(xscale = :log10, legend = :outerright, + size = (900, 500), margin = 10Plots.px, ylim = (0, 5), + xlabel = "Iterations", ylabel = "Mean distance to minimum") +for (j, i) in enumerate(idx) + r = all_results[i] + plot!(r.run_length, r.distance_to_minimizer, label = all_labels[i], + showribbon = false, lw = 2, xlim = (1, 1e5), + markershape = MARKERS[mod1(j, length(MARKERS))], + linestyle = LINESTYLES[mod1(j, length(LINESTYLES))], + markersize = 4, markerstrokewidth = 0) +end +p +``` + +## Relative Runtime +```julia +all_runtimes = [r.runtime for r in all_results] +ref = findfirst("NelderMead" .== all_labels) +if ref !== nothing + runtimes_rel = all_runtimes ./ all_runtimes[ref] + bar(all_labels, runtimes_rel, xrotation = 45, xticks = :all, + ylabel = "Run time relative to NM", yscale = :log10, + yticks = [0.1, 1, 10, 100], legend = false, margin = 25Plots.px) +end +``` + +## Summary +```julia +println("\n", "="^70) +println("CONVERGENCE RANKING (success rate at max budget)") +println("="^70) + +all_sr = [(all_labels[i], all_results[i].success_rate[end]) for i in 1:length(all_labels)] +sort!(all_sr, by = x -> -x[2]) + +for (rank, (name, sr)) in enumerate(all_sr) + tag = name in available_pso ? " ← PSO" : "" + @printf(" %2d. %-45s %5.1f%%%s\n", rank, name, sr * 100, tag) +end + +println("\n", "="^70) +println("Best PSO variant for GPU promotion:") +if !isempty(available_pso) + best_pso = argmax(Dict(l => pso_results[l].success_rate[end] for l in available_pso)) + sr = round(pso_results[best_pso].success_rate[end] * 100, digits = 1) + println(" → $best_pso ($sr%)") +else + println(" No PSO variants completed successfully") +end +println("="^70) +``` \ No newline at end of file From d57120777c98c884db94d92e803b70f93bd9c476 Mon Sep 17 00:00:00 2001 From: AdityaPandeyCN Date: Fri, 27 Mar 2026 22:25:55 +0530 Subject: [PATCH 2/7] update benchmarks Signed-off-by: AdityaPandeyCN --- .../pso_global_optimizers.jmd | 472 ++++++++---------- 1 file changed, 204 insertions(+), 268 deletions(-) diff --git a/benchmarks/GlobalOptimization/pso_global_optimizers.jmd b/benchmarks/GlobalOptimization/pso_global_optimizers.jmd index 92950c1dd..c0bc46803 100644 --- a/benchmarks/GlobalOptimization/pso_global_optimizers.jmd +++ b/benchmarks/GlobalOptimization/pso_global_optimizers.jmd @@ -8,43 +8,112 @@ This benchmark evaluates Particle Swarm Optimization (PSO) variants from against established global optimizers on the [BlackBoxOptimizationBenchmarking.jl](https://github.com/jonathanBieler/BlackBoxOptimizationBenchmarking.jl) suite, using the [Optimization.jl](https://github.com/SciML/Optimization.jl) interface. +This tests both iterations and wall-clock time vs accuracy, i.e. for a given budget +(in iterations or time), what percentage of problems from the set is a solver able to solve. ## Setup ```julia -using BlackBoxOptimizationBenchmarking, Plots, Optimization, Memoize, Statistics, Printf +using Random +Random.seed!(42) + +using BlackBoxOptimizationBenchmarking, Plots, Optimization, Memoize, Statistics import BlackBoxOptimizationBenchmarking: Chain, BenchmarkSetup, BenchmarkResults, BBOBFunction, FunctionCallsCounter, solve_problem, pinit, compute_CI const BBOB = BlackBoxOptimizationBenchmarking -using OptimizationBBO, OptimizationOptimJL, OptimizationNLopt -using OptimizationSciPy +ENV["GKSwstype"] = "nul" +gr() + +using OptimizationBBO, OptimizationOptimJL, OptimizationNLopt, OptimizationSciPy using ParallelParticleSwarms -using KernelAbstractions: CPU +using OpenCL using StaticArrays, LinearAlgebra const PSOKernel = ParallelParticleSwarms.ParallelPSOKernel const SyncPSOKernel = ParallelParticleSwarms.ParallelSyncPSOKernel const SerPSO = ParallelParticleSwarms.SerialPSO const HPso = ParallelParticleSwarms.HybridPSO + +const BACKEND = OpenCLBackend() +``` +```julia +function make_success_tracker(f_raw, f_opt, Δf) + t0 = Ref(time()) + time_to_success = Ref(Inf) + function tracked_f(u) + val = f_raw(u) + if val < Δf + f_opt && time_to_success[] == Inf + time_to_success[] = time() - t0[] + end + return val + end + return tracked_f, t0, time_to_success +end + +function solve_problem_timed(optimizer::BenchmarkSetup, tracked_f, D::Int, run_length::Int; + u0 = pinit(D)) + method = optimizer.method + optf = OptimizationFunction((u, _) -> tracked_f(u), AutoForwardDiff()) + if optimizer.isboxed + prob = OptimizationProblem(optf, u0, lb = fill(-5.5, D), ub = fill(5.5, D)) + else + prob = OptimizationProblem(optf, u0) + end + solve(prob, method; maxiters = run_length) +end + +function solve_problem_timed(m::Chain, tracked_f, D::Int, run_length::Int) + rl1 = round(Int, m.p * run_length) + rl2 = run_length - rl1 + sol = solve_problem_timed(m.first, tracked_f, D, rl1) + solve_problem_timed(m.second, tracked_f, D, rl2; u0 = sol.u) +end + +function benchmark_time_to_success( + optimizer::Union{Chain, BenchmarkSetup}, funcs::Vector{BBOBFunction}; + Ntrials::Int = 20, dimension::Int = 3, Δf::Real = 1e-6, max_run_length::Int = 100_000 +) + all_times = Float64[] + for f in funcs + for _ in 1:Ntrials + tracked_f, t0_ref, tts_ref = make_success_tracker(f.f, f.f_opt, Δf) + try + t0_ref[] = time() + solve_problem_timed(optimizer, tracked_f, dimension, max_run_length) + push!(all_times, tts_ref[]) + catch err + push!(all_times, Inf) + @warn(string(optimizer, " failed: ", err)) + end + end + end + return all_times +end + +benchmark_time_to_success(optimizer, funcs::Vector{BBOBFunction}; kwargs...) = + benchmark_time_to_success(BenchmarkSetup(optimizer), funcs; kwargs...) + +function success_rate_cdf(all_times::Vector{Float64}, time_thresholds::AbstractVector{Float64}) + N = length(all_times) + return [count(x -> x <= t, all_times) / N for t in time_thresholds] +end ``` -## PSO Benchmark Harness +PSO variants require an `SVector` interface and a custom solve loop. ```julia -function pso_solve(opt, f::BBOBFunction, D::Int, maxiters::Int; local_maxiters::Int = 30) - obj = (x, p) -> f.f(Vector(x)) - ad = opt isa HPso ? AutoForwardDiff() : Optimization.SciMLBase.NoAD() +function pso_solve(opt, f::BBOBFunction, D::Int, maxiters::Int; local_maxiters::Int = 20) + obj = (x, p) -> f.f(Vector(x)) + ad = opt isa HPso ? AutoForwardDiff() : Optimization.SciMLBase.NoAD() optf = OptimizationFunction{false}(obj, ad) - lb = SVector{D}(ntuple(_ -> -5.0, Val(D))) - ub = SVector{D}(ntuple(_ -> 5.0, Val(D))) - x0 = SVector{D}(ntuple(_ -> -5.0 + rand() * 10.0, Val(D))) - prob = OptimizationProblem{false}(optf, x0, nothing; lb = lb, ub = ub) - + lb = SVector{D}(ntuple(_ -> -5.0, Val(D))) + ub = SVector{D}(ntuple(_ -> 5.0, Val(D))) + x0 = SVector{D}(ntuple(_ -> -5.0 + rand() * 10.0, Val(D))) + prob = OptimizationProblem{false}(optf, x0, nothing; lb, ub) if opt isa HPso - solve(prob, opt; maxiters = maxiters, local_maxiters = local_maxiters, - abstol = 1e-8, reltol = 1e-8) + solve(prob, opt; maxiters, local_maxiters, abstol = 1e-8, reltol = 1e-8) else - solve(prob, opt; maxiters = maxiters) + solve(prob, opt; maxiters) end end @@ -55,17 +124,16 @@ function _extract_u(sol, D) end function pso_benchmark(opt, funcs, run_length; - Ntrials = 10, dimension = 3, local_maxiters = 30, Δf = 1e-6, CI_quantile = 0.25) + Ntrials = 20, dimension = 3, local_maxiters = 20, Δf = 1e-6, CI_quantile = 0.25) Nf = length(funcs) Nr = length(run_length) success = zeros(Float64, Nf, Nr) dist = zeros(Float64, Nf, Nr) fmin = zeros(Float64, Nf, Nr) - + # warmup for f in funcs - try pso_solve(opt, f, dimension, 5; local_maxiters) catch; end + try pso_solve(opt, f, dimension, 3; local_maxiters) catch; end end - t0 = time() for (fi, f) in enumerate(funcs) xopt = SVector{dimension}(f.x_opt[1:dimension]) @@ -74,7 +142,7 @@ function pso_benchmark(opt, funcs, run_length; for _ in 1:Ntrials sol = try pso_solve(opt, f, dimension, rl; local_maxiters) catch; nothing end if sol !== nothing - u = _extract_u(sol, dimension) + u = _extract_u(sol, dimension) fval = sol.objective isa Real ? Float64(sol.objective) : Float64(sol.objective[]) hits += abs(fval - f.f_opt) < Δf ? 1 : 0 dsum += norm(u .- xopt) @@ -87,136 +155,57 @@ function pso_benchmark(opt, funcs, run_length; end end elapsed = time() - t0 - Neff = Ntrials * Nf sr = vec(mean(success, dims = 1)) sc = vec(sum(success .* Ntrials, dims = 1)) .|> round .|> Int ci = BBOB.compute_CI(sr, Neff, CI_quantile) - BenchmarkResults( - run_length = collect(run_length), - success_count = sc, - success_rate = sr, - success_rate_qlow = ci.success_rate_qlow, - success_rate_qhigh = ci.success_rate_qhigh, - distance_to_minimizer = vec(mean(dist, dims = 1)), - minimum = vec(mean(fmin, dims = 1)), - runtime = elapsed, - Neffective = Neff, - callcount = Float64.(run_length), + run_length = collect(run_length), + success_count = sc, + success_rate = sr, + success_rate_qlow = ci.success_rate_qlow, + success_rate_qhigh = ci.success_rate_qhigh, + distance_to_minimizer = vec(mean(dist, dims = 1)), + minimum = vec(mean(fmin, dims = 1)), + runtime = elapsed, + Neffective = Neff, + callcount = Float64.(run_length), success_rate_per_function = [success[fi, end] for fi in 1:Nf], ) end -function pso_tts(opt, funcs; Ntrials = 10, dimension = 3, Δf = 1e-6, - local_maxiters = 30, max_run_length = 500) +function pso_tts(opt, funcs; Ntrials = 20, dimension = 3, Δf = 1e-6, + local_maxiters = 20, max_run_length = 100_000) all_times = Float64[] + D = dimension + lb = SVector{D}(ntuple(_ -> -5.0, Val(D))) + ub = SVector{D}(ntuple(_ -> 5.0, Val(D))) for f in funcs for _ in 1:Ntrials tracked_f, t0_ref, tts_ref = make_success_tracker(f.f, f.f_opt, Δf) - obj = (x, p) -> tracked_f(Vector(x)) - ad = opt isa HPso ? AutoForwardDiff() : Optimization.SciMLBase.NoAD() + obj = (x, p) -> tracked_f(Vector(x)) + ad = opt isa HPso ? AutoForwardDiff() : Optimization.SciMLBase.NoAD() optf = OptimizationFunction{false}(obj, ad) - D = dimension - lb = SVector{D}(ntuple(_ -> -5.0, Val(D))) - ub = SVector{D}(ntuple(_ -> 5.0, Val(D))) - x0 = SVector{D}(ntuple(_ -> -5.0 + rand() * 10.0, Val(D))) - prob = OptimizationProblem{false}(optf, x0, nothing; lb = lb, ub = ub) + x0 = SVector{D}(ntuple(_ -> -5.0 + rand() * 10.0, Val(D))) + prob = OptimizationProblem{false}(optf, x0, nothing; lb, ub) try t0_ref[] = time() if opt isa HPso - solve(prob, opt; maxiters = max_run_length, local_maxiters = local_maxiters, + solve(prob, opt; maxiters = max_run_length, local_maxiters, abstol = 1e-8, reltol = 1e-8) else solve(prob, opt; maxiters = max_run_length) end push!(all_times, tts_ref[]) - catch + catch err push!(all_times, Inf) + @warn(string(opt, " failed: ", err)) end end end all_times end ``` - -## Time-to-Success Framework -```julia -function make_success_tracker(f_raw, f_opt, Δf) - t0 = Ref(time()) - time_to_success = Ref(Inf) - function tracked_f(u) - val = f_raw(u) - if val < Δf + f_opt && time_to_success[] == Inf - time_to_success[] = time() - t0[] - end - return val - end - return tracked_f, t0, time_to_success -end - -function solve_problem_timed(optimizer::BenchmarkSetup, tracked_f, D::Int, run_length::Int; - u0 = pinit(D)) - method = optimizer.method - optf = OptimizationFunction((u, _) -> tracked_f(u), AutoForwardDiff()) - if optimizer.isboxed - prob = OptimizationProblem(optf, u0, lb = fill(-5.5, D), ub = fill(5.5, D)) - else - prob = OptimizationProblem(optf, u0) - end - solve(prob, method; maxiters = run_length) -end - -function solve_problem_timed(m::Chain, tracked_f, D::Int, run_length::Int) - rl1 = round(Int, m.p * run_length) - rl2 = run_length - rl1 - sol = solve_problem_timed(m.first, tracked_f, D, rl1) - solve_problem_timed(m.second, tracked_f, D, rl2; u0 = sol.u) -end - -function benchmark_time_to_success( - optimizer::Union{Chain, BenchmarkSetup}, f::BBOBFunction; - Ntrials::Int = 10, dimension::Int = 3, Δf::Real = 1e-6, max_run_length::Int = 10_000 -) - times = Float64[] - for _ in 1:Ntrials - tracked_f, t0_ref, tts_ref = make_success_tracker(f.f, f.f_opt, Δf) - try - t0_ref[] = time() - solve_problem_timed(optimizer, tracked_f, dimension, max_run_length) - push!(times, tts_ref[]) - catch err - push!(times, Inf) - end - end - return times -end - -benchmark_time_to_success(optimizer, f; kwargs...) = - benchmark_time_to_success(BenchmarkSetup(optimizer), f; kwargs...) - -function benchmark_time_to_success( - optimizer::Union{Chain, BenchmarkSetup}, funcs::Vector{BBOBFunction}; - Ntrials::Int = 10, dimension::Int = 3, Δf::Real = 1e-6, max_run_length::Int = 10_000 -) - all_times = Float64[] - for f in funcs - append!(all_times, benchmark_time_to_success( - optimizer, f; Ntrials, dimension, Δf, max_run_length)) - end - return all_times -end - -benchmark_time_to_success(optimizer, funcs::Vector{BBOBFunction}; kwargs...) = - benchmark_time_to_success(BenchmarkSetup(optimizer), funcs; kwargs...) - -function success_rate_cdf(all_times::Vector{Float64}, time_thresholds::AbstractVector{Float64}) - N = length(all_times) - [count(x -> x <= t, all_times) / N for t in time_thresholds] -end -``` - -## Configure Optimizers ```julia chain = (t; isboxed = false) -> Chain( BenchmarkSetup(t, isboxed = isboxed), @@ -224,105 +213,73 @@ chain = (t; isboxed = false) -> Chain( 0.9) test_functions = BBOB.list_functions() -dimension = 3 -run_length = round.(Int, 10 .^ LinRange(1, 5, 10)) +dimension = 3 +run_length = round.(Int, 10 .^ LinRange(1, 5, 30)) +num_particles = 1024 + +PSO_KEYS = Set(["SerialPSO", "PSOKernel", "SyncPSOKernel", "HybridPSO_LBFGS"]) + +setup = Dict( + "NelderMead" => NelderMead(), + "NLopt_GN_CRS2_LM" => chain(NLopt.GN_CRS2_LM(), isboxed = true), + "BBO_adaptive_de_rand_1_bin" => chain(BBO_adaptive_de_rand_1_bin(), isboxed = true), + "BBO_adaptive_de_rand_1_bin_radiuslimited" => chain(BBO_adaptive_de_rand_1_bin_radiuslimited(), isboxed = true), + "BBO_de_rand_2_bin" => chain(BBO_de_rand_2_bin(), isboxed = true), + "ScipyDifferentialEvolution" => chain(ScipyDifferentialEvolution(), isboxed = true), + # PSO + "SerialPSO" => SerPSO(num_particles), + "PSOKernel" => PSOKernel(num_particles; backend = BACKEND, global_update = true), + "SyncPSOKernel" => SyncPSOKernel(num_particles; backend = BACKEND), + "HybridPSO_LBFGS" => HPso(pso = PSOKernel(num_particles; backend = BACKEND); backend = BACKEND), +) + +@memoize run_bench(algo) = algo in PSO_KEYS ? + pso_benchmark(setup[algo], test_functions, run_length; Ntrials = 20, dimension) : + BBOB.benchmark(setup[algo], test_functions, run_length; Ntrials = 40, dimension) + +@memoize run_tts(algo) = algo in PSO_KEYS ? + pso_tts(setup[algo], test_functions; Ntrials = 20, dimension) : + benchmark_time_to_success(setup[algo], test_functions; Ntrials = 40, dimension) +``` +## Test all (iterations) +```julia const MARKERS = [:circle, :diamond, :utriangle, :square, :star5, :dtriangle, :pentagon, :hexagon, :cross, :xcross, :rtriangle, :ltriangle, :star4, :star8, :heptagon, :octagon, :vline, :hline, :+, :x] const LINESTYLES = [:solid, :dash, :dot, :dashdot, :dashdotdot] -cpu_setup = Dict( - "NelderMead" => NelderMead(), - "NLopt.GN_CRS2_LM()" => chain(NLopt.GN_CRS2_LM(), isboxed = true), - "BBO_adaptive_de_rand_1_bin" => chain(BBO_adaptive_de_rand_1_bin(), isboxed = true), - "BBO_adaptive_de_rand_1_bin_radiuslimited" => chain( - BBO_adaptive_de_rand_1_bin_radiuslimited(), isboxed = true), - "BBO_de_rand_2_bin" => chain(BBO_de_rand_2_bin(), isboxed = true), - "ScipyDifferentialEvolution" => chain(ScipyDifferentialEvolution(), isboxed = true), -) - -cpu_labels = sort(collect(keys(cpu_setup))) - -num_particles = 250 - -pso_setup = Dict( - "SerialPSO" => SerPSO(num_particles), - "PSOKernel sync" => PSOKernel(num_particles; backend = CPU(), global_update = true), - "SyncPSOKernel" => SyncPSOKernel(num_particles; backend = CPU()), - "HybridPSO-LBFGS" => HPso(pso = PSOKernel(num_particles; backend = CPU()); backend = CPU()), -) +labels = collect(keys(setup)) +results = Array{BBOB.BenchmarkResults}(undef, length(setup)) -pso_labels = sort(collect(keys(pso_setup))) -``` - -## Run CPU Baselines -```julia -@memoize run_cpu_bench(algo) = BBOB.benchmark( - cpu_setup[algo], test_functions, run_length, Ntrials = 10, dimension = dimension) -@memoize run_cpu_tts(algo) = benchmark_time_to_success( - cpu_setup[algo], test_functions, Ntrials = 10, dimension = dimension) - -cpu_results_raw = Vector{Union{BenchmarkResults, Nothing}}(undef, length(cpu_labels)) -cpu_tts = Dict{String, Vector{Float64}}() -for (i, algo) in enumerate(cpu_labels) - @info "CPU: $algo ..." - try - cpu_results_raw[i] = run_cpu_bench(algo) - cpu_tts[algo] = run_cpu_tts(algo) - @info " done" success=round(cpu_results_raw[i].success_rate[end], digits = 3) - catch err - @warn "CPU $algo failed, skipping" exception = err - cpu_results_raw[i] = nothing - end +Threads.@threads for (i, algo) in collect(enumerate(labels)) + algo in PSO_KEYS && continue + results[i] = run_bench(algo) end -valid_cpu = [(cpu_labels[i], cpu_results_raw[i]) for i in eachindex(cpu_labels) if cpu_results_raw[i] !== nothing] -cpu_labels_ok = [v[1] for v in valid_cpu] -cpu_results = Dict(v[1] => v[2] for v in valid_cpu) -``` - -## Run PSO Variants -```julia -@memoize run_pso_bench(algo) = pso_benchmark( - pso_setup[algo], test_functions, run_length; - Ntrials = 10, dimension = dimension) -@memoize run_pso_tts(algo) = pso_tts( - pso_setup[algo], test_functions; - Ntrials = 10, dimension = dimension) - -pso_results = Dict{String, BenchmarkResults}() -pso_tts_results = Dict{String, Vector{Float64}}() -for algo in pso_labels +for (i, algo) in enumerate(labels) + algo in PSO_KEYS || continue @info "PSO: $algo ..." try - pso_results[algo] = run_pso_bench(algo) - pso_tts_results[algo] = run_pso_tts(algo) - @info " done" success=round(pso_results[algo].success_rate[end], digits = 3) + results[i] = run_bench(algo) + @info " done" success = round(results[i].success_rate[end], digits = 3) catch err - @warn "$algo failed, skipping" exception=(err, catch_backtrace()) + @warn "$algo failed" exception = (err, catch_backtrace()) end end -available_pso = [l for l in pso_labels if haskey(pso_results, l)] +results ``` ## Success Rate vs. Iterations ```julia -all_labels = vcat(cpu_labels_ok, available_pso) -all_results = vcat( - [cpu_results[l] for l in cpu_labels_ok], - [pso_results[l] for l in available_pso]) - -idx = sortperm([r.success_rate[end] for r in all_results], rev = true) +idx = sortperm([b.success_rate[end] for b in results], rev = true) p = plot(xscale = :log10, legend = :outerright, - size = (700, 350), margin = 10Plots.px, dpi = 200, - xlabel = "Iterations", ylabel = "Success rate", ylim = (0, 1)) + size = (700, 350), margin = 10Plots.px, dpi = 200) for (j, i) in enumerate(idx) - r = all_results[i] - plot!(r.run_length, r.success_rate, label = all_labels[i], - showribbon = false, lw = 2.5, xlim = (1, 1e5), + plot!(results[i], label = labels[i], showribbon = false, + lw = 2.5, xlim = (1, 1e5), x = :run_length, markershape = MARKERS[mod1(j, length(MARKERS))], linestyle = LINESTYLES[mod1(j, length(LINESTYLES))], markersize = 4, markerstrokewidth = 0) @@ -330,60 +287,65 @@ end p ``` +## Test all (wall-clock time to success) + +For the time-based benchmark, each optimizer is run once with a large iteration budget +(100,000 iterations) per (function, trial) pair. The objective function is wrapped to +detect the first evaluation that achieves the success criterion (objective < Δf + f_opt) +and record the wall-clock time at that moment. This gives a true "time to success" for +each trial, from which we build a CDF. +```julia +tts_results = Dict{String, Vector{Float64}}() + +for algo in labels + tts_results[algo] = run_tts(algo) +end +``` + ## Success Rate vs. Wall-Clock Time ```julia -all_tts = merge( - Dict(k => v for (k, v) in cpu_tts if k in cpu_labels_ok), - pso_tts_results) - -all_finite = filter(isfinite, vcat(values(all_tts)...)) -if !isempty(all_finite) - t_lo = minimum(all_finite) / 2 - t_hi = maximum(all_finite) * 2 - time_thresholds = 10 .^ range(log10(t_lo), log10(t_hi), length = 50) - - cdfs = Dict(l => success_rate_cdf(all_tts[l], time_thresholds) for l in all_labels if haskey(all_tts, l)) - tts_labels = [l for l in all_labels if haskey(cdfs, l)] - idx = sortperm([cdfs[l][end] for l in tts_labels], rev = true) - - p = plot(xscale = :log10, legend = :outerright, - size = (700, 350), margin = 10Plots.px, dpi = 200, - xlabel = "Wall time (s)", ylabel = "Success rate", ylim = (0, 1)) - for (j, i) in enumerate(idx) - plot!(time_thresholds, cdfs[tts_labels[i]], label = tts_labels[i], lw = 2.5, - markershape = MARKERS[mod1(j, length(MARKERS))], - linestyle = LINESTYLES[mod1(j, length(LINESTYLES))], - markersize = 4, markerstrokewidth = 0) - end - p -else - @warn "No finite time-to-success recorded" +all_finite = filter(isfinite, vcat(values(tts_results)...)) +t_lo = minimum(all_finite) / 2 +t_hi = maximum(all_finite) * 2 +time_thresholds = 10 .^ range(log10(t_lo), log10(t_hi), length = 50) + +cdfs = Dict(algo => success_rate_cdf(tts_results[algo], time_thresholds) for algo in labels) +idx = sortperm([cdfs[l][end] for l in labels], rev = true) + +p = plot(xscale = :log10, legend = :outerright, + size = (700, 350), margin = 10Plots.px, dpi = 200, + xlabel = "Wall time (s)", ylabel = "Success rate", ylim = (0, 1)) +for (j, i) in enumerate(idx) + plot!(time_thresholds, cdfs[labels[i]], label = labels[i], lw = 2.5, + markershape = MARKERS[mod1(j, length(MARKERS))], + linestyle = LINESTYLES[mod1(j, length(LINESTYLES))], + markersize = 4, markerstrokewidth = 0) end +p ``` ## Success Rate per Function Heatmap ```julia -all_srpf = reduce(hcat, r.success_rate_per_function for r in all_results) -func_names = string.(test_functions) +success_rate_per_function = reduce(hcat, b.success_rate_per_function for b in results) -idx = sortperm(mean(all_srpf, dims = 1)[:], rev = false) +idx = sortperm(mean(success_rate_per_function, dims = 1)[:], rev = false) idxfunc = 1:length(test_functions) -heatmap(func_names[idxfunc], all_labels[idx], all_srpf[idxfunc, idx]', +p = heatmap( + string.(test_functions)[idxfunc], labels[idx], success_rate_per_function[idxfunc, idx]', cmap = :RdYlGn, xticks = :all, yticks = :all, xrotation = 45, dpi = 200) ``` ## Distance to Minimizer vs. Iterations ```julia -idx = sortperm([r.distance_to_minimizer[end] for r in all_results], rev = false) +idx = sortperm([b.distance_to_minimizer[end] for b in results], rev = false) p = plot(xscale = :log10, legend = :outerright, - size = (900, 500), margin = 10Plots.px, ylim = (0, 5), - xlabel = "Iterations", ylabel = "Mean distance to minimum") + size = (900, 500), margin = 10Plots.px, ylim = (0, 5)) for (j, i) in enumerate(idx) - r = all_results[i] - plot!(r.run_length, r.distance_to_minimizer, label = all_labels[i], + plot!(results[i].run_length, results[i].distance_to_minimizer, label = labels[i], showribbon = false, lw = 2, xlim = (1, 1e5), + xlabel = "Iterations", ylabel = "Mean distance to minimum", markershape = MARKERS[mod1(j, length(MARKERS))], linestyle = LINESTYLES[mod1(j, length(LINESTYLES))], markersize = 4, markerstrokewidth = 0) @@ -393,38 +355,12 @@ p ## Relative Runtime ```julia -all_runtimes = [r.runtime for r in all_results] -ref = findfirst("NelderMead" .== all_labels) -if ref !== nothing - runtimes_rel = all_runtimes ./ all_runtimes[ref] - bar(all_labels, runtimes_rel, xrotation = 45, xticks = :all, - ylabel = "Run time relative to NM", yscale = :log10, - yticks = [0.1, 1, 10, 100], legend = false, margin = 25Plots.px) -end -``` - -## Summary -```julia -println("\n", "="^70) -println("CONVERGENCE RANKING (success rate at max budget)") -println("="^70) - -all_sr = [(all_labels[i], all_results[i].success_rate[end]) for i in 1:length(all_labels)] -sort!(all_sr, by = x -> -x[2]) - -for (rank, (name, sr)) in enumerate(all_sr) - tag = name in available_pso ? " ← PSO" : "" - @printf(" %2d. %-45s %5.1f%%%s\n", rank, name, sr * 100, tag) -end - -println("\n", "="^70) -println("Best PSO variant for GPU promotion:") -if !isempty(available_pso) - best_pso = argmax(Dict(l => pso_results[l].success_rate[end] for l in available_pso)) - sr = round(pso_results[best_pso].success_rate[end] * 100, digits = 1) - println(" → $best_pso ($sr%)") -else - println(" No PSO variants completed successfully") -end -println("="^70) +ref = findfirst("NelderMead" .== labels) +runtimes = getfield.(results, :runtime) +runtimes = runtimes ./ runtimes[ref] + +bar( + labels, runtimes, xrotation = 45, xticks = :all, ylabel = "Run time relative to NM", + yscale = :log10, yticks = [0.1, 1, 10, 100], + legend = false, margin = 25Plots.px) ``` \ No newline at end of file From 41861248edc674d93a9f0b411f94f1aba610904f Mon Sep 17 00:00:00 2001 From: AdityaPandeyCN Date: Sat, 28 Mar 2026 08:39:28 +0530 Subject: [PATCH 3/7] run pso first Signed-off-by: AdityaPandeyCN --- .../pso_global_optimizers.jmd | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/benchmarks/GlobalOptimization/pso_global_optimizers.jmd b/benchmarks/GlobalOptimization/pso_global_optimizers.jmd index c0bc46803..14204734e 100644 --- a/benchmarks/GlobalOptimization/pso_global_optimizers.jmd +++ b/benchmarks/GlobalOptimization/pso_global_optimizers.jmd @@ -27,7 +27,7 @@ gr() using OptimizationBBO, OptimizationOptimJL, OptimizationNLopt, OptimizationSciPy using ParallelParticleSwarms -using OpenCL +using KernelAbstractions: CPU using StaticArrays, LinearAlgebra const PSOKernel = ParallelParticleSwarms.ParallelPSOKernel @@ -35,7 +35,7 @@ const SyncPSOKernel = ParallelParticleSwarms.ParallelSyncPSOKernel const SerPSO = ParallelParticleSwarms.SerialPSO const HPso = ParallelParticleSwarms.HybridPSO -const BACKEND = OpenCLBackend() +const BACKEND = CPU() ``` ```julia function make_success_tracker(f_raw, f_opt, Δf) @@ -220,17 +220,18 @@ num_particles = 1024 PSO_KEYS = Set(["SerialPSO", "PSOKernel", "SyncPSOKernel", "HybridPSO_LBFGS"]) setup = Dict( + # Baseline global optimizers "NelderMead" => NelderMead(), "NLopt_GN_CRS2_LM" => chain(NLopt.GN_CRS2_LM(), isboxed = true), "BBO_adaptive_de_rand_1_bin" => chain(BBO_adaptive_de_rand_1_bin(), isboxed = true), "BBO_adaptive_de_rand_1_bin_radiuslimited" => chain(BBO_adaptive_de_rand_1_bin_radiuslimited(), isboxed = true), "BBO_de_rand_2_bin" => chain(BBO_de_rand_2_bin(), isboxed = true), "ScipyDifferentialEvolution" => chain(ScipyDifferentialEvolution(), isboxed = true), - # PSO - "SerialPSO" => SerPSO(num_particles), - "PSOKernel" => PSOKernel(num_particles; backend = BACKEND, global_update = true), - "SyncPSOKernel" => SyncPSOKernel(num_particles; backend = BACKEND), - "HybridPSO_LBFGS" => HPso(pso = PSOKernel(num_particles; backend = BACKEND); backend = BACKEND), + # PSO variants + "SerialPSO" => SerPSO(num_particles), + "PSOKernel" => PSOKernel(num_particles; backend = BACKEND, global_update = true), + "SyncPSOKernel" => SyncPSOKernel(num_particles; backend = BACKEND), + "HybridPSO_LBFGS" => HPso(pso = PSOKernel(num_particles; backend = BACKEND); backend = BACKEND), ) @memoize run_bench(algo) = algo in PSO_KEYS ? @@ -252,11 +253,7 @@ const LINESTYLES = [:solid, :dash, :dot, :dashdot, :dashdotdot] labels = collect(keys(setup)) results = Array{BBOB.BenchmarkResults}(undef, length(setup)) -Threads.@threads for (i, algo) in collect(enumerate(labels)) - algo in PSO_KEYS && continue - results[i] = run_bench(algo) -end - +# PSO variants first for (i, algo) in enumerate(labels) algo in PSO_KEYS || continue @info "PSO: $algo ..." @@ -268,6 +265,12 @@ for (i, algo) in enumerate(labels) end end +# Baseline optimizers (threaded) +Threads.@threads for (i, algo) in collect(enumerate(labels)) + algo in PSO_KEYS && continue + results[i] = run_bench(algo) +end + results ``` @@ -297,7 +300,15 @@ each trial, from which we build a CDF. ```julia tts_results = Dict{String, Vector{Float64}}() +# PSO variants first +for algo in labels + algo in PSO_KEYS || continue + tts_results[algo] = run_tts(algo) +end + +# Baseline optimizers for algo in labels + algo in PSO_KEYS && continue tts_results[algo] = run_tts(algo) end ``` From c110fd62da35337ae92fe41dc6318309916ab697 Mon Sep 17 00:00:00 2001 From: AdityaPandeyCN Date: Thu, 18 Jun 2026 23:25:23 +0530 Subject: [PATCH 4/7] update benchmark files Signed-off-by: AdityaPandeyCN --- benchmarks/GlobalOptimization/Project.toml | 4 + .../pso_global_optimizers.jmd | 205 ++++++++++-------- 2 files changed, 123 insertions(+), 86 deletions(-) diff --git a/benchmarks/GlobalOptimization/Project.toml b/benchmarks/GlobalOptimization/Project.toml index ca31181f8..d55efbfcc 100644 --- a/benchmarks/GlobalOptimization/Project.toml +++ b/benchmarks/GlobalOptimization/Project.toml @@ -1,5 +1,6 @@ [deps] BlackBoxOptimizationBenchmarking = "4552ee2b-11da-5aef-8e78-0d48532001f1" +KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" Memoize = "c03570c3-d221-55d1-a50c-7939bbd78826" Optimization = "7f7a1694-90dd-40f0-9382-eb1efda571ba" OptimizationBBO = "3e6eede4-6085-4f62-9a71-46d9bc1eb92b" @@ -12,8 +13,11 @@ OptimizationOptimisers = "42dfb2eb-d2b4-4451-abcd-913932933ac1" OptimizationPRIMA = "72f8369c-a2ea-4298-9126-56167ce9cbc2" OptimizationPyCMA = "fb0822aa-1fe5-41d8-99a6-e7bf6c238d3b" OptimizationSciPy = "cce07bd8-c79b-4b00-aee8-8db9cce22837" +ParallelParticleSwarms = "ab63da0c-63b4-40fa-a3b7-d2cba5be6419" Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" SciMLBenchmarks = "31c91b34-3c75-11e9-0341-95557aab0344" +StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" +Weave = "44d3d7a6-8a23-5bf8-98c5-b353f8df5ec9" [compat] BlackBoxOptimizationBenchmarking = "1" diff --git a/benchmarks/GlobalOptimization/pso_global_optimizers.jmd b/benchmarks/GlobalOptimization/pso_global_optimizers.jmd index 14204734e..788dfcd86 100644 --- a/benchmarks/GlobalOptimization/pso_global_optimizers.jmd +++ b/benchmarks/GlobalOptimization/pso_global_optimizers.jmd @@ -11,6 +11,12 @@ suite, using the [Optimization.jl](https://github.com/SciML/Optimization.jl) int This tests both iterations and wall-clock time vs accuracy, i.e. for a given budget (in iterations or time), what percentage of problems from the set is a solver able to solve. +For fairness with the baseline global optimizers, every PSO variant is run through the +same `Chain(global, NelderMead(), 0.9)` scheme used for the baselines, with one exception: +`HybridPSO_LBFGS` already carries an LBFGS local-refinement stage, so it is not chained +with a second NelderMead polish. All methods use the same trial count (`Ntrials = 40`), +the same `±5.5` search box, and the same success criterion (`|f - f_opt| < Δf`). + ## Setup ```julia using Random @@ -37,6 +43,10 @@ const HPso = ParallelParticleSwarms.HybridPSO const BACKEND = CPU() ``` + +The success tracker and the baseline `Chain`-aware timed solve are unchanged from the +upstream BBOB harness. Each wraps the objective so that the first evaluation crossing the +success threshold records its wall-clock time. ```julia function make_success_tracker(f_raw, f_opt, Δf) t0 = Ref(time()) @@ -72,10 +82,16 @@ end function benchmark_time_to_success( optimizer::Union{Chain, BenchmarkSetup}, funcs::Vector{BBOBFunction}; - Ntrials::Int = 20, dimension::Int = 3, Δf::Real = 1e-6, max_run_length::Int = 100_000 + Ntrials::Int = 40, dimension::Int = 3, Δf::Real = 1e-6, max_run_length::Int = 100_000 ) all_times = Float64[] for f in funcs + # warmup so JIT/compile latency stays out of the timed region + try + tw, _, _ = make_success_tracker(f.f, f.f_opt, Δf) + solve_problem_timed(optimizer, tw, dimension, 50) + catch + end for _ in 1:Ntrials tracked_f, t0_ref, tts_ref = make_success_tracker(f.f, f.f_opt, Δf) try @@ -100,58 +116,66 @@ function success_rate_cdf(all_times::Vector{Float64}, time_thresholds::AbstractV end ``` -PSO variants require an `SVector` interface and a custom solve loop. +PSO variants require an `SVector` interface. To match the baselines, each PSO run is wrapped +in the same chaining scheme: the swarm consumes the first `p` fraction of the budget, then a +NelderMead polish (derivative-free, unbounded) consumes the rest. The polish runs on the +*same* objective closure, so the success tracker sees evaluations from both stages. +`HybridPSO_LBFGS` already performs LBFGS refinement internally and is run with `polish = false`. ```julia -function pso_solve(opt, f::BBOBFunction, D::Int, maxiters::Int; local_maxiters::Int = 20) - obj = (x, p) -> f.f(Vector(x)) +function pso_chained(opt, obj, x0::SVector{D}, lb::SVector{D}, ub::SVector{D}, + run_length::Int; p = 0.9, local_maxiters = 20, polish = true) where {D} + rl1 = max(1, round(Int, p * run_length)) + rl2 = run_length - rl1 + ad = opt isa HPso ? AutoForwardDiff() : Optimization.SciMLBase.NoAD() optf = OptimizationFunction{false}(obj, ad) - lb = SVector{D}(ntuple(_ -> -5.0, Val(D))) - ub = SVector{D}(ntuple(_ -> 5.0, Val(D))) - x0 = SVector{D}(ntuple(_ -> -5.0 + rand() * 10.0, Val(D))) prob = OptimizationProblem{false}(optf, x0, nothing; lb, ub) - if opt isa HPso - solve(prob, opt; maxiters, local_maxiters, abstol = 1e-8, reltol = 1e-8) - else - solve(prob, opt; maxiters) - end -end - -function _extract_u(sol, D) - u = sol.u - u isa SVector && return u - u[] + sol = opt isa HPso ? + solve(prob, opt; maxiters = rl1, local_maxiters, abstol = 1e-8, reltol = 1e-8) : + solve(prob, opt; maxiters = rl1) + + u = sol.u isa SVector ? sol.u : sol.u[] + (polish && rl2 > 0) || return u + + # NelderMead polish: unbounded + derivative-free, identical to the baseline chains + poptf = OptimizationFunction(obj, Optimization.SciMLBase.NoAD()) + pprob = OptimizationProblem(poptf, collect(u)) + psol = solve(pprob, NelderMead(); maxiters = rl2) + return psol.u end function pso_benchmark(opt, funcs, run_length; - Ntrials = 20, dimension = 3, local_maxiters = 20, Δf = 1e-6, CI_quantile = 0.25) - Nf = length(funcs) - Nr = length(run_length) - success = zeros(Float64, Nf, Nr) - dist = zeros(Float64, Nf, Nr) - fmin = zeros(Float64, Nf, Nr) - # warmup - for f in funcs - try pso_solve(opt, f, dimension, 3; local_maxiters) catch; end + Ntrials = 40, dimension = 3, local_maxiters = 20, Δf = 1e-6, + CI_quantile = 0.25, p = 0.9, polish = true, n_particles = num_particles) + Nf = length(funcs); Nr = length(run_length); D = dimension + success = zeros(Nf, Nr); dist = zeros(Nf, Nr); fmin = zeros(Nf, Nr) + lb = SVector{D}(ntuple(_ -> -5.5, Val(D))) + ub = SVector{D}(ntuple(_ -> 5.5, Val(D))) + initx() = SVector{D}(ntuple(_ -> -5.5 + rand() * 11.0, Val(D))) + + for f in funcs # warmup (excluded from timing) + try pso_chained(opt, (x, _) -> f.f(Vector(x)), initx(), lb, ub, 3; + p, local_maxiters, polish) catch; end end t0 = time() for (fi, f) in enumerate(funcs) - xopt = SVector{dimension}(f.x_opt[1:dimension]) + xopt = SVector{D}(f.x_opt[1:D]) + obj = (x, _) -> f.f(Vector(x)) for (ri, rl) in enumerate(run_length) hits = 0; dsum = 0.0; fsum = 0.0 for _ in 1:Ntrials - sol = try pso_solve(opt, f, dimension, rl; local_maxiters) catch; nothing end - if sol !== nothing - u = _extract_u(sol, dimension) - fval = sol.objective isa Real ? Float64(sol.objective) : Float64(sol.objective[]) + u = try pso_chained(opt, obj, initx(), lb, ub, rl; + p, local_maxiters, polish) catch; nothing end + if u !== nothing + fval = f.f(Vector(u)) # final value on the polished point hits += abs(fval - f.f_opt) < Δf ? 1 : 0 dsum += norm(u .- xopt) fsum += fval - f.f_opt end end success[fi, ri] = hits / Ntrials - dist[fi, ri] = dsum / Ntrials - fmin[fi, ri] = fsum / Ntrials + dist[fi, ri] = dsum / Ntrials + fmin[fi, ri] = fsum / Ntrials end end elapsed = time() - t0 @@ -169,33 +193,31 @@ function pso_benchmark(opt, funcs, run_length; minimum = vec(mean(fmin, dims = 1)), runtime = elapsed, Neffective = Neff, - callcount = Float64.(run_length), + # true eval count: p·budget swarm-evals (× n_particles) + (1-p)·budget polish-evals + callcount = p .* run_length .* n_particles .+ (1 - p) .* run_length, success_rate_per_function = [success[fi, end] for fi in 1:Nf], ) end -function pso_tts(opt, funcs; Ntrials = 20, dimension = 3, Δf = 1e-6, - local_maxiters = 20, max_run_length = 100_000) - all_times = Float64[] - D = dimension - lb = SVector{D}(ntuple(_ -> -5.0, Val(D))) - ub = SVector{D}(ntuple(_ -> 5.0, Val(D))) +function pso_tts(opt, funcs; Ntrials = 40, dimension = 3, Δf = 1e-6, + local_maxiters = 20, max_run_length = 100_000, p = 0.9, polish = true) + all_times = Float64[]; D = dimension + lb = SVector{D}(ntuple(_ -> -5.5, Val(D))) + ub = SVector{D}(ntuple(_ -> 5.5, Val(D))) + initx() = SVector{D}(ntuple(_ -> -5.5 + rand() * 11.0, Val(D))) + + for f in funcs # warmup, not timed + try pso_chained(opt, (x, _) -> f.f(Vector(x)), initx(), lb, ub, 50; + p, local_maxiters, polish) catch; end + end for f in funcs for _ in 1:Ntrials - tracked_f, t0_ref, tts_ref = make_success_tracker(f.f, f.f_opt, Δf) - obj = (x, p) -> tracked_f(Vector(x)) - ad = opt isa HPso ? AutoForwardDiff() : Optimization.SciMLBase.NoAD() - optf = OptimizationFunction{false}(obj, ad) - x0 = SVector{D}(ntuple(_ -> -5.0 + rand() * 10.0, Val(D))) - prob = OptimizationProblem{false}(optf, x0, nothing; lb, ub) + tracked, t0_ref, tts_ref = make_success_tracker(f.f, f.f_opt, Δf) + obj = (x, _) -> tracked(Vector(x)) # both stages feed this tracker try t0_ref[] = time() - if opt isa HPso - solve(prob, opt; maxiters = max_run_length, local_maxiters, - abstol = 1e-8, reltol = 1e-8) - else - solve(prob, opt; maxiters = max_run_length) - end + pso_chained(opt, obj, initx(), lb, ub, max_run_length; + p, local_maxiters, polish) push!(all_times, tts_ref[]) catch err push!(all_times, Inf) @@ -206,6 +228,7 @@ function pso_tts(opt, funcs; Ntrials = 20, dimension = 3, Δf = 1e-6, all_times end ``` + ```julia chain = (t; isboxed = false) -> Chain( BenchmarkSetup(t, isboxed = isboxed), @@ -219,15 +242,24 @@ num_particles = 1024 PSO_KEYS = Set(["SerialPSO", "PSOKernel", "SyncPSOKernel", "HybridPSO_LBFGS"]) +# Pure PSO variants get the same NelderMead polish as the baselines. +# HybridPSO already carries an LBFGS local stage, so it is NOT chained a second time. +PSO_POLISH = Dict( + "SerialPSO" => true, + "PSOKernel" => true, + "SyncPSOKernel" => true, + "HybridPSO_LBFGS" => false, +) + setup = Dict( - # Baseline global optimizers + # Baseline global optimizers "NelderMead" => NelderMead(), - "NLopt_GN_CRS2_LM" => chain(NLopt.GN_CRS2_LM(), isboxed = true), + "NLopt_GN_CRS2_LM" => chain(NLopt.GN_CRS2_LM(), isboxed = true), "BBO_adaptive_de_rand_1_bin" => chain(BBO_adaptive_de_rand_1_bin(), isboxed = true), "BBO_adaptive_de_rand_1_bin_radiuslimited" => chain(BBO_adaptive_de_rand_1_bin_radiuslimited(), isboxed = true), "BBO_de_rand_2_bin" => chain(BBO_de_rand_2_bin(), isboxed = true), "ScipyDifferentialEvolution" => chain(ScipyDifferentialEvolution(), isboxed = true), - # PSO variants + # PSO variants "SerialPSO" => SerPSO(num_particles), "PSOKernel" => PSOKernel(num_particles; backend = BACKEND, global_update = true), "SyncPSOKernel" => SyncPSOKernel(num_particles; backend = BACKEND), @@ -235,15 +267,21 @@ setup = Dict( ) @memoize run_bench(algo) = algo in PSO_KEYS ? - pso_benchmark(setup[algo], test_functions, run_length; Ntrials = 20, dimension) : + pso_benchmark(setup[algo], test_functions, run_length; + Ntrials = 40, dimension, polish = PSO_POLISH[algo]) : BBOB.benchmark(setup[algo], test_functions, run_length; Ntrials = 40, dimension) @memoize run_tts(algo) = algo in PSO_KEYS ? - pso_tts(setup[algo], test_functions; Ntrials = 20, dimension) : + pso_tts(setup[algo], test_functions; + Ntrials = 40, dimension, polish = PSO_POLISH[algo]) : benchmark_time_to_success(setup[algo], test_functions; Ntrials = 40, dimension) ``` ## Test all (iterations) + +The sweep runs serially. Concurrent `BBOB.benchmark` calls contend for cores (inflating the +per-algorithm `runtime` used by the relative-runtime chart) and the threaded SciPy calls race +on the Python GIL. Failed runs are recorded as `nothing` and skipped in the plots. ```julia const MARKERS = [:circle, :diamond, :utriangle, :square, :star5, :dtriangle, :pentagon, :hexagon, :cross, :xcross, :rtriangle, :ltriangle, :star4, :star8, :heptagon, :octagon, @@ -251,12 +289,10 @@ const MARKERS = [:circle, :diamond, :utriangle, :square, :star5, :dtriangle, :pe const LINESTYLES = [:solid, :dash, :dot, :dashdot, :dashdotdot] labels = collect(keys(setup)) -results = Array{BBOB.BenchmarkResults}(undef, length(setup)) +results = Vector{Union{BBOB.BenchmarkResults, Nothing}}(nothing, length(setup)) -# PSO variants first for (i, algo) in enumerate(labels) - algo in PSO_KEYS || continue - @info "PSO: $algo ..." + @info "Running: $algo ..." try results[i] = run_bench(algo) @info " done" success = round(results[i].success_rate[end], digits = 3) @@ -265,18 +301,14 @@ for (i, algo) in enumerate(labels) end end -# Baseline optimizers (threaded) -Threads.@threads for (i, algo) in collect(enumerate(labels)) - algo in PSO_KEYS && continue - results[i] = run_bench(algo) -end - +ok = findall(!isnothing, results) results ``` ## Success Rate vs. Iterations ```julia -idx = sortperm([b.success_rate[end] for b in results], rev = true) +order = sortperm([results[i].success_rate[end] for i in ok], rev = true) +idx = ok[order] p = plot(xscale = :log10, legend = :outerright, size = (700, 350), margin = 10Plots.px, dpi = 200) @@ -296,19 +328,13 @@ For the time-based benchmark, each optimizer is run once with a large iteration (100,000 iterations) per (function, trial) pair. The objective function is wrapped to detect the first evaluation that achieves the success criterion (objective < Δf + f_opt) and record the wall-clock time at that moment. This gives a true "time to success" for -each trial, from which we build a CDF. +each trial, from which we build a CDF. Because it counts per-evaluation cost directly, this +plot is the cost-fair comparison: a 1024-particle PSO iteration and a single-point DE +iteration are weighted by their actual work, not treated as equal x-axis units. ```julia tts_results = Dict{String, Vector{Float64}}() -# PSO variants first -for algo in labels - algo in PSO_KEYS || continue - tts_results[algo] = run_tts(algo) -end - -# Baseline optimizers for algo in labels - algo in PSO_KEYS && continue tts_results[algo] = run_tts(algo) end ``` @@ -320,8 +346,9 @@ t_lo = minimum(all_finite) / 2 t_hi = maximum(all_finite) * 2 time_thresholds = 10 .^ range(log10(t_lo), log10(t_hi), length = 50) -cdfs = Dict(algo => success_rate_cdf(tts_results[algo], time_thresholds) for algo in labels) -idx = sortperm([cdfs[l][end] for l in labels], rev = true) +cdfs = Dict(algo => success_rate_cdf(tts_results[algo], time_thresholds) for algo in labels) +order = sortperm([cdfs[labels[i]][end] for i in ok], rev = true) +idx = ok[order] p = plot(xscale = :log10, legend = :outerright, size = (700, 350), margin = 10Plots.px, dpi = 200, @@ -337,19 +364,21 @@ p ## Success Rate per Function Heatmap ```julia -success_rate_per_function = reduce(hcat, b.success_rate_per_function for b in results) +success_rate_per_function = reduce(hcat, results[i].success_rate_per_function for i in ok) -idx = sortperm(mean(success_rate_per_function, dims = 1)[:], rev = false) +order = sortperm(mean(success_rate_per_function, dims = 1)[:], rev = false) idxfunc = 1:length(test_functions) p = heatmap( - string.(test_functions)[idxfunc], labels[idx], success_rate_per_function[idxfunc, idx]', + string.(test_functions)[idxfunc], labels[ok][order], + success_rate_per_function[idxfunc, order]', cmap = :RdYlGn, xticks = :all, yticks = :all, xrotation = 45, dpi = 200) ``` ## Distance to Minimizer vs. Iterations ```julia -idx = sortperm([b.distance_to_minimizer[end] for b in results], rev = false) +order = sortperm([results[i].distance_to_minimizer[end] for i in ok], rev = false) +idx = ok[order] p = plot(xscale = :log10, legend = :outerright, size = (900, 500), margin = 10Plots.px, ylim = (0, 5)) @@ -365,13 +394,17 @@ p ``` ## Relative Runtime + +Produced from the serial sweep above so the per-algorithm wall-clock figures are comparable. +All methods used the same `Ntrials = 40`, so no per-trial normalization is needed. ```julia ref = findfirst("NelderMead" .== labels) -runtimes = getfield.(results, :runtime) +runtimes = [results[i] === nothing ? NaN : results[i].runtime for i in 1:length(labels)] runtimes = runtimes ./ runtimes[ref] bar( - labels, runtimes, xrotation = 45, xticks = :all, ylabel = "Run time relative to NM", + labels[ok], runtimes[ok], xrotation = 45, xticks = :all, + ylabel = "Run time relative to NM", yscale = :log10, yticks = [0.1, 1, 10, 100], legend = false, margin = 25Plots.px) ``` \ No newline at end of file From 50a8965f8d32d45e397779cf5e0c8705faac7a47 Mon Sep 17 00:00:00 2001 From: AdityaPandeyCN Date: Fri, 19 Jun 2026 13:31:24 +0530 Subject: [PATCH 5/7] delete manifest.toml Signed-off-by: AdityaPandeyCN --- benchmarks/GlobalOptimization/Manifest.toml | 2334 ------------------- 1 file changed, 2334 deletions(-) delete mode 100644 benchmarks/GlobalOptimization/Manifest.toml diff --git a/benchmarks/GlobalOptimization/Manifest.toml b/benchmarks/GlobalOptimization/Manifest.toml deleted file mode 100644 index c37ef2120..000000000 --- a/benchmarks/GlobalOptimization/Manifest.toml +++ /dev/null @@ -1,2334 +0,0 @@ -# This file is machine-generated - editing it directly is not advised - -julia_version = "1.11.9" -manifest_format = "2.0" -project_hash = "f2550a86b87d9937850c74f53042eb559228450d" - -[[deps.ADTypes]] -git-tree-sha1 = "bbc22a9a08a0ef6460041086d8a7b27940ed4ffd" -uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "1.22.0" - - [deps.ADTypes.extensions] - ADTypesChainRulesCoreExt = "ChainRulesCore" - ADTypesConstructionBaseExt = "ConstructionBase" - ADTypesEnzymeCoreExt = "EnzymeCore" - - [deps.ADTypes.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" - EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" - -[[deps.AMD]] -deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] -git-tree-sha1 = "45a1272e3f809d36431e57ab22703c6896b8908f" -uuid = "14f7f29c-3bd6-536c-9a0b-7339e30b5a3e" -version = "0.5.3" - -[[deps.AbstractTrees]] -git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" -uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" -version = "0.4.5" - -[[deps.Accessors]] -deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "MacroTools"] -git-tree-sha1 = "2eeb2c9bef11013efc6f8f97f32ee59b146b09fb" -uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" -version = "0.1.44" - - [deps.Accessors.extensions] - AxisKeysExt = "AxisKeys" - IntervalSetsExt = "IntervalSets" - LinearAlgebraExt = "LinearAlgebra" - StaticArraysExt = "StaticArrays" - StructArraysExt = "StructArrays" - TestExt = "Test" - UnitfulExt = "Unitful" - - [deps.Accessors.weakdeps] - AxisKeys = "94b1ba4f-4ee9-5380-92f1-94cde586c3c5" - IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" - LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" - Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" - Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" - -[[deps.Adapt]] -deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "0761717147821d696c9470a7a86364b2fbd22fd8" -uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "4.5.2" - - [deps.Adapt.extensions] - AdaptSparseArraysExt = "SparseArrays" - AdaptStaticArraysExt = "StaticArrays" - - [deps.Adapt.weakdeps] - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - -[[deps.AliasTables]] -deps = ["PtrArrays", "Random"] -git-tree-sha1 = "9876e1e164b144ca45e9e3198d0b689cadfed9ff" -uuid = "66dad0bd-aa9a-41b7-9441-69ab47430ed8" -version = "1.1.3" - -[[deps.ArgTools]] -uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" -version = "1.1.2" - -[[deps.ArrayInterface]] -deps = ["Adapt", "LinearAlgebra"] -git-tree-sha1 = "54f895554d05c83e3dd59f6a396671dae8999573" -uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.24.0" - - [deps.ArrayInterface.extensions] - ArrayInterfaceAMDGPUExt = "AMDGPU" - ArrayInterfaceBandedMatricesExt = "BandedMatrices" - ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" - ArrayInterfaceCUDAExt = "CUDA" - ArrayInterfaceCUDSSExt = ["CUDSS", "CUDA"] - ArrayInterfaceChainRulesCoreExt = "ChainRulesCore" - ArrayInterfaceChainRulesExt = "ChainRules" - ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" - ArrayInterfaceMetalExt = "Metal" - ArrayInterfaceReverseDiffExt = "ReverseDiff" - ArrayInterfaceSparseArraysExt = "SparseArrays" - ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" - ArrayInterfaceTrackerExt = "Tracker" - - [deps.ArrayInterface.weakdeps] - AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" - BandedMatrices = "aae01518-5342-5314-be14-df237901396f" - BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" - CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" - ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" - Metal = "dde4c033-4e86-420c-a63e-0dd931031962" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - -[[deps.Artifacts]] -uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" -version = "1.11.0" - -[[deps.Base64]] -uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" -version = "1.11.0" - -[[deps.BitFlags]] -git-tree-sha1 = "0691e34b3bb8be9307330f88d1a3c3f25466c24d" -uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" -version = "0.1.9" - -[[deps.BlackBoxOptim]] -deps = ["Compat", "Distributed", "Distributions", "LinearAlgebra", "Printf", "Random", "Requires", "SpatialIndexing", "StatsBase"] -git-tree-sha1 = "ff10af3e88099d442ca1d5c39a0e30a874524230" -uuid = "a134a8b2-14d6-55f6-9291-3336d3ab0209" -version = "0.6.4" -weakdeps = ["HTTP", "Sockets"] - -[[deps.BlackBoxOptimizationBenchmarking]] -deps = ["Distributions", "LinearAlgebra", "Memoize", "Optim", "Optimization", "RecipesBase"] -git-tree-sha1 = "7046f70bbd2c8559aed0fb17ff181ef5df048852" -uuid = "4552ee2b-11da-5aef-8e78-0d48532001f1" -version = "1.0.2" - -[[deps.Bzip2_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "1b96ea4a01afe0ea4090c5c8039690672dd13f2e" -uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" -version = "1.0.9+0" - -[[deps.CEnum]] -git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" -uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" -version = "0.5.0" - -[[deps.Cairo_jll]] -deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "d0efe2c6fdcdaa1c161d206aa8b933788397ec71" -uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" -version = "1.18.6+0" - -[[deps.ChainRulesCore]] -deps = ["Compat", "LinearAlgebra"] -git-tree-sha1 = "12177ad6b3cad7fd50c8b3825ce24a99ad61c18f" -uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.26.1" -weakdeps = ["SparseArrays"] - - [deps.ChainRulesCore.extensions] - ChainRulesCoreSparseArraysExt = "SparseArrays" - -[[deps.CodecBzip2]] -deps = ["Bzip2_jll", "TranscodingStreams"] -git-tree-sha1 = "84990fa864b7f2b4901901ca12736e45ee79068c" -uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" -version = "0.8.5" - -[[deps.CodecZlib]] -deps = ["TranscodingStreams", "Zlib_jll"] -git-tree-sha1 = "962834c22b66e32aa10f7611c08c8ca4e20749a9" -uuid = "944b1d66-785c-5afd-91f1-9de20f533193" -version = "0.7.8" - -[[deps.ColorSchemes]] -deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] -git-tree-sha1 = "b0fd3f56fa442f81e0a47815c92245acfaaa4e34" -uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" -version = "3.31.0" - -[[deps.ColorTypes]] -deps = ["FixedPointNumbers", "Random"] -git-tree-sha1 = "67e11ee83a43eb71ddc950302c53bf33f0690dfe" -uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" -version = "0.12.1" -weakdeps = ["StyledStrings"] - - [deps.ColorTypes.extensions] - StyledStringsExt = "StyledStrings" - -[[deps.ColorVectorSpace]] -deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] -git-tree-sha1 = "8b3b6f87ce8f65a2b4f857528fd8d70086cd72b1" -uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" -version = "0.11.0" -weakdeps = ["SpecialFunctions"] - - [deps.ColorVectorSpace.extensions] - SpecialFunctionsExt = "SpecialFunctions" - -[[deps.Colors]] -deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] -git-tree-sha1 = "37ea44092930b1811e666c3bc38065d7d87fcc74" -uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" -version = "0.13.1" - -[[deps.Combinatorics]] -git-tree-sha1 = "c761b00e7755700f9cdf5b02039939d1359330e1" -uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" -version = "1.1.0" - -[[deps.CommonSolve]] -git-tree-sha1 = "78ea4ddbcf9c241827e7035c3a03e2e456711470" -uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" -version = "0.2.6" - -[[deps.CommonSubexpressions]] -deps = ["MacroTools"] -git-tree-sha1 = "cda2cfaebb4be89c9084adaca7dd7333369715c5" -uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" -version = "0.3.1" - -[[deps.Compat]] -deps = ["TOML", "UUIDs"] -git-tree-sha1 = "9d8a54ce4b17aa5bdce0ea5c34bc5e7c340d16ad" -uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.18.1" -weakdeps = ["Dates", "LinearAlgebra"] - - [deps.Compat.extensions] - CompatLinearAlgebraExt = "LinearAlgebra" - -[[deps.CompilerSupportLibraries_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.1.1+0" - -[[deps.CompositionsBase]] -git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" -uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" -version = "0.1.2" -weakdeps = ["InverseFunctions"] - - [deps.CompositionsBase.extensions] - CompositionsBaseInverseFunctionsExt = "InverseFunctions" - -[[deps.ConcurrentUtilities]] -deps = ["Serialization", "Sockets"] -git-tree-sha1 = "21d088c496ea22914fe80906eb5bce65755e5ec8" -uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" -version = "2.5.1" - -[[deps.Conda]] -deps = ["Downloads", "JSON", "VersionParsing"] -git-tree-sha1 = "8f06b0cfa4c514c7b9546756dbae91fcfbc92dc9" -uuid = "8f4d0f93-b110-5947-807f-2305c1781a2d" -version = "1.10.3" - -[[deps.CondaPkg]] -deps = ["JSON3", "Markdown", "MicroMamba", "Pidfile", "Pkg", "Preferences", "Scratch", "TOML", "pixi_jll"] -git-tree-sha1 = "bd491d55b97a036caae1d78729bdb70bf7dababc" -uuid = "992eb4ea-22a4-4c89-a5bb-47a3300528ab" -version = "0.2.33" - -[[deps.ConsoleProgressMonitor]] -deps = ["Logging", "ProgressMeter"] -git-tree-sha1 = "3ab7b2136722890b9af903859afcf457fa3059e8" -uuid = "88cd18e8-d9cc-4ea6-8889-5259c0d15c8b" -version = "0.1.2" - -[[deps.ConstructionBase]] -git-tree-sha1 = "b4b092499347b18a015186eae3042f72267106cb" -uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.6.0" - - [deps.ConstructionBase.extensions] - ConstructionBaseIntervalSetsExt = "IntervalSets" - ConstructionBaseLinearAlgebraExt = "LinearAlgebra" - ConstructionBaseStaticArraysExt = "StaticArrays" - - [deps.ConstructionBase.weakdeps] - IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" - LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - -[[deps.Contour]] -git-tree-sha1 = "439e35b0b36e2e5881738abc8857bd92ad6ff9a8" -uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" -version = "0.6.3" - -[[deps.DataAPI]] -git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" -uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" -version = "1.16.0" - -[[deps.DataStructures]] -deps = ["OrderedCollections"] -git-tree-sha1 = "e86f4a2805f7f19bec5129bc9150c38208e5dc23" -uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.19.4" - -[[deps.DataValueInterfaces]] -git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" -uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" -version = "1.0.0" - -[[deps.Dates]] -deps = ["Printf"] -uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" -version = "1.11.0" - -[[deps.Dbus_jll]] -deps = ["Artifacts", "Expat_jll", "JLLWrappers", "Libdl"] -git-tree-sha1 = "473e9afc9cf30814eb67ffa5f2db7df82c3ad9fd" -uuid = "ee1fde0b-3d02-5ea6-8484-8dfef6360eab" -version = "1.16.2+0" - -[[deps.DelimitedFiles]] -deps = ["Mmap"] -git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" -uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" -version = "1.9.1" - -[[deps.DiffResults]] -deps = ["StaticArraysCore"] -git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" -uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" -version = "1.1.0" - -[[deps.DiffRules]] -deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] -git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" -uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" -version = "1.15.1" - -[[deps.DifferentiationInterface]] -deps = ["ADTypes", "LinearAlgebra"] -git-tree-sha1 = "d0250552e42bf7cc36479fd38a6e30004c9e8c2b" -uuid = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" -version = "0.7.17" - - [deps.DifferentiationInterface.extensions] - DifferentiationInterfaceChainRulesCoreExt = "ChainRulesCore" - DifferentiationInterfaceDiffractorExt = "Diffractor" - DifferentiationInterfaceEnzymeExt = ["EnzymeCore", "Enzyme"] - DifferentiationInterfaceFastDifferentiationExt = "FastDifferentiation" - DifferentiationInterfaceFiniteDiffExt = "FiniteDiff" - DifferentiationInterfaceFiniteDifferencesExt = "FiniteDifferences" - DifferentiationInterfaceForwardDiffExt = ["ForwardDiff", "DiffResults"] - DifferentiationInterfaceGPUArraysCoreExt = ["GPUArraysCore", "Adapt"] - DifferentiationInterfaceGTPSAExt = "GTPSA" - DifferentiationInterfaceMooncakeExt = "Mooncake" - DifferentiationInterfacePolyesterForwardDiffExt = ["PolyesterForwardDiff", "ForwardDiff", "DiffResults"] - DifferentiationInterfaceReverseDiffExt = ["ReverseDiff", "DiffResults"] - DifferentiationInterfaceSparseArraysExt = "SparseArrays" - DifferentiationInterfaceSparseConnectivityTracerExt = "SparseConnectivityTracer" - DifferentiationInterfaceSparseMatrixColoringsExt = "SparseMatrixColorings" - DifferentiationInterfaceStaticArraysExt = "StaticArrays" - DifferentiationInterfaceSymbolicsExt = "Symbolics" - DifferentiationInterfaceTrackerExt = "Tracker" - DifferentiationInterfaceZygoteExt = ["Zygote", "ForwardDiff"] - - [deps.DifferentiationInterface.weakdeps] - Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - DiffResults = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" - Diffractor = "9f5e2b26-1114-432f-b630-d3fe2085c51c" - Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" - EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" - FastDifferentiation = "eb9bf01b-bf85-4b60-bf87-ee5de06c00be" - FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" - FiniteDifferences = "26cc04aa-876d-5657-8c51-4c34ba976000" - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" - GTPSA = "b27dd330-f138-47c5-815b-40db9dd9b6e8" - Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" - PolyesterForwardDiff = "98d1487c-24ca-40b6-b7ab-df2af84e126b" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - SparseConnectivityTracer = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" - SparseMatrixColorings = "0a514795-09f3-496d-8182-132a7b665d35" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" - -[[deps.Distances]] -deps = ["LinearAlgebra", "Statistics", "StatsAPI"] -git-tree-sha1 = "c7e3a542b999843086e2f29dac96a618c105be1d" -uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" -version = "0.10.12" -weakdeps = ["ChainRulesCore", "SparseArrays"] - - [deps.Distances.extensions] - DistancesChainRulesCoreExt = "ChainRulesCore" - DistancesSparseArraysExt = "SparseArrays" - -[[deps.Distributed]] -deps = ["Random", "Serialization", "Sockets"] -uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" -version = "1.11.0" - -[[deps.Distributions]] -deps = ["AliasTables", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] -git-tree-sha1 = "e421c1938fafab0165b04dc1a9dbe2a26272952c" -uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.125" - - [deps.Distributions.extensions] - DistributionsChainRulesCoreExt = "ChainRulesCore" - DistributionsDensityInterfaceExt = "DensityInterface" - DistributionsTestExt = "Test" - - [deps.Distributions.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" - Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" - -[[deps.DocStringExtensions]] -git-tree-sha1 = "7442a5dfe1ebb773c29cc2962a8980f47221d76c" -uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" -version = "0.9.5" - -[[deps.Downloads]] -deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] -uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" -version = "1.6.0" - -[[deps.EnumX]] -git-tree-sha1 = "c49898e8438c828577f04b92fc9368c388ac783c" -uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" -version = "1.0.7" - -[[deps.EpollShim_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "8a4be429317c42cfae6a7fc03c31bad1970c310d" -uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" -version = "0.0.20230411+1" - -[[deps.Evolutionary]] -deps = ["LinearAlgebra", "NLSolversBase", "Random", "StackViews", "Statistics", "UnPack"] -git-tree-sha1 = "495cc997e315ee71d2361bf4c90ef21dc12e8fd1" -uuid = "86b6b26d-c046-49b6-aa0b-5f0f74682bd6" -version = "0.11.1" - -[[deps.ExceptionUnwrapping]] -deps = ["Test"] -git-tree-sha1 = "d36f682e590a83d63d1c7dbd287573764682d12a" -uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" -version = "0.1.11" - -[[deps.Expat_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "8f05e9a2e7c2e3eb524102bb2926c5743c07fbe1" -uuid = "2e619515-83b5-522b-bb60-26c02a35a201" -version = "2.8.0+0" - -[[deps.ExprTools]] -git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" -uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" -version = "0.1.10" - -[[deps.ExproniconLite]] -git-tree-sha1 = "c13f0b150373771b0fdc1713c97860f8df12e6c2" -uuid = "55351af7-c7e9-48d6-89ff-24e801d99491" -version = "0.10.14" - -[[deps.FFMPEG]] -deps = ["FFMPEG_jll"] -git-tree-sha1 = "95ecf07c2eea562b5adbd0696af6db62c0f52560" -uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" -version = "0.4.5" - -[[deps.FFMPEG_jll]] -deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libva_jll", "libvorbis_jll", "x264_jll", "x265_jll"] -git-tree-sha1 = "cac41ca6b2d399adfc95e51240566f8a60a80806" -uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" -version = "8.1.0+0" - -[[deps.FastClosures]] -git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" -uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" -version = "0.3.2" - -[[deps.FileWatching]] -uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" -version = "1.11.0" - -[[deps.FillArrays]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "2f979084d1e13948a3352cf64a25df6bd3b4dca3" -uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.16.0" - - [deps.FillArrays.extensions] - FillArraysPDMatsExt = "PDMats" - FillArraysSparseArraysExt = "SparseArrays" - FillArraysStaticArraysExt = "StaticArrays" - FillArraysStatisticsExt = "Statistics" - - [deps.FillArrays.weakdeps] - PDMats = "90014a1f-27ba-587c-ab20-58faa44d9150" - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" - -[[deps.FiniteDiff]] -deps = ["ArrayInterface", "LinearAlgebra", "Setfield"] -git-tree-sha1 = "f7017a4f337f8df189fcce98e32b67a1298a2115" -uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.31.0" - - [deps.FiniteDiff.extensions] - FiniteDiffBandedMatricesExt = "BandedMatrices" - FiniteDiffBlockBandedMatricesExt = "BlockBandedMatrices" - FiniteDiffSparseArraysExt = "SparseArrays" - FiniteDiffStaticArraysExt = "StaticArrays" - - [deps.FiniteDiff.weakdeps] - BandedMatrices = "aae01518-5342-5314-be14-df237901396f" - BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - -[[deps.FixedPointNumbers]] -deps = ["Statistics"] -git-tree-sha1 = "05882d6995ae5c12bb5f36dd2ed3f61c98cbb172" -uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" -version = "0.8.5" - -[[deps.Fontconfig_jll]] -deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"] -git-tree-sha1 = "f85dac9a96a01087df6e3a749840015a0ca3817d" -uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" -version = "2.17.1+0" - -[[deps.Format]] -git-tree-sha1 = "9c68794ef81b08086aeb32eeaf33531668d5f5fc" -uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" -version = "1.3.7" - -[[deps.ForwardDiff]] -deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] -git-tree-sha1 = "cddeab6487248a39dae1a960fff0ac17b2a28888" -uuid = "f6369f11-7733-5829-9624-2563aa707210" -version = "1.3.3" - - [deps.ForwardDiff.extensions] - ForwardDiffStaticArraysExt = "StaticArrays" - - [deps.ForwardDiff.weakdeps] - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - -[[deps.FreeType2_jll]] -deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "70329abc09b886fd2c5d94ad2d9527639c421e3e" -uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" -version = "2.14.3+1" - -[[deps.FriBidi_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "7a214fdac5ed5f59a22c2d9a885a16da1c74bbc7" -uuid = "559328eb-81f9-559d-9380-de523a88c83c" -version = "1.0.17+0" - -[[deps.FunctionWrappers]] -git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" -uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" -version = "1.1.3" - -[[deps.FunctionWrappersWrappers]] -deps = ["FunctionWrappers", "PrecompileTools", "TruncatedStacktraces"] -git-tree-sha1 = "c1b0c3a166a2a393257aa888787ca817532e14ce" -uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" -version = "1.8.0" - - [deps.FunctionWrappersWrappers.extensions] - FunctionWrappersWrappersEnzymeExt = ["Enzyme", "EnzymeCore"] - FunctionWrappersWrappersMooncakeExt = "Mooncake" - - [deps.FunctionWrappersWrappers.weakdeps] - Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" - EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" - Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" - -[[deps.Functors]] -deps = ["Compat", "ConstructionBase", "LinearAlgebra", "Random"] -git-tree-sha1 = "60a0339f28a233601cb74468032b5c302d5067de" -uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" -version = "0.5.2" - -[[deps.Future]] -deps = ["Random"] -uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" -version = "1.11.0" - -[[deps.GLFW_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll", "libdecor_jll", "xkbcommon_jll"] -git-tree-sha1 = "9e0fb9e54594c47f278d75063980e43066e26e20" -uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" -version = "3.4.1+1" - -[[deps.GPUArraysCore]] -deps = ["Adapt"] -git-tree-sha1 = "83cf05ab16a73219e5f6bd1bdfa9848fa24ac627" -uuid = "46192b85-c4d5-4398-a991-12ede77f4527" -version = "0.2.0" - -[[deps.GR]] -deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Preferences", "Printf", "Qt6Wayland_jll", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "p7zip_jll"] -git-tree-sha1 = "44716a1a667cb867ee0e9ec8edc31c3e4aa5afdc" -uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.73.24" -weakdeps = ["IJulia"] - - [deps.GR.extensions] - IJuliaExt = "IJulia" - -[[deps.GR_jll]] -deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "be8a1b8065959e24fdc1b51402f39f3b6f0f6653" -uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.73.24+0" - -[[deps.GettextRuntime_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll"] -git-tree-sha1 = "45288942190db7c5f760f59c04495064eedf9340" -uuid = "b0724c58-0f36-5564-988d-3bb0596ebc4a" -version = "0.22.4+0" - -[[deps.Ghostscript_jll]] -deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Zlib_jll"] -git-tree-sha1 = "38044a04637976140074d0b0621c1edf0eb531fd" -uuid = "61579ee1-b43e-5ca0-a5da-69d92c66a64b" -version = "9.55.1+0" - -[[deps.Git]] -deps = ["Git_LFS_jll", "Git_jll", "JLLWrappers", "OpenSSH_jll"] -git-tree-sha1 = "824a1890086880696fc908fe12a17bcf61738bd8" -uuid = "d7ba0133-e1db-5d97-8f8c-041e4b3a1eb2" -version = "1.5.0" - -[[deps.Git_LFS_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "bb8471f313ed941f299aa53d32a94ab3bee08844" -uuid = "020c3dae-16b3-5ae5-87b3-4cb189e250b2" -version = "3.7.0+0" - -[[deps.Git_jll]] -deps = ["Artifacts", "Expat_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "Libiconv_jll", "OpenSSL_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "0dd4cfb426924210c8f42742751cbde74b27bfa3" -uuid = "f8c6e375-362e-5223-8a59-34ff63f689eb" -version = "2.54.0+0" - -[[deps.Glib_jll]] -deps = ["Artifacts", "GettextRuntime_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "24f6def62397474a297bfcec22384101609142ed" -uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.86.3+0" - -[[deps.Graphite2_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "8a6dbda1fd736d60cc477d99f2e7a042acfa46e8" -uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" -version = "1.3.15+0" - -[[deps.Grisu]] -git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" -uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" -version = "1.0.2" - -[[deps.HTTP]] -deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "PrecompileTools", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "51059d23c8bb67911a2e6fd5130229113735fc7e" -uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.11.0" - -[[deps.HarfBuzz_jll]] -deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll"] -git-tree-sha1 = "f923f9a774fcf3f5cb761bfa43aeadd689714813" -uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" -version = "8.5.1+0" - -[[deps.Highlights]] -deps = ["DocStringExtensions", "InteractiveUtils", "REPL"] -git-tree-sha1 = "9e13b8d8b1367d9692a90ea4711b4278e4755c32" -uuid = "eafb193a-b7ab-5a9e-9068-77385905fa72" -version = "0.5.3" - -[[deps.HypergeometricFunctions]] -deps = ["LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] -git-tree-sha1 = "68c173f4f449de5b438ee67ed0c9c748dc31a2ec" -uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" -version = "0.3.28" - -[[deps.IJulia]] -deps = ["Base64", "Conda", "Dates", "InteractiveUtils", "Logging", "Markdown", "Pkg", "PrecompileTools", "Printf", "REPL", "Random", "SHA", "Sockets", "UUIDs", "ZMQ"] -git-tree-sha1 = "102656c4efc9737f892e1bca7e66ae374c650740" -uuid = "7073ff75-c697-5162-941a-fcdaad2a7d2a" -version = "1.34.4" - - [deps.IJulia.extensions] - IJuliaPythonCallExt = "PythonCall" - IJuliaReviseExt = "Revise" - - [deps.IJulia.weakdeps] - PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" - Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" - -[[deps.InteractiveUtils]] -deps = ["Markdown"] -uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" -version = "1.11.0" - -[[deps.InverseFunctions]] -git-tree-sha1 = "a779299d77cd080bf77b97535acecd73e1c5e5cb" -uuid = "3587e190-3f89-42d0-90ee-14403ec27112" -version = "0.1.17" -weakdeps = ["Dates", "Test"] - - [deps.InverseFunctions.extensions] - InverseFunctionsDatesExt = "Dates" - InverseFunctionsTestExt = "Test" - -[[deps.IrrationalConstants]] -git-tree-sha1 = "b2d91fe939cae05960e760110b328288867b5758" -uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" -version = "0.2.6" - -[[deps.IteratorInterfaceExtensions]] -git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" -uuid = "82899510-4779-5014-852e-03e436cf321d" -version = "1.0.0" - -[[deps.JLFzf]] -deps = ["REPL", "Random", "fzf_jll"] -git-tree-sha1 = "82f7acdc599b65e0f8ccd270ffa1467c21cb647b" -uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" -version = "0.1.11" - -[[deps.JLLWrappers]] -deps = ["Artifacts", "Preferences"] -git-tree-sha1 = "0533e564aae234aff59ab625543145446d8b6ec2" -uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.7.1" - -[[deps.JMcDM]] -deps = ["Requires"] -git-tree-sha1 = "e26d5db41aa1b96d4ed23b46eeeca34116214661" -uuid = "358108f5-d052-4d0a-8344-d5384e00c0e5" -version = "0.7.24" - -[[deps.JSON]] -deps = ["Dates", "Mmap", "Parsers", "Unicode"] -git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" -uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" -version = "0.21.4" - -[[deps.JSON3]] -deps = ["Dates", "Mmap", "Parsers", "PrecompileTools", "StructTypes", "UUIDs"] -git-tree-sha1 = "411eccfe8aba0814ffa0fdf4860913ed09c34975" -uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" -version = "1.14.3" - - [deps.JSON3.extensions] - JSON3ArrowExt = ["ArrowTypes"] - - [deps.JSON3.weakdeps] - ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd" - -[[deps.Jieko]] -deps = ["ExproniconLite"] -git-tree-sha1 = "2f05ed29618da60c06a87e9c033982d4f71d0b6c" -uuid = "ae98c720-c025-4a4a-838c-29b094483192" -version = "0.2.1" - -[[deps.JpegTurbo_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "c0c9b76f3520863909825cbecdef58cd63de705a" -uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" -version = "3.1.5+0" - -[[deps.Krylov]] -deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "c4d19f51afc7ba2afbe32031b8f2d21b11c9e26e" -uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.10.6" - -[[deps.LAME_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "059aabebaa7c82ccb853dd4a0ee9d17796f7e1bc" -uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" -version = "3.100.3+0" - -[[deps.LDLFactorizations]] -deps = ["AMD", "LinearAlgebra", "SparseArrays", "Test"] -git-tree-sha1 = "d75c5cb8d6ac9c359ae9eb8e87e446ba9f221dd4" -uuid = "40e66cde-538c-5869-a4ad-c39174c6795b" -version = "0.10.2" - -[[deps.LERC_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "17b94ecafcfa45e8360a4fc9ca6b583b049e4e37" -uuid = "88015f11-f218-50d7-93a8-a6af411a945d" -version = "4.1.0+0" - -[[deps.LLVMOpenMP_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "eb62a3deb62fc6d8822c0c4bef73e4412419c5d8" -uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" -version = "18.1.8+0" - -[[deps.LaTeXStrings]] -git-tree-sha1 = "dda21b8cbd6a6c40d9d02a73230f9d70fed6918c" -uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" -version = "1.4.0" - -[[deps.Latexify]] -deps = ["Format", "Ghostscript_jll", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] -git-tree-sha1 = "44f93c47f9cd6c7e431f2f2091fcba8f01cd7e8f" -uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" -version = "0.16.10" - - [deps.Latexify.extensions] - DataFramesExt = "DataFrames" - SparseArraysExt = "SparseArrays" - SymEngineExt = "SymEngine" - TectonicExt = "tectonic_jll" - - [deps.Latexify.weakdeps] - DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" - tectonic_jll = "d7dd28d6-a5e6-559c-9131-7eb760cdacc5" - -[[deps.LazyArtifacts]] -deps = ["Artifacts", "Pkg"] -uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" -version = "1.11.0" - -[[deps.LeftChildRightSiblingTrees]] -deps = ["AbstractTrees"] -git-tree-sha1 = "95ba48564903b43b2462318aa243ee79d81135ff" -uuid = "1d6d02ad-be62-4b6b-8a6d-2f90e265016e" -version = "0.2.1" - -[[deps.LibCURL]] -deps = ["LibCURL_jll", "MozillaCACerts_jll"] -uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" -version = "0.6.4" - -[[deps.LibCURL_jll]] -deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] -uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" -version = "8.6.0+0" - -[[deps.LibGit2]] -deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] -uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" -version = "1.11.0" - -[[deps.LibGit2_jll]] -deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] -uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" -version = "1.7.2+0" - -[[deps.LibSSH2_jll]] -deps = ["Artifacts", "Libdl", "MbedTLS_jll"] -uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" -version = "1.11.0+1" - -[[deps.Libdl]] -uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" -version = "1.11.0" - -[[deps.Libffi_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "c8da7e6a91781c41a863611c7e966098d783c57a" -uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" -version = "3.4.7+0" - -[[deps.Libglvnd_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll", "Xorg_libXext_jll"] -git-tree-sha1 = "d36c21b9e7c172a44a10484125024495e2625ac0" -uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" -version = "1.7.1+1" - -[[deps.Libiconv_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "be484f5c92fad0bd8acfef35fe017900b0b73809" -uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" -version = "1.18.0+0" - -[[deps.Libmount_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "cc3ad4faf30015a3e8094c9b5b7f19e85bdf2386" -uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" -version = "2.42.0+0" - -[[deps.Libtiff_jll]] -deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] -git-tree-sha1 = "f04133fe05eff1667d2054c53d59f9122383fe05" -uuid = "89763e89-9b03-5906-acba-b20f662cd828" -version = "4.7.2+0" - -[[deps.Libuuid_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "d620582b1f0cbe2c72dd1d5bd195a9ce73370ab1" -uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" -version = "2.42.0+0" - -[[deps.LineSearches]] -deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Printf"] -git-tree-sha1 = "9ea3422d03222c6de679934d1c08f0a99405aa03" -uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" -version = "7.5.1" - -[[deps.LinearAlgebra]] -deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] -uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" -version = "1.11.0" - -[[deps.LinearOperators]] -deps = ["FastClosures", "LinearAlgebra", "Printf", "SparseArrays", "TimerOutputs"] -git-tree-sha1 = "ddd5a43cff2692c26f09952d33c9746cfc740d60" -uuid = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125" -version = "2.13.0" - - [deps.LinearOperators.extensions] - LinearOperatorsAMDGPUExt = "AMDGPU" - LinearOperatorsCUDAExt = "CUDA" - LinearOperatorsChainRulesCoreExt = "ChainRulesCore" - LinearOperatorsJLArraysExt = "JLArrays" - LinearOperatorsLDLFactorizationsExt = "LDLFactorizations" - LinearOperatorsMetalExt = "Metal" - - [deps.LinearOperators.weakdeps] - AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - JLArrays = "27aeb0d3-9eb9-45fb-866b-73c2ecf80fcb" - LDLFactorizations = "40e66cde-538c-5869-a4ad-c39174c6795b" - Metal = "dde4c033-4e86-420c-a63e-0dd931031962" - -[[deps.LogExpFunctions]] -deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "13ca9e2586b89836fd20cccf56e57e2b9ae7f38f" -uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.29" - - [deps.LogExpFunctions.extensions] - LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" - LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" - LogExpFunctionsInverseFunctionsExt = "InverseFunctions" - - [deps.LogExpFunctions.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" - InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" - -[[deps.Logging]] -uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" -version = "1.11.0" - -[[deps.LoggingExtras]] -deps = ["Dates", "Logging"] -git-tree-sha1 = "f00544d95982ea270145636c181ceda21c4e2575" -uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" -version = "1.2.0" - -[[deps.MacroTools]] -git-tree-sha1 = "1e0228a030642014fe5cfe68c2c0a818f9e3f522" -uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" -version = "0.5.16" - -[[deps.Markdown]] -deps = ["Base64"] -uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" -version = "1.11.0" - -[[deps.MathOptInterface]] -deps = ["CodecBzip2", "CodecZlib", "ForwardDiff", "JSON", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test"] -git-tree-sha1 = "73939c06e863f8d68322106fdc2464f3443b5e1a" -uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" -version = "1.51.0" - - [deps.MathOptInterface.extensions] - MathOptInterfaceBenchmarkToolsExt = "BenchmarkTools" - MathOptInterfaceCliqueTreesExt = "CliqueTrees" - - [deps.MathOptInterface.weakdeps] - BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" - CliqueTrees = "60701a23-6482-424a-84db-faee86b9b1f8" - -[[deps.MbedTLS]] -deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] -git-tree-sha1 = "8785729fa736197687541f7053f6d8ab7fc44f92" -uuid = "739be429-bea8-5141-9913-cc70e7f3736d" -version = "1.1.10" - -[[deps.MbedTLS_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" -version = "2.28.6+0" - -[[deps.Measures]] -git-tree-sha1 = "b513cedd20d9c914783d8ad83d08120702bf2c77" -uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" -version = "0.3.3" - -[[deps.Memoize]] -deps = ["MacroTools"] -git-tree-sha1 = "2b1dfcba103de714d31c033b5dacc2e4a12c7caa" -uuid = "c03570c3-d221-55d1-a50c-7939bbd78826" -version = "0.4.4" - -[[deps.Metaheuristics]] -deps = ["Distances", "JMcDM", "LinearAlgebra", "Printf", "Random", "Reexport", "Requires", "SearchSpaces", "SnoopPrecompile", "Statistics"] -git-tree-sha1 = "cb77d8a00a13d298aef0dd62b328745e4b72c7e4" -uuid = "bcdb8e00-2c21-11e9-3065-2b553b22f898" -version = "3.4.2" - -[[deps.MicroMamba]] -deps = ["Pkg", "Scratch", "micromamba_jll"] -git-tree-sha1 = "535656ce55266bfed0575cd051acc4f36dc869a0" -uuid = "0b3b1443-0f03-428d-bdfb-f27f9c1191ea" -version = "0.1.15" - -[[deps.Missings]] -deps = ["DataAPI"] -git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d" -uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" -version = "1.2.0" - -[[deps.Mmap]] -uuid = "a63ad114-7e13-5084-954f-fe012c677804" -version = "1.11.0" - -[[deps.Moshi]] -deps = ["ExproniconLite", "Jieko"] -git-tree-sha1 = "53f817d3e84537d84545e0ad749e483412dd6b2a" -uuid = "2e0e35c7-a2e4-4343-998d-7ef72827ed2d" -version = "0.3.7" - -[[deps.MozillaCACerts_jll]] -uuid = "14a3606d-f60d-562e-9121-12d972cd8159" -version = "2023.12.12" - -[[deps.Mustache]] -deps = ["Printf", "Tables"] -git-tree-sha1 = "3cbd5dda543bc59f2e482607ccf84b633724fc32" -uuid = "ffc61752-8dc7-55ee-8c37-f3e9cdd09e70" -version = "1.0.21" - -[[deps.MutableArithmetics]] -deps = ["LinearAlgebra", "SparseArrays", "Test"] -git-tree-sha1 = "7c25249fc13a070f5ba433c50e21e22bb33c6fb0" -uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" -version = "1.7.1" - -[[deps.NLSolversBase]] -deps = ["ADTypes", "DifferentiationInterface", "Distributed", "FiniteDiff", "ForwardDiff"] -git-tree-sha1 = "25a6638571a902ecfb1ae2a18fc1575f86b1d4df" -uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" -version = "7.10.0" - -[[deps.NLopt]] -deps = ["CEnum", "NLopt_jll"] -git-tree-sha1 = "624785b15005a0e0f4e462b27ee745dbe5941863" -uuid = "76087f3c-5699-56af-9a33-bf431cd00edd" -version = "1.2.1" -weakdeps = ["MathOptInterface"] - - [deps.NLopt.extensions] - NLoptMathOptInterfaceExt = ["MathOptInterface"] - -[[deps.NLopt_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "b0154a615d5b2b6cf7a2501123b793577d0b9950" -uuid = "079eb43e-fd8e-5478-9966-2cf3e3edb778" -version = "2.10.0+0" - -[[deps.NOMAD]] -deps = ["Libdl", "LinearAlgebra", "NOMAD_jll", "SparseArrays", "Test", "Tulip"] -git-tree-sha1 = "dbe00e8d6fc1a2fd002fd718e66b878f0ec21e4a" -uuid = "02130f1c-4665-5b79-af82-ff1385104aa0" -version = "2.4.2" - -[[deps.NOMAD_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "57457dc9480330148a9390880e6741d553c58064" -uuid = "2fc7fd02-576c-576e-a36a-6afce71715da" -version = "4.3.1+0" - -[[deps.NaNMath]] -deps = ["OpenLibm_jll"] -git-tree-sha1 = "9b8215b1ee9e78a293f99797cd31375471b2bcae" -uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" -version = "1.1.3" - -[[deps.NetworkOptions]] -uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" -version = "1.2.0" - -[[deps.OffsetArrays]] -git-tree-sha1 = "117432e406b5c023f665fa73dc26e79ec3630151" -uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.17.0" -weakdeps = ["Adapt"] - - [deps.OffsetArrays.extensions] - OffsetArraysAdaptExt = "Adapt" - -[[deps.Ogg_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "b6aa4566bb7ae78498a5e68943863fa8b5231b59" -uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" -version = "1.3.6+0" - -[[deps.OpenBLAS_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] -uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.27+1" - -[[deps.OpenLibm_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "05823500-19ac-5b8b-9628-191a04bc5112" -version = "0.8.5+0" - -[[deps.OpenSSH_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "OpenSSL_jll", "Zlib_jll"] -git-tree-sha1 = "57baa4b81a24c2910afbb6d853aa0685e4312bf7" -uuid = "9bd350c2-7e96-507f-8002-3f2e150b4e1b" -version = "10.3.1+0" - -[[deps.OpenSSL]] -deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "NetworkOptions", "OpenSSL_jll", "Sockets"] -git-tree-sha1 = "1d1aaa7d449b58415f97d2839c318b70ffb525a0" -uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" -version = "1.6.1" - -[[deps.OpenSSL_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "2ac022577e5eac7da040de17776d51bb770cd895" -uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.5.6+0" - -[[deps.OpenSpecFun_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] -git-tree-sha1 = "1346c9208249809840c91b26703912dff463d335" -uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" -version = "0.5.6+0" - -[[deps.Optim]] -deps = ["Compat", "EnumX", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] -git-tree-sha1 = "48968edaf014f67e58fe4c8a4ce72d392aed3294" -uuid = "429524aa-4258-5aef-a3af-852621145aeb" -version = "1.13.3" -weakdeps = ["MathOptInterface"] - - [deps.Optim.extensions] - OptimMOIExt = "MathOptInterface" - -[[deps.Optimisers]] -deps = ["ChainRulesCore", "ConstructionBase", "Functors", "LinearAlgebra", "Random", "Statistics"] -git-tree-sha1 = "36b5d2b9dd06290cd65fcf5bdbc3a551ed133af5" -uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" -version = "0.4.7" - - [deps.Optimisers.extensions] - OptimisersAdaptExt = ["Adapt"] - OptimisersEnzymeCoreExt = "EnzymeCore" - OptimisersReactantExt = "Reactant" - - [deps.Optimisers.weakdeps] - Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" - EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" - Reactant = "3c362404-f566-11ee-1572-e11a4b42c853" - -[[deps.Optimization]] -deps = ["ADTypes", "ArrayInterface", "ConsoleProgressMonitor", "DocStringExtensions", "LinearAlgebra", "Logging", "LoggingExtras", "OptimizationBase", "Printf", "Reexport", "SciMLBase", "SparseArrays", "TerminalLoggers"] -git-tree-sha1 = "166ff0e9c44c45f26113fef6971b8783d7ce7998" -uuid = "7f7a1694-90dd-40f0-9382-eb1efda571ba" -version = "5.4.0" - -[[deps.OptimizationBBO]] -deps = ["BlackBoxOptim", "OptimizationBase", "Reexport", "SciMLBase"] -git-tree-sha1 = "6ad933638872b8022a1d0205ddc93adcfb3c4c71" -uuid = "3e6eede4-6085-4f62-9a71-46d9bc1eb92b" -version = "0.4.5" - -[[deps.OptimizationBase]] -deps = ["ADTypes", "ArrayInterface", "DifferentiationInterface", "DocStringExtensions", "FastClosures", "LinearAlgebra", "PDMats", "PrecompileTools", "Reexport", "SciMLBase", "SparseArrays", "SparseConnectivityTracer", "SparseMatrixColorings"] -git-tree-sha1 = "9d1129ecde9f1773521196bdb2c5f16170bb2f6c" -uuid = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" -version = "4.2.0" - - [deps.OptimizationBase.extensions] - OptimizationEnzymeExt = "Enzyme" - OptimizationFiniteDiffExt = "FiniteDiff" - OptimizationForwardDiffExt = "ForwardDiff" - OptimizationMLDataDevicesExt = "MLDataDevices" - OptimizationMLUtilsExt = "MLUtils" - OptimizationReverseDiffExt = "ReverseDiff" - OptimizationSymbolicAnalysisExt = "SymbolicAnalysis" - OptimizationZygoteExt = "Zygote" - - [deps.OptimizationBase.weakdeps] - Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" - FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - MLDataDevices = "7e8f7934-dd98-4c1a-8fe8-92b47a384d40" - MLUtils = "f1d291b0-491e-4a28-83b9-f70985020b54" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - SymbolicAnalysis = "4297ee4d-0239-47d8-ba5d-195ecdf594fe" - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" - -[[deps.OptimizationEvolutionary]] -deps = ["Evolutionary", "OptimizationBase", "Reexport", "SciMLBase"] -git-tree-sha1 = "a9fc533f82197fcc88ad39866368952bf06cbc85" -uuid = "cb963754-43f6-435e-8d4b-99009ff27753" -version = "0.4.6" - -[[deps.OptimizationMetaheuristics]] -deps = ["Metaheuristics", "OptimizationBase", "Reexport", "SciMLBase"] -git-tree-sha1 = "753ddd7141b7911e001b7c327f85b3e133e55802" -uuid = "3aafef2f-86ae-4776-b337-85a36adf0b55" -version = "0.3.4" - -[[deps.OptimizationNLopt]] -deps = ["NLopt", "OptimizationBase", "Random", "Reexport", "SciMLBase"] -git-tree-sha1 = "8354392af1d62b7c3ac28a33094b1e8338364843" -uuid = "4e6fcdb7-1186-4e1f-a706-475e75c168bb" -version = "0.3.8" - -[[deps.OptimizationNOMAD]] -deps = ["NOMAD", "OptimizationBase", "Reexport", "SciMLBase"] -git-tree-sha1 = "475474f21fceea1a41d14ce3fdad463f72dfe7bf" -uuid = "2cab0595-8222-4775-b714-9828e6a9e01b" -version = "0.3.4" - -[[deps.OptimizationOptimJL]] -deps = ["Optim", "OptimizationBase", "PrecompileTools", "Reexport", "SciMLBase", "SparseArrays"] -git-tree-sha1 = "ba8f23a14d861a303e829afaf67a7b3f75da945f" -uuid = "36348300-93cb-4f02-beb5-3c3902f8871e" -version = "0.4.8" - -[[deps.OptimizationOptimisers]] -deps = ["Logging", "Optimisers", "OptimizationBase", "Reexport", "SciMLBase"] -git-tree-sha1 = "63737f735d5f3d2e0548ae8831ebb7cebf51758b" -uuid = "42dfb2eb-d2b4-4451-abcd-913932933ac1" -version = "0.3.15" - -[[deps.OptimizationPRIMA]] -deps = ["OptimizationBase", "PRIMA", "Reexport", "SciMLBase"] -git-tree-sha1 = "47213be324d248141575b4d9d19054d616aaea91" -uuid = "72f8369c-a2ea-4298-9126-56167ce9cbc2" -version = "0.3.4" - -[[deps.OptimizationPyCMA]] -deps = ["CondaPkg", "OptimizationBase", "PythonCall", "Reexport", "SciMLBase", "Test"] -git-tree-sha1 = "a364e69d21e754e1ae93ced17db27a581907a800" -uuid = "fb0822aa-1fe5-41d8-99a6-e7bf6c238d3b" -version = "1.2.0" - -[[deps.OptimizationSciPy]] -deps = ["OptimizationBase", "PythonCall", "Reexport", "SciMLBase"] -git-tree-sha1 = "4835e9397d04f6280e88cc10b02f293d24edf77d" -uuid = "cce07bd8-c79b-4b00-aee8-8db9cce22837" -version = "0.4.5" - -[[deps.Opus_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "e2bb57a313a74b8104064b7efd01406c0a50d2ff" -uuid = "91d4177d-7536-5919-b921-800302f37372" -version = "1.6.1+0" - -[[deps.OrderedCollections]] -git-tree-sha1 = "05868e21324cede2207c6f0f466b4bfef6d5e7ee" -uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.8.1" - -[[deps.PCRE2_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" -version = "10.42.0+1" - -[[deps.PDMats]] -deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "e4cff168707d441cd6bf3ff7e4832bdf34278e4a" -uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" -version = "0.11.37" -weakdeps = ["StatsBase"] - - [deps.PDMats.extensions] - StatsBaseExt = "StatsBase" - -[[deps.PRIMA]] -deps = ["LinearAlgebra", "PRIMA_jll", "TypeUtils"] -git-tree-sha1 = "a066ecc3478e57377411d748125f572bf4e39cf3" -uuid = "0a7d04aa-8ac2-47b3-b7a7-9dbd6ad661ed" -version = "0.2.4" - - [deps.PRIMA.extensions] - PRIMACUTEstExt = "CUTEst" - PRIMANLPModelsExt = "NLPModels" - - [deps.PRIMA.weakdeps] - CUTEst = "1b53aba6-35b6-5f92-a507-53c67d53f819" - NLPModels = "a4795742-8479-5a88-8948-cc11e1c8c1a6" - -[[deps.PRIMA_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] -git-tree-sha1 = "f7bbf8d5dda12f3f417b350baf82ebf0d190a623" -uuid = "eead6e0c-2d5b-5641-a95c-b722de96d551" -version = "0.7.1+0" - -[[deps.Pango_jll]] -deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"] -git-tree-sha1 = "58e5ed5e386e156bd93e86b305ebd21ac63d2d04" -uuid = "36c8627f-9965-5494-a995-c6b170f724f3" -version = "1.57.1+0" - -[[deps.Parsers]] -deps = ["Dates", "PrecompileTools", "UUIDs"] -git-tree-sha1 = "5d5e0a78e971354b1c7bff0655d11fdc1b0e12c8" -uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.8.4" - -[[deps.Pidfile]] -deps = ["FileWatching", "Test"] -git-tree-sha1 = "2d8aaf8ee10df53d0dfb9b8ee44ae7c04ced2b03" -uuid = "fa939f87-e72e-5be4-a000-7fc836dbe307" -version = "1.3.0" - -[[deps.Pixman_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] -git-tree-sha1 = "db76b1ecd5e9715f3d043cec13b2ec93ce015d53" -uuid = "30392449-352a-5448-841d-b1acce4e97dc" -version = "0.44.2+0" - -[[deps.Pkg]] -deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "Random", "SHA", "TOML", "Tar", "UUIDs", "p7zip_jll"] -uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" -version = "1.11.0" -weakdeps = ["REPL"] - - [deps.Pkg.extensions] - REPLExt = "REPL" - -[[deps.PlotThemes]] -deps = ["PlotUtils", "Statistics"] -git-tree-sha1 = "41031ef3a1be6f5bbbf3e8073f210556daeae5ca" -uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" -version = "3.3.0" - -[[deps.PlotUtils]] -deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "StableRNGs", "Statistics"] -git-tree-sha1 = "26ca162858917496748aad52bb5d3be4d26a228a" -uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" -version = "1.4.4" - -[[deps.Plots]] -deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "TOML", "UUIDs", "UnicodeFun", "Unzip"] -git-tree-sha1 = "cb20a4eacda080e517e4deb9cfb6c7c518131265" -uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.41.6" - - [deps.Plots.extensions] - FileIOExt = "FileIO" - GeometryBasicsExt = "GeometryBasics" - IJuliaExt = "IJulia" - ImageInTerminalExt = "ImageInTerminal" - UnitfulExt = "Unitful" - - [deps.Plots.weakdeps] - FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" - GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" - IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" - ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" - Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" - -[[deps.PositiveFactorizations]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" -uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" -version = "0.2.4" - -[[deps.PreallocationTools]] -deps = ["Adapt", "ArrayInterface", "PrecompileTools"] -git-tree-sha1 = "e16b73bf892c55d16d53c9c0dbd0fb31cb7e25da" -uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -version = "1.2.0" - - [deps.PreallocationTools.extensions] - PreallocationToolsForwardDiffExt = "ForwardDiff" - PreallocationToolsReverseDiffExt = "ReverseDiff" - PreallocationToolsSparseConnectivityTracerExt = "SparseConnectivityTracer" - - [deps.PreallocationTools.weakdeps] - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - SparseConnectivityTracer = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" - -[[deps.PrecompileTools]] -deps = ["Preferences"] -git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" -uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -version = "1.2.1" - -[[deps.Preferences]] -deps = ["TOML"] -git-tree-sha1 = "8b770b60760d4451834fe79dd483e318eee709c4" -uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.5.2" - -[[deps.Printf]] -deps = ["Unicode"] -uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" -version = "1.11.0" - -[[deps.ProgressLogging]] -deps = ["Logging", "SHA", "UUIDs"] -git-tree-sha1 = "f0803bc1171e455a04124affa9c21bba5ac4db32" -uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" -version = "0.1.6" - -[[deps.ProgressMeter]] -deps = ["Distributed", "Printf"] -git-tree-sha1 = "fbb92c6c56b34e1a2c4c36058f68f332bec840e7" -uuid = "92933f4c-e287-5a05-a399-4b506db050ca" -version = "1.11.0" - -[[deps.PtrArrays]] -git-tree-sha1 = "4fbbafbc6251b883f4d2705356f3641f3652a7fe" -uuid = "43287f4e-b6f4-7ad1-bb20-aadabca52c3d" -version = "1.4.0" - -[[deps.PythonCall]] -deps = ["CondaPkg", "Dates", "Libdl", "MacroTools", "Markdown", "Pkg", "Serialization", "Tables", "UnsafePointers"] -git-tree-sha1 = "982f3f017f08d31202574ef6bdcf8b3466430bea" -uuid = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" -version = "0.9.31" - - [deps.PythonCall.extensions] - CategoricalArraysExt = "CategoricalArrays" - PyCallExt = "PyCall" - - [deps.PythonCall.weakdeps] - CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597" - PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" - -[[deps.QPSReader]] -deps = ["Logging", "Pkg"] -git-tree-sha1 = "374833c0c1fd5cc623278581bf0c8259d7b35f10" -uuid = "10f199a5-22af-520b-b891-7ce84a7b1bd0" -version = "0.2.1" - -[[deps.Qt6Base_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] -git-tree-sha1 = "d7a4bff94f42208ce3cf6bc8e4e7d1d663e7ee8b" -uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" -version = "6.10.2+1" - -[[deps.Qt6Declarative_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6ShaderTools_jll", "Qt6Svg_jll"] -git-tree-sha1 = "d5b7dd0e226774cbd87e2790e34def09245c7eab" -uuid = "629bc702-f1f5-5709-abd5-49b8460ea067" -version = "6.10.2+1" - -[[deps.Qt6ShaderTools_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll"] -git-tree-sha1 = "4d85eedf69d875982c46643f6b4f66919d7e157b" -uuid = "ce943373-25bb-56aa-8eca-768745ed7b5a" -version = "6.10.2+1" - -[[deps.Qt6Svg_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll"] -git-tree-sha1 = "81587ff5ff25a4e1115ce191e36285ede0334c9d" -uuid = "6de9746b-f93d-5813-b365-ba18ad4a9cf3" -version = "6.10.2+0" - -[[deps.Qt6Wayland_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6Declarative_jll"] -git-tree-sha1 = "672c938b4b4e3e0169a07a5f227029d4905456f2" -uuid = "e99dba38-086e-5de3-a5b1-6e4c66e897c3" -version = "6.10.2+1" - -[[deps.QuadGK]] -deps = ["DataStructures", "LinearAlgebra"] -git-tree-sha1 = "5e8e8b0ab68215d7a2b14b9921a946fee794749e" -uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" -version = "2.11.3" - - [deps.QuadGK.extensions] - QuadGKEnzymeExt = "Enzyme" - - [deps.QuadGK.weakdeps] - Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" - -[[deps.REPL]] -deps = ["InteractiveUtils", "Markdown", "Sockets", "StyledStrings", "Unicode"] -uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" -version = "1.11.0" - -[[deps.Random]] -deps = ["SHA"] -uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" -version = "1.11.0" - -[[deps.RecipesBase]] -deps = ["PrecompileTools"] -git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" -uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" -version = "1.3.4" - -[[deps.RecipesPipeline]] -deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] -git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" -uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" -version = "0.6.12" - -[[deps.RecursiveArrayTools]] -deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "LinearAlgebra", "PrecompileTools", "RecipesBase", "StaticArraysCore", "SymbolicIndexingInterface"] -git-tree-sha1 = "d0282d612f22dcad7b81cf487b746e63aa2a6709" -uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.54.0" - - [deps.RecursiveArrayTools.extensions] - RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" - RecursiveArrayToolsFastBroadcastPolyesterExt = ["FastBroadcast", "Polyester"] - RecursiveArrayToolsForwardDiffExt = "ForwardDiff" - RecursiveArrayToolsKernelAbstractionsExt = "KernelAbstractions" - RecursiveArrayToolsMeasurementsExt = "Measurements" - RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements" - RecursiveArrayToolsReverseDiffExt = ["ReverseDiff", "Zygote"] - RecursiveArrayToolsSparseArraysExt = ["SparseArrays"] - RecursiveArrayToolsStatisticsExt = "Statistics" - RecursiveArrayToolsStructArraysExt = "StructArrays" - RecursiveArrayToolsTablesExt = ["Tables"] - RecursiveArrayToolsTrackerExt = "Tracker" - RecursiveArrayToolsZygoteExt = "Zygote" - - [deps.RecursiveArrayTools.weakdeps] - FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898" - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" - Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" - MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" - Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" - StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" - Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" - -[[deps.Reexport]] -git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" -uuid = "189a3867-3050-52da-a836-e630ba90ab69" -version = "1.2.2" - -[[deps.RelocatableFolders]] -deps = ["SHA", "Scratch"] -git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" -uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" -version = "1.0.1" - -[[deps.Requires]] -deps = ["UUIDs"] -git-tree-sha1 = "62389eeff14780bfe55195b7204c0d8738436d64" -uuid = "ae029012-a4dd-5104-9daa-d747884805df" -version = "1.3.1" - -[[deps.Rmath]] -deps = ["Random", "Rmath_jll"] -git-tree-sha1 = "5b3d50eb374cea306873b371d3f8d3915a018f0b" -uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" -version = "0.9.0" - -[[deps.Rmath_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "58cdd8fb2201a6267e1db87ff148dd6c1dbd8ad8" -uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" -version = "0.5.1+0" - -[[deps.RuntimeGeneratedFunctions]] -deps = ["ExprTools", "SHA", "Serialization"] -git-tree-sha1 = "cfcdc949c4660544ab0fdeed169561cb22f835f4" -uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" -version = "0.5.18" - -[[deps.SHA]] -uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" -version = "0.7.0" - -[[deps.SciMLBase]] -deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "Moshi", "PreallocationTools", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLLogging", "SciMLOperators", "SciMLPublic", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface"] -git-tree-sha1 = "a017ed325ac5e11438c888864fe83b124bb171b7" -uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.155.1" - - [deps.SciMLBase.extensions] - SciMLBaseChainRulesCoreExt = "ChainRulesCore" - SciMLBaseDifferentiationInterfaceExt = "DifferentiationInterface" - SciMLBaseDistributionsExt = "Distributions" - SciMLBaseEnzymeExt = "Enzyme" - SciMLBaseForwardDiffExt = "ForwardDiff" - SciMLBaseMLStyleExt = "MLStyle" - SciMLBaseMakieExt = "Makie" - SciMLBaseMeasurementsExt = "Measurements" - SciMLBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements" - SciMLBaseMooncakeExt = "Mooncake" - SciMLBasePartialFunctionsExt = "PartialFunctions" - SciMLBasePyCallExt = "PyCall" - SciMLBasePythonCallExt = "PythonCall" - SciMLBaseRCallExt = "RCall" - SciMLBaseReverseDiffExt = "ReverseDiff" - SciMLBaseTrackerExt = "Tracker" - SciMLBaseZygoteExt = ["Zygote", "ChainRulesCore"] - - [deps.SciMLBase.weakdeps] - ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" - Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" - Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - MLStyle = "d8e11817-5142-5d16-987a-aa16d5891078" - Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" - Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" - MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" - Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" - PartialFunctions = "570af359-4316-4cb7-8c74-252c00c2016b" - PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" - PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" - RCall = "6f49c342-dc21-5d91-9882-a32aef131414" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" - -[[deps.SciMLBenchmarks]] -deps = ["Git", "IJulia", "InteractiveUtils", "Markdown", "Pkg", "Weave"] -git-tree-sha1 = "f4076dd5a103010d48bb6c4e50c5526f6622fa96" -uuid = "31c91b34-3c75-11e9-0341-95557aab0344" -version = "0.1.3" - -[[deps.SciMLLogging]] -deps = ["Logging", "LoggingExtras", "Preferences"] -git-tree-sha1 = "0161be062570af4042cf6f69e3d5d0b0555b6927" -uuid = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" -version = "1.9.1" - - [deps.SciMLLogging.extensions] - SciMLLoggingTracyExt = "Tracy" - - [deps.SciMLLogging.weakdeps] - Tracy = "e689c965-62c8-4b79-b2c5-8359227902fd" - -[[deps.SciMLOperators]] -deps = ["Accessors", "ArrayInterface", "DocStringExtensions", "LinearAlgebra"] -git-tree-sha1 = "0e34162268883db01c04f988895a80d0659071bb" -uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" -version = "1.17.0" -weakdeps = ["SparseArrays", "StaticArraysCore"] - - [deps.SciMLOperators.extensions] - SciMLOperatorsSparseArraysExt = "SparseArrays" - SciMLOperatorsStaticArraysCoreExt = "StaticArraysCore" - -[[deps.SciMLPublic]] -git-tree-sha1 = "0ba076dbdce87ba230fff48ca9bca62e1f345c9b" -uuid = "431bcebd-1456-4ced-9d72-93c2757fff0b" -version = "1.0.1" - -[[deps.SciMLStructures]] -deps = ["ArrayInterface", "PrecompileTools"] -git-tree-sha1 = "607f6867d0b0553e98fc7f725c9f9f13b4d01a32" -uuid = "53ae85a6-f571-4167-b2af-e1d143709226" -version = "1.10.0" - -[[deps.Scratch]] -deps = ["Dates"] -git-tree-sha1 = "9b81b8393e50b7d4e6d0a9f14e192294d3b7c109" -uuid = "6c6a2e73-6563-6170-7368-637461726353" -version = "1.3.0" - -[[deps.SearchSpaces]] -deps = ["Combinatorics", "Random"] -git-tree-sha1 = "2662fd537048fb12ff34fabb5249bf50e06f445b" -uuid = "eb7571c6-2196-4f03-99b8-52a5a35b3163" -version = "0.2.0" - -[[deps.Serialization]] -uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" -version = "1.11.0" - -[[deps.Setfield]] -deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] -git-tree-sha1 = "c5391c6ace3bc430ca630251d02ea9687169ca68" -uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" -version = "1.1.2" - -[[deps.Showoff]] -deps = ["Dates", "Grisu"] -git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" -uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" -version = "1.0.3" - -[[deps.SimpleBufferStream]] -git-tree-sha1 = "f305871d2f381d21527c770d4788c06c097c9bc1" -uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" -version = "1.2.0" - -[[deps.SnoopPrecompile]] -deps = ["Preferences"] -git-tree-sha1 = "e760a70afdcd461cf01a575947738d359234665c" -uuid = "66db9d55-30c0-4569-8b51-7e840670fc0c" -version = "1.0.3" - -[[deps.Sockets]] -uuid = "6462fe0b-24de-5631-8697-dd941f90decc" -version = "1.11.0" - -[[deps.SortingAlgorithms]] -deps = ["DataStructures"] -git-tree-sha1 = "64d974c2e6fdf07f8155b5b2ca2ffa9069b608d9" -uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" -version = "1.2.2" - -[[deps.SparseArrays]] -deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] -uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" -version = "1.11.0" - -[[deps.SparseConnectivityTracer]] -deps = ["ADTypes", "DocStringExtensions", "FillArrays", "LinearAlgebra", "Random", "SparseArrays"] -git-tree-sha1 = "590b72143436e443888124aaf4026a636049e3f5" -uuid = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" -version = "1.2.1" - - [deps.SparseConnectivityTracer.extensions] - SparseConnectivityTracerChainRulesCoreExt = "ChainRulesCore" - SparseConnectivityTracerLogExpFunctionsExt = "LogExpFunctions" - SparseConnectivityTracerNNlibExt = "NNlib" - SparseConnectivityTracerNaNMathExt = "NaNMath" - SparseConnectivityTracerSpecialFunctionsExt = "SpecialFunctions" - - [deps.SparseConnectivityTracer.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" - NNlib = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" - NaNMath = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" - SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" - -[[deps.SparseMatrixColorings]] -deps = ["ADTypes", "DocStringExtensions", "LinearAlgebra", "PrecompileTools", "Random", "SparseArrays"] -git-tree-sha1 = "f63d76c7b7c329cf11badd564fd8ba877b09c3fe" -uuid = "0a514795-09f3-496d-8182-132a7b665d35" -version = "0.4.27" - - [deps.SparseMatrixColorings.extensions] - SparseMatrixColoringsCUDAExt = ["CUDA", "cuSPARSE"] - SparseMatrixColoringsCliqueTreesExt = "CliqueTrees" - SparseMatrixColoringsColorsExt = "Colors" - SparseMatrixColoringsGPUArraysExt = "GPUArrays" - SparseMatrixColoringsJuMPExt = ["JuMP", "MathOptInterface"] - - [deps.SparseMatrixColorings.weakdeps] - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" - CliqueTrees = "60701a23-6482-424a-84db-faee86b9b1f8" - Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" - GPUArrays = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" - JuMP = "4076af6c-e467-56ae-b986-b466b2749572" - MathOptInterface = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" - cuSPARSE = "b26da814-b3bc-49ef-b0ee-c816305aa060" - -[[deps.SpatialIndexing]] -git-tree-sha1 = "84efe17c77e1f2156a7a0d8a7c163c1e1c7bdaed" -uuid = "d4ead438-fe20-5cc5-a293-4fd39a41b74c" -version = "0.1.6" - -[[deps.SpecialFunctions]] -deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "2700b235561b0335d5bef7097a111dc513b8655e" -uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.7.2" -weakdeps = ["ChainRulesCore"] - - [deps.SpecialFunctions.extensions] - SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" - -[[deps.StableRNGs]] -deps = ["Random"] -git-tree-sha1 = "4f96c596b8c8258cc7d3b19797854d368f243ddc" -uuid = "860ef19b-820b-49d6-a774-d7a799459cd3" -version = "1.0.4" - -[[deps.StackViews]] -deps = ["OffsetArrays"] -git-tree-sha1 = "be1cf4eb0ac528d96f5115b4ed80c26a8d8ae621" -uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15" -version = "0.1.2" - -[[deps.StaticArraysCore]] -git-tree-sha1 = "6ab403037779dae8c514bad259f32a447262455a" -uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" -version = "1.4.4" - -[[deps.Statistics]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "ae3bb1eb3bba077cd276bc5cfc337cc65c3075c0" -uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" -version = "1.11.1" -weakdeps = ["SparseArrays"] - - [deps.Statistics.extensions] - SparseArraysExt = ["SparseArrays"] - -[[deps.StatsAPI]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "178ed29fd5b2a2cfc3bd31c13375ae925623ff36" -uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" -version = "1.8.0" - -[[deps.StatsBase]] -deps = ["AliasTables", "DataAPI", "DataStructures", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] -git-tree-sha1 = "aceda6f4e598d331548e04cc6b2124a6148138e3" -uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -version = "0.34.10" - -[[deps.StatsFuns]] -deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] -git-tree-sha1 = "91f091a8716a6bb38417a6e6f274602a19aaa685" -uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" -version = "1.5.2" -weakdeps = ["ChainRulesCore", "InverseFunctions"] - - [deps.StatsFuns.extensions] - StatsFunsChainRulesCoreExt = "ChainRulesCore" - StatsFunsInverseFunctionsExt = "InverseFunctions" - -[[deps.StringEncodings]] -deps = ["Libiconv_jll"] -git-tree-sha1 = "b765e46ba27ecf6b44faf70df40c57aa3a547dcb" -uuid = "69024149-9ee7-55f6-a4c4-859efe599b68" -version = "0.3.7" - -[[deps.StructTypes]] -deps = ["Dates", "UUIDs"] -git-tree-sha1 = "159331b30e94d7b11379037feeb9b690950cace8" -uuid = "856f2bd8-1eba-4b0a-8007-ebc267875bd4" -version = "1.11.0" - -[[deps.StyledStrings]] -uuid = "f489334b-da3d-4c2e-b8f0-e476e12c162b" -version = "1.11.0" - -[[deps.SuiteSparse]] -deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] -uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" - -[[deps.SuiteSparse_jll]] -deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] -uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" -version = "7.7.0+0" - -[[deps.SymbolicIndexingInterface]] -deps = ["Accessors", "ArrayInterface", "RuntimeGeneratedFunctions", "StaticArraysCore"] -git-tree-sha1 = "94c58884e013efff548002e8dc2fdd1cb74dfce5" -uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.46" - - [deps.SymbolicIndexingInterface.extensions] - SymbolicIndexingInterfacePrettyTablesExt = "PrettyTables" - - [deps.SymbolicIndexingInterface.weakdeps] - PrettyTables = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" - -[[deps.TOML]] -deps = ["Dates"] -uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" -version = "1.0.3" - -[[deps.TableTraits]] -deps = ["IteratorInterfaceExtensions"] -git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" -uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" -version = "1.0.1" - -[[deps.Tables]] -deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] -git-tree-sha1 = "f2c1efbc8f3a609aadf318094f8fc5204bdaf344" -uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.12.1" - -[[deps.Tar]] -deps = ["ArgTools", "SHA"] -uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" -version = "1.10.0" - -[[deps.TensorCore]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" -uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" -version = "0.1.1" - -[[deps.TerminalLoggers]] -deps = ["LeftChildRightSiblingTrees", "Logging", "Markdown", "Printf", "ProgressLogging", "UUIDs"] -git-tree-sha1 = "f133fab380933d042f6796eda4e130272ba520ca" -uuid = "5d786b92-1e48-4d6f-9151-6b4477ca9bed" -version = "0.1.7" - -[[deps.Test]] -deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] -uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" -version = "1.11.0" - -[[deps.TimerOutputs]] -deps = ["ExprTools", "Printf"] -git-tree-sha1 = "3748bd928e68c7c346b52125cf41fff0de6937d0" -uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" -version = "0.5.29" - - [deps.TimerOutputs.extensions] - FlameGraphsExt = "FlameGraphs" - - [deps.TimerOutputs.weakdeps] - FlameGraphs = "08572546-2f56-4bcf-ba4e-bab62c3a3f89" - -[[deps.TranscodingStreams]] -git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742" -uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.11.3" - -[[deps.TruncatedStacktraces]] -deps = ["InteractiveUtils", "MacroTools", "Preferences"] -git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" -uuid = "781d530d-4396-4725-bb49-402e4bee1e77" -version = "1.4.0" - -[[deps.Tulip]] -deps = ["CodecBzip2", "CodecZlib", "Krylov", "LDLFactorizations", "LinearAlgebra", "LinearOperators", "Logging", "MathOptInterface", "Printf", "QPSReader", "SparseArrays", "SuiteSparse", "TOML", "Test", "TimerOutputs"] -git-tree-sha1 = "d9415a833b926da3f753133a50d5ce316c51bc67" -uuid = "6dd1b50a-3aae-11e9-10b5-ef983d2400fa" -version = "0.9.8" - -[[deps.TypeUtils]] -deps = ["InverseFunctions", "LinearAlgebra", "Requires"] -git-tree-sha1 = "cb44e15367c11e252b265bc6b088995826ae29f9" -uuid = "c3b1956e-8857-4d84-9b79-890df85b1e67" -version = "1.14.0" - - [deps.TypeUtils.extensions] - TypeUtilsOffsetArraysExt = "OffsetArrays" - TypeUtilsUnitfulExt = "Unitful" - - [deps.TypeUtils.weakdeps] - OffsetArrays = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" - Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" - -[[deps.URIs]] -git-tree-sha1 = "bef26fb046d031353ef97a82e3fdb6afe7f21b1a" -uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" -version = "1.6.1" - -[[deps.UUIDs]] -deps = ["Random", "SHA"] -uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" -version = "1.11.0" - -[[deps.UnPack]] -git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" -uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" -version = "1.0.2" - -[[deps.Unicode]] -uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" -version = "1.11.0" - -[[deps.UnicodeFun]] -deps = ["REPL"] -git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" -uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" -version = "0.4.1" - -[[deps.UnsafePointers]] -git-tree-sha1 = "c81331b3b2e60a982be57c046ec91f599ede674a" -uuid = "e17b2a0c-0bdf-430a-bd0c-3a23cae4ff39" -version = "1.0.0" - -[[deps.Unzip]] -git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" -uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" -version = "0.2.0" - -[[deps.VersionParsing]] -git-tree-sha1 = "58d6e80b4ee071f5efd07fda82cb9fbe17200868" -uuid = "81def892-9a0e-5fdd-b105-ffc91e053289" -version = "1.3.0" - -[[deps.Vulkan_Loader_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] -git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" -uuid = "a44049a8-05dd-5a78-86c9-5fde0876e88c" -version = "1.3.243+0" - -[[deps.Wayland_jll]] -deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll"] -git-tree-sha1 = "96478df35bbc2f3e1e791bc7a3d0eeee559e60e9" -uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" -version = "1.24.0+0" - -[[deps.Weave]] -deps = ["Base64", "Dates", "Highlights", "JSON", "Markdown", "Mustache", "Pkg", "Printf", "REPL", "RelocatableFolders", "Requires", "Serialization", "YAML"] -git-tree-sha1 = "092217eb5443926d200ae9325f103906efbb68b1" -uuid = "44d3d7a6-8a23-5bf8-98c5-b353f8df5ec9" -version = "0.10.12" - -[[deps.XZ_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "b29c22e245d092b8b4e8d3c09ad7baa586d9f573" -uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" -version = "5.8.3+0" - -[[deps.Xorg_libICE_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "a3ea76ee3f4facd7a64684f9af25310825ee3668" -uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" -version = "1.1.2+0" - -[[deps.Xorg_libSM_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libICE_jll"] -git-tree-sha1 = "9c7ad99c629a44f81e7799eb05ec2746abb5d588" -uuid = "c834827a-8449-5923-a945-d239c165b7dd" -version = "1.2.6+0" - -[[deps.Xorg_libX11_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] -git-tree-sha1 = "808090ede1d41644447dd5cbafced4731c56bd2f" -uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" -version = "1.8.13+0" - -[[deps.Xorg_libXau_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "aa1261ebbac3ccc8d16558ae6799524c450ed16b" -uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" -version = "1.0.13+0" - -[[deps.Xorg_libXcursor_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] -git-tree-sha1 = "6c74ca84bbabc18c4547014765d194ff0b4dc9da" -uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" -version = "1.2.4+0" - -[[deps.Xorg_libXdmcp_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "52858d64353db33a56e13c341d7bf44cd0d7b309" -uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" -version = "1.1.6+0" - -[[deps.Xorg_libXext_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] -git-tree-sha1 = "1a4a26870bf1e5d26cd585e38038d399d7e65706" -uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" -version = "1.3.8+0" - -[[deps.Xorg_libXfixes_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] -git-tree-sha1 = "75e00946e43621e09d431d9b95818ee751e6b2ef" -uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" -version = "6.0.2+0" - -[[deps.Xorg_libXi_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] -git-tree-sha1 = "a376af5c7ae60d29825164db40787f15c80c7c54" -uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" -version = "1.8.3+0" - -[[deps.Xorg_libXinerama_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXext_jll"] -git-tree-sha1 = "0ba01bc7396896a4ace8aab67db31403c71628f4" -uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" -version = "1.1.7+0" - -[[deps.Xorg_libXrandr_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXext_jll", "Xorg_libXrender_jll"] -git-tree-sha1 = "6c174ef70c96c76f4c3f4d3cfbe09d018bcd1b53" -uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" -version = "1.5.6+0" - -[[deps.Xorg_libXrender_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] -git-tree-sha1 = "7ed9347888fac59a618302ee38216dd0379c480d" -uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" -version = "0.9.12+0" - -[[deps.Xorg_libpciaccess_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "58972370b81423fc546c56a60ed1a009450177c3" -uuid = "a65dc6b1-eb27-53a1-bb3e-dea574b5389e" -version = "0.19.0+0" - -[[deps.Xorg_libxcb_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXau_jll", "Xorg_libXdmcp_jll"] -git-tree-sha1 = "bfcaf7ec088eaba362093393fe11aa141fa15422" -uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" -version = "1.17.1+0" - -[[deps.Xorg_libxkbfile_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] -git-tree-sha1 = "ed756a03e95fff88d8f738ebc2849431bdd4fd1a" -uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" -version = "1.2.0+0" - -[[deps.Xorg_xcb_util_cursor_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] -git-tree-sha1 = "9750dc53819eba4e9a20be42349a6d3b86c7cdf8" -uuid = "e920d4aa-a673-5f3a-b3d7-f755a4d47c43" -version = "0.1.6+0" - -[[deps.Xorg_xcb_util_image_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_jll"] -git-tree-sha1 = "f4fc02e384b74418679983a97385644b67e1263b" -uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" -version = "0.4.1+0" - -[[deps.Xorg_xcb_util_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll"] -git-tree-sha1 = "68da27247e7d8d8dafd1fcf0c3654ad6506f5f97" -uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" -version = "0.4.1+0" - -[[deps.Xorg_xcb_util_keysyms_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_jll"] -git-tree-sha1 = "44ec54b0e2acd408b0fb361e1e9244c60c9c3dd4" -uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" -version = "0.4.1+0" - -[[deps.Xorg_xcb_util_renderutil_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_jll"] -git-tree-sha1 = "5b0263b6d080716a02544c55fdff2c8d7f9a16a0" -uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" -version = "0.3.10+0" - -[[deps.Xorg_xcb_util_wm_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_jll"] -git-tree-sha1 = "f233c83cad1fa0e70b7771e0e21b061a116f2763" -uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" -version = "0.4.2+0" - -[[deps.Xorg_xkbcomp_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] -git-tree-sha1 = "801a858fc9fb90c11ffddee1801bb06a738bda9b" -uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" -version = "1.4.7+0" - -[[deps.Xorg_xkeyboard_config_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] -git-tree-sha1 = "429722587208f02b1cecbddcd20133df2f1ed796" -uuid = "33bec58e-1273-512f-9401-5d533626f822" -version = "2.47.0+0" - -[[deps.Xorg_xtrans_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "a63799ff68005991f9d9491b6e95bd3478d783cb" -uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" -version = "1.6.0+0" - -[[deps.YAML]] -deps = ["Base64", "Dates", "Printf", "StringEncodings"] -git-tree-sha1 = "a1c0c7585346251353cddede21f180b96388c403" -uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" -version = "0.4.16" - -[[deps.ZMQ]] -deps = ["FileWatching", "PrecompileTools", "Printf", "Sockets", "ZeroMQ_jll"] -git-tree-sha1 = "5f1c7008e2258c61af0eafef8c1f536b9fffbbd2" -uuid = "c2297ded-f4af-51ae-bb23-16f91089e4e1" -version = "1.5.1" - -[[deps.ZeroMQ_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "libsodium_jll"] -git-tree-sha1 = "766d90db2817565b667c1cc9cc420d668f2e8dba" -uuid = "8f1865be-045e-5c20-9c9f-bfbfb0764568" -version = "4.3.6+0" - -[[deps.Zlib_jll]] -deps = ["Libdl"] -uuid = "83775a58-1f1d-513f-b197-d71354ab007a" -version = "1.2.13+1" - -[[deps.Zstd_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "446b23e73536f84e8037f5dce465e92275f6a308" -uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" -version = "1.5.7+1" - -[[deps.eudev_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "c3b0e6196d50eab0c5ed34021aaa0bb463489510" -uuid = "35ca27e7-8b34-5b7f-bca9-bdc33f59eb06" -version = "3.2.14+0" - -[[deps.fzf_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "b6a34e0e0960190ac2a4363a1bd003504772d631" -uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" -version = "0.61.1+0" - -[[deps.libaom_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "850b06095ee71f0135d644ffd8a52850699581ed" -uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" -version = "3.13.3+0" - -[[deps.libass_jll]] -deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "125eedcb0a4a0bba65b657251ce1d27c8714e9d6" -uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" -version = "0.17.4+0" - -[[deps.libblastrampoline_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" -version = "5.11.0+0" - -[[deps.libdecor_jll]] -deps = ["Artifacts", "Dbus_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pango_jll", "Wayland_jll", "xkbcommon_jll"] -git-tree-sha1 = "9bf7903af251d2050b467f76bdbe57ce541f7f4f" -uuid = "1183f4f0-6f2a-5f1a-908b-139f9cdfea6f" -version = "0.2.2+0" - -[[deps.libdrm_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libpciaccess_jll"] -git-tree-sha1 = "63aac0bcb0b582e11bad965cef4a689905456c03" -uuid = "8e53e030-5e6c-5a89-a30b-be5b7263a166" -version = "2.4.125+1" - -[[deps.libevdev_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "56d643b57b188d30cccc25e331d416d3d358e557" -uuid = "2db6ffa8-e38f-5e21-84af-90c45d0032cc" -version = "1.13.4+0" - -[[deps.libfdk_aac_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "646634dd19587a56ee2f1199563ec056c5f228df" -uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" -version = "2.0.4+0" - -[[deps.libinput_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "eudev_jll", "libevdev_jll", "mtdev_jll"] -git-tree-sha1 = "91d05d7f4a9f67205bd6cf395e488009fe85b499" -uuid = "36db933b-70db-51c0-b978-0f229ee0e533" -version = "1.28.1+0" - -[[deps.libpng_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "e51150d5ab85cee6fc36726850f0e627ad2e4aba" -uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" -version = "1.6.58+0" - -[[deps.libsodium_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "011b0a7331b41c25524b64dc42afc9683ee89026" -uuid = "a9144af2-ca23-56d9-984f-0d03f7b5ccf8" -version = "1.0.21+0" - -[[deps.libva_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll", "Xorg_libXext_jll", "Xorg_libXfixes_jll", "libdrm_jll"] -git-tree-sha1 = "7dbf96baae3310fe2fa0df0ccbb3c6288d5816c9" -uuid = "9a156e7d-b971-5f62-b2c9-67348b8fb97c" -version = "2.23.0+0" - -[[deps.libvorbis_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll"] -git-tree-sha1 = "11e1772e7f3cc987e9d3de991dd4f6b2602663a5" -uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" -version = "1.3.8+0" - -[[deps.micromamba_jll]] -deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] -git-tree-sha1 = "717df6f6892af4ee13279a73aa58474e58a88667" -uuid = "f8abcde7-e9b7-5caa-b8af-a437887ae8e4" -version = "2.3.1+0" - -[[deps.mtdev_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "b4d631fd51f2e9cdd93724ae25b2efc198b059b1" -uuid = "009596ad-96f7-51b1-9f1b-5ce2d5e8a71e" -version = "1.1.7+0" - -[[deps.nghttp2_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" -version = "1.59.0+0" - -[[deps.p7zip_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" -version = "17.4.0+2" - -[[deps.pixi_jll]] -deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] -git-tree-sha1 = "f349584316617063160a947a82638f7611a8ef0f" -uuid = "4d7b5844-a134-5dcd-ac86-c8f19cd51bed" -version = "0.41.3+0" - -[[deps.x264_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "14cc7083fc6dff3cc44f2bc435ee96d06ed79aa7" -uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" -version = "10164.0.1+0" - -[[deps.x265_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "e7b67590c14d487e734dcb925924c5dc43ec85f3" -uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" -version = "4.1.0+0" - -[[deps.xkbcommon_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] -git-tree-sha1 = "a1fc6507a40bf504527d0d4067d718f8e179b2b8" -uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" -version = "1.13.0+0" From 42fd2050e5f0040bf838d72ad1a31160586661a5 Mon Sep 17 00:00:00 2001 From: AdityaPandeyCN Date: Fri, 19 Jun 2026 13:36:39 +0530 Subject: [PATCH 6/7] add Manifest.toml Signed-off-by: AdityaPandeyCN --- benchmarks/GlobalOptimization/Manifest.toml | 2868 +++++++++++++++++++ 1 file changed, 2868 insertions(+) create mode 100644 benchmarks/GlobalOptimization/Manifest.toml diff --git a/benchmarks/GlobalOptimization/Manifest.toml b/benchmarks/GlobalOptimization/Manifest.toml new file mode 100644 index 000000000..b593306d2 --- /dev/null +++ b/benchmarks/GlobalOptimization/Manifest.toml @@ -0,0 +1,2868 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.12.6" +manifest_format = "2.0" +project_hash = "722b445c16803a0dd2918cc7e0521695b9a56a9e" + +[[deps.ADTypes]] +git-tree-sha1 = "bbc22a9a08a0ef6460041086d8a7b27940ed4ffd" +uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" +version = "1.22.0" +weakdeps = ["ChainRulesCore", "ConstructionBase", "EnzymeCore"] + + [deps.ADTypes.extensions] + ADTypesChainRulesCoreExt = "ChainRulesCore" + ADTypesConstructionBaseExt = "ConstructionBase" + ADTypesEnzymeCoreExt = "EnzymeCore" + +[[deps.AMD]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] +git-tree-sha1 = "45a1272e3f809d36431e57ab22703c6896b8908f" +uuid = "14f7f29c-3bd6-536c-9a0b-7339e30b5a3e" +version = "0.5.3" + +[[deps.AbstractTrees]] +git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" +uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" +version = "0.4.5" + +[[deps.Accessors]] +deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "MacroTools"] +git-tree-sha1 = "2eeb2c9bef11013efc6f8f97f32ee59b146b09fb" +uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" +version = "0.1.44" + + [deps.Accessors.extensions] + AxisKeysExt = "AxisKeys" + IntervalSetsExt = "IntervalSets" + LinearAlgebraExt = "LinearAlgebra" + StaticArraysExt = "StaticArrays" + StructArraysExt = "StructArrays" + TestExt = "Test" + UnitfulExt = "Unitful" + + [deps.Accessors.weakdeps] + AxisKeys = "94b1ba4f-4ee9-5380-92f1-94cde586c3c5" + IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" + LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.Adapt]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "7715e5b2b186c4d9b664d299d2c9e48b9a778c88" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "4.6.1" +weakdeps = ["SparseArrays", "StaticArrays"] + + [deps.Adapt.extensions] + AdaptSparseArraysExt = "SparseArrays" + AdaptStaticArraysExt = "StaticArrays" + +[[deps.AliasTables]] +deps = ["PtrArrays", "Random"] +git-tree-sha1 = "9876e1e164b144ca45e9e3198d0b689cadfed9ff" +uuid = "66dad0bd-aa9a-41b7-9441-69ab47430ed8" +version = "1.1.3" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.2" + +[[deps.ArrayInterface]] +deps = ["Adapt", "LinearAlgebra"] +git-tree-sha1 = "3d0cabd25fab32390e3bcb82cd67e700aebd9816" +uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" +version = "7.25.0" + + [deps.ArrayInterface.extensions] + ArrayInterfaceAMDGPUExt = "AMDGPU" + ArrayInterfaceBandedMatricesExt = "BandedMatrices" + ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" + ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceCUDSSExt = ["CUDSS", "CUDA"] + ArrayInterfaceChainRulesCoreExt = "ChainRulesCore" + ArrayInterfaceChainRulesExt = "ChainRules" + ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceMetalExt = "Metal" + ArrayInterfaceReverseDiffExt = "ReverseDiff" + ArrayInterfaceSparseArraysExt = "SparseArrays" + ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" + ArrayInterfaceTrackerExt = "Tracker" + + [deps.ArrayInterface.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" +version = "1.11.0" + +[[deps.Atomix]] +deps = ["UnsafeAtomics"] +git-tree-sha1 = "b8651b2eb5796a386b0398a20b519a6a6150f75c" +uuid = "a9b6321e-bd34-4604-b9c9-b65b8de01458" +version = "1.1.3" + + [deps.Atomix.extensions] + AtomixCUDAExt = "CUDA" + AtomixMetalExt = "Metal" + AtomixOpenCLExt = "OpenCL" + AtomixoneAPIExt = "oneAPI" + + [deps.Atomix.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + OpenCL = "08131aa3-fb12-5dee-8b74-c09406e224a2" + oneAPI = "8f75cd03-7ff8-4ecb-9b8f-daf728133b1b" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" +version = "1.11.0" + +[[deps.BitFlags]] +git-tree-sha1 = "bbe1079eecf9c9fbb52765193ad2bae27ae09bc8" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.10" + +[[deps.BlackBoxOptim]] +deps = ["Compat", "Distributed", "Distributions", "LinearAlgebra", "Printf", "Random", "Requires", "SpatialIndexing", "StatsBase"] +git-tree-sha1 = "870e8b6e05cbf498491392b911c71e97b9fe1423" +uuid = "a134a8b2-14d6-55f6-9291-3336d3ab0209" +version = "0.6.5" +weakdeps = ["HTTP", "Sockets"] + +[[deps.BlackBoxOptimizationBenchmarking]] +deps = ["Distributions", "LinearAlgebra", "Memoize", "Optim", "Optimization", "RecipesBase"] +git-tree-sha1 = "7046f70bbd2c8559aed0fb17ff181ef5df048852" +uuid = "4552ee2b-11da-5aef-8e78-0d48532001f1" +version = "1.0.2" + +[[deps.BracketingNonlinearSolve]] +deps = ["CommonSolve", "ConcreteStructs", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase"] +git-tree-sha1 = "7ad7171d693ae5552ac43862e7f6b61df4471c2b" +uuid = "70df07ce-3d50-431d-a3e7-ca6ddb60ac1e" +version = "1.12.1" +weakdeps = ["ChainRulesCore", "ForwardDiff"] + + [deps.BracketingNonlinearSolve.extensions] + BracketingNonlinearSolveChainRulesCoreExt = ["ChainRulesCore", "ForwardDiff"] + BracketingNonlinearSolveForwardDiffExt = "ForwardDiff" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1b96ea4a01afe0ea4090c5c8039690672dd13f2e" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.9+0" + +[[deps.CEnum]] +git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.5.0" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "1fa950ebc3e37eccd51c6a8fe1f92f7d86263522" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.18.7+0" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "12177ad6b3cad7fd50c8b3825ce24a99ad61c18f" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.26.1" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.CodecBzip2]] +deps = ["Bzip2_jll", "TranscodingStreams"] +git-tree-sha1 = "84990fa864b7f2b4901901ca12736e45ee79068c" +uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" +version = "0.8.5" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "962834c22b66e32aa10f7611c08c8ca4e20749a9" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.8" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "b0fd3f56fa442f81e0a47815c92245acfaaa4e34" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.31.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "67e11ee83a43eb71ddc950302c53bf33f0690dfe" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.12.1" +weakdeps = ["StyledStrings"] + + [deps.ColorTypes.extensions] + StyledStringsExt = "StyledStrings" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "8b3b6f87ce8f65a2b4f857528fd8d70086cd72b1" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.11.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "37ea44092930b1811e666c3bc38065d7d87fcc74" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.13.1" + +[[deps.Combinatorics]] +git-tree-sha1 = "c761b00e7755700f9cdf5b02039939d1359330e1" +uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" +version = "1.1.0" + +[[deps.CommonSolve]] +git-tree-sha1 = "dd91a10d8b8ae06e15706158eaf1a3e87e97b5f5" +uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" +version = "0.2.7" +weakdeps = ["EnzymeCore"] + + [deps.CommonSolve.extensions] + CommonSolveEnzymeCoreExt = "EnzymeCore" + +[[deps.CommonSubexpressions]] +deps = ["MacroTools"] +git-tree-sha1 = "cda2cfaebb4be89c9084adaca7dd7333369715c5" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.3.1" + +[[deps.CommonWorldInvalidations]] +git-tree-sha1 = "ae52d1c52048455e85a387fbee9be553ec2b68d0" +uuid = "f70d9fcc-98c5-4d4a-abd7-e4cdeebd8ca8" +version = "1.0.0" + +[[deps.Compat]] +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "9d8a54ce4b17aa5bdce0ea5c34bc5e7c340d16ad" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.18.1" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.3.0+1" + +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" +weakdeps = ["InverseFunctions"] + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + +[[deps.ConcreteStructs]] +git-tree-sha1 = "ed1da4eac5ba9b3f6d061c90f3ca6ba190dd6595" +uuid = "2569d6c7-a4a2-43d3-a901-331e8e4be471" +version = "0.2.4" + +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "21d088c496ea22914fe80906eb5bce65755e5ec8" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.5.1" + +[[deps.Conda]] +deps = ["Downloads", "JSON", "VersionParsing"] +git-tree-sha1 = "8f06b0cfa4c514c7b9546756dbae91fcfbc92dc9" +uuid = "8f4d0f93-b110-5947-807f-2305c1781a2d" +version = "1.10.3" + +[[deps.CondaPkg]] +deps = ["JSON3", "Markdown", "MicroMamba", "Pidfile", "Pkg", "Preferences", "Scratch", "TOML", "pixi_jll"] +git-tree-sha1 = "bd491d55b97a036caae1d78729bdb70bf7dababc" +uuid = "992eb4ea-22a4-4c89-a5bb-47a3300528ab" +version = "0.2.33" + +[[deps.ConsoleProgressMonitor]] +deps = ["Logging", "ProgressMeter"] +git-tree-sha1 = "3ab7b2136722890b9af903859afcf457fa3059e8" +uuid = "88cd18e8-d9cc-4ea6-8889-5259c0d15c8b" +version = "0.1.2" + +[[deps.ConstructionBase]] +git-tree-sha1 = "b4b092499347b18a015186eae3042f72267106cb" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.6.0" + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseLinearAlgebraExt = "LinearAlgebra" + ConstructionBaseStaticArraysExt = "StaticArrays" + + [deps.ConstructionBase.weakdeps] + IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" + LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.Contour]] +git-tree-sha1 = "439e35b0b36e2e5881738abc8857bd92ad6ff9a8" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.3" + +[[deps.DataAPI]] +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.16.0" + +[[deps.DataStructures]] +deps = ["OrderedCollections"] +git-tree-sha1 = "6fb53a69613a0b2b68a0d12671717d307ab8b24e" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.19.5" + +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" +version = "1.11.0" + +[[deps.Dbus_jll]] +deps = ["Artifacts", "Expat_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "473e9afc9cf30814eb67ffa5f2db7df82c3ad9fd" +uuid = "ee1fde0b-3d02-5ea6-8484-8dfef6360eab" +version = "1.16.2+0" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.DiffEqBase]] +deps = ["ArrayInterface", "BracketingNonlinearSolve", "ConcreteStructs", "DocStringExtensions", "FastBroadcast", "FastClosures", "FastPower", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLLogging", "SciMLOperators", "SciMLStructures", "Setfield", "Static", "StaticArraysCore", "SymbolicIndexingInterface", "TruncatedStacktraces"] +git-tree-sha1 = "9d333db14895e8c7d4857ed228eb1e72d3b302ec" +uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" +version = "6.218.0" + + [deps.DiffEqBase.extensions] + DiffEqBaseCUDAExt = "CUDA" + DiffEqBaseChainRulesCoreExt = "ChainRulesCore" + DiffEqBaseDynamicQuantitiesExt = "DynamicQuantities" + DiffEqBaseEnzymeExt = ["ChainRulesCore", "Enzyme"] + DiffEqBaseFlexUnitsExt = "FlexUnits" + DiffEqBaseForwardDiffExt = ["ForwardDiff"] + DiffEqBaseGTPSAExt = "GTPSA" + DiffEqBaseGeneralizedGeneratedExt = "GeneralizedGenerated" + DiffEqBaseMPIExt = "MPI" + DiffEqBaseMeasurementsExt = "Measurements" + DiffEqBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements" + DiffEqBaseMooncakeExt = "Mooncake" + DiffEqBaseReverseDiffExt = "ReverseDiff" + DiffEqBaseSparseArraysExt = "SparseArrays" + DiffEqBaseTrackerExt = "Tracker" + DiffEqBaseUnitfulExt = "Unitful" + + [deps.DiffEqBase.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" + DynamicQuantities = "06fc5a27-2a28-4c7c-a15d-362465fb6821" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + FlexUnits = "76e01b6b-c995-4ce6-8559-91e72a3d4e95" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + GTPSA = "b27dd330-f138-47c5-815b-40db9dd9b6e8" + GeneralizedGenerated = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb" + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.DiffEqGPU]] +deps = ["Adapt", "ChainRulesCore", "DiffEqBase", "Distributed", "DocStringExtensions", "ForwardDiff", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "LinearSolve", "MuladdMacro", "Parameters", "Random", "RecursiveArrayTools", "SciMLBase", "Setfield", "SimpleDiffEq", "SimpleNonlinearSolve", "StaticArrays", "TOML", "ZygoteRules"] +git-tree-sha1 = "066ca37a3662ec7632fefef34814d853ea8d5a83" +uuid = "071ae1c0-96b5-11e9-1965-c90190d839ea" +version = "3.13.0" + + [deps.DiffEqGPU.extensions] + AMDGPUExt = ["AMDGPU"] + CUDAExt = ["CUDA"] + JLArraysExt = ["JLArrays"] + MetalExt = ["Metal"] + OpenCLExt = ["OpenCL"] + oneAPIExt = ["oneAPI"] + + [deps.DiffEqGPU.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + JLArrays = "27aeb0d3-9eb9-45fb-866b-73c2ecf80fcb" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + OpenCL = "08131aa3-fb12-5dee-8b74-c09406e224a2" + oneAPI = "8f75cd03-7ff8-4ecb-9b8f-daf728133b1b" + +[[deps.DiffResults]] +deps = ["StaticArraysCore"] +git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "1.1.0" + +[[deps.DiffRules]] +deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] +git-tree-sha1 = "79a2aca180a85c690c58a020d47b426954b590f8" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "1.16.0" + +[[deps.DifferentiationInterface]] +deps = ["ADTypes", "LinearAlgebra"] +git-tree-sha1 = "2147a95a217cc8a78ec96ee03581adf129468e49" +uuid = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" +version = "0.7.18" + + [deps.DifferentiationInterface.extensions] + DifferentiationInterfaceChainRulesCoreExt = "ChainRulesCore" + DifferentiationInterfaceDiffractorExt = "Diffractor" + DifferentiationInterfaceEnzymeExt = ["EnzymeCore", "Enzyme"] + DifferentiationInterfaceFastDifferentiationExt = "FastDifferentiation" + DifferentiationInterfaceFiniteDiffExt = "FiniteDiff" + DifferentiationInterfaceFiniteDifferencesExt = "FiniteDifferences" + DifferentiationInterfaceForwardDiffExt = ["ForwardDiff", "DiffResults"] + DifferentiationInterfaceGPUArraysCoreExt = ["GPUArraysCore", "Adapt"] + DifferentiationInterfaceGTPSAExt = "GTPSA" + DifferentiationInterfaceHyperHessiansExt = "HyperHessians" + DifferentiationInterfaceMooncakeExt = "Mooncake" + DifferentiationInterfacePolyesterForwardDiffExt = ["PolyesterForwardDiff", "ForwardDiff", "DiffResults"] + DifferentiationInterfaceReverseDiffExt = ["ReverseDiff", "DiffResults"] + DifferentiationInterfaceSparseArraysExt = "SparseArrays" + DifferentiationInterfaceSparseConnectivityTracerExt = "SparseConnectivityTracer" + DifferentiationInterfaceSparseMatrixColoringsExt = "SparseMatrixColorings" + DifferentiationInterfaceStaticArraysExt = "StaticArrays" + DifferentiationInterfaceSymbolicsExt = "Symbolics" + DifferentiationInterfaceTrackerExt = "Tracker" + DifferentiationInterfaceZygoteExt = ["Zygote", "ForwardDiff"] + + [deps.DifferentiationInterface.weakdeps] + Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DiffResults = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" + Diffractor = "9f5e2b26-1114-432f-b630-d3fe2085c51c" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + FastDifferentiation = "eb9bf01b-bf85-4b60-bf87-ee5de06c00be" + FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" + FiniteDifferences = "26cc04aa-876d-5657-8c51-4c34ba976000" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + GTPSA = "b27dd330-f138-47c5-815b-40db9dd9b6e8" + HyperHessians = "06b494a0-c8e0-40cc-ad32-d99506a00a6c" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + PolyesterForwardDiff = "98d1487c-24ca-40b6-b7ab-df2af84e126b" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + SparseConnectivityTracer = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" + SparseMatrixColorings = "0a514795-09f3-496d-8182-132a7b665d35" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.Distances]] +deps = ["LinearAlgebra", "Statistics", "StatsAPI"] +git-tree-sha1 = "c7e3a542b999843086e2f29dac96a618c105be1d" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.10.12" +weakdeps = ["ChainRulesCore", "SparseArrays"] + + [deps.Distances.extensions] + DistancesChainRulesCoreExt = "ChainRulesCore" + DistancesSparseArraysExt = "SparseArrays" + +[[deps.Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" +version = "1.11.0" + +[[deps.Distributions]] +deps = ["AliasTables", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "96f76dcd6cc75cf8eb49109123868499d413f526" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.126" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.DocStringExtensions]] +git-tree-sha1 = "7442a5dfe1ebb773c29cc2962a8980f47221d76c" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.5" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.7.0" + +[[deps.EnumX]] +git-tree-sha1 = "c49898e8438c828577f04b92fc9368c388ac783c" +uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" +version = "1.0.7" + +[[deps.Enzyme]] +deps = ["CEnum", "EnzymeCore", "Enzyme_jll", "GPUCompiler", "InteractiveUtils", "LLVM", "Libdl", "LinearAlgebra", "ObjectFile", "PrecompileTools", "Preferences", "Printf", "Random", "SparseArrays"] +git-tree-sha1 = "78e82f8d6343a4765d9bc46690f9b4c85dd843f5" +uuid = "7da242da-08ed-463a-9acd-ee780be4f1d9" +version = "0.13.160" + + [deps.Enzyme.extensions] + EnzymeBFloat16sExt = "BFloat16s" + EnzymeChainRulesCoreExt = "ChainRulesCore" + EnzymeGPUArraysCoreExt = "GPUArraysCore" + EnzymeLogExpFunctionsExt = "LogExpFunctions" + EnzymeSpecialFunctionsExt = "SpecialFunctions" + EnzymeStaticArraysExt = "StaticArrays" + + [deps.Enzyme.weakdeps] + ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" + BFloat16s = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" + SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.EnzymeCore]] +git-tree-sha1 = "c6ee69ee502060982d12dbaaf3d8fcb4e835a0d1" +uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" +version = "0.8.20" +weakdeps = ["Adapt", "ChainRulesCore"] + + [deps.EnzymeCore.extensions] + AdaptExt = "Adapt" + EnzymeCoreChainRulesCoreExt = "ChainRulesCore" + +[[deps.Enzyme_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "bec42ba58dce8e634e44d9fb3316594ca893cd76" +uuid = "7cc45869-7501-5eee-bdea-0790c847d4ef" +version = "0.0.268+0" + +[[deps.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8a4be429317c42cfae6a7fc03c31bad1970c310d" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+1" + +[[deps.Evolutionary]] +deps = ["LinearAlgebra", "NLSolversBase", "Random", "StackViews", "Statistics", "UnPack"] +git-tree-sha1 = "495cc997e315ee71d2361bf4c90ef21dc12e8fd1" +uuid = "86b6b26d-c046-49b6-aa0b-5f0f74682bd6" +version = "0.11.1" + +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "d36f682e590a83d63d1c7dbd287573764682d12a" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.11" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "c307cd83373868391f3ac30b41530bc5d5d05d08" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.8.1+0" + +[[deps.ExprTools]] +git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" +uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" +version = "0.1.10" + +[[deps.ExproniconLite]] +git-tree-sha1 = "c13f0b150373771b0fdc1713c97860f8df12e6c2" +uuid = "55351af7-c7e9-48d6-89ff-24e801d99491" +version = "0.10.14" + +[[deps.FFMPEG]] +deps = ["FFMPEG_jll"] +git-tree-sha1 = "95ecf07c2eea562b5adbd0696af6db62c0f52560" +uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" +version = "0.4.5" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libva_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "cac41ca6b2d399adfc95e51240566f8a60a80806" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "8.1.0+0" + +[[deps.FastBroadcast]] +deps = ["ArrayInterface", "LinearAlgebra"] +git-tree-sha1 = "7feeed2c9a7fa272189a5561bebf0c4ccaedb6ec" +uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" +version = "1.3.2" + + [deps.FastBroadcast.extensions] + FastBroadcastPolyesterExt = "Polyester" + FastBroadcastStaticExt = "Static" + + [deps.FastBroadcast.weakdeps] + Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" + Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" + +[[deps.FastClosures]] +git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" +uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" +version = "0.3.2" + +[[deps.FastPower]] +git-tree-sha1 = "862831f78c7a48681a074ecc9aac09f2de563f71" +uuid = "a4df4552-cc26-4903-aec0-212e50a0e84b" +version = "1.3.1" + + [deps.FastPower.extensions] + FastPowerEnzymeExt = "Enzyme" + FastPowerForwardDiffExt = "ForwardDiff" + FastPowerMeasurementsExt = "Measurements" + FastPowerMonteCarloMeasurementsExt = "MonteCarloMeasurements" + FastPowerMooncakeExt = "Mooncake" + FastPowerReverseDiffExt = "ReverseDiff" + FastPowerTrackerExt = "Tracker" + + [deps.FastPower.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" +version = "1.11.0" + +[[deps.FillArrays]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "2f979084d1e13948a3352cf64a25df6bd3b4dca3" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.16.0" +weakdeps = ["PDMats", "SparseArrays", "StaticArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStaticArraysExt = "StaticArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FiniteDiff]] +deps = ["ArrayInterface", "LinearAlgebra", "Setfield"] +git-tree-sha1 = "f7017a4f337f8df189fcce98e32b67a1298a2115" +uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" +version = "2.31.0" + + [deps.FiniteDiff.extensions] + FiniteDiffBandedMatricesExt = "BandedMatrices" + FiniteDiffBlockBandedMatricesExt = "BlockBandedMatrices" + FiniteDiffSparseArraysExt = "SparseArrays" + FiniteDiffStaticArraysExt = "StaticArrays" + + [deps.FiniteDiff.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.FixedPointNumbers]] +deps = ["Random", "Statistics"] +git-tree-sha1 = "59af96b98217c6ef4ae0dfe065ac7c20831d1a84" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.6" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"] +git-tree-sha1 = "f85dac9a96a01087df6e3a749840015a0ca3817d" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.17.1+0" + +[[deps.Format]] +git-tree-sha1 = "9c68794ef81b08086aeb32eeaf33531668d5f5fc" +uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" +version = "1.3.7" + +[[deps.ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] +git-tree-sha1 = "2c5d0b0e12088cde2cf84afb2784415b1ea3dfee" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "1.4.1" +weakdeps = ["StaticArrays"] + + [deps.ForwardDiff.extensions] + ForwardDiffStaticArraysExt = "StaticArrays" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "70329abc09b886fd2c5d94ad2d9527639c421e3e" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.14.3+1" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "7a214fdac5ed5f59a22c2d9a885a16da1c74bbc7" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.17+0" + +[[deps.FunctionWrappers]] +git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" +uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" +version = "1.1.3" + +[[deps.FunctionWrappersWrappers]] +deps = ["FunctionWrappers", "PrecompileTools", "TruncatedStacktraces"] +git-tree-sha1 = "b28fca87e487d18ba462317e4a95d7253ae51929" +uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" +version = "1.9.1" + + [deps.FunctionWrappersWrappers.extensions] + FunctionWrappersWrappersEnzymeExt = ["Enzyme", "EnzymeCore"] + FunctionWrappersWrappersMooncakeExt = "Mooncake" + + [deps.FunctionWrappersWrappers.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + +[[deps.Functors]] +deps = ["Compat", "ConstructionBase", "LinearAlgebra", "Random"] +git-tree-sha1 = "60a0339f28a233601cb74468032b5c302d5067de" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.5.2" + +[[deps.Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" +version = "1.11.0" + +[[deps.GLFW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll", "libdecor_jll", "xkbcommon_jll"] +git-tree-sha1 = "9e0fb9e54594c47f278d75063980e43066e26e20" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.4.1+1" + +[[deps.GPUArraysCore]] +deps = ["Adapt"] +git-tree-sha1 = "83cf05ab16a73219e5f6bd1bdfa9848fa24ac627" +uuid = "46192b85-c4d5-4398-a991-12ede77f4527" +version = "0.2.0" + +[[deps.GPUCompiler]] +deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "PrecompileTools", "Preferences", "Scratch", "Serialization", "TOML", "Tracy", "UUIDs"] +git-tree-sha1 = "6b6ce66ddab7cdb87d83b07098a626085d4b0d50" +uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" +version = "1.22.1" + + [deps.GPUCompiler.weakdeps] + LLVMDowngrader_jll = "f52de702-fb25-5922-94ba-81dd59b07444" + NVPTX_LLVM_Backend_jll = "ef6e0fe3-e6ef-59c0-bde6-4989574699e0" + +[[deps.GR]] +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Preferences", "Printf", "Qt6Wayland_jll", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "p7zip_jll"] +git-tree-sha1 = "f954322d5de03ec630d177cda203dcd92b6be399" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.73.26" +weakdeps = ["IJulia"] + + [deps.GR.extensions] + IJuliaExt = "IJulia" + +[[deps.GR_jll]] +deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "6fada551286ab6ea4ca1628cb2de9f166a2ec966" +uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" +version = "0.73.26+0" + +[[deps.GettextRuntime_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll"] +git-tree-sha1 = "45288942190db7c5f760f59c04495064eedf9340" +uuid = "b0724c58-0f36-5564-988d-3bb0596ebc4a" +version = "0.22.4+0" + +[[deps.Ghostscript_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Zlib_jll"] +git-tree-sha1 = "38044a04637976140074d0b0621c1edf0eb531fd" +uuid = "61579ee1-b43e-5ca0-a5da-69d92c66a64b" +version = "9.55.1+0" + +[[deps.Git]] +deps = ["Git_LFS_jll", "Git_jll", "JLLWrappers", "OpenSSH_jll"] +git-tree-sha1 = "824a1890086880696fc908fe12a17bcf61738bd8" +uuid = "d7ba0133-e1db-5d97-8f8c-041e4b3a1eb2" +version = "1.5.0" + +[[deps.Git_LFS_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8c66e385d631bb934ff05e76d4a566c640c8df69" +uuid = "020c3dae-16b3-5ae5-87b3-4cb189e250b2" +version = "3.7.1+0" + +[[deps.Git_jll]] +deps = ["Artifacts", "Expat_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "Libiconv_jll", "OpenSSL_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "0dd4cfb426924210c8f42742751cbde74b27bfa3" +uuid = "f8c6e375-362e-5223-8a59-34ff63f689eb" +version = "2.54.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "GettextRuntime_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "24f6def62397474a297bfcec22384101609142ed" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.86.3+0" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "69ffb934a5c5b7e086a0b4fee3427db2556fba6e" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.16+0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HTTP]] +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "PrecompileTools", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "51059d23c8bb67911a2e6fd5130229113735fc7e" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.11.0" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll"] +git-tree-sha1 = "f923f9a774fcf3f5cb761bfa43aeadd689714813" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "8.5.1+0" + +[[deps.Highlights]] +deps = ["DocStringExtensions", "InteractiveUtils", "REPL"] +git-tree-sha1 = "9e13b8d8b1367d9692a90ea4711b4278e4755c32" +uuid = "eafb193a-b7ab-5a9e-9068-77385905fa72" +version = "0.5.3" + +[[deps.HypergeometricFunctions]] +deps = ["LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "68c173f4f449de5b438ee67ed0c9c748dc31a2ec" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.28" + +[[deps.IJulia]] +deps = ["Base64", "Conda", "Dates", "InteractiveUtils", "Logging", "Markdown", "Pkg", "PrecompileTools", "Printf", "REPL", "Random", "SHA", "Sockets", "UUIDs", "ZMQ"] +git-tree-sha1 = "102656c4efc9737f892e1bca7e66ae374c650740" +uuid = "7073ff75-c697-5162-941a-fcdaad2a7d2a" +version = "1.34.4" + + [deps.IJulia.extensions] + IJuliaPythonCallExt = "PythonCall" + IJuliaReviseExt = "Revise" + + [deps.IJulia.weakdeps] + PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" + Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" + +[[deps.IfElse]] +git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" +uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" +version = "0.1.1" + +[[deps.IntegerMathUtils]] +git-tree-sha1 = "4c1acff2dc6b6967e7e750633c50bc3b8d83e617" +uuid = "18e54dd8-cb9d-406c-a71d-865a43cbb235" +version = "0.1.3" + +[[deps.IntelOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "ec1debd61c300961f98064cfb21287613ad7f303" +uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" +version = "2025.2.0+0" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" +version = "1.11.0" + +[[deps.InverseFunctions]] +git-tree-sha1 = "a779299d77cd080bf77b97535acecd73e1c5e5cb" +uuid = "3587e190-3f89-42d0-90ee-14403ec27112" +version = "0.1.17" +weakdeps = ["Dates", "Test"] + + [deps.InverseFunctions.extensions] + InverseFunctionsDatesExt = "Dates" + InverseFunctionsTestExt = "Test" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "b2d91fe939cae05960e760110b328288867b5758" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.6" + +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + +[[deps.JLFzf]] +deps = ["REPL", "Random", "fzf_jll"] +git-tree-sha1 = "82f7acdc599b65e0f8ccd270ffa1467c21cb647b" +uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" +version = "0.1.11" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7204148362dafe5fe6a273f855b8ccbe4df8173e" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.8.0" + +[[deps.JMcDM]] +deps = ["Requires"] +git-tree-sha1 = "e26d5db41aa1b96d4ed23b46eeeca34116214661" +uuid = "358108f5-d052-4d0a-8344-d5384e00c0e5" +version = "0.7.24" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JSON3]] +deps = ["Dates", "Mmap", "Parsers", "PrecompileTools", "StructTypes", "UUIDs"] +git-tree-sha1 = "411eccfe8aba0814ffa0fdf4860913ed09c34975" +uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" +version = "1.14.3" + + [deps.JSON3.extensions] + JSON3ArrowExt = ["ArrowTypes"] + + [deps.JSON3.weakdeps] + ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd" + +[[deps.Jieko]] +deps = ["ExproniconLite"] +git-tree-sha1 = "2f05ed29618da60c06a87e9c033982d4f71d0b6c" +uuid = "ae98c720-c025-4a4a-838c-29b094483192" +version = "0.2.1" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "c0c9b76f3520863909825cbecdef58cd63de705a" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "3.1.5+0" + +[[deps.JuliaSyntaxHighlighting]] +deps = ["StyledStrings"] +uuid = "ac6e5ff7-fb65-4e79-a425-ec3bc9c03011" +version = "1.12.0" + +[[deps.KernelAbstractions]] +deps = ["Adapt", "Atomix", "InteractiveUtils", "MacroTools", "PrecompileTools", "Requires", "StaticArrays", "UUIDs"] +git-tree-sha1 = "f2e76d3ced51a2a9e185abc0b97494c7273f649f" +uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" +version = "0.9.41" +weakdeps = ["EnzymeCore", "LinearAlgebra", "SparseArrays"] + + [deps.KernelAbstractions.extensions] + EnzymeExt = "EnzymeCore" + LinearAlgebraExt = "LinearAlgebra" + SparseArraysExt = "SparseArrays" + +[[deps.Krylov]] +deps = ["LinearAlgebra", "Printf", "SparseArrays"] +git-tree-sha1 = "c4d19f51afc7ba2afbe32031b8f2d21b11c9e26e" +uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" +version = "0.10.6" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "059aabebaa7c82ccb853dd4a0ee9d17796f7e1bc" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.3+0" + +[[deps.LDLFactorizations]] +deps = ["AMD", "LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "d75c5cb8d6ac9c359ae9eb8e87e446ba9f221dd4" +uuid = "40e66cde-538c-5869-a4ad-c39174c6795b" +version = "0.10.2" + +[[deps.LERC_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "17b94ecafcfa45e8360a4fc9ca6b583b049e4e37" +uuid = "88015f11-f218-50d7-93a8-a6af411a945d" +version = "4.1.0+0" + +[[deps.LLVM]] +deps = ["CEnum", "LLVMExtra_jll", "Libdl", "PrecompileTools", "Preferences", "Printf", "Unicode"] +git-tree-sha1 = "57639f07d4670fc6537e97d2686c4c99c13fdd67" +uuid = "929cbde3-209d-540e-8aea-75f648917ca0" +version = "9.9.0" + + [deps.LLVM.extensions] + BFloat16sExt = "BFloat16s" + + [deps.LLVM.weakdeps] + BFloat16s = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" + +[[deps.LLVMExtra_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "70c96f133c78c3cdc06234157144fab3744c6b38" +uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" +version = "0.0.43+1" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "eb62a3deb62fc6d8822c0c4bef73e4412419c5d8" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "18.1.8+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "dda21b8cbd6a6c40d9d02a73230f9d70fed6918c" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.4.0" + +[[deps.Latexify]] +deps = ["Format", "Ghostscript_jll", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] +git-tree-sha1 = "44f93c47f9cd6c7e431f2f2091fcba8f01cd7e8f" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.10" + + [deps.Latexify.extensions] + DataFramesExt = "DataFrames" + SparseArraysExt = "SparseArrays" + SymEngineExt = "SymEngine" + TectonicExt = "tectonic_jll" + + [deps.Latexify.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" + tectonic_jll = "d7dd28d6-a5e6-559c-9131-7eb760cdacc5" + +[[deps.LatticeRules]] +deps = ["Random"] +git-tree-sha1 = "7f5b02258a3ca0221a6a9710b0a0a2e8fb4957fe" +uuid = "73f95e8e-ec14-4e6a-8b18-0d2e271c4e55" +version = "0.0.1" + +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" +version = "1.11.0" + +[[deps.LeftChildRightSiblingTrees]] +deps = ["AbstractTrees"] +git-tree-sha1 = "95ba48564903b43b2462318aa243ee79d81135ff" +uuid = "1d6d02ad-be62-4b6b-8a6d-2f90e265016e" +version = "0.2.1" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "OpenSSL_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.15.0+0" + +[[deps.LibGit2]] +deps = ["LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" +version = "1.11.0" + +[[deps.LibGit2_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "OpenSSL_jll"] +uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" +version = "1.9.0+0" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "OpenSSL_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.3+1" + +[[deps.LibTracyClient_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "d4e20500d210247322901841d4eafc7a0c52642d" +uuid = "ad6e5548-8b26-5c9f-8ef3-ef0ad883f3a5" +version = "0.13.1+0" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" +version = "1.11.0" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "c8da7e6a91781c41a863611c7e966098d783c57a" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.4.7+0" + +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "d36c21b9e7c172a44a10484125024495e2625ac0" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.7.1+1" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "be484f5c92fad0bd8acfef35fe017900b0b73809" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.18.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "cc3ad4faf30015a3e8094c9b5b7f19e85bdf2386" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.42.0+0" + +[[deps.Libtiff_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "f04133fe05eff1667d2054c53d59f9122383fe05" +uuid = "89763e89-9b03-5906-acba-b20f662cd828" +version = "4.7.2+0" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "d620582b1f0cbe2c72dd1d5bd195a9ce73370ab1" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.42.0+0" + +[[deps.LineSearch]] +deps = ["ADTypes", "CommonSolve", "ConcreteStructs", "FastClosures", "LinearAlgebra", "MaybeInplace", "PrecompileTools", "SciMLBase", "SciMLJacobianOperators", "StaticArraysCore"] +git-tree-sha1 = "fd58a77c92e7c8f1db25c9839127d52943a49349" +uuid = "87fe0de2-c867-4266-b59a-2f0a94fc965b" +version = "0.1.9" +weakdeps = ["LineSearches"] + + [deps.LineSearch.extensions] + LineSearchLineSearchesExt = "LineSearches" + +[[deps.LineSearches]] +deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Printf"] +git-tree-sha1 = "9ea3422d03222c6de679934d1c08f0a99405aa03" +uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" +version = "7.5.1" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +version = "1.12.0" + +[[deps.LinearOperators]] +deps = ["FastClosures", "LinearAlgebra", "Printf", "SparseArrays", "TimerOutputs"] +git-tree-sha1 = "4170853dfdb5ac1374ffb5fcf79c24ba5f0bb8e3" +uuid = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125" +version = "2.14.1" + + [deps.LinearOperators.extensions] + LinearOperatorsAMDGPUExt = "AMDGPU" + LinearOperatorsCUDAExt = "CUDA" + LinearOperatorsChainRulesCoreExt = "ChainRulesCore" + LinearOperatorsJLArraysExt = "JLArrays" + LinearOperatorsLDLFactorizationsExt = "LDLFactorizations" + LinearOperatorsMetalExt = "Metal" + LinearOperatorsOpNormExt = ["Arpack", "TSVD", "GenericLinearAlgebra"] + + [deps.LinearOperators.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + Arpack = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + GenericLinearAlgebra = "14197337-ba66-59df-a3e3-ca00e7dcff7a" + JLArrays = "27aeb0d3-9eb9-45fb-866b-73c2ecf80fcb" + LDLFactorizations = "40e66cde-538c-5869-a4ad-c39174c6795b" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + TSVD = "9449cd9e-2762-5aa3-a617-5413e99d722e" + +[[deps.LinearSolve]] +deps = ["AMD", "ArrayInterface", "ConcreteStructs", "DocStringExtensions", "EnumX", "GPUArraysCore", "InteractiveUtils", "Krylov", "Libdl", "LinearAlgebra", "MKL_jll", "Markdown", "OpenBLAS_jll", "PrecompileTools", "Preferences", "PureKLU", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLLogging", "SciMLOperators", "Setfield", "SparseColumnPivotedQR", "StaticArraysCore"] +git-tree-sha1 = "8361c03a1088cee83d7efd9dcf76dd74da59a9d9" +uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" +version = "3.85.2" + + [deps.LinearSolve.extensions] + LinearSolveAMDGPUExt = "AMDGPU" + LinearSolveAlgebraicMultigridExt = "AlgebraicMultigrid" + LinearSolveBLISExt = ["blis_jll", "LAPACK_jll"] + LinearSolveBandedMatricesExt = "BandedMatrices" + LinearSolveBlockDiagonalsExt = "BlockDiagonals" + LinearSolveCUDAExt = ["cuSOLVER"] + LinearSolveCUDSSExt = "CUDSS" + LinearSolveCUSOLVERRFExt = ["CUSOLVERRF", "SparseArrays"] + LinearSolveChainRulesCoreExt = "ChainRulesCore" + LinearSolveCliqueTreesExt = ["CliqueTrees", "SparseArrays"] + LinearSolveElementalExt = "Elemental" + LinearSolveEnzymeExt = ["EnzymeCore", "SparseArrays"] + LinearSolveFastAlmostBandedMatricesExt = "FastAlmostBandedMatrices" + LinearSolveFastLapackInterfaceExt = "FastLapackInterface" + LinearSolveForwardDiffExt = "ForwardDiff" + LinearSolveGinkgoExt = ["Ginkgo", "SparseArrays"] + LinearSolveHSLExt = ["HSL", "SparseArrays"] + LinearSolveHYPREExt = "HYPRE" + LinearSolveIterativeSolversExt = "IterativeSolvers" + LinearSolveKernelAbstractionsExt = "KernelAbstractions" + LinearSolveKrylovKitExt = "KrylovKit" + LinearSolveMUMPSExt = ["MUMPS", "SparseArrays"] + LinearSolveMetalExt = "Metal" + LinearSolveMooncakeExt = "Mooncake" + LinearSolvePETScExt = ["PETSc", "SparseArrays", "SparseMatricesCSR"] + LinearSolvePETScMPIExt = ["PETSc", "PartitionedArrays", "SparseArrays", "SparseMatricesCSR"] + LinearSolveParUExt = ["ParU_jll", "SparseArrays"] + LinearSolvePardisoExt = ["Pardiso", "SparseArrays"] + LinearSolvePartitionedSolversExt = ["PartitionedArrays", "PartitionedSolvers"] + LinearSolvePureUMFPACKExt = ["PureUMFPACK", "SparseArrays"] + LinearSolveRecursiveFactorizationExt = "RecursiveFactorization" + LinearSolveSTRUMPACKExt = ["SparseArrays", "STRUMPACK_jll"] + LinearSolveSparseArraysExt = "SparseArrays" + LinearSolveSparspakExt = ["SparseArrays", "Sparspak"] + LinearSolveSpecializingFactorizationsExt = "SpecializingFactorizations" + + [deps.LinearSolve.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + AlgebraicMultigrid = "2169fc97-5a83-5252-b627-83903c6c433c" + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockDiagonals = "0a1fb500-61f7-11e9-3c65-f5ef3456f9f0" + CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" + CUSOLVERRF = "a8cc9031-bad2-4722-94f5-40deabb4245c" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + CliqueTrees = "60701a23-6482-424a-84db-faee86b9b1f8" + Elemental = "902c3f28-d1ec-5e7e-8399-a24c3845ee38" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + FastAlmostBandedMatrices = "9d29842c-ecb8-4973-b1e9-a27b1157504e" + FastLapackInterface = "29a986be-02c6-4525-aec4-84b980013641" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + Ginkgo = "4c8bd3c9-ead9-4b5e-a625-08f1338ba0ec" + HSL = "34c5aeac-e683-54a6-a0e9-6e0fdc586c50" + HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" + IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" + KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" + KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" + LAPACK_jll = "51474c39-65e3-53ba-86ba-03b1b862ec14" + MUMPS = "55d2b088-9f4e-11e9-26c0-150b02ea6a46" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + PETSc = "ace2c81b-2b5f-4b1e-a30d-d662738edfe0" + ParU_jll = "9e0b026c-e8ce-559c-a2c4-6a3d5c955bc9" + Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" + PartitionedArrays = "5a9dfac6-5c52-46f7-8278-5e2210713be9" + PartitionedSolvers = "11b65f7f-80ac-401b-9ef2-3db765482d62" + PureUMFPACK = "b7e1f0a2-3c4d-4e5f-9a0b-1c2d3e4f5a6b" + RecursiveFactorization = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" + STRUMPACK_jll = "86fbd0b9-476f-557c-b766-62c724b42d8c" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + SparseMatricesCSR = "a0a7dd2c-ebf4-11e9-1f05-cf50bc540ca1" + Sparspak = "e56a9233-b9d6-4f03-8d0f-1825330902ac" + SpecializingFactorizations = "fa08b7a1-13d3-4faf-875d-5cbc1520e3f3" + blis_jll = "6136c539-28a5-5bf0-87cc-b183200dce32" + cuSOLVER = "887afef0-6a32-4de5-add4-7827692ba8fc" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "13ca9e2586b89836fd20cccf56e57e2b9ae7f38f" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.29" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" +version = "1.11.0" + +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "f00544d95982ea270145636c181ceda21c4e2575" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.2.0" + +[[deps.MKL_jll]] +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"] +git-tree-sha1 = "282cadc186e7b2ae0eeadbd7a4dffed4196ae2aa" +uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" +version = "2025.2.0+0" + +[[deps.MacroTools]] +git-tree-sha1 = "1e0228a030642014fe5cfe68c2c0a818f9e3f522" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.16" + +[[deps.Markdown]] +deps = ["Base64", "JuliaSyntaxHighlighting", "StyledStrings"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" +version = "1.11.0" + +[[deps.MathOptInterface]] +deps = ["CodecBzip2", "CodecZlib", "ForwardDiff", "JSON", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test"] +git-tree-sha1 = "9f23c8c1667bd0b0e611110aaf80aa91c1bdf274" +uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" +version = "1.51.1" + + [deps.MathOptInterface.extensions] + MathOptInterfaceBenchmarkToolsExt = "BenchmarkTools" + MathOptInterfaceCliqueTreesExt = "CliqueTrees" + + [deps.MathOptInterface.weakdeps] + BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" + CliqueTrees = "60701a23-6482-424a-84db-faee86b9b1f8" + +[[deps.MaybeInplace]] +deps = ["ArrayInterface", "LinearAlgebra", "MacroTools"] +git-tree-sha1 = "54e2fdc38130c05b42be423e90da3bade29b74bd" +uuid = "bb5d69b7-63fc-4a16-80bd-7e42200c7bdb" +version = "0.1.4" +weakdeps = ["SparseArrays"] + + [deps.MaybeInplace.extensions] + MaybeInplaceSparseArraysExt = "SparseArrays" + +[[deps.MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "8785729fa736197687541f7053f6d8ab7fc44f92" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.1.10" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "ff69a2b1330bcb730b9ac1ab7dd680176f5896b8" +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.1010+0" + +[[deps.Measures]] +git-tree-sha1 = "b513cedd20d9c914783d8ad83d08120702bf2c77" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.3" + +[[deps.Memoize]] +deps = ["MacroTools"] +git-tree-sha1 = "2b1dfcba103de714d31c033b5dacc2e4a12c7caa" +uuid = "c03570c3-d221-55d1-a50c-7939bbd78826" +version = "0.4.4" + +[[deps.Metaheuristics]] +deps = ["Distances", "Distributions", "JMcDM", "LinearAlgebra", "Printf", "Random", "Reexport", "Requires", "SearchSpaces", "SnoopPrecompile", "Statistics"] +git-tree-sha1 = "382e37e629b0fb4e0139c9ce77a49bbb84b0ee27" +uuid = "bcdb8e00-2c21-11e9-3065-2b553b22f898" +version = "3.5.0" + +[[deps.MicroMamba]] +deps = ["Pkg", "Scratch", "micromamba_jll"] +git-tree-sha1 = "535656ce55266bfed0575cd051acc4f36dc869a0" +uuid = "0b3b1443-0f03-428d-bdfb-f27f9c1191ea" +version = "0.1.15" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.2.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" +version = "1.11.0" + +[[deps.Moshi]] +deps = ["ExproniconLite", "Jieko"] +git-tree-sha1 = "999dfa2b4f8334c1c23bd307c2b0cb6f97c54591" +uuid = "2e0e35c7-a2e4-4343-998d-7ef72827ed2d" +version = "0.3.8" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2025.11.4" + +[[deps.MuladdMacro]] +git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" +uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" +version = "0.2.4" + +[[deps.Mustache]] +deps = ["Printf", "Tables"] +git-tree-sha1 = "3cbd5dda543bc59f2e482607ccf84b633724fc32" +uuid = "ffc61752-8dc7-55ee-8c37-f3e9cdd09e70" +version = "1.0.21" + +[[deps.MutableArithmetics]] +deps = ["LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "dc5b2c4c111c46bc79ac4405eeb563523b39c004" +uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" +version = "1.8.0" + +[[deps.NLSolversBase]] +deps = ["ADTypes", "DifferentiationInterface", "Distributed", "FiniteDiff", "ForwardDiff"] +git-tree-sha1 = "25a6638571a902ecfb1ae2a18fc1575f86b1d4df" +uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" +version = "7.10.0" + +[[deps.NLopt]] +deps = ["CEnum", "NLopt_jll"] +git-tree-sha1 = "624785b15005a0e0f4e462b27ee745dbe5941863" +uuid = "76087f3c-5699-56af-9a33-bf431cd00edd" +version = "1.2.1" +weakdeps = ["MathOptInterface"] + + [deps.NLopt.extensions] + NLoptMathOptInterfaceExt = ["MathOptInterface"] + +[[deps.NLopt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "afe9c70ead884bf4cbb887f188d2db6d8f09d49c" +uuid = "079eb43e-fd8e-5478-9966-2cf3e3edb778" +version = "2.11.0+0" + +[[deps.NOMAD]] +deps = ["Libdl", "LinearAlgebra", "NOMAD_jll", "SparseArrays", "Test", "Tulip"] +git-tree-sha1 = "dbe00e8d6fc1a2fd002fd718e66b878f0ec21e4a" +uuid = "02130f1c-4665-5b79-af82-ff1385104aa0" +version = "2.4.2" + +[[deps.NOMAD_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "57457dc9480330148a9390880e6741d553c58064" +uuid = "2fc7fd02-576c-576e-a36a-6afce71715da" +version = "4.3.1+0" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "dbd2e8cd2c1c27f0b584f6661b4309609c5a685e" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.1.4" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.3.0" + +[[deps.NonlinearSolveBase]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "CommonSolve", "Compat", "ConcreteStructs", "DifferentiationInterface", "EnzymeCore", "FastClosures", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "LogExpFunctions", "Markdown", "MaybeInplace", "PreallocationTools", "PrecompileTools", "Preferences", "Printf", "RecursiveArrayTools", "SciMLBase", "SciMLJacobianOperators", "SciMLLogging", "SciMLOperators", "SciMLStructures", "Setfield", "StaticArraysCore", "SymbolicIndexingInterface", "TimerOutputs"] +git-tree-sha1 = "cb824030a0d5769555704db95ee3cbe0f76ed53d" +uuid = "be0214bd-f91f-a760-ac4e-3421ce2b2da0" +version = "2.30.3" + + [deps.NonlinearSolveBase.extensions] + NonlinearSolveBaseBandedMatricesExt = "BandedMatrices" + NonlinearSolveBaseChainRulesCoreExt = "ChainRulesCore" + NonlinearSolveBaseEnzymeExt = ["ChainRulesCore", "Enzyme"] + NonlinearSolveBaseForwardDiffExt = "ForwardDiff" + NonlinearSolveBaseLineSearchExt = "LineSearch" + NonlinearSolveBaseLinearSolveExt = "LinearSolve" + NonlinearSolveBaseMooncakeExt = "Mooncake" + NonlinearSolveBaseReverseDiffExt = "ReverseDiff" + NonlinearSolveBaseSparseArraysExt = "SparseArrays" + NonlinearSolveBaseSparseMatrixColoringsExt = "SparseMatrixColorings" + NonlinearSolveBaseTrackerExt = "Tracker" + + [deps.NonlinearSolveBase.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + LineSearch = "87fe0de2-c867-4266-b59a-2f0a94fc965b" + LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + SparseMatrixColorings = "0a514795-09f3-496d-8182-132a7b665d35" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.ObjectFile]] +deps = ["Reexport", "StructIO"] +git-tree-sha1 = "22faba70c22d2f03e60fbc61da99c4ebfc3eb9ba" +uuid = "d8793406-e978-5875-9003-1fc021f44a92" +version = "0.5.0" + +[[deps.OffsetArrays]] +git-tree-sha1 = "117432e406b5c023f665fa73dc26e79ec3630151" +uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" +version = "1.17.0" +weakdeps = ["Adapt"] + + [deps.OffsetArrays.extensions] + OffsetArraysAdaptExt = "Adapt" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "b6aa4566bb7ae78498a5e68943863fa8b5231b59" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.6+0" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.29+0" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.7+0" + +[[deps.OpenSSH_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "OpenSSL_jll", "Zlib_jll"] +git-tree-sha1 = "57baa4b81a24c2910afbb6d853aa0685e4312bf7" +uuid = "9bd350c2-7e96-507f-8002-3f2e150b4e1b" +version = "10.3.1+0" + +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "NetworkOptions", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "1d1aaa7d449b58415f97d2839c318b70ffb525a0" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.6.1" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.5.4+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1346c9208249809840c91b26703912dff463d335" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.6+0" + +[[deps.Optim]] +deps = ["Compat", "EnumX", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] +git-tree-sha1 = "48968edaf014f67e58fe4c8a4ce72d392aed3294" +uuid = "429524aa-4258-5aef-a3af-852621145aeb" +version = "1.13.3" +weakdeps = ["MathOptInterface"] + + [deps.Optim.extensions] + OptimMOIExt = "MathOptInterface" + +[[deps.Optimisers]] +deps = ["ChainRulesCore", "ConstructionBase", "Functors", "LinearAlgebra", "Random", "Statistics"] +git-tree-sha1 = "36b5d2b9dd06290cd65fcf5bdbc3a551ed133af5" +uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" +version = "0.4.7" + + [deps.Optimisers.extensions] + OptimisersAdaptExt = ["Adapt"] + OptimisersEnzymeCoreExt = "EnzymeCore" + OptimisersReactantExt = "Reactant" + + [deps.Optimisers.weakdeps] + Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + Reactant = "3c362404-f566-11ee-1572-e11a4b42c853" + +[[deps.Optimization]] +deps = ["ADTypes", "ArrayInterface", "ConsoleProgressMonitor", "DocStringExtensions", "LinearAlgebra", "Logging", "LoggingExtras", "OptimizationBase", "Printf", "Reexport", "SciMLBase", "SparseArrays", "TerminalLoggers"] +git-tree-sha1 = "166ff0e9c44c45f26113fef6971b8783d7ce7998" +uuid = "7f7a1694-90dd-40f0-9382-eb1efda571ba" +version = "5.4.0" + +[[deps.OptimizationBBO]] +deps = ["BlackBoxOptim", "OptimizationBase", "Reexport", "SciMLBase"] +git-tree-sha1 = "6ad933638872b8022a1d0205ddc93adcfb3c4c71" +uuid = "3e6eede4-6085-4f62-9a71-46d9bc1eb92b" +version = "0.4.5" + +[[deps.OptimizationBase]] +deps = ["ADTypes", "ArrayInterface", "DifferentiationInterface", "DocStringExtensions", "FastClosures", "LinearAlgebra", "PDMats", "PrecompileTools", "Reexport", "SciMLBase", "SparseArrays", "SparseConnectivityTracer", "SparseMatrixColorings"] +git-tree-sha1 = "9d1129ecde9f1773521196bdb2c5f16170bb2f6c" +uuid = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" +version = "4.2.0" + + [deps.OptimizationBase.extensions] + OptimizationEnzymeExt = "Enzyme" + OptimizationFiniteDiffExt = "FiniteDiff" + OptimizationForwardDiffExt = "ForwardDiff" + OptimizationMLDataDevicesExt = "MLDataDevices" + OptimizationMLUtilsExt = "MLUtils" + OptimizationReverseDiffExt = "ReverseDiff" + OptimizationSymbolicAnalysisExt = "SymbolicAnalysis" + OptimizationZygoteExt = "Zygote" + + [deps.OptimizationBase.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + MLDataDevices = "7e8f7934-dd98-4c1a-8fe8-92b47a384d40" + MLUtils = "f1d291b0-491e-4a28-83b9-f70985020b54" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SymbolicAnalysis = "4297ee4d-0239-47d8-ba5d-195ecdf594fe" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.OptimizationEvolutionary]] +deps = ["Evolutionary", "OptimizationBase", "Reexport", "SciMLBase"] +git-tree-sha1 = "a9fc533f82197fcc88ad39866368952bf06cbc85" +uuid = "cb963754-43f6-435e-8d4b-99009ff27753" +version = "0.4.6" + +[[deps.OptimizationMetaheuristics]] +deps = ["Metaheuristics", "OptimizationBase", "Reexport", "SciMLBase"] +git-tree-sha1 = "753ddd7141b7911e001b7c327f85b3e133e55802" +uuid = "3aafef2f-86ae-4776-b337-85a36adf0b55" +version = "0.3.4" + +[[deps.OptimizationNLopt]] +deps = ["NLopt", "OptimizationBase", "Random", "Reexport", "SciMLBase"] +git-tree-sha1 = "8354392af1d62b7c3ac28a33094b1e8338364843" +uuid = "4e6fcdb7-1186-4e1f-a706-475e75c168bb" +version = "0.3.8" + +[[deps.OptimizationNOMAD]] +deps = ["NOMAD", "OptimizationBase", "Reexport", "SciMLBase"] +git-tree-sha1 = "475474f21fceea1a41d14ce3fdad463f72dfe7bf" +uuid = "2cab0595-8222-4775-b714-9828e6a9e01b" +version = "0.3.4" + +[[deps.OptimizationOptimJL]] +deps = ["Optim", "OptimizationBase", "PrecompileTools", "Reexport", "SciMLBase", "SparseArrays"] +git-tree-sha1 = "ba8f23a14d861a303e829afaf67a7b3f75da945f" +uuid = "36348300-93cb-4f02-beb5-3c3902f8871e" +version = "0.4.8" + +[[deps.OptimizationOptimisers]] +deps = ["Logging", "Optimisers", "OptimizationBase", "Reexport", "SciMLBase"] +git-tree-sha1 = "63737f735d5f3d2e0548ae8831ebb7cebf51758b" +uuid = "42dfb2eb-d2b4-4451-abcd-913932933ac1" +version = "0.3.15" + +[[deps.OptimizationPRIMA]] +deps = ["OptimizationBase", "PRIMA", "Reexport", "SciMLBase"] +git-tree-sha1 = "47213be324d248141575b4d9d19054d616aaea91" +uuid = "72f8369c-a2ea-4298-9126-56167ce9cbc2" +version = "0.3.4" + +[[deps.OptimizationPyCMA]] +deps = ["CondaPkg", "OptimizationBase", "PythonCall", "Reexport", "SciMLBase", "Test"] +git-tree-sha1 = "a364e69d21e754e1ae93ced17db27a581907a800" +uuid = "fb0822aa-1fe5-41d8-99a6-e7bf6c238d3b" +version = "1.2.0" + +[[deps.OptimizationSciPy]] +deps = ["OptimizationBase", "PythonCall", "Reexport", "SciMLBase"] +git-tree-sha1 = "4835e9397d04f6280e88cc10b02f293d24edf77d" +uuid = "cce07bd8-c79b-4b00-aee8-8db9cce22837" +version = "0.4.5" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e2bb57a313a74b8104064b7efd01406c0a50d2ff" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.6.1+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "94ba93778373a53bfd5a0caaf7d809c445292ff4" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.8.2" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.44.0+1" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "e4cff168707d441cd6bf3ff7e4832bdf34278e4a" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.37" +weakdeps = ["StatsBase"] + + [deps.PDMats.extensions] + StatsBaseExt = "StatsBase" + +[[deps.PRIMA]] +deps = ["LinearAlgebra", "PRIMA_jll", "TypeUtils"] +git-tree-sha1 = "a066ecc3478e57377411d748125f572bf4e39cf3" +uuid = "0a7d04aa-8ac2-47b3-b7a7-9dbd6ad661ed" +version = "0.2.4" + + [deps.PRIMA.extensions] + PRIMACUTEstExt = "CUTEst" + PRIMANLPModelsExt = "NLPModels" + + [deps.PRIMA.weakdeps] + CUTEst = "1b53aba6-35b6-5f92-a507-53c67d53f819" + NLPModels = "a4795742-8479-5a88-8948-cc11e1c8c1a6" + +[[deps.PRIMA_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f7bbf8d5dda12f3f417b350baf82ebf0d190a623" +uuid = "eead6e0c-2d5b-5641-a95c-b722de96d551" +version = "0.7.1+0" + +[[deps.Pango_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "58e5ed5e386e156bd93e86b305ebd21ac63d2d04" +uuid = "36c8627f-9965-5494-a995-c6b170f724f3" +version = "1.57.1+0" + +[[deps.ParallelParticleSwarms]] +deps = ["Adapt", "DiffEqGPU", "Enzyme", "ForwardDiff", "KernelAbstractions", "LineSearch", "LinearAlgebra", "NonlinearSolveBase", "Optimization", "PrecompileTools", "QuasiMonteCarlo", "Random", "Reexport", "SciMLBase", "Setfield", "SimpleNonlinearSolve", "StaticArrays"] +git-tree-sha1 = "49a48ac8598a2e47541c211130f17793cdd44e40" +uuid = "ab63da0c-63b4-40fa-a3b7-d2cba5be6419" +version = "1.1.0" + +[[deps.Parameters]] +deps = ["OrderedCollections", "UnPack"] +git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" +uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" +version = "0.12.3" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "32a4e09c5f29402573d673901778a0e03b0807b9" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.6" + +[[deps.Pidfile]] +deps = ["FileWatching", "Test"] +git-tree-sha1 = "2d8aaf8ee10df53d0dfb9b8ee44ae7c04ced2b03" +uuid = "fa939f87-e72e-5be4-a000-7fc836dbe307" +version = "1.3.0" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "e4a6721aa89e62e5d4217c0b21bd714263779dda" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.46.4+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "Random", "SHA", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.12.1" +weakdeps = ["REPL"] + + [deps.Pkg.extensions] + REPLExt = "REPL" + +[[deps.PlotThemes]] +deps = ["PlotUtils", "Statistics"] +git-tree-sha1 = "41031ef3a1be6f5bbbf3e8073f210556daeae5ca" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "3.3.0" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "StableRNGs", "Statistics"] +git-tree-sha1 = "26ca162858917496748aad52bb5d3be4d26a228a" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.4.4" + +[[deps.Plots]] +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "TOML", "UUIDs", "UnicodeFun", "Unzip"] +git-tree-sha1 = "cb20a4eacda080e517e4deb9cfb6c7c518131265" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "1.41.6" + + [deps.Plots.extensions] + FileIOExt = "FileIO" + GeometryBasicsExt = "GeometryBasics" + IJuliaExt = "IJulia" + ImageInTerminalExt = "ImageInTerminal" + UnitfulExt = "Unitful" + + [deps.Plots.weakdeps] + FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" + GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" + IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" + ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.PositiveFactorizations]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" +uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" +version = "0.2.4" + +[[deps.PreallocationTools]] +deps = ["Adapt", "ArrayInterface", "PrecompileTools"] +git-tree-sha1 = "e16b73bf892c55d16d53c9c0dbd0fb31cb7e25da" +uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" +version = "1.2.0" + + [deps.PreallocationTools.extensions] + PreallocationToolsForwardDiffExt = "ForwardDiff" + PreallocationToolsReverseDiffExt = "ReverseDiff" + PreallocationToolsSparseConnectivityTracerExt = "SparseConnectivityTracer" + + [deps.PreallocationTools.weakdeps] + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseConnectivityTracer = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "edbeefc7a4889f528644251bdb5fc9ab5348bc2c" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.3.4" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "8b770b60760d4451834fe79dd483e318eee709c4" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.5.2" + +[[deps.Primes]] +deps = ["IntegerMathUtils"] +git-tree-sha1 = "25cdd1d20cd005b52fc12cb6be3f75faaf59bb9b" +uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" +version = "0.5.7" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" +version = "1.11.0" + +[[deps.ProgressLogging]] +deps = ["Logging", "SHA", "UUIDs"] +git-tree-sha1 = "f0803bc1171e455a04124affa9c21bba5ac4db32" +uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" +version = "0.1.6" + +[[deps.ProgressMeter]] +deps = ["Distributed", "Printf"] +git-tree-sha1 = "fbb92c6c56b34e1a2c4c36058f68f332bec840e7" +uuid = "92933f4c-e287-5a05-a399-4b506db050ca" +version = "1.11.0" + +[[deps.PtrArrays]] +git-tree-sha1 = "4fbbafbc6251b883f4d2705356f3641f3652a7fe" +uuid = "43287f4e-b6f4-7ad1-bb20-aadabca52c3d" +version = "1.4.0" + +[[deps.PureKLU]] +deps = ["LinearAlgebra", "MuladdMacro", "PrecompileTools", "SparseArrays"] +git-tree-sha1 = "02d7809d74834e7b04ac8858704c4efc34283f8a" +uuid = "0c0d3e7f-3a8b-4f7e-b6f1-9a4d2e7c1f01" +version = "1.0.1" + +[[deps.PythonCall]] +deps = ["CondaPkg", "Dates", "Libdl", "MacroTools", "Markdown", "Preferences", "Serialization", "Tables", "UnsafePointers"] +git-tree-sha1 = "2b67e030054dd9438a00e3d7f59927e839b00569" +uuid = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" +version = "0.9.35" + + [deps.PythonCall.extensions] + CategoricalArraysExt = "CategoricalArrays" + PyCallExt = "PyCall" + + [deps.PythonCall.weakdeps] + CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597" + PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" + +[[deps.QPSReader]] +deps = ["Logging", "Pkg"] +git-tree-sha1 = "374833c0c1fd5cc623278581bf0c8259d7b35f10" +uuid = "10f199a5-22af-520b-b891-7ce84a7b1bd0" +version = "0.2.1" + +[[deps.Qt6Base_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] +git-tree-sha1 = "144895f6166994730ee7ff8113b981fc360638f1" +uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" +version = "6.10.2+2" + +[[deps.Qt6Declarative_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6ShaderTools_jll", "Qt6Svg_jll"] +git-tree-sha1 = "d5b7dd0e226774cbd87e2790e34def09245c7eab" +uuid = "629bc702-f1f5-5709-abd5-49b8460ea067" +version = "6.10.2+1" + +[[deps.Qt6ShaderTools_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll"] +git-tree-sha1 = "4d85eedf69d875982c46643f6b4f66919d7e157b" +uuid = "ce943373-25bb-56aa-8eca-768745ed7b5a" +version = "6.10.2+1" + +[[deps.Qt6Svg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll"] +git-tree-sha1 = "81587ff5ff25a4e1115ce191e36285ede0334c9d" +uuid = "6de9746b-f93d-5813-b365-ba18ad4a9cf3" +version = "6.10.2+0" + +[[deps.Qt6Wayland_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6Declarative_jll"] +git-tree-sha1 = "672c938b4b4e3e0169a07a5f227029d4905456f2" +uuid = "e99dba38-086e-5de3-a5b1-6e4c66e897c3" +version = "6.10.2+1" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "5e8e8b0ab68215d7a2b14b9921a946fee794749e" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.11.3" +weakdeps = ["Enzyme"] + + [deps.QuadGK.extensions] + QuadGKEnzymeExt = "Enzyme" + +[[deps.QuasiMonteCarlo]] +deps = ["Accessors", "ConcreteStructs", "LatticeRules", "LinearAlgebra", "PrecompileTools", "Primes", "Random", "Sobol"] +git-tree-sha1 = "017a6731a1754173013b98f458adb631e368a9d2" +uuid = "8a4e6c94-4038-4cdc-81c3-7e6ffdb2a71b" +version = "0.3.5" +weakdeps = ["Distributions"] + + [deps.QuasiMonteCarlo.extensions] + QuasiMonteCarloDistributionsExt = "Distributions" + +[[deps.REPL]] +deps = ["InteractiveUtils", "JuliaSyntaxHighlighting", "Markdown", "Sockets", "StyledStrings", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" +version = "1.11.0" + +[[deps.Random]] +deps = ["SHA"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +version = "1.11.0" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.RecipesPipeline]] +deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] +git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" +uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" +version = "0.6.12" + +[[deps.RecursiveArrayTools]] +deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "LinearAlgebra", "PrecompileTools", "RecipesBase", "StaticArraysCore", "SymbolicIndexingInterface"] +git-tree-sha1 = "d0282d612f22dcad7b81cf487b746e63aa2a6709" +uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" +version = "3.54.0" + + [deps.RecursiveArrayTools.extensions] + RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" + RecursiveArrayToolsFastBroadcastPolyesterExt = ["FastBroadcast", "Polyester"] + RecursiveArrayToolsForwardDiffExt = "ForwardDiff" + RecursiveArrayToolsKernelAbstractionsExt = "KernelAbstractions" + RecursiveArrayToolsMeasurementsExt = "Measurements" + RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements" + RecursiveArrayToolsReverseDiffExt = ["ReverseDiff", "Zygote"] + RecursiveArrayToolsSparseArraysExt = ["SparseArrays"] + RecursiveArrayToolsStatisticsExt = "Statistics" + RecursiveArrayToolsStructArraysExt = "StructArrays" + RecursiveArrayToolsTablesExt = ["Tables"] + RecursiveArrayToolsTrackerExt = "Tracker" + RecursiveArrayToolsZygoteExt = "Zygote" + + [deps.RecursiveArrayTools.weakdeps] + FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "62389eeff14780bfe55195b7204c0d8738436d64" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.1" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "5b3d50eb374cea306873b371d3f8d3915a018f0b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.9.0" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "58cdd8fb2201a6267e1db87ff148dd6c1dbd8ad8" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.5.1+0" + +[[deps.RuntimeGeneratedFunctions]] +deps = ["ExprTools", "SHA", "Serialization"] +git-tree-sha1 = "28154d426e557495aa75097861b18c11f2541ded" +uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" +version = "0.5.19" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.SciMLBase]] +deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "Moshi", "PreallocationTools", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLLogging", "SciMLOperators", "SciMLPublic", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface"] +git-tree-sha1 = "a017ed325ac5e11438c888864fe83b124bb171b7" +uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +version = "2.155.1" + + [deps.SciMLBase.extensions] + SciMLBaseChainRulesCoreExt = "ChainRulesCore" + SciMLBaseDifferentiationInterfaceExt = "DifferentiationInterface" + SciMLBaseDistributionsExt = "Distributions" + SciMLBaseEnzymeExt = "Enzyme" + SciMLBaseForwardDiffExt = "ForwardDiff" + SciMLBaseMLStyleExt = "MLStyle" + SciMLBaseMakieExt = "Makie" + SciMLBaseMeasurementsExt = "Measurements" + SciMLBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements" + SciMLBaseMooncakeExt = "Mooncake" + SciMLBasePartialFunctionsExt = "PartialFunctions" + SciMLBasePyCallExt = "PyCall" + SciMLBasePythonCallExt = "PythonCall" + SciMLBaseRCallExt = "RCall" + SciMLBaseReverseDiffExt = "ReverseDiff" + SciMLBaseTrackerExt = "Tracker" + SciMLBaseZygoteExt = ["Zygote", "ChainRulesCore"] + + [deps.SciMLBase.weakdeps] + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" + Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + MLStyle = "d8e11817-5142-5d16-987a-aa16d5891078" + Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + PartialFunctions = "570af359-4316-4cb7-8c74-252c00c2016b" + PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" + PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" + RCall = "6f49c342-dc21-5d91-9882-a32aef131414" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.SciMLBenchmarks]] +deps = ["Git", "IJulia", "InteractiveUtils", "Markdown", "Pkg", "Weave"] +git-tree-sha1 = "f4076dd5a103010d48bb6c4e50c5526f6622fa96" +uuid = "31c91b34-3c75-11e9-0341-95557aab0344" +version = "0.1.3" + +[[deps.SciMLJacobianOperators]] +deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "ConstructionBase", "DifferentiationInterface", "FastClosures", "LinearAlgebra", "SciMLBase", "SciMLOperators"] +git-tree-sha1 = "7156a5b51cba1bea33a82a036939ead4131f92bc" +uuid = "19f34311-ddf3-4b8b-af20-060888a46c0e" +version = "0.1.13" + +[[deps.SciMLLogging]] +deps = ["Logging", "LoggingExtras", "Preferences"] +git-tree-sha1 = "4e1e21f14a284f892eb62923a356c70a2a0c68e1" +uuid = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" +version = "1.10.1" +weakdeps = ["Tracy"] + + [deps.SciMLLogging.extensions] + SciMLLoggingTracyExt = "Tracy" + +[[deps.SciMLOperators]] +deps = ["Accessors", "Adapt", "ArrayInterface", "DocStringExtensions", "LinearAlgebra"] +git-tree-sha1 = "3b204078e8574b9de19cac90e0c87c811a87deac" +uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" +version = "1.22.0" + + [deps.SciMLOperators.extensions] + SciMLOperatorsLoopVectorizationExt = "LoopVectorization" + SciMLOperatorsSparseArraysExt = "SparseArrays" + SciMLOperatorsStaticArraysCoreExt = "StaticArraysCore" + + [deps.SciMLOperators.weakdeps] + LoopVectorization = "bdcacae8-1622-11e9-2a5c-532679323890" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" + +[[deps.SciMLPublic]] +git-tree-sha1 = "0ba076dbdce87ba230fff48ca9bca62e1f345c9b" +uuid = "431bcebd-1456-4ced-9d72-93c2757fff0b" +version = "1.0.1" + +[[deps.SciMLStructures]] +deps = ["ArrayInterface", "PrecompileTools"] +git-tree-sha1 = "607f6867d0b0553e98fc7f725c9f9f13b4d01a32" +uuid = "53ae85a6-f571-4167-b2af-e1d143709226" +version = "1.10.0" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "9b81b8393e50b7d4e6d0a9f14e192294d3b7c109" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.3.0" + +[[deps.SearchSpaces]] +deps = ["Combinatorics", "Random"] +git-tree-sha1 = "2662fd537048fb12ff34fabb5249bf50e06f445b" +uuid = "eb7571c6-2196-4f03-99b8-52a5a35b3163" +version = "0.2.0" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" +version = "1.11.0" + +[[deps.Setfield]] +deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] +git-tree-sha1 = "c5391c6ace3bc430ca630251d02ea9687169ca68" +uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" +version = "1.1.2" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SimpleBufferStream]] +git-tree-sha1 = "f305871d2f381d21527c770d4788c06c097c9bc1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.2.0" + +[[deps.SimpleDiffEq]] +deps = ["DiffEqBase", "LinearAlgebra", "MuladdMacro", "Parameters", "RecursiveArrayTools", "Reexport", "StaticArrays"] +git-tree-sha1 = "797af3c02e08f89e51eedf28f9daf8c87bc79a53" +uuid = "05bca326-078c-5bf0-a5bf-ce7c7982d7fd" +version = "1.15.0" + +[[deps.SimpleNonlinearSolve]] +deps = ["ADTypes", "ArrayInterface", "BracketingNonlinearSolve", "CommonSolve", "ConcreteStructs", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "Setfield", "StaticArraysCore"] +git-tree-sha1 = "08d8bafd57b7ea16dc1f69a8bd57db23a2ceb686" +uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" +version = "2.12.0" + + [deps.SimpleNonlinearSolve.extensions] + SimpleNonlinearSolveChainRulesCoreExt = "ChainRulesCore" + SimpleNonlinearSolveReverseDiffExt = "ReverseDiff" + SimpleNonlinearSolveTrackerExt = "Tracker" + + [deps.SimpleNonlinearSolve.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.SnoopPrecompile]] +deps = ["Preferences"] +git-tree-sha1 = "e760a70afdcd461cf01a575947738d359234665c" +uuid = "66db9d55-30c0-4569-8b51-7e840670fc0c" +version = "1.0.3" + +[[deps.Sobol]] +deps = ["DelimitedFiles", "Random"] +git-tree-sha1 = "5a74ac22a9daef23705f010f72c81d6925b19df8" +uuid = "ed01d8cd-4d21-5b2a-85b4-cc3bdc58bad4" +version = "1.5.0" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" +version = "1.11.0" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "64d974c2e6fdf07f8155b5b2ca2ffa9069b608d9" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.2" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.12.0" + +[[deps.SparseColumnPivotedQR]] +deps = ["LinearAlgebra", "PrecompileTools", "SparseArrays"] +git-tree-sha1 = "aa3872796237441bc82f51b6f094aaf97386a717" +uuid = "a57abbd0-fea5-4d57-96be-5e525945e8e4" +version = "2.1.1" +weakdeps = ["AMD"] + + [deps.SparseColumnPivotedQR.extensions] + SparseColumnPivotedQRAMDExt = "AMD" + +[[deps.SparseConnectivityTracer]] +deps = ["ADTypes", "DocStringExtensions", "FillArrays", "LinearAlgebra", "Random", "SparseArrays"] +git-tree-sha1 = "590b72143436e443888124aaf4026a636049e3f5" +uuid = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" +version = "1.2.1" + + [deps.SparseConnectivityTracer.extensions] + SparseConnectivityTracerChainRulesCoreExt = "ChainRulesCore" + SparseConnectivityTracerLogExpFunctionsExt = "LogExpFunctions" + SparseConnectivityTracerNNlibExt = "NNlib" + SparseConnectivityTracerNaNMathExt = "NaNMath" + SparseConnectivityTracerSpecialFunctionsExt = "SpecialFunctions" + + [deps.SparseConnectivityTracer.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" + NNlib = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" + NaNMath = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" + SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" + +[[deps.SparseMatrixColorings]] +deps = ["ADTypes", "DocStringExtensions", "LinearAlgebra", "PrecompileTools", "Random", "SparseArrays"] +git-tree-sha1 = "f63d76c7b7c329cf11badd564fd8ba877b09c3fe" +uuid = "0a514795-09f3-496d-8182-132a7b665d35" +version = "0.4.27" + + [deps.SparseMatrixColorings.extensions] + SparseMatrixColoringsCUDAExt = ["CUDA", "cuSPARSE"] + SparseMatrixColoringsCliqueTreesExt = "CliqueTrees" + SparseMatrixColoringsColorsExt = "Colors" + SparseMatrixColoringsGPUArraysExt = "GPUArrays" + SparseMatrixColoringsJuMPExt = ["JuMP", "MathOptInterface"] + + [deps.SparseMatrixColorings.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + CliqueTrees = "60701a23-6482-424a-84db-faee86b9b1f8" + Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" + GPUArrays = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" + JuMP = "4076af6c-e467-56ae-b986-b466b2749572" + MathOptInterface = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" + cuSPARSE = "b26da814-b3bc-49ef-b0ee-c816305aa060" + +[[deps.SpatialIndexing]] +git-tree-sha1 = "84efe17c77e1f2156a7a0d8a7c163c1e1c7bdaed" +uuid = "d4ead438-fe20-5cc5-a293-4fd39a41b74c" +version = "0.1.6" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "6547cbdd8ce32efba0d21c5a40fa96d1a3548f9f" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.8.0" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.StableRNGs]] +deps = ["Random"] +git-tree-sha1 = "4f96c596b8c8258cc7d3b19797854d368f243ddc" +uuid = "860ef19b-820b-49d6-a774-d7a799459cd3" +version = "1.0.4" + +[[deps.StackViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "be1cf4eb0ac528d96f5115b4ed80c26a8d8ae621" +uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15" +version = "0.1.2" + +[[deps.Static]] +deps = ["CommonWorldInvalidations", "IfElse", "PrecompileTools", "SciMLPublic"] +git-tree-sha1 = "bb072715f158b59ad8819ff80da5ffa90cce6ceb" +uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" +version = "1.4.0" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "246a8bb2e6667f832eea063c3a56aef96429a3db" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.9.18" +weakdeps = ["ChainRulesCore", "Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysChainRulesCoreExt = "ChainRulesCore" + StaticArraysStatisticsExt = "Statistics" + +[[deps.StaticArraysCore]] +git-tree-sha1 = "6ab403037779dae8c514bad259f32a447262455a" +uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +version = "1.4.4" + +[[deps.Statistics]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "ae3bb1eb3bba077cd276bc5cfc337cc65c3075c0" +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.11.1" +weakdeps = ["SparseArrays"] + + [deps.Statistics.extensions] + SparseArraysExt = ["SparseArrays"] + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "178ed29fd5b2a2cfc3bd31c13375ae925623ff36" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.8.0" + +[[deps.StatsBase]] +deps = ["AliasTables", "DataAPI", "DataStructures", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "e4d7a1a0edc20af42689ea6f4f3587a2175d50ee" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.12" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "3f4e1d24289cd974e089c617b1472311a2b1feab" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "2.1.0" +weakdeps = ["ChainRulesCore", "InverseFunctions"] + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + +[[deps.StringEncodings]] +deps = ["Libiconv_jll"] +git-tree-sha1 = "b765e46ba27ecf6b44faf70df40c57aa3a547dcb" +uuid = "69024149-9ee7-55f6-a4c4-859efe599b68" +version = "0.3.7" + +[[deps.StructIO]] +git-tree-sha1 = "c581be48ae1cbf83e899b14c07a807e1787512cc" +uuid = "53d494c1-5632-5724-8f4c-31dff12d585f" +version = "0.3.1" + +[[deps.StructTypes]] +deps = ["Dates", "UUIDs"] +git-tree-sha1 = "159331b30e94d7b11379037feeb9b690950cace8" +uuid = "856f2bd8-1eba-4b0a-8007-ebc267875bd4" +version = "1.11.0" + +[[deps.StyledStrings]] +uuid = "f489334b-da3d-4c2e-b8f0-e476e12c162b" +version = "1.11.0" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "7.8.3+2" + +[[deps.SymbolicIndexingInterface]] +deps = ["Accessors", "ArrayInterface", "RuntimeGeneratedFunctions", "StaticArraysCore"] +git-tree-sha1 = "64b15330b9e3c91a86bcac92f369c58e382981c6" +uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" +version = "0.3.48" + + [deps.SymbolicIndexingInterface.extensions] + SymbolicIndexingInterfacePrettyTablesExt = "PrettyTables" + + [deps.SymbolicIndexingInterface.weakdeps] + PrettyTables = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[deps.Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "f2c1efbc8f3a609aadf318094f8fc5204bdaf344" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.12.1" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.TerminalLoggers]] +deps = ["LeftChildRightSiblingTrees", "Logging", "Markdown", "Printf", "ProgressLogging", "UUIDs"] +git-tree-sha1 = "f133fab380933d042f6796eda4e130272ba520ca" +uuid = "5d786b92-1e48-4d6f-9151-6b4477ca9bed" +version = "0.1.7" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +version = "1.11.0" + +[[deps.TimerOutputs]] +deps = ["ExprTools", "Printf"] +git-tree-sha1 = "3748bd928e68c7c346b52125cf41fff0de6937d0" +uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" +version = "0.5.29" + + [deps.TimerOutputs.extensions] + FlameGraphsExt = "FlameGraphs" + + [deps.TimerOutputs.weakdeps] + FlameGraphs = "08572546-2f56-4bcf-ba4e-bab62c3a3f89" + +[[deps.Tracy]] +deps = ["ExprTools", "LibTracyClient_jll", "Libdl"] +git-tree-sha1 = "73e3ff50fd3990874c59fef0f35d10644a1487bc" +uuid = "e689c965-62c8-4b79-b2c5-8359227902fd" +version = "0.1.6" + + [deps.Tracy.extensions] + TracyProfilerExt = "TracyProfiler_jll" + + [deps.Tracy.weakdeps] + TracyProfiler_jll = "0c351ed6-8a68-550e-8b79-de6f926da83c" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.11.3" + +[[deps.TruncatedStacktraces]] +deps = ["InteractiveUtils", "MacroTools", "Preferences"] +git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" +uuid = "781d530d-4396-4725-bb49-402e4bee1e77" +version = "1.4.0" + +[[deps.Tulip]] +deps = ["CodecBzip2", "CodecZlib", "Krylov", "LDLFactorizations", "LinearAlgebra", "LinearOperators", "Logging", "MathOptInterface", "Printf", "QPSReader", "SparseArrays", "SuiteSparse", "TOML", "Test", "TimerOutputs"] +git-tree-sha1 = "d9415a833b926da3f753133a50d5ce316c51bc67" +uuid = "6dd1b50a-3aae-11e9-10b5-ef983d2400fa" +version = "0.9.8" + +[[deps.TypeUtils]] +deps = ["InverseFunctions", "LinearAlgebra", "Requires"] +git-tree-sha1 = "cb44e15367c11e252b265bc6b088995826ae29f9" +uuid = "c3b1956e-8857-4d84-9b79-890df85b1e67" +version = "1.14.0" + + [deps.TypeUtils.extensions] + TypeUtilsOffsetArraysExt = "OffsetArrays" + TypeUtilsUnitfulExt = "Unitful" + + [deps.TypeUtils.weakdeps] + OffsetArrays = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.URIs]] +git-tree-sha1 = "bef26fb046d031353ef97a82e3fdb6afe7f21b1a" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.6.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" +version = "1.11.0" + +[[deps.UnPack]] +git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" +uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" +version = "1.0.2" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" +version = "1.11.0" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.UnsafeAtomics]] +git-tree-sha1 = "0f30765c32d66d58e41f4cb5624d4fc8a82ec13b" +uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f" +version = "0.3.1" +weakdeps = ["LLVM"] + + [deps.UnsafeAtomics.extensions] + UnsafeAtomicsLLVM = ["LLVM"] + +[[deps.UnsafePointers]] +git-tree-sha1 = "c81331b3b2e60a982be57c046ec91f599ede674a" +uuid = "e17b2a0c-0bdf-430a-bd0c-3a23cae4ff39" +version = "1.0.0" + +[[deps.Unzip]] +git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" +uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" +version = "0.2.0" + +[[deps.VersionParsing]] +git-tree-sha1 = "58d6e80b4ee071f5efd07fda82cb9fbe17200868" +uuid = "81def892-9a0e-5fdd-b105-ffc91e053289" +version = "1.3.0" + +[[deps.Vulkan_Loader_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] +git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" +uuid = "a44049a8-05dd-5a78-86c9-5fde0876e88c" +version = "1.3.243+0" + +[[deps.Wayland_jll]] +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll"] +git-tree-sha1 = "96478df35bbc2f3e1e791bc7a3d0eeee559e60e9" +uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" +version = "1.24.0+0" + +[[deps.Weave]] +deps = ["Base64", "Dates", "Highlights", "JSON", "Markdown", "Mustache", "Pkg", "Printf", "REPL", "RelocatableFolders", "Requires", "Serialization", "YAML"] +git-tree-sha1 = "092217eb5443926d200ae9325f103906efbb68b1" +uuid = "44d3d7a6-8a23-5bf8-98c5-b353f8df5ec9" +version = "0.10.12" + +[[deps.XZ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "b29c22e245d092b8b4e8d3c09ad7baa586d9f573" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.8.3+0" + +[[deps.Xorg_libICE_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "a3ea76ee3f4facd7a64684f9af25310825ee3668" +uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" +version = "1.1.2+0" + +[[deps.Xorg_libSM_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libICE_jll"] +git-tree-sha1 = "9c7ad99c629a44f81e7799eb05ec2746abb5d588" +uuid = "c834827a-8449-5923-a945-d239c165b7dd" +version = "1.2.6+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "808090ede1d41644447dd5cbafced4731c56bd2f" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.13+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "aa1261ebbac3ccc8d16558ae6799524c450ed16b" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.13+0" + +[[deps.Xorg_libXcursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "6c74ca84bbabc18c4547014765d194ff0b4dc9da" +uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" +version = "1.2.4+0" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "52858d64353db33a56e13c341d7bf44cd0d7b309" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.6+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "1a4a26870bf1e5d26cd585e38038d399d7e65706" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.8+0" + +[[deps.Xorg_libXfixes_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "75e00946e43621e09d431d9b95818ee751e6b2ef" +uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" +version = "6.0.2+0" + +[[deps.Xorg_libXi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] +git-tree-sha1 = "a376af5c7ae60d29825164db40787f15c80c7c54" +uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" +version = "1.8.3+0" + +[[deps.Xorg_libXinerama_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXext_jll"] +git-tree-sha1 = "0ba01bc7396896a4ace8aab67db31403c71628f4" +uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" +version = "1.1.7+0" + +[[deps.Xorg_libXrandr_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXext_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "6c174ef70c96c76f4c3f4d3cfbe09d018bcd1b53" +uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" +version = "1.5.6+0" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "7ed9347888fac59a618302ee38216dd0379c480d" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.12+0" + +[[deps.Xorg_libpciaccess_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "58972370b81423fc546c56a60ed1a009450177c3" +uuid = "a65dc6b1-eb27-53a1-bb3e-dea574b5389e" +version = "0.19.0+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXau_jll", "Xorg_libXdmcp_jll"] +git-tree-sha1 = "bfcaf7ec088eaba362093393fe11aa141fa15422" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.17.1+0" + +[[deps.Xorg_libxkbfile_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "ed756a03e95fff88d8f738ebc2849431bdd4fd1a" +uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" +version = "1.2.0+0" + +[[deps.Xorg_xcb_util_cursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] +git-tree-sha1 = "9750dc53819eba4e9a20be42349a6d3b86c7cdf8" +uuid = "e920d4aa-a673-5f3a-b3d7-f755a4d47c43" +version = "0.1.6+0" + +[[deps.Xorg_xcb_util_image_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_jll"] +git-tree-sha1 = "f4fc02e384b74418679983a97385644b67e1263b" +uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" +version = "0.4.1+0" + +[[deps.Xorg_xcb_util_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll"] +git-tree-sha1 = "68da27247e7d8d8dafd1fcf0c3654ad6506f5f97" +uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" +version = "0.4.1+0" + +[[deps.Xorg_xcb_util_keysyms_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_jll"] +git-tree-sha1 = "44ec54b0e2acd408b0fb361e1e9244c60c9c3dd4" +uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" +version = "0.4.1+0" + +[[deps.Xorg_xcb_util_renderutil_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_jll"] +git-tree-sha1 = "5b0263b6d080716a02544c55fdff2c8d7f9a16a0" +uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" +version = "0.3.10+0" + +[[deps.Xorg_xcb_util_wm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_jll"] +git-tree-sha1 = "f233c83cad1fa0e70b7771e0e21b061a116f2763" +uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" +version = "0.4.2+0" + +[[deps.Xorg_xkbcomp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] +git-tree-sha1 = "801a858fc9fb90c11ffddee1801bb06a738bda9b" +uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" +version = "1.4.7+0" + +[[deps.Xorg_xkeyboard_config_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] +git-tree-sha1 = "ed349d26affcacafbc7fc2941ace1fb98f71e715" +uuid = "33bec58e-1273-512f-9401-5d533626f822" +version = "2.47.0+1" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "a63799ff68005991f9d9491b6e95bd3478d783cb" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.6.0+0" + +[[deps.YAML]] +deps = ["Base64", "Dates", "Printf", "StringEncodings"] +git-tree-sha1 = "a1c0c7585346251353cddede21f180b96388c403" +uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" +version = "0.4.16" + +[[deps.ZMQ]] +deps = ["FileWatching", "PrecompileTools", "Printf", "Sockets", "ZeroMQ_jll"] +git-tree-sha1 = "5f1c7008e2258c61af0eafef8c1f536b9fffbbd2" +uuid = "c2297ded-f4af-51ae-bb23-16f91089e4e1" +version = "1.5.1" + +[[deps.ZeroMQ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "libsodium_jll"] +git-tree-sha1 = "766d90db2817565b667c1cc9cc420d668f2e8dba" +uuid = "8f1865be-045e-5c20-9c9f-bfbfb0764568" +version = "4.3.6+0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.3.1+2" + +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "446b23e73536f84e8037f5dce465e92275f6a308" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.7+1" + +[[deps.ZygoteRules]] +deps = ["ChainRulesCore", "MacroTools"] +git-tree-sha1 = "434b3de333c75fc446aa0d19fc394edafd07ab08" +uuid = "700de1a5-db45-46bc-99cf-38207098b444" +version = "0.2.7" + +[[deps.eudev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "c3b0e6196d50eab0c5ed34021aaa0bb463489510" +uuid = "35ca27e7-8b34-5b7f-bca9-bdc33f59eb06" +version = "3.2.14+0" + +[[deps.fzf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "b6a34e0e0960190ac2a4363a1bd003504772d631" +uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" +version = "0.61.1+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "850b06095ee71f0135d644ffd8a52850699581ed" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.13.3+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "125eedcb0a4a0bba65b657251ce1d27c8714e9d6" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.17.4+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.15.0+0" + +[[deps.libdecor_jll]] +deps = ["Artifacts", "Dbus_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pango_jll", "Wayland_jll", "xkbcommon_jll"] +git-tree-sha1 = "9bf7903af251d2050b467f76bdbe57ce541f7f4f" +uuid = "1183f4f0-6f2a-5f1a-908b-139f9cdfea6f" +version = "0.2.2+0" + +[[deps.libdrm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libpciaccess_jll"] +git-tree-sha1 = "63aac0bcb0b582e11bad965cef4a689905456c03" +uuid = "8e53e030-5e6c-5a89-a30b-be5b7263a166" +version = "2.4.125+1" + +[[deps.libevdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "56d643b57b188d30cccc25e331d416d3d358e557" +uuid = "2db6ffa8-e38f-5e21-84af-90c45d0032cc" +version = "1.13.4+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "646634dd19587a56ee2f1199563ec056c5f228df" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.4+0" + +[[deps.libinput_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "eudev_jll", "libevdev_jll", "mtdev_jll"] +git-tree-sha1 = "91d05d7f4a9f67205bd6cf395e488009fe85b499" +uuid = "36db933b-70db-51c0-b978-0f229ee0e533" +version = "1.28.1+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "e51150d5ab85cee6fc36726850f0e627ad2e4aba" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.58+0" + +[[deps.libsodium_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "011b0a7331b41c25524b64dc42afc9683ee89026" +uuid = "a9144af2-ca23-56d9-984f-0d03f7b5ccf8" +version = "1.0.21+0" + +[[deps.libva_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll", "Xorg_libXext_jll", "Xorg_libXfixes_jll", "libdrm_jll"] +git-tree-sha1 = "7dbf96baae3310fe2fa0df0ccbb3c6288d5816c9" +uuid = "9a156e7d-b971-5f62-b2c9-67348b8fb97c" +version = "2.23.0+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll"] +git-tree-sha1 = "11e1772e7f3cc987e9d3de991dd4f6b2602663a5" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.8+0" + +[[deps.micromamba_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "717df6f6892af4ee13279a73aa58474e58a88667" +uuid = "f8abcde7-e9b7-5caa-b8af-a437887ae8e4" +version = "2.3.1+0" + +[[deps.mtdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "b4d631fd51f2e9cdd93724ae25b2efc198b059b1" +uuid = "009596ad-96f7-51b1-9f1b-5ce2d5e8a71e" +version = "1.1.7+0" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.64.0+1" + +[[deps.oneTBB_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "da8c1f6eee04831f14edcfa5dae611d309807e57" +uuid = "1317d2d5-d96f-522e-a858-c73665f53c3e" +version = "2022.3.0+0" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.7.0+0" + +[[deps.pixi_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "3667b0931a7fe50f0a5554c61af00e5640019e21" +uuid = "4d7b5844-a134-5dcd-ac86-c8f19cd51bed" +version = "0.63.2+0" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "14cc7083fc6dff3cc44f2bc435ee96d06ed79aa7" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "10164.0.1+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e7b67590c14d487e734dcb925924c5dc43ec85f3" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "4.1.0+0" + +[[deps.xkbcommon_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] +git-tree-sha1 = "a1fc6507a40bf504527d0d4067d718f8e179b2b8" +uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" +version = "1.13.0+0" From e58f82fe0cff4bb796288ce8fa754d7df64244a4 Mon Sep 17 00:00:00 2001 From: AdityaPandeyCN Date: Fri, 19 Jun 2026 17:10:37 +0530 Subject: [PATCH 7/7] cuda backend Signed-off-by: AdityaPandeyCN --- .../pso_global_optimizers.jmd | 319 ++++++++++-------- 1 file changed, 169 insertions(+), 150 deletions(-) diff --git a/benchmarks/GlobalOptimization/pso_global_optimizers.jmd b/benchmarks/GlobalOptimization/pso_global_optimizers.jmd index 788dfcd86..1f7a5d137 100644 --- a/benchmarks/GlobalOptimization/pso_global_optimizers.jmd +++ b/benchmarks/GlobalOptimization/pso_global_optimizers.jmd @@ -4,20 +4,17 @@ author: Utkarsh, Chris Rackauckas --- This benchmark evaluates Particle Swarm Optimization (PSO) variants from -[ParallelParticleSwarms.jl](https://github.com/SciML/ParallelParticleSwarms.jl) -against established global optimizers on the +[ParallelParticleSwarms.jl](https://github.com/SciML/ParallelParticleSwarms.jl) against +established global optimizers on the [BlackBoxOptimizationBenchmarking.jl](https://github.com/jonathanBieler/BlackBoxOptimizationBenchmarking.jl) suite, using the [Optimization.jl](https://github.com/SciML/Optimization.jl) interface. -This tests both iterations and wall-clock time vs accuracy, i.e. for a given budget -(in iterations or time), what percentage of problems from the set is a solver able to solve. -For fairness with the baseline global optimizers, every PSO variant is run through the -same `Chain(global, NelderMead(), 0.9)` scheme used for the baselines, with one exception: -`HybridPSO_LBFGS` already carries an LBFGS local-refinement stage, so it is not chained -with a second NelderMead polish. All methods use the same trial count (`Ntrials = 40`), -the same `±5.5` search box, and the same success criterion (`|f - f_opt| < Δf`). +For fairness with the baseline global optimizers, the pure PSO variants are run through the +same `global → NelderMead` polish scheme used for the baselines. `HybridPSO_LBFGS` already +carries an L-BFGS local-refinement stage, so it is not chained with a second polish. ## Setup + ```julia using Random Random.seed!(42) @@ -30,23 +27,24 @@ const BBOB = BlackBoxOptimizationBenchmarking ENV["GKSwstype"] = "nul" gr() -using OptimizationBBO, OptimizationOptimJL, OptimizationNLopt, OptimizationSciPy +using OptimizationBBO, OptimizationOptimJL, OptimizationEvolutionary, OptimizationNLopt +using OptimizationMetaheuristics, OptimizationSciPy using ParallelParticleSwarms -using KernelAbstractions: CPU +using Enzyme +using KernelAbstractions +using CUDA using StaticArrays, LinearAlgebra +using ADTypes: AutoEnzyme const PSOKernel = ParallelParticleSwarms.ParallelPSOKernel const SyncPSOKernel = ParallelParticleSwarms.ParallelSyncPSOKernel const SerPSO = ParallelParticleSwarms.SerialPSO const HPso = ParallelParticleSwarms.HybridPSO -const BACKEND = CPU() +const BACKEND = CUDABackend() ``` -The success tracker and the baseline `Chain`-aware timed solve are unchanged from the -upstream BBOB harness. Each wraps the objective so that the first evaluation crossing the -success threshold records its wall-clock time. ```julia function make_success_tracker(f_raw, f_opt, Δf) t0 = Ref(time()) @@ -82,25 +80,19 @@ end function benchmark_time_to_success( optimizer::Union{Chain, BenchmarkSetup}, funcs::Vector{BBOBFunction}; - Ntrials::Int = 40, dimension::Int = 3, Δf::Real = 1e-6, max_run_length::Int = 100_000 + Ntrials::Int = 20, dimension::Int = 3, Δf::Real = 1e-6, max_run_length::Int = 50_000 ) all_times = Float64[] for f in funcs - # warmup so JIT/compile latency stays out of the timed region - try - tw, _, _ = make_success_tracker(f.f, f.f_opt, Δf) - solve_problem_timed(optimizer, tw, dimension, 50) - catch - end for _ in 1:Ntrials - tracked_f, t0_ref, tts_ref = make_success_tracker(f.f, f.f_opt, Δf) + tracked_f, t0_ref, tts_ref = make_success_tracker(f, f.f_opt, Δf) try t0_ref[] = time() solve_problem_timed(optimizer, tracked_f, dimension, max_run_length) push!(all_times, tts_ref[]) catch err push!(all_times, Inf) - @warn(string(optimizer, " failed: ", err)) + @warn "baseline tts failed" f err end end end @@ -116,66 +108,83 @@ function success_rate_cdf(all_times::Vector{Float64}, time_thresholds::AbstractV end ``` -PSO variants require an `SVector` interface. To match the baselines, each PSO run is wrapped -in the same chaining scheme: the swarm consumes the first `p` fraction of the budget, then a -NelderMead polish (derivative-free, unbounded) consumes the rest. The polish runs on the -*same* objective closure, so the success tracker sees evaluations from both stages. -`HybridPSO_LBFGS` already performs LBFGS refinement internally and is run with `polish = false`. -```julia -function pso_chained(opt, obj, x0::SVector{D}, lb::SVector{D}, ub::SVector{D}, - run_length::Int; p = 0.9, local_maxiters = 20, polish = true) where {D} - rl1 = max(1, round(Int, p * run_length)) - rl2 = run_length - rl1 +PSO variants require an `SVector` interface and a custom solve loop. HybridPSO uses +Enzyme reverse-mode AD for its L-BFGS local refinement step — ForwardDiff's Dual +numbers hit StaticArrays `similar_type` paths that break GPU compilation on some +piecewise BBOB functions; Enzyme differentiates at the LLVM IR level and sidesteps +that issue. - ad = opt isa HPso ? AutoForwardDiff() : Optimization.SciMLBase.NoAD() +The pure PSO variants (`SerialPSO`, `PSOKernel`, `SyncPSOKernel`) take an optional +NelderMead polish over the final `1 - p` fraction of the budget, matching the baseline +chains. `HybridPSO_LBFGS` runs with `polish = false` since it already refines locally. + +```julia +function pso_solve(opt, f::BBOBFunction, D::Int, maxiters::Int; + local_maxiters::Int = 20, polish::Bool = false, p::Float64 = 0.9) + safe = x -> (v = f(x); isfinite(v) ? v : 1.0f10) # keep diverged particles from poisoning the swarm + obj = (x, _) -> safe(x) + ad = opt isa HPso ? AutoEnzyme() : Optimization.SciMLBase.NoAD() optf = OptimizationFunction{false}(obj, ad) + lb = SVector{D, Float32}(ntuple(_ -> -5.0f0, Val(D))) + ub = SVector{D, Float32}(ntuple(_ -> 5.0f0, Val(D))) + x0 = SVector{D, Float32}(ntuple(_ -> -5.0f0 + rand(Float32) * 10.0f0, Val(D))) + + do_polish = polish && !(opt isa HPso) + rl1 = do_polish ? max(1, round(Int, p * maxiters)) : maxiters prob = OptimizationProblem{false}(optf, x0, nothing; lb, ub) - sol = opt isa HPso ? - solve(prob, opt; maxiters = rl1, local_maxiters, abstol = 1e-8, reltol = 1e-8) : + sol = opt isa HPso ? + solve(prob, opt; maxiters = rl1, local_maxiters = 50, n_hop_rounds = 1, + abstol = 1.0f-8, reltol = 1.0f-8) : solve(prob, opt; maxiters = rl1) - u = sol.u isa SVector ? sol.u : sol.u[] - (polish && rl2 > 0) || return u + (do_polish && maxiters - rl1 > 0) || return sol - # NelderMead polish: unbounded + derivative-free, identical to the baseline chains - poptf = OptimizationFunction(obj, Optimization.SciMLBase.NoAD()) - pprob = OptimizationProblem(poptf, collect(u)) - psol = solve(pprob, NelderMead(); maxiters = rl2) - return psol.u + # NelderMead polish on the same objective, identical to the baseline chains + u0 = _extract_u(sol, D) + poptf = OptimizationFunction((x, _) -> safe(x), Optimization.SciMLBase.NoAD()) + pprob = OptimizationProblem(poptf, Vector{Float32}(u0)) + solve(pprob, NelderMead(); maxiters = maxiters - rl1) +end + +function _extract_u(sol, D) + u = sol.u + u isa SVector && return u + u isa AbstractVector && return SVector{D}(u) + u[] end function pso_benchmark(opt, funcs, run_length; - Ntrials = 40, dimension = 3, local_maxiters = 20, Δf = 1e-6, - CI_quantile = 0.25, p = 0.9, polish = true, n_particles = num_particles) - Nf = length(funcs); Nr = length(run_length); D = dimension - success = zeros(Nf, Nr); dist = zeros(Nf, Nr); fmin = zeros(Nf, Nr) - lb = SVector{D}(ntuple(_ -> -5.5, Val(D))) - ub = SVector{D}(ntuple(_ -> 5.5, Val(D))) - initx() = SVector{D}(ntuple(_ -> -5.5 + rand() * 11.0, Val(D))) - - for f in funcs # warmup (excluded from timing) - try pso_chained(opt, (x, _) -> f.f(Vector(x)), initx(), lb, ub, 3; - p, local_maxiters, polish) catch; end - end + Ntrials = 10, dimension = 3, local_maxiters = 20, Δf = 1e-6, CI_quantile = 0.25, + polish = false) + Nf = length(funcs) + Nr = length(run_length) + success = zeros(Float64, Nf, Nr) + dist = zeros(Float64, Nf, Nr) + fmin = zeros(Float64, Nf, Nr) t0 = time() for (fi, f) in enumerate(funcs) - xopt = SVector{D}(f.x_opt[1:D]) - obj = (x, _) -> f.f(Vector(x)) + xopt = SVector{dimension, Float32}(f.x_opt[1:dimension]) for (ri, rl) in enumerate(run_length) hits = 0; dsum = 0.0; fsum = 0.0 for _ in 1:Ntrials - u = try pso_chained(opt, obj, initx(), lb, ub, rl; - p, local_maxiters, polish) catch; nothing end - if u !== nothing - fval = f.f(Vector(u)) # final value on the polished point + sol = try + pso_solve(opt, f, dimension, rl; local_maxiters, polish) + catch err + @warn "pso_solve failed" f rl err + nothing + end + if sol !== nothing + u = _extract_u(sol, dimension) + fval = sol.objective isa Real ? Float64(sol.objective) : + Float64(sol.objective[]) hits += abs(fval - f.f_opt) < Δf ? 1 : 0 - dsum += norm(u .- xopt) + dsum += Float64(norm(u .- xopt)) fsum += fval - f.f_opt end end success[fi, ri] = hits / Ntrials - dist[fi, ri] = dsum / Ntrials - fmin[fi, ri] = fsum / Ntrials + dist[fi, ri] = dsum / Ntrials + fmin[fi, ri] = fsum / Ntrials end end elapsed = time() - t0 @@ -193,35 +202,46 @@ function pso_benchmark(opt, funcs, run_length; minimum = vec(mean(fmin, dims = 1)), runtime = elapsed, Neffective = Neff, - # true eval count: p·budget swarm-evals (× n_particles) + (1-p)·budget polish-evals - callcount = p .* run_length .* n_particles .+ (1 - p) .* run_length, + callcount = Float64.(run_length), success_rate_per_function = [success[fi, end] for fi in 1:Nf], ) end -function pso_tts(opt, funcs; Ntrials = 40, dimension = 3, Δf = 1e-6, - local_maxiters = 20, max_run_length = 100_000, p = 0.9, polish = true) - all_times = Float64[]; D = dimension - lb = SVector{D}(ntuple(_ -> -5.5, Val(D))) - ub = SVector{D}(ntuple(_ -> 5.5, Val(D))) - initx() = SVector{D}(ntuple(_ -> -5.5 + rand() * 11.0, Val(D))) - - for f in funcs # warmup, not timed - try pso_chained(opt, (x, _) -> f.f(Vector(x)), initx(), lb, ub, 50; - p, local_maxiters, polish) catch; end - end +function pso_tts(opt, funcs; Ntrials = 10, dimension = 3, Δf = 1e-6, + local_maxiters = 20, max_run_length = 50_000, polish = false, p = 0.9) + all_times = Float64[] + D = dimension + lb = SVector{D, Float32}(ntuple(_ -> -5.0f0, Val(D))) + ub = SVector{D, Float32}(ntuple(_ -> 5.0f0, Val(D))) for f in funcs for _ in 1:Ntrials - tracked, t0_ref, tts_ref = make_success_tracker(f.f, f.f_opt, Δf) - obj = (x, _) -> tracked(Vector(x)) # both stages feed this tracker + safe = x -> (v = f(x); isfinite(v) ? v : 1.0f10) + obj = (x, _) -> safe(x) + ad = opt isa HPso ? AutoEnzyme() : Optimization.SciMLBase.NoAD() + optf = OptimizationFunction{false}(obj, ad) + x0 = SVector{D, Float32}(ntuple(_ -> -5.0f0 + rand(Float32) * 10.0f0, Val(D))) + do_polish = polish && !(opt isa HPso) + rl1 = do_polish ? max(1, round(Int, p * max_run_length)) : max_run_length + prob = OptimizationProblem{false}(optf, x0, nothing; lb, ub) + t0 = time() try - t0_ref[] = time() - pso_chained(opt, obj, initx(), lb, ub, max_run_length; - p, local_maxiters, polish) - push!(all_times, tts_ref[]) + sol = opt isa HPso ? + solve(prob, opt; maxiters = rl1, local_maxiters = 50, n_hop_rounds = 1, + abstol = 1.0f-8, reltol = 1.0f-8) : + solve(prob, opt; maxiters = rl1) + if do_polish && max_run_length - rl1 > 0 + u0 = _extract_u(sol, D) + poptf = OptimizationFunction((x, _) -> safe(x), Optimization.SciMLBase.NoAD()) + pprob = OptimizationProblem(poptf, Vector{Float32}(u0)) + sol = solve(pprob, NelderMead(); maxiters = max_run_length - rl1) + end + elapsed = time() - t0 + fval = sol.objective isa Real ? Float64(sol.objective) : + Float64(sol.objective[]) + push!(all_times, abs(fval - f.f_opt) < Δf ? elapsed : Inf) catch err push!(all_times, Inf) - @warn(string(opt, " failed: ", err)) + @warn "pso tts failed" f err end end end @@ -235,15 +255,15 @@ chain = (t; isboxed = false) -> Chain( BenchmarkSetup(NelderMead(), isboxed = false), 0.9) -test_functions = BBOB.list_functions() dimension = 3 -run_length = round.(Int, 10 .^ LinRange(1, 5, 30)) -num_particles = 1024 +test_functions = BBOB.bbob_suite(Val(dimension)) +run_length = round.(Int, 10 .^ LinRange(1, 4, 10)) +num_particles = 8 PSO_KEYS = Set(["SerialPSO", "PSOKernel", "SyncPSOKernel", "HybridPSO_LBFGS"]) # Pure PSO variants get the same NelderMead polish as the baselines. -# HybridPSO already carries an LBFGS local stage, so it is NOT chained a second time. +# HybridPSO already carries an L-BFGS local stage, so it is NOT chained a second time. PSO_POLISH = Dict( "SerialPSO" => true, "PSOKernel" => true, @@ -252,36 +272,35 @@ PSO_POLISH = Dict( ) setup = Dict( - # Baseline global optimizers - "NelderMead" => NelderMead(), - "NLopt_GN_CRS2_LM" => chain(NLopt.GN_CRS2_LM(), isboxed = true), - "BBO_adaptive_de_rand_1_bin" => chain(BBO_adaptive_de_rand_1_bin(), isboxed = true), - "BBO_adaptive_de_rand_1_bin_radiuslimited" => chain(BBO_adaptive_de_rand_1_bin_radiuslimited(), isboxed = true), - "BBO_de_rand_2_bin" => chain(BBO_de_rand_2_bin(), isboxed = true), - "ScipyDifferentialEvolution" => chain(ScipyDifferentialEvolution(), isboxed = true), - # PSO variants + "NelderMead" => NelderMead(), + "NLopt.GN_CRS2_LM()" => chain(NLopt.GN_CRS2_LM(), isboxed = true), + "NLopt.GN_ESCH()" => chain(NLopt.GN_ESCH(), isboxed = true), + "OptimizationEvolutionary.GA()" => chain(OptimizationEvolutionary.GA(), isboxed = true), + "OptimizationEvolutionary.DE()" => chain(OptimizationEvolutionary.DE(), isboxed = true), + "OptimizationEvolutionary.ES()" => chain(OptimizationEvolutionary.ES(), isboxed = true), + "Optim.SAMIN" => chain(SAMIN(verbosity = 0), isboxed = true), + "BBO_adaptive_de_rand_1_bin" => chain(BBO_adaptive_de_rand_1_bin(), isboxed = true), + "OptimizationMetaheuristics.ECA" => chain(OptimizationMetaheuristics.ECA(), isboxed = true), + "ScipyDifferentialEvolution" => chain(ScipyDifferentialEvolution(), isboxed = true), "SerialPSO" => SerPSO(num_particles), "PSOKernel" => PSOKernel(num_particles; backend = BACKEND, global_update = true), "SyncPSOKernel" => SyncPSOKernel(num_particles; backend = BACKEND), - "HybridPSO_LBFGS" => HPso(pso = PSOKernel(num_particles; backend = BACKEND); backend = BACKEND), + "HybridPSO_LBFGS" => HPso(pso = SyncPSOKernel(num_particles; backend = BACKEND); backend = BACKEND), ) @memoize run_bench(algo) = algo in PSO_KEYS ? pso_benchmark(setup[algo], test_functions, run_length; - Ntrials = 40, dimension, polish = PSO_POLISH[algo]) : - BBOB.benchmark(setup[algo], test_functions, run_length; Ntrials = 40, dimension) + Ntrials = 10, dimension, polish = PSO_POLISH[algo]) : + BBOB.benchmark(setup[algo], test_functions, run_length; Ntrials = 10) @memoize run_tts(algo) = algo in PSO_KEYS ? pso_tts(setup[algo], test_functions; - Ntrials = 40, dimension, polish = PSO_POLISH[algo]) : - benchmark_time_to_success(setup[algo], test_functions; Ntrials = 40, dimension) + Ntrials = 10, dimension, polish = PSO_POLISH[algo]) : + benchmark_time_to_success(setup[algo], test_functions; Ntrials = 10, dimension) ``` ## Test all (iterations) -The sweep runs serially. Concurrent `BBOB.benchmark` calls contend for cores (inflating the -per-algorithm `runtime` used by the relative-runtime chart) and the threaded SciPy calls race -on the Python GIL. Failed runs are recorded as `nothing` and skipped in the plots. ```julia const MARKERS = [:circle, :diamond, :utriangle, :square, :star5, :dtriangle, :pentagon, :hexagon, :cross, :xcross, :rtriangle, :ltriangle, :star4, :star8, :heptagon, :octagon, @@ -289,32 +308,35 @@ const MARKERS = [:circle, :diamond, :utriangle, :square, :star5, :dtriangle, :pe const LINESTYLES = [:solid, :dash, :dot, :dashdot, :dashdotdot] labels = collect(keys(setup)) -results = Vector{Union{BBOB.BenchmarkResults, Nothing}}(nothing, length(setup)) +results = Array{BBOB.BenchmarkResults}(undef, length(setup)) for (i, algo) in enumerate(labels) - @info "Running: $algo ..." - try - results[i] = run_bench(algo) - @info " done" success = round(results[i].success_rate[end], digits = 3) - catch err - @warn "$algo failed" exception = (err, catch_backtrace()) - end + algo in PSO_KEYS || continue + @info "PSO: $algo ..." + results[i] = run_bench(algo) + @info " done" success = round(results[i].success_rate[end], digits = 3) +end + +# baselines run serially: Scipy calls into Python (GIL) and @memoize writes a shared cache +for (i, algo) in enumerate(labels) + algo in PSO_KEYS && continue + results[i] = run_bench(algo) end -ok = findall(!isnothing, results) results ``` ## Success Rate vs. Iterations + ```julia -order = sortperm([results[i].success_rate[end] for i in ok], rev = true) -idx = ok[order] +idx = sortperm([b.success_rate[end] for b in results], rev = true) p = plot(xscale = :log10, legend = :outerright, - size = (700, 350), margin = 10Plots.px, dpi = 200) + size = (1000, 400), margin = 10Plots.px, dpi = 200, + xlabel = "Iterations", ylabel = "Success rate", + xlim = (1, 1e4), ylim = (0, 1)) for (j, i) in enumerate(idx) - plot!(results[i], label = labels[i], showribbon = false, - lw = 2.5, xlim = (1, 1e5), x = :run_length, + plot!(results[i].run_length, results[i].success_rate, label = labels[i], lw = 2.5, markershape = MARKERS[mod1(j, length(MARKERS))], linestyle = LINESTYLES[mod1(j, length(LINESTYLES))], markersize = 4, markerstrokewidth = 0) @@ -324,34 +346,33 @@ p ## Test all (wall-clock time to success) -For the time-based benchmark, each optimizer is run once with a large iteration budget -(100,000 iterations) per (function, trial) pair. The objective function is wrapped to -detect the first evaluation that achieves the success criterion (objective < Δf + f_opt) -and record the wall-clock time at that moment. This gives a true "time to success" for -each trial, from which we build a CDF. Because it counts per-evaluation cost directly, this -plot is the cost-fair comparison: a 1024-particle PSO iteration and a single-point DE -iteration are weighted by their actual work, not treated as equal x-axis units. ```julia tts_results = Dict{String, Vector{Float64}}() for algo in labels + algo in PSO_KEYS || continue + tts_results[algo] = run_tts(algo) +end + +for algo in labels + algo in PSO_KEYS && continue tts_results[algo] = run_tts(algo) end ``` ## Success Rate vs. Wall-Clock Time + ```julia all_finite = filter(isfinite, vcat(values(tts_results)...)) t_lo = minimum(all_finite) / 2 t_hi = maximum(all_finite) * 2 time_thresholds = 10 .^ range(log10(t_lo), log10(t_hi), length = 50) -cdfs = Dict(algo => success_rate_cdf(tts_results[algo], time_thresholds) for algo in labels) -order = sortperm([cdfs[labels[i]][end] for i in ok], rev = true) -idx = ok[order] +cdfs = Dict(algo => success_rate_cdf(tts_results[algo], time_thresholds) for algo in labels) +idx = sortperm([cdfs[l][end] for l in labels], rev = true) p = plot(xscale = :log10, legend = :outerright, - size = (700, 350), margin = 10Plots.px, dpi = 200, + size = (1000, 400), margin = 10Plots.px, dpi = 200, xlabel = "Wall time (s)", ylabel = "Success rate", ylim = (0, 1)) for (j, i) in enumerate(idx) plot!(time_thresholds, cdfs[labels[i]], label = labels[i], lw = 2.5, @@ -363,29 +384,31 @@ p ``` ## Success Rate per Function Heatmap + ```julia -success_rate_per_function = reduce(hcat, results[i].success_rate_per_function for i in ok) +success_rate_per_function = reduce(hcat, b.success_rate_per_function for b in results) -order = sortperm(mean(success_rate_per_function, dims = 1)[:], rev = false) +idx = sortperm(mean(success_rate_per_function, dims = 1)[:], rev = false) idxfunc = 1:length(test_functions) -p = heatmap( - string.(test_functions)[idxfunc], labels[ok][order], - success_rate_per_function[idxfunc, order]', - cmap = :RdYlGn, xticks = :all, yticks = :all, xrotation = 45, dpi = 200) +heatmap( + string.(test_functions)[idxfunc], labels[idx], success_rate_per_function[idxfunc, idx]', + colormap = :RdYlGn, clims = (0, 1), + xticks = :all, yticks = :all, xrotation = 45, + size = (1100, 550), dpi = 200, colorbar_title = "Success rate") ``` ## Distance to Minimizer vs. Iterations + ```julia -order = sortperm([results[i].distance_to_minimizer[end] for i in ok], rev = false) -idx = ok[order] +idx = sortperm([b.distance_to_minimizer[end] for b in results], rev = false) p = plot(xscale = :log10, legend = :outerright, - size = (900, 500), margin = 10Plots.px, ylim = (0, 5)) + size = (1000, 500), margin = 10Plots.px, dpi = 200, + xlabel = "Iterations", ylabel = "Mean distance to minimum", + xlim = (1, 1e4), ylim = (0, 5)) for (j, i) in enumerate(idx) - plot!(results[i].run_length, results[i].distance_to_minimizer, label = labels[i], - showribbon = false, lw = 2, xlim = (1, 1e5), - xlabel = "Iterations", ylabel = "Mean distance to minimum", + plot!(results[i].run_length, results[i].distance_to_minimizer, label = labels[i], lw = 2, markershape = MARKERS[mod1(j, length(MARKERS))], linestyle = LINESTYLES[mod1(j, length(LINESTYLES))], markersize = 4, markerstrokewidth = 0) @@ -395,16 +418,12 @@ p ## Relative Runtime -Produced from the serial sweep above so the per-algorithm wall-clock figures are comparable. -All methods used the same `Ntrials = 40`, so no per-trial normalization is needed. ```julia ref = findfirst("NelderMead" .== labels) -runtimes = [results[i] === nothing ? NaN : results[i].runtime for i in 1:length(labels)] +runtimes = getfield.(results, :runtime) runtimes = runtimes ./ runtimes[ref] -bar( - labels[ok], runtimes[ok], xrotation = 45, xticks = :all, - ylabel = "Run time relative to NM", - yscale = :log10, yticks = [0.1, 1, 10, 100], - legend = false, margin = 25Plots.px) +bar(labels, runtimes, xrotation = 45, xticks = :all, + ylabel = "Run time relative to NM", yscale = :log10, + legend = false, size = (1000, 500), margin = 25Plots.px, dpi = 200) ``` \ No newline at end of file