├── .gitignore ├── LICENSE ├── README.md ├── closed-system ├── Control.jl ├── Data │ └── .gitignore ├── Figures │ └── .gitignore ├── Manifest.toml └── Project.toml ├── continuously-updated-control ├── Control.jl ├── Data │ └── .gitignore ├── Figures │ └── .gitignore ├── Manifest.toml └── Project.toml ├── hand-crafted ├── Control.jl ├── Data │ └── .gitignore ├── Figures │ └── .gitignore ├── Manifest.toml └── Project.toml ├── homodyne-current ├── Control.jl ├── Data │ └── .gitignore ├── Figures │ └── .gitignore ├── Manifest.toml ├── Project.toml └── parameters_qb.jl ├── misc └── method.png └── piecewise-constant-control ├── Control.jl ├── Data └── .gitignore ├── Figures └── .gitignore ├── Manifest.toml ├── Project.toml └── parameters_qb.jl /.gitignore: -------------------------------------------------------------------------------- 1 | # Files generated by invoking Julia with --code-coverage 2 | *.jl.cov 3 | *.jl.*.cov 4 | 5 | # Files generated by invoking Julia with --track-allocation 6 | *.jl.mem 7 | 8 | # System-specific files and directories generated by the BinaryProvider and BinDeps packages 9 | # They contain absolute paths specific to the host computer, and so should not be committed 10 | deps/deps.jl 11 | deps/build.log 12 | deps/downloads/ 13 | deps/usr/ 14 | deps/src/ 15 | 16 | # Build artifacts for creating documentation generated by the Documenter package 17 | docs/build/ 18 | docs/site/ 19 | 20 | # File generated by Pkg, the package manager, based on a corresponding Project.toml 21 | # It records a fixed state of all packages used by the project. As such, it should not be 22 | # committed for packages, but should be committed for applications that require a static 23 | # environment. 24 | # Manifest.toml 25 | 26 | # Mac OS 27 | *.DS_Store 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 frankschae 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Control of Stochastic Quantum Dynamics with Differentiable Programming 2 | 3 | This repository contains a julia implementation for the method introduced in our 4 | [paper](https://arxiv.org/abs/2101.01190) based on the [SciML ecosytem](https://sciml.ai/). 5 | A slimmed-down version of the examples with faster runtimes is provided in the 6 | [SciML/DiffEqFlux docs](https://diffeqflux.sciml.ai/dev/examples/SDE_control/). 7 | 8 | ### Abstract of the paper 9 | Controlling stochastic dynamics of a quantum system is an indispensable task in 10 | fields such as quantum information processing and metrology. Yet, there is no general 11 | ready-made approach to design efficient control strategies. Here, we propose a 12 | framework for the automated design of control schemes based on differentiable 13 | programming (∂P). We apply this approach to state preparation and stabilization 14 | of a qubit subjected to homodyne detection. To this end, we formulate the control 15 | task as an optimization problem where the loss function quantifies the distance 16 | from the target state and we employ neural networks (NNs) as controllers. The 17 | system's time evolution is governed by a stochastic differential equation (SDE). 18 | To implement efficient training, we backpropagate the gradient information from 19 | the loss function through the SDE solver using adjoint sensitivity methods. As a 20 | first example, we feed the quantum state to the controller and focus on different 21 | methods to obtain gradients. As a second example, we directly feed the homodyne 22 | detection signal to the controller. The instantaneous value of the homodyne current 23 | contains only very limited information on the actual state of the system, covered 24 | in unavoidable photon-number fluctuations. Despite the resulting poor signal-to-noise 25 | ratio, we can train our controller to prepare and stabilize the qubit to a target 26 | state with a mean fidelity around 85%. We also compare the solutions found by the 27 | NN to a hand-crafted control strategy. 28 | 29 | 30 |

31 | scheme 32 |

33 | 34 | ### Control scenarios 35 | 36 | The repository contains different examples for the control of a single qubit: 37 | 38 | * SDE control based on full knowledge of the state of the qubit and a continuously 39 | updated control drive using continuous adjoint sensitivity methods, see [the file](./continuously-updated-control/Control.jl). 40 | 41 | * SDE control based on full knowledge of the state of the qubit and a 42 | piecewise-constant control drive using a direct AD approach, see [the file](./piecewise-constant-control/Control.jl). 43 | 44 | * SDE control based on the record of the measured homodyne current and a 45 | piecewise-constant control drive using a direct AD approach, see [the file](./homodyne-current/Control.jl). 46 | 47 | * ODE control (closed quantum system) based on full knowledge of the state of 48 | the qubit and a continuously updated control drive using continuous adjoint 49 | sensitivity methods, see [the file](./closed-system/Control.jl). 50 | 51 | * SDE control based on full knowledge of the state of the qubit and a continuously 52 | updated control drive using the hand-crafted strategy, see [the file](./hand_crafted/Control.jl). 53 | 54 | 55 | ### How to run/ prerequisites: 56 | 57 | - install [julia](https://julialang.org/downloads/) 58 | - individual files can be executed by calling, e.g., `julia --threads 10 Control.jl 0.001 1000 1` 59 | from terminal. Please find the possible parser arguments in the respective julia file. 60 | - output data/figures are stored in the associated data/figures folder. 61 | - other physical systems can be implemented by modifying the respective drift and 62 | diffusion functions: 63 | 64 | ```julia 65 | 66 | function qubit_drift!(du,u,p,t) 67 | # expansion coefficients |Ψ> = ce |e> + cd |d> 68 | ceR, cdR, ceI, cdI = u # real and imaginary parts 69 | 70 | # Δ: atomic frequency 71 | # Ω: Rabi frequency for field in x direction 72 | # κ: spontaneous emission 73 | Δ, Ωmax, κ = p[end-2:end] 74 | nn_weights = p[1:end-3] 75 | Ω = (nn(u, nn_weights).*Ωmax)[1] 76 | 77 | @inbounds begin 78 | du[1] = 1//2*(ceI*Δ-ceR*κ+cdI*Ω) 79 | du[2] = -cdI*Δ/2 + 1*ceR*(cdI*ceI+cdR*ceR)*κ+ceI*Ω/2 80 | du[3] = 1//2*(-ceR*Δ-ceI*κ-cdR*Ω) 81 | du[4] = cdR*Δ/2 + 1*ceI*(cdI*ceI+cdR*ceR)*κ-ceR*Ω/2 82 | end 83 | return nothing 84 | end 85 | 86 | function qubit_diffusion!(du,u,p,t) 87 | ceR, cdR, ceI, cdI = u # real and imaginary parts 88 | 89 | @inbounds begin 90 | du[2] += sqrt(κ)*ceR 91 | du[4] += sqrt(κ)*ceI 92 | end 93 | return nothing 94 | end 95 | 96 | ``` 97 | to the system at-hand. 98 | 99 | - alternative basis expansions replacing the neural networks are described in 100 | the [docs](https://diffeqflux.sciml.ai/dev/layers/BasisLayers/). For instance, 101 | one may use a tensor layer of a polynomial basis expansion: 102 | ```julia 103 | A = [PolynomialBasis(5)] 104 | nn = TensorLayer(A, 4) 105 | p_nn = nn.p 106 | ``` 107 | 108 | 109 | ## Authors: 110 | 111 | - [Frank Schäfer](https://github.com/frankschae) 112 | - Pavel Sekatski 113 | - [Martin Koppenhöfer](https://github.com/mako-git) 114 | - Christoph Bruder 115 | - [Michal Kloc](https://github.com/MikeKlocCZ) 116 | 117 | ``` 118 | @article{schaefer_DP_2021, 119 | title={Control of Stochastic Quantum Dynamics with Differentiable Programming}, 120 | author={Frank Sch\"{a}fer, Pavel Sekatski, Martin Koppenh\"{o}fer, Christoph Bruder, Michal Kloc}, 121 | journal={arXiv preprint arXiv:2101.01190}, 122 | year={2021} 123 | } 124 | ``` 125 | -------------------------------------------------------------------------------- /closed-system/Control.jl: -------------------------------------------------------------------------------- 1 | # make your scripts automatically re-activate your project 2 | cd(@__DIR__) 3 | using Pkg; Pkg.activate("."); Pkg.instantiate() 4 | 5 | # load packages 6 | using Flux, DiffEqFlux, DiffEqSensitivity 7 | using DifferentialEquations 8 | using Plots 9 | using BSON 10 | using Statistics 11 | using ReverseDiff, Zygote, ForwardDiff 12 | using LinearAlgebra 13 | using Random 14 | using BenchmarkTools, Test 15 | 16 | ################################################# 17 | # read parameters from command line 18 | lr = 0.0015f0 #parse(Float64,ARGS[1]) #0.05 19 | epochs = 400 #parse(Int,ARGS[2]) #100 20 | slurmidx = 1 #parse(Int,ARGS[3]) #1 21 | 22 | numtraj = 256 # number of trajectories in parallel simulations for training 23 | numtrajplot = 256 # .. for plotting 24 | 25 | # time range for the solver 26 | dt = 0.01f0 #0.001f0 27 | tinterval = 0.02f0 28 | tstart = 0.0f0 29 | Nintervals = 150 # total number of intervals, total time = t_interval*Nintervals 30 | tspan = (tstart,tinterval*Nintervals) 31 | 32 | # Hamiltonian parameters 33 | Δ = 20.0f0 34 | Ωmax = 10.0f0 # control parameter (maximum amplitude) 35 | 36 | # loss hyperparameters 37 | C1 = Float32(1.0) # evolution state fidelity 38 | C2 = Float32(0.0) # action amplitudes 39 | C3 = Float32(0.0) # evolution state fidelity for last few steps! 40 | 41 | struct Parameters{flType,intType,tType} 42 | lr::flType 43 | epochs::intType 44 | numtraj::intType 45 | numtrajplot::intType 46 | dt::flType 47 | tinterval::flType 48 | tspan::tType 49 | Nintervals::intType 50 | Δ::flType 51 | Ωmax::flType 52 | C1::flType 53 | C2::flType 54 | C3::flType 55 | end 56 | 57 | myparameters = Parameters{typeof(dt),typeof(numtraj), typeof(tspan)}( 58 | lr, epochs, numtraj, numtrajplot, dt, tinterval, tspan, Nintervals, 59 | Δ, Ωmax, C1, C2, C3) 60 | 61 | 62 | ################################################ 63 | # Define Neural Network 64 | 65 | # state-aware 66 | nn = FastChain( 67 | FastDense(4, 256, relu, initW = Flux.glorot_uniform, initb = Flux.glorot_uniform), 68 | FastDense(256, 64, relu, initW = Flux.glorot_uniform, initb = Flux.glorot_uniform), 69 | FastDense(64, 1, softsign, initW = Flux.glorot_uniform, initb = Flux.glorot_uniform)) 70 | p_nn = initial_params(nn) 71 | 72 | ############################################### 73 | # initial state anywhere on the Bloch sphere 74 | function prepare_initial(dt, n_par) 75 | # shape 4 x n_par 76 | # input number of parallel realizations and dt for type inference 77 | # random position on the Bloch sphere 78 | theta = acos.(2*rand(typeof(dt),n_par).-1) # uniform sampling for cos(theta) between -1 and 1 79 | phi = rand(typeof(dt),n_par)*2*pi # uniform sampling for phi between 0 and 2pi 80 | # real and imaginary parts ceR, cdR, ceI, cdI 81 | u0 = [cos.(theta/2), sin.(theta/2).*cos.(phi), false*theta, sin.(theta/2).*sin.(phi)] 82 | return vcat(transpose.(u0)...) # build matrix 83 | end 84 | 85 | # target state 86 | # ψtar = |up> 87 | 88 | u0 = prepare_initial(myparameters.dt, myparameters.numtraj) 89 | 90 | ############################################### 91 | # Define ODE 92 | 93 | function qubit(u,p,t) 94 | # expansion coefficients |Ψ> = ce |e> + cd |d> 95 | ceR, cdR, ceI, cdI = u # real and imaginary parts 96 | 97 | # Δ: atomic frequency 98 | # Ω: Rabi frequency for field in x direction 99 | Δ = p[end-1] 100 | Ωmax = p[end] 101 | nn_weights = p[1:end-2] 102 | 103 | Ω = (nn(u, nn_weights).*Ωmax)[1] 104 | 105 | dceR = 1//2*(ceI*Δ+cdI*Ω) 106 | dcdR = -cdI*Δ/2 +ceI*Ω/2 107 | dceI = 1//2*(-ceR*Δ-cdR*Ω) 108 | dcdI = cdR*Δ/2-ceR*Ω/2 109 | 110 | return [dceR, dcdR, dceI, dcdI] 111 | end 112 | 113 | 114 | # normalization callback 115 | 116 | condition(u,t,integrator) = true 117 | function affect!(integrator) 118 | integrator.u=integrator.u/norm(integrator.u) 119 | end 120 | cb = DiscreteCallback(condition,affect!,save_positions=(false,false)) 121 | 122 | 123 | # get control pulses 124 | p_all = [p_nn; myparameters.Δ; myparameters.Ωmax] 125 | # define ODE problem 126 | prob = ODEProblem{false}(qubit, vec(u0[:,1]), myparameters.tspan, p_all, 127 | callback=cb 128 | ) 129 | 130 | ######################################### 131 | # compute loss 132 | function g(u,p,t) 133 | ceR = @view u[1,:,:] 134 | cdR = @view u[2,:,:] 135 | ceI = @view u[3,:,:] 136 | cdI = @view u[4,:,:] 137 | p[1]*mean((cdR.^2 + cdI.^2) ./ (ceR.^2 + cdR.^2 + ceI.^2 + cdI.^2)) 138 | end 139 | 140 | function loss(p, u0, myparameters::Parameters; sensealg = ForwardDiffSensitivity()) 141 | pars = [p; myparameters.Δ; myparameters.Ωmax] 142 | 143 | function prob_func(prob, i, repeat) 144 | # prepare initial state and applied control pulse 145 | u0tmp = deepcopy(vec(u0[:,i])) 146 | remake(prob, 147 | p = pars, 148 | u0 = u0tmp, 149 | callback = cb 150 | ) 151 | end 152 | 153 | ensembleprob = EnsembleProblem(prob, 154 | prob_func = prob_func, 155 | safetycopy = true 156 | ) 157 | 158 | _sol = solve(ensembleprob, Tsit5(), EnsembleThreads(), 159 | sensealg=sensealg, 160 | saveat=myparameters.tinterval, 161 | dt=myparameters.dt, 162 | adaptive=true, abstol=1e-6, reltol=1e-6, 163 | trajectories=myparameters.numtraj, batch_size=myparameters.numtraj) 164 | 165 | A = convert(Array,_sol) 166 | loss = g(A,[myparameters.C1,myparameters.C2,myparameters.C3],nothing) 167 | 168 | return loss 169 | end 170 | 171 | ######################################### 172 | # visualization -- run for new batch 173 | function visualize(p, u0, myparameters::Parameters; all_traj = true) 174 | # # initialization 175 | u = deepcopy(u0) 176 | 177 | pars = [p; myparameters.Δ; myparameters.Ωmax] 178 | 179 | function prob_func(prob, i, repeat) 180 | # prepare initial state and applied control pulse 181 | remake(prob, 182 | p = pars, 183 | u0 = vec(u0[:,i]), 184 | callback = cb 185 | ) 186 | end 187 | 188 | ensembleprob = EnsembleProblem(prob, 189 | prob_func = prob_func, 190 | safetycopy = true 191 | ) 192 | 193 | u = solve(ensembleprob, Tsit5(), ensemblealg=EnsembleThreads(), 194 | saveat=myparameters.tinterval, 195 | dt=myparameters.dt, 196 | adaptive=true, abstol=1e-6, reltol=1e-6, 197 | trajectories=myparameters.numtrajplot, batch_size=myparameters.numtrajplot) 198 | 199 | 200 | ceR = @view u[1,:,:] 201 | cdR = @view u[2,:,:] 202 | ceI = @view u[3,:,:] 203 | cdI = @view u[4,:,:] 204 | infidelity = @. cdR^2 + cdI^2 / (ceR^2 + cdR^2 + ceI^2 + cdI^2) 205 | meaninfidelity = mean(infidelity) 206 | loss = myparameters.C1*meaninfidelity 207 | 208 | @info "Loss: " loss 209 | 210 | fidelity = @. ceR^2 + ceI^2 / (ceR^2 + cdR^2 + ceI^2 + cdI^2) 211 | 212 | mf = mean(fidelity, dims=2)[:] 213 | sf = std(fidelity, dims=2)[:] 214 | 215 | # re-compute actions 216 | arrayu = Array(u) 217 | Ωlist = [] 218 | for i = 1:(size(arrayu)[2]) 219 | Ω = vec(nn(arrayu[:,i,:],p).*myparameters.Ωmax) 220 | push!(Ωlist, Ω) 221 | end 222 | Ωlist = hcat(Ωlist...) 223 | 224 | ma = mean(Ωlist, dims=1)[:] 225 | sa = std(Ωlist, dims=1)[:] 226 | 227 | pl1 = plot(0:myparameters.Nintervals, mf, 228 | ribbon = sf, 229 | ylim = (0,1), xlim = (0,myparameters.Nintervals), 230 | c=1, lw = 1.5, xlabel = "steps", ylabel="Fidelity", legend=false) 231 | pl2 = plot(0:myparameters.Nintervals, ma, 232 | ribbon = sa, 233 | ylim=(-myparameters.Ωmax,myparameters.Ωmax), xlim = (0,myparameters.Nintervals), 234 | c=2, lw = 1.5, xlabel = "steps", ylabel="Ω(t)", legend=false) 235 | if all_traj 236 | plot!(pl1, fidelity, legend=false, c=:gray, alpha=0.1) 237 | plot!(pl2, Ωlist', legend=false, c=:gray, alpha=0.1) 238 | else 239 | plot!(pl1, 0:myparameters.Nintervals, fidelity[:,end], c=:gray, lw = 1.5, legend=false) 240 | plot!(pl2, 0:myparameters.Nintervals, Ωlist[end,:], c=:gray, lw = 1.5, legend=false) 241 | end 242 | 243 | pl = plot(pl1, pl2, layout = (1, 2), legend = false, size=(800,360)) 244 | return pl, loss 245 | end 246 | 247 | ################################### 248 | # training loop 249 | 250 | # optimize the parameters for a few epochs with ADAM on time span Nint 251 | opt = ADAM(myparameters.lr) 252 | list_plots = [] 253 | losses = [] 254 | for epoch in 1:myparameters.epochs 255 | println("epoch: $epoch / $(myparameters.epochs)") 256 | local u0 = prepare_initial(myparameters.dt, myparameters.numtraj) 257 | _dy, back = @time Zygote.pullback(p -> loss(p, u0, myparameters, 258 | sensealg=InterpolatingAdjoint()), p_nn) 259 | gs = @time back(one(_dy))[1] 260 | push!(losses, _dy) 261 | if epoch % myparameters.epochs == 0 262 | # plot every xth epoch 263 | local u0 = prepare_initial(myparameters.dt, myparameters.numtrajplot) 264 | pl, test_loss = visualize(p_nn, u0, myparameters) 265 | println("Loss (epoch: $epoch): $test_loss") 266 | display(pl) 267 | push!(list_plots, pl) 268 | end 269 | Flux.Optimise.update!(opt, p_nn, gs) 270 | println("") 271 | end 272 | 273 | # plot training loss 274 | pl = plot(losses, lw = 1.5, xlabel = "some epochs", ylabel="Loss", legend=false) 275 | 276 | ################################### 277 | # Serialization 278 | 279 | bson("Data/ODEControlCont-epochs="*string(myparameters.epochs)*"_numtraj="*join(string.([myparameters.numtraj,myparameters.numtrajplot]), '_')*"_"*string(slurmidx)*".bson", 280 | Dict(:losses => losses, :popt => p_nn, :lr =>myparameters.lr, :epoch =>myparameters.epochs)) 281 | 282 | savefig(pl,"./Figures/ODELossCont_epochs="*string(myparameters.epochs)*"_numtraj="*join(string.([myparameters.numtraj,myparameters.numtrajplot]), '_')*"_"*string(slurmidx)*".png") 283 | 284 | 285 | 286 | for (i,plt) in enumerate(list_plots) 287 | savefig(plt,"./Figures/ODEControlCont"*string(i)*"_epochs="*string(myparameters.epochs)*"_numtraj="*join(string.([myparameters.numtraj,myparameters.numtrajplot]), '_')*"_"*string(slurmidx)*".png") 288 | end 289 | 290 | exit() 291 | -------------------------------------------------------------------------------- /closed-system/Data/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /closed-system/Figures/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /closed-system/Project.toml: -------------------------------------------------------------------------------- 1 | [deps] 2 | Atom = "c52e3926-4ff0-5f6e-af25-54175e0327b1" 3 | BSON = "fbb218c0-5317-5bc6-957e-2ee96dd4b1f0" 4 | BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" 5 | DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" 6 | DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" 7 | DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def" 8 | DiffEqFlux = "aae7a2af-3d4f-5e19-a356-7da93b79d9d0" 9 | DiffEqGPU = "071ae1c0-96b5-11e9-1965-c90190d839ea" 10 | DiffEqNoiseProcess = "77a26b50-5914-5dd7-bc55-306e6241c503" 11 | DiffEqSensitivity = "41bf760c-e81c-5289-8e54-58b1f1f8abe2" 12 | DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" 13 | Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" 14 | ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" 15 | Juno = "e5e0dc1b-0480-54bc-9374-aad01c23163d" 16 | LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" 17 | Optim = "429524aa-4258-5aef-a3af-852621145aeb" 18 | OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" 19 | Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" 20 | PyPlot = "d330b81b-6aea-500a-939a-2ce795aea3ee" 21 | ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" 22 | StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" 23 | StatsPlots = "f3b207a7-027a-5e70-b257-86293d7955fd" 24 | StochasticDiffEq = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" 25 | Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" 26 | -------------------------------------------------------------------------------- /continuously-updated-control/Control.jl: -------------------------------------------------------------------------------- 1 | # make your scripts automatically re-activate your project 2 | cd(@__DIR__) 3 | using Pkg; Pkg.activate("."); Pkg.instantiate() 4 | 5 | # load packages 6 | using Flux, DiffEqFlux, DiffEqSensitivity 7 | using DifferentialEquations 8 | using Plots 9 | using BSON 10 | using Statistics 11 | using ReverseDiff, Zygote, ForwardDiff 12 | using LinearAlgebra 13 | using Random 14 | using BenchmarkTools, Test 15 | using DiffEqNoiseProcess 16 | 17 | ################################################# 18 | # read parameters from command line 19 | lr = parse(Float32,ARGS[1]) #0.001f0 # 0 20 | epochs = parse(Int,ARGS[2]) #200 #1 21 | slurmidx = parse(Int,ARGS[3]) #1 22 | 23 | numtraj = 64 # number of trajectories in parallel simulations for training (64) 24 | numtrajplot = 256 # .. for plotting 25 | 26 | # time range for the solver 27 | dt = 0.0001f0 #0.001f0 28 | tinterval = 0.02f0 29 | tstart = 0.0f0 30 | Nintervals = 150 # total number of intervals, total time = t_interval*Nintervals 31 | tspan = (tstart,tinterval*Nintervals) 32 | ts = Array(tstart:dt:(Nintervals*tinterval+dt)) # time array for noise grid 33 | 34 | # Hamiltonian parameters 35 | Δ = 20.0f0 36 | Ωmax = 10.0f0 # control parameter (maximum amplitude) 37 | κ = 1.0f0 38 | 39 | # loss hyperparameters 40 | C1 = Float32(1.0) # evolution state fidelity 41 | C2 = Float32(0.0) # action amplitudes 42 | C3 = Float32(0.0) # evolution state fidelity for last few steps! 43 | 44 | struct Parameters{flType,intType,tType} 45 | lr::flType 46 | epochs::intType 47 | numtraj::intType 48 | numtrajplot::intType 49 | dt::flType 50 | tinterval::flType 51 | tspan::tType 52 | Nintervals::intType 53 | ts::Vector{flType} 54 | Δ::flType 55 | Ωmax::flType 56 | κ::flType 57 | C1::flType 58 | C2::flType 59 | C3::flType 60 | end 61 | 62 | myparameters = Parameters{typeof(dt),typeof(numtraj), typeof(tspan)}( 63 | lr, epochs, numtraj, numtrajplot, dt, tinterval, tspan, Nintervals, ts, 64 | Δ, Ωmax, κ, C1, C2, C3) 65 | 66 | 67 | ################################################ 68 | # Define Neural Network 69 | 70 | # state-aware 71 | nn = FastChain( 72 | FastDense(4, 256, relu, initW = Flux.glorot_uniform, initb = Flux.glorot_uniform), 73 | FastDense(256, 64, relu, initW = Flux.glorot_uniform, initb = Flux.glorot_uniform), 74 | FastDense(64, 1, softsign, initW = Flux.glorot_uniform, initb = Flux.glorot_uniform)) 75 | 76 | p_nn = initial_params(nn) # random initial parameters 77 | # load ODE pre-trained ones? 78 | # weights = BSON.load("Data/SDEControlCont-epochs=200_numtraj=64_256_1.bson") 79 | # #weights = BSON.load("../ODE_control/Data/ODEControlCont-epochs=400_numtraj=256_256_1.bson") 80 | # p_nn = weights[:popt] 81 | 82 | ############################################### 83 | # initial state anywhere on the Bloch sphere 84 | function prepare_initial(dt, n_par) 85 | # shape 4 x n_par 86 | # input number of parallel realizations and dt for type inference 87 | # random position on the Bloch sphere 88 | theta = acos.(2*rand(typeof(dt),n_par).-1) # uniform sampling for cos(theta) between -1 and 1 89 | phi = rand(typeof(dt),n_par)*2*pi # uniform sampling for phi between 0 and 2pi 90 | # real and imaginary parts ceR, cdR, ceI, cdI 91 | u0 = [cos.(theta/2), sin.(theta/2).*cos.(phi), false*theta, sin.(theta/2).*sin.(phi)] 92 | return vcat(transpose.(u0)...) # build matrix 93 | end 94 | 95 | # target state 96 | # ψtar = |up> 97 | 98 | u0 = prepare_initial(myparameters.dt, myparameters.numtraj) 99 | 100 | ############################################### 101 | # Define SDE 102 | 103 | function qubit_drift!(du,u,p,t) 104 | # expansion coefficients |Ψ> = ce |e> + cd |d> 105 | ceR, cdR, ceI, cdI = u # real and imaginary parts 106 | 107 | # Δ: atomic frequency 108 | # Ω: Rabi frequency for field in x direction 109 | # κ: spontaneous emission 110 | Δ, Ωmax, κ = p[end-2:end] 111 | nn_weights = p[1:end-3] 112 | Ω = (nn(u, nn_weights).*Ωmax)[1] 113 | 114 | @inbounds begin 115 | du[1] = 1//2*(ceI*Δ-ceR*κ+cdI*Ω) 116 | du[2] = -cdI*Δ/2 + 1*ceR*(cdI*ceI+cdR*ceR)*κ+ceI*Ω/2 117 | du[3] = 1//2*(-ceR*Δ-ceI*κ-cdR*Ω) 118 | du[4] = cdR*Δ/2 + 1*ceI*(cdI*ceI+cdR*ceR)*κ-ceR*Ω/2 119 | end 120 | return nothing 121 | end 122 | 123 | function qubit_diffusion!(du,u,p,t) 124 | ceR, cdR, ceI, cdI = u # real and imaginary parts 125 | 126 | κ = p[end] 127 | 128 | du .= false 129 | 130 | @inbounds begin 131 | #du[1] = zero(ceR) 132 | du[2] += sqrt(κ)*ceR 133 | #du[3] = zero(ceR) 134 | du[4] += sqrt(κ)*ceI 135 | end 136 | return nothing 137 | end 138 | 139 | 140 | 141 | 142 | # normalization callback 143 | condition(u,t,integrator) = true 144 | function affect!(integrator) 145 | integrator.u=integrator.u/norm(integrator.u) 146 | end 147 | cb = DiscreteCallback(condition,affect!,save_positions=(false,false)) 148 | 149 | 150 | CreateGrid(t,W1) = NoiseGrid(t,W1) 151 | Zygote.@nograd CreateGrid #avoid taking grads of this function 152 | 153 | # set scalar random process 154 | W = sqrt(myparameters.dt)*randn(typeof(myparameters.dt),size(myparameters.ts)) #for 1 trajectory 155 | W1 = cumsum([zero(myparameters.dt); W[1:end-1]], dims=1) 156 | NG = CreateGrid(myparameters.ts,W1) 157 | 158 | # get control pulses 159 | p_all = [p_nn; myparameters.Δ; myparameters.Ωmax; myparameters.κ] 160 | # define SDE problem 161 | prob = SDEProblem{true}(qubit_drift!, qubit_diffusion!, vec(u0[:,1]), myparameters.tspan, p_all, 162 | callback=cb, noise=NG 163 | ) 164 | 165 | ######################################### 166 | # compute loss 167 | function g(u,p,t) 168 | ceR = @view u[1,:,:] 169 | cdR = @view u[2,:,:] 170 | ceI = @view u[3,:,:] 171 | cdI = @view u[4,:,:] 172 | p[1]*mean((cdR.^2 + cdI.^2) ./ (ceR.^2 + cdR.^2 + ceI.^2 + cdI.^2)) 173 | end 174 | 175 | 176 | function loss(p, u0, prob::SDEProblem, myparameters::Parameters; 177 | alg=EulerHeun(), sensealg = BacksolveAdjoint() 178 | ) 179 | pars = [p; myparameters.Δ; myparameters.Ωmax; myparameters.κ] 180 | 181 | function prob_func(prob, i, repeat) 182 | # prepare initial state and applied control pulse 183 | u0tmp = deepcopy(vec(u0[:,i])) 184 | W = sqrt(myparameters.dt)*randn(typeof(myparameters.dt),size(myparameters.ts)) #for 1 trajectory 185 | W1 = cumsum([zero(myparameters.dt); W[1:end-1]], dims=1) 186 | NG = CreateGrid(myparameters.ts,W1) 187 | 188 | remake(prob, 189 | p = pars, 190 | u0 = u0tmp, 191 | callback = cb, 192 | noise=NG 193 | ) 194 | end 195 | 196 | ensembleprob = EnsembleProblem(prob, 197 | prob_func = prob_func, 198 | safetycopy = true 199 | ) 200 | 201 | _sol = solve(ensembleprob, alg, EnsembleThreads(), 202 | sensealg=sensealg, 203 | saveat=myparameters.tinterval, 204 | dt=myparameters.dt, 205 | adaptive=false, #abstol=1e-6, reltol=1e-6, 206 | trajectories=myparameters.numtraj, batch_size=myparameters.numtraj) 207 | A = convert(Array,_sol) 208 | 209 | loss = g(A,[myparameters.C1,myparameters.C2,myparameters.C3],nothing) 210 | 211 | return loss 212 | end 213 | 214 | ######################################### 215 | # visualization -- run for new batch 216 | function visualize(p, u0, prob::SDEProblem, myparameters::Parameters; 217 | alg=EulerHeun(), all_traj = true 218 | ) 219 | pars = [p; myparameters.Δ; myparameters.Ωmax; myparameters.κ] 220 | 221 | function prob_func(prob, i, repeat) 222 | # prepare initial state and applied control pulse 223 | u0tmp = deepcopy(vec(u0[:,i])) 224 | W = sqrt(myparameters.dt)*randn(typeof(myparameters.dt),size(myparameters.ts)) #for 1 trajectory 225 | W1 = cumsum([zero(myparameters.dt); W[1:end-1]], dims=1) 226 | NG = CreateGrid(myparameters.ts,W1) 227 | 228 | remake(prob, 229 | p = pars, 230 | u0 = u0tmp, 231 | callback = cb, 232 | noise=NG 233 | ) 234 | end 235 | 236 | ensembleprob = EnsembleProblem(prob, 237 | prob_func = prob_func, 238 | safetycopy = true 239 | ) 240 | 241 | u = solve(ensembleprob, alg, EnsembleThreads(), 242 | saveat=myparameters.tinterval, 243 | dt=myparameters.dt, 244 | adaptive=false, #abstol=1e-6, reltol=1e-6, 245 | trajectories=myparameters.numtrajplot, batch_size=myparameters.numtrajplot) 246 | 247 | 248 | ceR = @view u[1,:,:] 249 | cdR = @view u[2,:,:] 250 | ceI = @view u[3,:,:] 251 | cdI = @view u[4,:,:] 252 | infidelity = @. (cdR^2 + cdI^2) / (ceR^2 + cdR^2 + ceI^2 + cdI^2) 253 | meaninfidelity = mean(infidelity) 254 | loss = myparameters.C1*meaninfidelity 255 | 256 | @info "Loss: " loss 257 | 258 | fidelity = @. (ceR^2 + ceI^2) / (ceR^2 + cdR^2 + ceI^2 + cdI^2) 259 | 260 | mf = mean(fidelity, dims=2)[:] 261 | sf = std(fidelity, dims=2)[:] 262 | 263 | # re-compute actions 264 | arrayu = Array(u) 265 | Ωlist = [] 266 | for i = 1:(size(arrayu)[2]) 267 | Ω = vec(nn(arrayu[:,i,:],p).*myparameters.Ωmax) 268 | push!(Ωlist, Ω) 269 | end 270 | Ωlist = hcat(Ωlist...) 271 | 272 | ma = mean(Ωlist, dims=1)[:] 273 | sa = std(Ωlist, dims=1)[:] 274 | 275 | pl1 = plot(0:myparameters.Nintervals, mf, 276 | ribbon = sf, 277 | ylim = (0,1), xlim = (0,myparameters.Nintervals), 278 | c=1, lw = 1.5, xlabel = "steps", ylabel="Fidelity", legend=false) 279 | pl2 = plot(0:myparameters.Nintervals, ma, 280 | ribbon = sa, 281 | ylim=(-myparameters.Ωmax,myparameters.Ωmax), xlim = (0,myparameters.Nintervals), 282 | c=2, lw = 1.5, xlabel = "steps", ylabel="Ω(t)", legend=false) 283 | if all_traj 284 | plot!(pl1, fidelity, legend=false, c=:gray, alpha=0.1) 285 | plot!(pl2, Ωlist', legend=false, c=:gray, alpha=0.1) 286 | else 287 | plot!(pl1, 0:myparameters.Nintervals, fidelity[:,end], c=:gray, lw = 1.5, legend=false) 288 | plot!(pl2, 0:myparameters.Nintervals, Ωlist[end,:], c=:gray, lw = 1.5, legend=false) 289 | end 290 | 291 | pl = plot(pl1, pl2, layout = (1, 2), legend = false, size=(800,360)) 292 | return pl, loss 293 | end 294 | 295 | ################################### 296 | # training loop 297 | @info "Start Training.." 298 | 299 | # optimize the parameters for a few epochs with ADAM on time span Nint 300 | opt = ADAM(myparameters.lr) 301 | list_plots = [] 302 | losses = [] 303 | for epoch in 1:myparameters.epochs 304 | println("epoch: $epoch / $(myparameters.epochs)") 305 | local u0 = prepare_initial(myparameters.dt, myparameters.numtraj) 306 | _dy, back = @time Zygote.pullback(p -> loss(p, u0, prob, myparameters, 307 | sensealg=BacksolveAdjoint() 308 | ), p_nn) 309 | @show _dy 310 | gs = @time back(one(_dy))[1] 311 | # store loss 312 | push!(losses, _dy) 313 | if epoch % myparameters.epochs == 0 #Int(parameters.epochs/10) 314 | # plot/store every xth epoch 315 | @info "plotting.." 316 | local u0 = prepare_initial(myparameters.dt, myparameters.numtrajplot) 317 | pl, test_loss = visualize(p_nn, u0, prob, myparameters) 318 | println("Loss (epoch: $epoch): $test_loss") 319 | display(pl) 320 | push!(list_plots, pl) 321 | end 322 | Flux.Optimise.update!(opt, p_nn, gs) 323 | println("") 324 | end 325 | 326 | # plot training loss 327 | pl = plot(losses, lw = 1.5, xlabel = "some epochs", ylabel="Loss", legend=false) 328 | 329 | 330 | ################################### 331 | # Serialization 332 | 333 | bson("Data/SDEControlCont-epochs="*string(myparameters.epochs)*"_numtraj="*join(string.([myparameters.numtraj,myparameters.numtrajplot]), '_')*"_"*string(slurmidx)*".bson", 334 | Dict(:losses => losses, :popt => p_nn, :lr =>myparameters.lr, :epoch =>myparameters.epochs)) 335 | 336 | savefig(pl,"./Figures/SDELossCont_epochs="*string(myparameters.epochs)*"_numtraj="*join(string.([myparameters.numtraj,myparameters.numtrajplot]), '_')*"_"*string(slurmidx)*".png") 337 | 338 | for (i,plt) in enumerate(list_plots) 339 | savefig(plt,"./Figures/SDEControlCont"*string(i)*"_epochs="*string(myparameters.epochs)*"_numtraj="*join(string.([myparameters.numtraj,myparameters.numtrajplot]), '_')*"_"*string(slurmidx)*".png") 340 | end 341 | 342 | exit() 343 | -------------------------------------------------------------------------------- /continuously-updated-control/Data/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /continuously-updated-control/Figures/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /continuously-updated-control/Project.toml: -------------------------------------------------------------------------------- 1 | [deps] 2 | Atom = "c52e3926-4ff0-5f6e-af25-54175e0327b1" 3 | BSON = "fbb218c0-5317-5bc6-957e-2ee96dd4b1f0" 4 | BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" 5 | DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" 6 | DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" 7 | DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def" 8 | DiffEqFlux = "aae7a2af-3d4f-5e19-a356-7da93b79d9d0" 9 | DiffEqGPU = "071ae1c0-96b5-11e9-1965-c90190d839ea" 10 | DiffEqNoiseProcess = "77a26b50-5914-5dd7-bc55-306e6241c503" 11 | DiffEqSensitivity = "41bf760c-e81c-5289-8e54-58b1f1f8abe2" 12 | DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" 13 | Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" 14 | ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" 15 | Juno = "e5e0dc1b-0480-54bc-9374-aad01c23163d" 16 | LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" 17 | Optim = "429524aa-4258-5aef-a3af-852621145aeb" 18 | OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" 19 | Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" 20 | ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" 21 | StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" 22 | StochasticDiffEq = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" 23 | Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" 24 | -------------------------------------------------------------------------------- /hand-crafted/Control.jl: -------------------------------------------------------------------------------- 1 | # make your scripts automatically re-activate your project 2 | cd(@__DIR__) 3 | using Pkg; Pkg.activate("."); Pkg.instantiate() 4 | 5 | # load packages 6 | using StochasticDiffEq, DiffEqCallbacks 7 | using Plots 8 | using Statistics 9 | using LinearAlgebra 10 | using Random 11 | using DiffEqNoiseProcess 12 | using LaTeXStrings 13 | ################################################# 14 | # parameters 15 | numtrajplot = 256 # .. for plotting 16 | 17 | # time range for the solver 18 | dt = 0.0001f0 #0.001f0 19 | tinterval = 0.02f0 20 | tstart = 0.0f0 21 | Nintervals = 150 # total number of intervals, total time = t_interval*Nintervals 22 | tspan = (tstart,tinterval*Nintervals) 23 | ts = Array(tstart:dt:(Nintervals*tinterval+dt)) # time array for noise grid 24 | 25 | # Hamiltonian parameters 26 | Δ = 20.0f0 27 | Ωmax = 10.0f0 # control parameter (maximum amplitude) 28 | κ = 1.0f0 29 | 30 | # loss hyperparameters 31 | C1 = Float32(1.0) # evolution state fidelity 32 | C2 = Float32(0.0) # action amplitudes 33 | C3 = Float32(0.0) # evolution state fidelity for last few steps! 34 | 35 | struct Parameters{flType,intType,tType} 36 | numtrajplot::intType 37 | dt::flType 38 | tinterval::flType 39 | tspan::tType 40 | Nintervals::intType 41 | ts::Vector{flType} 42 | Δ::flType 43 | Ωmax::flType 44 | κ::flType 45 | C1::flType 46 | C2::flType 47 | C3::flType 48 | end 49 | 50 | myparameters = Parameters{typeof(dt),typeof(numtrajplot), typeof(tspan)}( 51 | numtrajplot, dt, tinterval, tspan, Nintervals, ts, 52 | Δ, Ωmax, κ, C1, C2, C3) 53 | 54 | ############################################### 55 | # strategy 56 | 57 | function control(u, Ωmax) 58 | ceR, cdR, ceI, cdI = u 59 | 60 | if (cdI*ceR-cdR*ceI) > 0 61 | Ω = Ωmax 62 | else 63 | Ω = -Ωmax 64 | end 65 | return Ω 66 | end 67 | 68 | ############################################### 69 | # initial state anywhere on the Bloch sphere 70 | function prepare_initial(dt, n_par) 71 | # shape 4 x n_par 72 | # input number of parallel realizations and dt for type inference 73 | # random position on the Bloch sphere 74 | theta = acos.(2*rand(typeof(dt),n_par).-1) # uniform sampling for cos(theta) between -1 and 1 75 | phi = rand(typeof(dt),n_par)*2*pi # uniform sampling for phi between 0 and 2pi 76 | # real and imaginary parts ceR, cdR, ceI, cdI 77 | u0 = [cos.(theta/2), sin.(theta/2).*cos.(phi), false*theta, sin.(theta/2).*sin.(phi)] 78 | return vcat(transpose.(u0)...) # build matrix 79 | end 80 | 81 | # target state 82 | # ψtar = |up> 83 | 84 | u0 = prepare_initial(myparameters.dt, myparameters.numtrajplot) 85 | 86 | ############################################### 87 | # Define SDE 88 | 89 | function qubit_drift!(du,u,p,t) 90 | # expansion coefficients |Ψ> = ce |e> + cd |d> 91 | ceR, cdR, ceI, cdI = u # real and imaginary parts 92 | 93 | # Δ: atomic frequency 94 | # Ω: Rabi frequency for field in x direction 95 | # κ: spontaneous emission 96 | Δ, Ωmax, κ = p[1:3] 97 | Ω = control(u, Ωmax) 98 | 99 | @inbounds begin 100 | du[1] = 1//2*(ceI*Δ-ceR*κ+cdI*Ω) 101 | du[2] = -cdI*Δ/2 + 1*ceR*(cdI*ceI+cdR*ceR)*κ+ceI*Ω/2 102 | du[3] = 1//2*(-ceR*Δ-ceI*κ-cdR*Ω) 103 | du[4] = cdR*Δ/2 + 1*ceI*(cdI*ceI+cdR*ceR)*κ-ceR*Ω/2 104 | end 105 | return nothing 106 | end 107 | 108 | function qubit_diffusion!(du,u,p,t) 109 | ceR, cdR, ceI, cdI = u # real and imaginary parts 110 | 111 | κ = p[end] 112 | 113 | du .= false 114 | 115 | @inbounds begin 116 | #du[1] = zero(ceR) 117 | du[2] += sqrt(κ)*ceR 118 | #du[3] = zero(ceR) 119 | du[4] += sqrt(κ)*ceI 120 | end 121 | return nothing 122 | end 123 | 124 | # normalization callback 125 | condition(u,t,integrator) = true 126 | function affect!(integrator) 127 | integrator.u=integrator.u/norm(integrator.u) 128 | end 129 | cb = DiscreteCallback(condition,affect!,save_positions=(false,false)) 130 | 131 | 132 | CreateGrid(t,W1) = NoiseGrid(t,W1) 133 | 134 | # set scalar random process 135 | W = sqrt(myparameters.dt)*randn(typeof(myparameters.dt),size(myparameters.ts)) #for 1 trajectory 136 | W1 = cumsum([zero(myparameters.dt); W[1:end-1]], dims=1) 137 | NG = CreateGrid(myparameters.ts,W1) 138 | 139 | # get control pulses 140 | p_all = [myparameters.Δ; myparameters.Ωmax; myparameters.κ] 141 | # define SDE problem 142 | prob = SDEProblem{true}(qubit_drift!, qubit_diffusion!, vec(u0[:,1]), myparameters.tspan, p_all, 143 | callback=cb, noise=NG 144 | ) 145 | 146 | ######################################### 147 | # visualization -- run for new batch 148 | function visualize(u0, prob::SDEProblem, myparameters::Parameters; 149 | alg=EulerHeun(), all_traj = true 150 | ) 151 | pars = [myparameters.Δ; myparameters.Ωmax; myparameters.κ] 152 | 153 | function prob_func(prob, i, repeat) 154 | # prepare initial state and applied control pulse 155 | u0tmp = deepcopy(vec(u0[:,i])) 156 | W = sqrt(myparameters.dt)*randn(typeof(myparameters.dt),size(myparameters.ts)) #for 1 trajectory 157 | W1 = cumsum([zero(myparameters.dt); W[1:end-1]], dims=1) 158 | NG = CreateGrid(myparameters.ts,W1) 159 | 160 | remake(prob, 161 | p = pars, 162 | u0 = u0tmp, 163 | callback = cb, 164 | noise=NG 165 | ) 166 | end 167 | 168 | ensembleprob = EnsembleProblem(prob, 169 | prob_func = prob_func, 170 | safetycopy = true 171 | ) 172 | 173 | u = solve(ensembleprob, alg, EnsembleThreads(), 174 | saveat=myparameters.tinterval, 175 | dt=myparameters.dt, 176 | adaptive=false, #abstol=1e-6, reltol=1e-6, 177 | trajectories=myparameters.numtrajplot, batch_size=myparameters.numtrajplot) 178 | 179 | 180 | ceR = @view u[1,:,:] 181 | cdR = @view u[2,:,:] 182 | ceI = @view u[3,:,:] 183 | cdI = @view u[4,:,:] 184 | infidelity = @. (cdR^2 + cdI^2) / (ceR^2 + cdR^2 + ceI^2 + cdI^2) 185 | meaninfidelity = mean(infidelity) 186 | loss = myparameters.C1*meaninfidelity 187 | 188 | @info "Loss: " loss 189 | 190 | fidelity = @. (ceR^2 + ceI^2) / (ceR^2 + cdR^2 + ceI^2 + cdI^2) 191 | 192 | mf = mean(fidelity, dims=2)[:] 193 | sf = std(fidelity, dims=2)[:] 194 | 195 | # re-compute actions 196 | arrayu = Array(u) 197 | Ωlist = [] 198 | for i = 1:(size(arrayu)[2]) 199 | Ω = [control(arrayu[:,i,j], myparameters.Ωmax) for j = 1:(size(arrayu)[3])] 200 | push!(Ωlist, Ω) 201 | end 202 | Ωlist = hcat(Ωlist...) 203 | ma = mean(Ωlist, dims=1)[:] 204 | sa = std(Ωlist, dims=1)[:] 205 | #@show size(Ωlist) size(sa) 206 | 207 | pl1 = plot(0:myparameters.Nintervals, mf, 208 | ribbon = sf, 209 | ylim = (0,1), xlim = (0,myparameters.Nintervals), 210 | c=:navyblue, lw = 1.5, xlabel = L"i", title=L"F(t_i)", legend=false, grid=false) 211 | pl2 = plot(0:myparameters.Nintervals, ma, 212 | ribbon = sa, 213 | ylim=(-myparameters.Ωmax,myparameters.Ωmax), xlim = (0,myparameters.Nintervals), 214 | c=:orangered4, lw = 1.5, xlabel = L"i", title=L"\Omega(t_i)", legend=false, grid=false) 215 | if all_traj 216 | plot!(pl1, fidelity, legend=false, c=:gray, alpha=0.1) 217 | plot!(pl2, Ωlist', legend=false, c=:gray, alpha=0.1) 218 | else 219 | plot!(pl1, 0:myparameters.Nintervals, fidelity[:,end], c=:black, lw = 1.5, legend=false) 220 | plot!(pl2, 0:myparameters.Nintervals, Ωlist[end,:], c=:black, lw = 1.5, legend=false) 221 | end 222 | 223 | pl = plot(pl1, pl2, layout = (1, 2), legend = false, size=(800,360)) 224 | return pl1, pl2, loss, infidelity 225 | end 226 | 227 | u0 = prepare_initial(myparameters.dt, myparameters.numtrajplot) 228 | u0[1,end] = 0.0f0 229 | u0[2,end] = 1.0f0 230 | u0[3,end] = 0.0f0 231 | u0[4,end] = 0.0f0 232 | pl1, pl2, lossval1, infid = @time visualize(u0, prob, myparameters, all_traj=false) 233 | 234 | @info 1-mean(infid) 235 | @info std(infid) 236 | 237 | # pl = plot(pl1, pl2, margin=3.0Plots.mm, legend = false, size=(600,300)) 238 | # savefig(pl,"Figures/hand_crafted.png") 239 | 240 | exit() 241 | -------------------------------------------------------------------------------- /hand-crafted/Data/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /hand-crafted/Figures/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /hand-crafted/Manifest.toml: -------------------------------------------------------------------------------- 1 | # This file is machine-generated - editing it directly is not advised 2 | 3 | [[AbstractAlgebra]] 4 | deps = ["InteractiveUtils", "LinearAlgebra", "Markdown", "Random", "RandomExtensions", "SparseArrays", "Test"] 5 | git-tree-sha1 = "7df2949bfd757e426897a4b579fbd5dc776ff8c9" 6 | uuid = "c3fe647b-3220-5bb0-a1ea-a7954cac585d" 7 | version = "0.12.0" 8 | 9 | [[AbstractTrees]] 10 | deps = ["Markdown"] 11 | git-tree-sha1 = "33e450545eaf7699da1a6e755f9ea65f14077a45" 12 | uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" 13 | version = "0.3.3" 14 | 15 | [[Adapt]] 16 | deps = ["LinearAlgebra"] 17 | git-tree-sha1 = "ffcfa2d345aaee0ef3d8346a073d5dd03c983ebe" 18 | uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" 19 | version = "3.2.0" 20 | 21 | [[ArnoldiMethod]] 22 | deps = ["LinearAlgebra", "Random", "StaticArrays"] 23 | git-tree-sha1 = "f87e559f87a45bece9c9ed97458d3afe98b1ebb9" 24 | uuid = "ec485272-7323-5ecc-a04f-4719b315124d" 25 | version = "0.1.0" 26 | 27 | [[ArrayInterface]] 28 | deps = ["IfElse", "LinearAlgebra", "Requires", "SparseArrays"] 29 | git-tree-sha1 = "ee07ae00e3cc277dcfa5507ce25be522313ecc3e" 30 | uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" 31 | version = "3.1.1" 32 | 33 | [[ArrayLayouts]] 34 | deps = ["Compat", "FillArrays", "LinearAlgebra", "SparseArrays"] 35 | git-tree-sha1 = "cd4f636f9cb5f6f15d494e3486b4ffe99e81da5d" 36 | uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" 37 | version = "0.5.4" 38 | 39 | [[Artifacts]] 40 | deps = ["Pkg"] 41 | git-tree-sha1 = "c30985d8821e0cd73870b17b0ed0ce6dc44cb744" 42 | uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" 43 | version = "1.3.0" 44 | 45 | [[AssetRegistry]] 46 | deps = ["Distributed", "JSON", "Pidfile", "SHA", "Test"] 47 | git-tree-sha1 = "b25e88db7944f98789130d7b503276bc34bc098e" 48 | uuid = "bf4720bc-e11a-5d0c-854e-bdca1663c893" 49 | version = "0.1.0" 50 | 51 | [[Atom]] 52 | deps = ["Base64", "CSTParser", "CodeTools", "CodeTracking", "Dates", "DocSeeker", "FlameGraphs", "FuzzyCompletions", "HTTP", "Hiccup", "InteractiveUtils", "JSON", "JuliaFormatter", "JuliaInterpreter", "Juno", "LNR", "Lazy", "Logging", "MacroTools", "Markdown", "Media", "OrderedCollections", "Pkg", "Profile", "REPL", "Requires", "Sockets", "TreeViews", "WebIO", "WebSockets"] 53 | git-tree-sha1 = "97e6d83bf344bb8e62f50d7579f1de5c611a2206" 54 | uuid = "c52e3926-4ff0-5f6e-af25-54175e0327b1" 55 | version = "0.12.30" 56 | 57 | [[BSON]] 58 | git-tree-sha1 = "dd36d7cf3d185eeaaf64db902c15174b22f5dafb" 59 | uuid = "fbb218c0-5317-5bc6-957e-2ee96dd4b1f0" 60 | version = "0.2.6" 61 | 62 | [[BandedMatrices]] 63 | deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "Random", "SparseArrays"] 64 | git-tree-sha1 = "7fd09bf7edffca7e72ba0a22e54eaaa0b7a0d7aa" 65 | uuid = "aae01518-5342-5314-be14-df237901396f" 66 | version = "0.16.4" 67 | 68 | [[Base64]] 69 | uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" 70 | 71 | [[BoundaryValueDiffEq]] 72 | deps = ["BandedMatrices", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "NLsolve", "Reexport", "SparseArrays"] 73 | git-tree-sha1 = "fe34902ac0c3a35d016617ab7032742865756d7d" 74 | uuid = "764a87c0-6b3e-53db-9096-fe964310641d" 75 | version = "2.7.1" 76 | 77 | [[Bzip2_jll]] 78 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 79 | git-tree-sha1 = "c3598e525718abcc440f69cc6d5f60dda0a1b61e" 80 | uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" 81 | version = "1.0.6+5" 82 | 83 | [[CEnum]] 84 | git-tree-sha1 = "215a9aa4a1f23fbd05b92769fdd62559488d70e9" 85 | uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" 86 | version = "0.4.1" 87 | 88 | [[CSTParser]] 89 | deps = ["Tokenize"] 90 | git-tree-sha1 = "60e9121d9ea044c30a04397e59b00c5d9eb826ee" 91 | uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f" 92 | version = "2.5.0" 93 | 94 | [[Cairo_jll]] 95 | deps = ["Artifacts", "Bzip2_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] 96 | git-tree-sha1 = "e2f47f6d8337369411569fd45ae5753ca10394c6" 97 | uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" 98 | version = "1.16.0+6" 99 | 100 | [[ChainRulesCore]] 101 | deps = ["Compat", "LinearAlgebra", "SparseArrays"] 102 | git-tree-sha1 = "d3d0a4e0d5bc03a6c97f4d249c8a471fc20a2f33" 103 | uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" 104 | version = "0.9.28" 105 | 106 | [[CodeTools]] 107 | deps = ["LNR", "Lazy", "Markdown", "Pkg", "Tokenize"] 108 | git-tree-sha1 = "9c4489c7d22b8f28635a999d5d7696b31f931829" 109 | uuid = "53a63b46-67e4-5edd-8c66-0af0544a99b9" 110 | version = "0.7.1" 111 | 112 | [[CodeTracking]] 113 | deps = ["InteractiveUtils", "UUIDs"] 114 | git-tree-sha1 = "8ad457cfeb0bca98732c97958ef81000a543e73e" 115 | uuid = "da1fd8a2-8d9e-5ec2-8556-3022fb5608a2" 116 | version = "1.0.5" 117 | 118 | [[ColorSchemes]] 119 | deps = ["ColorTypes", "Colors", "FixedPointNumbers", "Random", "StaticArrays"] 120 | git-tree-sha1 = "3141757b5832ee7a0386db87997ee5a23ff20f4d" 121 | uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" 122 | version = "3.10.2" 123 | 124 | [[ColorTypes]] 125 | deps = ["FixedPointNumbers", "Random"] 126 | git-tree-sha1 = "4bffea7ed1a9f0f3d1a131bbcd4b925548d75288" 127 | uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" 128 | version = "0.10.9" 129 | 130 | [[Colors]] 131 | deps = ["ColorTypes", "FixedPointNumbers", "InteractiveUtils", "Reexport"] 132 | git-tree-sha1 = "ac5f2213e56ed8a34a3dd2f681f4df1166b34929" 133 | uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" 134 | version = "0.12.6" 135 | 136 | [[Combinatorics]] 137 | git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" 138 | uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" 139 | version = "1.0.2" 140 | 141 | [[CommonMark]] 142 | deps = ["Crayons", "JSON", "URIParser"] 143 | git-tree-sha1 = "c1f1514d7cc1ad243a103b403d896ee184c91b62" 144 | uuid = "a80b9123-70ca-4bc0-993e-6e3bcb318db6" 145 | version = "0.6.4" 146 | 147 | [[CommonSolve]] 148 | git-tree-sha1 = "68a0743f578349ada8bc911a5cbd5a2ef6ed6d1f" 149 | uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" 150 | version = "0.2.0" 151 | 152 | [[CommonSubexpressions]] 153 | deps = ["MacroTools", "Test"] 154 | git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" 155 | uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" 156 | version = "0.3.0" 157 | 158 | [[Compat]] 159 | deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "SHA", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"] 160 | git-tree-sha1 = "919c7f3151e79ff196add81d7f4e45d91bbf420b" 161 | uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" 162 | version = "3.25.0" 163 | 164 | [[CompilerSupportLibraries_jll]] 165 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 166 | git-tree-sha1 = "8e695f735fca77e9708e795eda62afdb869cbb70" 167 | uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" 168 | version = "0.3.4+0" 169 | 170 | [[ConstructionBase]] 171 | deps = ["LinearAlgebra"] 172 | git-tree-sha1 = "48920211c95a6da1914a06c44ec94be70e84ffff" 173 | uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" 174 | version = "1.1.0" 175 | 176 | [[Contour]] 177 | deps = ["StaticArrays"] 178 | git-tree-sha1 = "9f02045d934dc030edad45944ea80dbd1f0ebea7" 179 | uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" 180 | version = "0.5.7" 181 | 182 | [[Crayons]] 183 | git-tree-sha1 = "3f71217b538d7aaee0b69ab47d9b7724ca8afa0d" 184 | uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" 185 | version = "4.0.4" 186 | 187 | [[DataAPI]] 188 | git-tree-sha1 = "8ab70b4de35bb3b8cc19654f6b893cf5164f8ee8" 189 | uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" 190 | version = "1.5.1" 191 | 192 | [[DataStructures]] 193 | deps = ["Compat", "InteractiveUtils", "OrderedCollections"] 194 | git-tree-sha1 = "4437b64df1e0adccc3e5d1adbc3ac741095e4677" 195 | uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" 196 | version = "0.18.9" 197 | 198 | [[DataValueInterfaces]] 199 | git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" 200 | uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" 201 | version = "1.0.0" 202 | 203 | [[Dates]] 204 | deps = ["Printf"] 205 | uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" 206 | 207 | [[DelayDiffEq]] 208 | deps = ["DataStructures", "DiffEqBase", "LinearAlgebra", "Logging", "NonlinearSolve", "OrdinaryDiffEq", "Printf", "RecursiveArrayTools", "Reexport", "UnPack"] 209 | git-tree-sha1 = "4feea0b8e1e8ab828a78295c4de4862aa5aac589" 210 | uuid = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb" 211 | version = "5.28.4" 212 | 213 | [[DelimitedFiles]] 214 | deps = ["Mmap"] 215 | uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" 216 | 217 | [[DiffEqBase]] 218 | deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "DocStringExtensions", "FunctionWrappers", "IterativeSolvers", "LabelledArrays", "LinearAlgebra", "Logging", "MuladdMacro", "NonlinearSolve", "Parameters", "Printf", "RecursiveArrayTools", "RecursiveFactorization", "Reexport", "Requires", "SciMLBase", "SparseArrays", "StaticArrays", "Statistics", "SuiteSparse", "ZygoteRules"] 219 | git-tree-sha1 = "7971aa5164021e495b524bdb5165774f98c739a4" 220 | uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" 221 | version = "6.57.5" 222 | 223 | [[DiffEqCallbacks]] 224 | deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "LinearAlgebra", "NLsolve", "OrdinaryDiffEq", "RecipesBase", "RecursiveArrayTools", "StaticArrays"] 225 | git-tree-sha1 = "d4c4a3f442ab749b6b895c514b0be984c75d6d67" 226 | uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" 227 | version = "2.16.0" 228 | 229 | [[DiffEqFinancial]] 230 | deps = ["DiffEqBase", "DiffEqNoiseProcess", "LinearAlgebra", "Markdown", "RandomNumbers"] 231 | git-tree-sha1 = "db08e0def560f204167c58fd0637298e13f58f73" 232 | uuid = "5a0ffddc-d203-54b0-88ba-2c03c0fc2e67" 233 | version = "2.4.0" 234 | 235 | [[DiffEqJump]] 236 | deps = ["ArrayInterface", "Compat", "DataStructures", "DiffEqBase", "FunctionWrappers", "LinearAlgebra", "PoissonRandom", "Random", "RandomNumbers", "RecursiveArrayTools", "StaticArrays", "TreeViews", "UnPack"] 237 | git-tree-sha1 = "3ec8d5eeb792897b28ef79a851d834ce1415498f" 238 | uuid = "c894b116-72e5-5b58-be3c-e6d8d4ac2b12" 239 | version = "6.13.0" 240 | 241 | [[DiffEqNoiseProcess]] 242 | deps = ["DiffEqBase", "Distributions", "LinearAlgebra", "PoissonRandom", "Random", "Random123", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "Requires", "ResettableStacks", "StaticArrays", "Statistics"] 243 | git-tree-sha1 = "edc9464d28048d672dc1781cfb9e575b4f7bbd50" 244 | uuid = "77a26b50-5914-5dd7-bc55-306e6241c503" 245 | version = "5.5.2" 246 | 247 | [[DiffEqPhysics]] 248 | deps = ["DiffEqBase", "DiffEqCallbacks", "ForwardDiff", "LinearAlgebra", "Printf", "Random", "RecipesBase", "RecursiveArrayTools", "Reexport", "StaticArrays"] 249 | git-tree-sha1 = "8f23c6f36f6a6eb2cbd6950e28ec7c4b99d0e4c9" 250 | uuid = "055956cb-9e8b-5191-98cc-73ae4a59e68a" 251 | version = "3.9.0" 252 | 253 | [[DiffResults]] 254 | deps = ["StaticArrays"] 255 | git-tree-sha1 = "c18e98cba888c6c25d1c3b048e4b3380ca956805" 256 | uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" 257 | version = "1.0.3" 258 | 259 | [[DiffRules]] 260 | deps = ["NaNMath", "Random", "SpecialFunctions"] 261 | git-tree-sha1 = "214c3fcac57755cfda163d91c58893a8723f93e9" 262 | uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" 263 | version = "1.0.2" 264 | 265 | [[DifferentialEquations]] 266 | deps = ["BoundaryValueDiffEq", "DelayDiffEq", "DiffEqBase", "DiffEqCallbacks", "DiffEqFinancial", "DiffEqJump", "DiffEqNoiseProcess", "DiffEqPhysics", "DimensionalPlotRecipes", "LinearAlgebra", "MultiScaleArrays", "OrdinaryDiffEq", "ParameterizedFunctions", "Random", "RecursiveArrayTools", "Reexport", "SteadyStateDiffEq", "StochasticDiffEq", "Sundials"] 267 | git-tree-sha1 = "221b9a427fc8970be5b65171c25f0a6ba0e1f394" 268 | uuid = "0c46a032-eb83-5123-abaf-570d42b7fbaa" 269 | version = "6.16.0" 270 | 271 | [[DimensionalPlotRecipes]] 272 | deps = ["LinearAlgebra", "RecipesBase"] 273 | git-tree-sha1 = "af883a26bbe6e3f5f778cb4e1b81578b534c32a6" 274 | uuid = "c619ae07-58cd-5f6d-b883-8f17bd6a98f9" 275 | version = "1.2.0" 276 | 277 | [[Distances]] 278 | deps = ["LinearAlgebra", "Statistics"] 279 | git-tree-sha1 = "a5b88815e6984e9f3256b6ca0dc63109b16a506f" 280 | uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" 281 | version = "0.9.2" 282 | 283 | [[Distributed]] 284 | deps = ["Random", "Serialization", "Sockets"] 285 | uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" 286 | 287 | [[Distributions]] 288 | deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SparseArrays", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns"] 289 | git-tree-sha1 = "f0e06a5b5ccda38e2fb8f59d91316e657b67047d" 290 | uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" 291 | version = "0.24.12" 292 | 293 | [[DocSeeker]] 294 | deps = ["Distributed", "Hiccup", "Markdown", "Pkg", "REPL", "Requires", "Serialization", "StringDistances", "URIParser"] 295 | git-tree-sha1 = "c9ebf45fdab22433b53b0e6b4a2b29c2a193c5d2" 296 | uuid = "33d173f1-3be9-53c5-a697-8225b67db89c" 297 | version = "0.4.2" 298 | 299 | [[DocStringExtensions]] 300 | deps = ["LibGit2", "Markdown", "Pkg", "Test"] 301 | git-tree-sha1 = "50ddf44c53698f5e784bbebb3f4b21c5807401b1" 302 | uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" 303 | version = "0.8.3" 304 | 305 | [[Documenter]] 306 | deps = ["Base64", "Dates", "DocStringExtensions", "IOCapture", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "REPL", "Test", "Unicode"] 307 | git-tree-sha1 = "b7715ae18be02110a8cf9cc8ed2ccdb1e3e3aba2" 308 | uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4" 309 | version = "0.26.1" 310 | 311 | [[EarCut_jll]] 312 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 313 | git-tree-sha1 = "92d8f9f208637e8d2d28c664051a00569c01493d" 314 | uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" 315 | version = "2.1.5+1" 316 | 317 | [[Expat_jll]] 318 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 319 | git-tree-sha1 = "1402e52fcda25064f51c77a9655ce8680b76acf0" 320 | uuid = "2e619515-83b5-522b-bb60-26c02a35a201" 321 | version = "2.2.7+6" 322 | 323 | [[ExponentialUtilities]] 324 | deps = ["LinearAlgebra", "Printf", "Requires", "SparseArrays"] 325 | git-tree-sha1 = "4e7db935d55d4a11acb74856ee6cb113a7808c6f" 326 | uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" 327 | version = "1.8.0" 328 | 329 | [[ExprTools]] 330 | git-tree-sha1 = "10407a39b87f29d47ebaca8edbc75d7c302ff93e" 331 | uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" 332 | version = "0.1.3" 333 | 334 | [[FFMPEG]] 335 | deps = ["FFMPEG_jll", "x264_jll"] 336 | git-tree-sha1 = "9a73ffdc375be61b0e4516d83d880b265366fe1f" 337 | uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" 338 | version = "0.4.0" 339 | 340 | [[FFMPEG_jll]] 341 | deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "LibVPX_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "Pkg", "Zlib_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] 342 | git-tree-sha1 = "3cc57ad0a213808473eafef4845a74766242e05f" 343 | uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" 344 | version = "4.3.1+4" 345 | 346 | [[FastClosures]] 347 | git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" 348 | uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" 349 | version = "0.3.2" 350 | 351 | [[FileIO]] 352 | deps = ["Pkg"] 353 | git-tree-sha1 = "fee8955b9dfa7bec67117ef48085fb2b559b9c22" 354 | uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" 355 | version = "1.4.5" 356 | 357 | [[FileWatching]] 358 | uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" 359 | 360 | [[FillArrays]] 361 | deps = ["LinearAlgebra", "Random", "SparseArrays"] 362 | git-tree-sha1 = "50eabdace27aa27b143f65b65e762bb0112a7708" 363 | uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" 364 | version = "0.11.1" 365 | 366 | [[FiniteDiff]] 367 | deps = ["ArrayInterface", "LinearAlgebra", "Requires", "SparseArrays", "StaticArrays"] 368 | git-tree-sha1 = "f6f80c8f934efd49a286bb5315360be66956dfc4" 369 | uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" 370 | version = "2.8.0" 371 | 372 | [[FixedPointNumbers]] 373 | deps = ["Statistics"] 374 | git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" 375 | uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" 376 | version = "0.8.4" 377 | 378 | [[FlameGraphs]] 379 | deps = ["AbstractTrees", "Colors", "FileIO", "FixedPointNumbers", "IndirectArrays", "LeftChildRightSiblingTrees", "Profile"] 380 | git-tree-sha1 = "99c43a8765095efa6ef76233d44a89e68073bd10" 381 | uuid = "08572546-2f56-4bcf-ba4e-bab62c3a3f89" 382 | version = "0.2.5" 383 | 384 | [[Fontconfig_jll]] 385 | deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] 386 | git-tree-sha1 = "35895cf184ceaab11fd778b4590144034a167a2f" 387 | uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" 388 | version = "2.13.1+14" 389 | 390 | [[Formatting]] 391 | deps = ["Printf"] 392 | git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" 393 | uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" 394 | version = "0.4.2" 395 | 396 | [[ForwardDiff]] 397 | deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "NaNMath", "Random", "SpecialFunctions", "StaticArrays"] 398 | git-tree-sha1 = "d48a40c0f54f29a5c8748cfb3225719accc72b77" 399 | uuid = "f6369f11-7733-5829-9624-2563aa707210" 400 | version = "0.10.16" 401 | 402 | [[FreeType2_jll]] 403 | deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] 404 | git-tree-sha1 = "cbd58c9deb1d304f5a245a0b7eb841a2560cfec6" 405 | uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" 406 | version = "2.10.1+5" 407 | 408 | [[FriBidi_jll]] 409 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 410 | git-tree-sha1 = "0d20aed5b14dd4c9a2453c1b601d08e1149679cc" 411 | uuid = "559328eb-81f9-559d-9380-de523a88c83c" 412 | version = "1.0.5+6" 413 | 414 | [[FunctionWrappers]] 415 | git-tree-sha1 = "e4813d187be8c7b993cb7f85cbf2b7bfbaadc694" 416 | uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" 417 | version = "1.1.1" 418 | 419 | [[FunctionalCollections]] 420 | deps = ["Test"] 421 | git-tree-sha1 = "04cb9cfaa6ba5311973994fe3496ddec19b6292a" 422 | uuid = "de31a74c-ac4f-5751-b3fd-e18cd04993ca" 423 | version = "0.5.0" 424 | 425 | [[Future]] 426 | deps = ["Random"] 427 | uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" 428 | 429 | [[FuzzyCompletions]] 430 | deps = ["REPL"] 431 | git-tree-sha1 = "5ca3ddf3061771d25d1699ce53a80a39300811e3" 432 | uuid = "fb4132e2-a121-4a70-b8a1-d5b831dcdcc2" 433 | version = "0.4.0" 434 | 435 | [[GLFW_jll]] 436 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pkg", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] 437 | git-tree-sha1 = "a1bbf700b5388bffc3d882f4f4d625cf1c714fd7" 438 | uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" 439 | version = "3.3.2+1" 440 | 441 | [[GR]] 442 | deps = ["Base64", "DelimitedFiles", "GR_jll", "HTTP", "JSON", "LinearAlgebra", "Pkg", "Printf", "Random", "Serialization", "Sockets", "Test", "UUIDs"] 443 | git-tree-sha1 = "aaebdf5588281c2902f499b49e67953f2b409c9c" 444 | uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" 445 | version = "0.54.0" 446 | 447 | [[GR_jll]] 448 | deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Pkg", "Qt_jll", "Zlib_jll", "libpng_jll"] 449 | git-tree-sha1 = "8aee6fa096b0cbdb05e71750c978b96a08c78951" 450 | uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" 451 | version = "0.53.0+0" 452 | 453 | [[GenericSVD]] 454 | deps = ["LinearAlgebra"] 455 | git-tree-sha1 = "62909c3eda8a25b5673a367d1ad2392ebb265211" 456 | uuid = "01680d73-4ee2-5a08-a1aa-533608c188bb" 457 | version = "0.3.0" 458 | 459 | [[GeometryBasics]] 460 | deps = ["EarCut_jll", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] 461 | git-tree-sha1 = "4d4f72691933d5b6ee1ff20e27a102c3ae99d123" 462 | uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" 463 | version = "0.3.9" 464 | 465 | [[Gettext_jll]] 466 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] 467 | git-tree-sha1 = "8c14294a079216000a0bdca5ec5a447f073ddc9d" 468 | uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" 469 | version = "0.20.1+7" 470 | 471 | [[Glib_jll]] 472 | deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE_jll", "Pkg", "Zlib_jll"] 473 | git-tree-sha1 = "04690cc5008b38ecbdfede949220bc7d9ba26397" 474 | uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" 475 | version = "2.59.0+4" 476 | 477 | [[Grisu]] 478 | git-tree-sha1 = "03d381f65183cb2d0af8b3425fde97263ce9a995" 479 | uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" 480 | version = "1.0.0" 481 | 482 | [[HTTP]] 483 | deps = ["Base64", "Dates", "IniFile", "MbedTLS", "Sockets", "URIs"] 484 | git-tree-sha1 = "942c1a9c750bbe79912b7bd060a420932afd35b8" 485 | uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" 486 | version = "0.9.3" 487 | 488 | [[Hiccup]] 489 | deps = ["MacroTools", "Test"] 490 | git-tree-sha1 = "6187bb2d5fcbb2007c39e7ac53308b0d371124bd" 491 | uuid = "9fb69e20-1954-56bb-a84f-559cc56a8ff7" 492 | version = "0.2.2" 493 | 494 | [[Hwloc]] 495 | deps = ["Hwloc_jll"] 496 | git-tree-sha1 = "2e3d1d4ab0e7296354539b2be081f71f4b694c0b" 497 | uuid = "0e44f5e4-bd66-52a0-8798-143a42290a1d" 498 | version = "1.2.0" 499 | 500 | [[Hwloc_jll]] 501 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 502 | git-tree-sha1 = "1179250d910c99810d8a7ff55c50c4ed68c77a58" 503 | uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" 504 | version = "2.4.0+0" 505 | 506 | [[IOCapture]] 507 | deps = ["Logging"] 508 | git-tree-sha1 = "377252859f740c217b936cebcd918a44f9b53b59" 509 | uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" 510 | version = "0.1.1" 511 | 512 | [[IfElse]] 513 | git-tree-sha1 = "28e837ff3e7a6c3cdb252ce49fb412c8eb3caeef" 514 | uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" 515 | version = "0.1.0" 516 | 517 | [[IndirectArrays]] 518 | git-tree-sha1 = "c2a145a145dc03a7620af1444e0264ef907bd44f" 519 | uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" 520 | version = "0.5.1" 521 | 522 | [[Inflate]] 523 | git-tree-sha1 = "f5fc07d4e706b84f72d54eedcc1c13d92fb0871c" 524 | uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" 525 | version = "0.1.2" 526 | 527 | [[IniFile]] 528 | deps = ["Test"] 529 | git-tree-sha1 = "098e4d2c533924c921f9f9847274f2ad89e018b8" 530 | uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f" 531 | version = "0.5.0" 532 | 533 | [[InteractiveUtils]] 534 | deps = ["Markdown"] 535 | uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" 536 | 537 | [[IterTools]] 538 | git-tree-sha1 = "05110a2ab1fc5f932622ffea2a003221f4782c18" 539 | uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" 540 | version = "1.3.0" 541 | 542 | [[IterativeSolvers]] 543 | deps = ["LinearAlgebra", "Printf", "Random", "RecipesBase", "SparseArrays"] 544 | git-tree-sha1 = "6f5ef3206d9dc6510a8b8e2334b96454a2ade590" 545 | uuid = "42fd0dbc-a981-5370-80f2-aaf504508153" 546 | version = "0.9.0" 547 | 548 | [[IteratorInterfaceExtensions]] 549 | git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" 550 | uuid = "82899510-4779-5014-852e-03e436cf321d" 551 | version = "1.0.0" 552 | 553 | [[JLLWrappers]] 554 | git-tree-sha1 = "a431f5f2ca3f4feef3bd7a5e94b8b8d4f2f647a0" 555 | uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" 556 | version = "1.2.0" 557 | 558 | [[JSON]] 559 | deps = ["Dates", "Mmap", "Parsers", "Unicode"] 560 | git-tree-sha1 = "81690084b6198a2e1da36fcfda16eeca9f9f24e4" 561 | uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" 562 | version = "0.21.1" 563 | 564 | [[JpegTurbo_jll]] 565 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 566 | git-tree-sha1 = "9aff0587d9603ea0de2c6f6300d9f9492bbefbd3" 567 | uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" 568 | version = "2.0.1+3" 569 | 570 | [[JuliaFormatter]] 571 | deps = ["CSTParser", "CommonMark", "DataStructures", "Documenter", "Pkg", "Test", "Tokenize"] 572 | git-tree-sha1 = "07bd1f2505aa0b5a7f1ba9ad8d9e48b1e3c873e8" 573 | uuid = "98e50ef6-434e-11e9-1051-2b60c6c9e899" 574 | version = "0.12.3" 575 | 576 | [[JuliaInterpreter]] 577 | deps = ["CodeTracking", "InteractiveUtils", "Random", "UUIDs"] 578 | git-tree-sha1 = "fe18234f046a772069abdc8d29f073d8c0f092a5" 579 | uuid = "aa1ae85d-cabe-5617-a682-6adf51b2e16a" 580 | version = "0.8.8" 581 | 582 | [[Juno]] 583 | deps = ["Base64", "Logging", "Media", "Profile"] 584 | git-tree-sha1 = "07cb43290a840908a771552911a6274bc6c072c7" 585 | uuid = "e5e0dc1b-0480-54bc-9374-aad01c23163d" 586 | version = "0.8.4" 587 | 588 | [[LAME_jll]] 589 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 590 | git-tree-sha1 = "df381151e871f41ee86cee4f5f6fd598b8a68826" 591 | uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" 592 | version = "3.100.0+3" 593 | 594 | [[LNR]] 595 | deps = ["Compat", "Lazy"] 596 | git-tree-sha1 = "c83f10b69f10e4ddad68f3b061de6f287417b9dc" 597 | uuid = "7c4cb9fa-83a0-5386-9231-d6167c818060" 598 | version = "0.2.1" 599 | 600 | [[LZO_jll]] 601 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 602 | git-tree-sha1 = "f128cd6cd05ffd6d3df0523ed99b90ff6f9b349a" 603 | uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" 604 | version = "2.10.0+3" 605 | 606 | [[LaTeXStrings]] 607 | git-tree-sha1 = "c7aebfecb1a60d59c0fe023a68ec947a208b1e6b" 608 | uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" 609 | version = "1.2.0" 610 | 611 | [[LabelledArrays]] 612 | deps = ["ArrayInterface", "LinearAlgebra", "MacroTools", "StaticArrays"] 613 | git-tree-sha1 = "5e288800819c323de5897fa6d5a002bdad54baf7" 614 | uuid = "2ee39098-c373-598a-b85f-a56591580800" 615 | version = "1.5.0" 616 | 617 | [[Latexify]] 618 | deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "Printf", "Requires"] 619 | git-tree-sha1 = "3a0084cec7bf157edcb45a67fac0647f88fe5eaf" 620 | uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" 621 | version = "0.14.7" 622 | 623 | [[Lazy]] 624 | deps = ["MacroTools"] 625 | git-tree-sha1 = "1370f8202dac30758f3c345f9909b97f53d87d3f" 626 | uuid = "50d2b5c4-7a5e-59d5-8109-a42b560f39c0" 627 | version = "0.15.1" 628 | 629 | [[LeftChildRightSiblingTrees]] 630 | deps = ["AbstractTrees"] 631 | git-tree-sha1 = "71be1eb5ad19cb4f61fa8c73395c0338fd092ae0" 632 | uuid = "1d6d02ad-be62-4b6b-8a6d-2f90e265016e" 633 | version = "0.1.2" 634 | 635 | [[LibGit2]] 636 | deps = ["Printf"] 637 | uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" 638 | 639 | [[LibVPX_jll]] 640 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 641 | git-tree-sha1 = "85fcc80c3052be96619affa2fe2e6d2da3908e11" 642 | uuid = "dd192d2f-8180-539f-9fb4-cc70b1dcf69a" 643 | version = "1.9.0+1" 644 | 645 | [[Libdl]] 646 | uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" 647 | 648 | [[Libffi_jll]] 649 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 650 | git-tree-sha1 = "a2cd088a88c0d37eef7d209fd3d8712febce0d90" 651 | uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" 652 | version = "3.2.1+4" 653 | 654 | [[Libgcrypt_jll]] 655 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] 656 | git-tree-sha1 = "b391a18ab1170a2e568f9fb8d83bc7c780cb9999" 657 | uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" 658 | version = "1.8.5+4" 659 | 660 | [[Libglvnd_jll]] 661 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] 662 | git-tree-sha1 = "7739f837d6447403596a75d19ed01fd08d6f56bf" 663 | uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" 664 | version = "1.3.0+3" 665 | 666 | [[Libgpg_error_jll]] 667 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 668 | git-tree-sha1 = "ec7f2e8ad5c9fa99fc773376cdbc86d9a5a23cb7" 669 | uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" 670 | version = "1.36.0+3" 671 | 672 | [[Libiconv_jll]] 673 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 674 | git-tree-sha1 = "8e924324b2e9275a51407a4e06deb3455b1e359f" 675 | uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" 676 | version = "1.16.0+7" 677 | 678 | [[Libmount_jll]] 679 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 680 | git-tree-sha1 = "51ad0c01c94c1ce48d5cad629425035ad030bfd5" 681 | uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" 682 | version = "2.34.0+3" 683 | 684 | [[Libtiff_jll]] 685 | deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "Zlib_jll", "Zstd_jll"] 686 | git-tree-sha1 = "291dd857901f94d683973cdf679984cdf73b56d0" 687 | uuid = "89763e89-9b03-5906-acba-b20f662cd828" 688 | version = "4.1.0+2" 689 | 690 | [[Libuuid_jll]] 691 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 692 | git-tree-sha1 = "f879ae9edbaa2c74c922e8b85bb83cc84ea1450b" 693 | uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" 694 | version = "2.34.0+7" 695 | 696 | [[LightGraphs]] 697 | deps = ["ArnoldiMethod", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] 698 | git-tree-sha1 = "432428df5f360964040ed60418dd5601ecd240b6" 699 | uuid = "093fc24a-ae57-5d10-9952-331d41423f4d" 700 | version = "1.3.5" 701 | 702 | [[LineSearches]] 703 | deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] 704 | git-tree-sha1 = "f27132e551e959b3667d8c93eae90973225032dd" 705 | uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" 706 | version = "7.1.1" 707 | 708 | [[LinearAlgebra]] 709 | deps = ["Libdl"] 710 | uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" 711 | 712 | [[Logging]] 713 | uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" 714 | 715 | [[LoopVectorization]] 716 | deps = ["ArrayInterface", "DocStringExtensions", "IfElse", "LinearAlgebra", "OffsetArrays", "Requires", "SLEEFPirates", "ThreadingUtilities", "UnPack", "VectorizationBase"] 717 | git-tree-sha1 = "5684e4aafadaf668dce27f12d67df4888fa58181" 718 | uuid = "bdcacae8-1622-11e9-2a5c-532679323890" 719 | version = "0.11.2" 720 | 721 | [[METIS_jll]] 722 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 723 | git-tree-sha1 = "2dc1a9fc87e57e32b1fc186db78811157b30c118" 724 | uuid = "d00139f3-1899-568f-a2f0-47f597d42d70" 725 | version = "5.1.0+5" 726 | 727 | [[MacroTools]] 728 | deps = ["Markdown", "Random"] 729 | git-tree-sha1 = "6a8a2a625ab0dea913aba95c11370589e0239ff0" 730 | uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" 731 | version = "0.5.6" 732 | 733 | [[Markdown]] 734 | deps = ["Base64"] 735 | uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" 736 | 737 | [[MbedTLS]] 738 | deps = ["Dates", "MbedTLS_jll", "Random", "Sockets"] 739 | git-tree-sha1 = "1c38e51c3d08ef2278062ebceade0e46cefc96fe" 740 | uuid = "739be429-bea8-5141-9913-cc70e7f3736d" 741 | version = "1.0.3" 742 | 743 | [[MbedTLS_jll]] 744 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 745 | git-tree-sha1 = "0eef589dd1c26a3ac9d753fe1a8bcad63f956fa6" 746 | uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" 747 | version = "2.16.8+1" 748 | 749 | [[Measures]] 750 | git-tree-sha1 = "e498ddeee6f9fdb4551ce855a46f54dbd900245f" 751 | uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" 752 | version = "0.3.1" 753 | 754 | [[Media]] 755 | deps = ["MacroTools", "Test"] 756 | git-tree-sha1 = "75a54abd10709c01f1b86b84ec225d26e840ed58" 757 | uuid = "e89f7d12-3494-54d1-8411-f7d8b9ae1f27" 758 | version = "0.5.0" 759 | 760 | [[Missings]] 761 | deps = ["DataAPI"] 762 | git-tree-sha1 = "f8c673ccc215eb50fcadb285f522420e29e69e1c" 763 | uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" 764 | version = "0.4.5" 765 | 766 | [[Mmap]] 767 | uuid = "a63ad114-7e13-5084-954f-fe012c677804" 768 | 769 | [[ModelingToolkit]] 770 | deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqJump", "DiffRules", "Distributed", "Distributions", "DocStringExtensions", "IfElse", "LabelledArrays", "Latexify", "Libdl", "LightGraphs", "LinearAlgebra", "MacroTools", "NaNMath", "RecursiveArrayTools", "Reexport", "Requires", "RuntimeGeneratedFunctions", "SafeTestsets", "SciMLBase", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicUtils", "TreeViews", "UnPack", "Unitful"] 771 | git-tree-sha1 = "04fc36d1751435ee8ab35f56936a988c84458a6d" 772 | uuid = "961ee093-0014-501f-94e3-6117800e7a78" 773 | version = "5.6.0" 774 | 775 | [[MuladdMacro]] 776 | git-tree-sha1 = "c6190f9a7fc5d9d5915ab29f2134421b12d24a68" 777 | uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" 778 | version = "0.2.2" 779 | 780 | [[MultiScaleArrays]] 781 | deps = ["DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "OrdinaryDiffEq", "Random", "RecursiveArrayTools", "SparseDiffTools", "Statistics", "StochasticDiffEq", "TreeViews"] 782 | git-tree-sha1 = "258f3be6770fe77be8870727ba9803e236c685b8" 783 | uuid = "f9640e96-87f6-5992-9c3b-0743c6a49ffa" 784 | version = "1.8.1" 785 | 786 | [[NLSolversBase]] 787 | deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] 788 | git-tree-sha1 = "39d6bc45e99c96e6995cbddac02877f9b61a1dd1" 789 | uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" 790 | version = "7.7.1" 791 | 792 | [[NLsolve]] 793 | deps = ["Distances", "LineSearches", "LinearAlgebra", "NLSolversBase", "Printf", "Reexport"] 794 | git-tree-sha1 = "019f12e9a1a7880459d0173c182e6a99365d7ac1" 795 | uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" 796 | version = "4.5.1" 797 | 798 | [[NaNMath]] 799 | git-tree-sha1 = "bfe47e760d60b82b66b61d2d44128b62e3a369fb" 800 | uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" 801 | version = "0.3.5" 802 | 803 | [[NonlinearSolve]] 804 | deps = ["ArrayInterface", "FiniteDiff", "ForwardDiff", "IterativeSolvers", "LinearAlgebra", "RecursiveArrayTools", "RecursiveFactorization", "Reexport", "SciMLBase", "Setfield", "StaticArrays", "UnPack"] 805 | git-tree-sha1 = "ef18e47df4f3917af35be5e5d7f5d97e8a83b0ec" 806 | uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" 807 | version = "0.3.8" 808 | 809 | [[Observables]] 810 | git-tree-sha1 = "3469ef96607a6b9a1e89e54e6f23401073ed3126" 811 | uuid = "510215fc-4207-5dde-b226-833fc4488ee2" 812 | version = "0.3.3" 813 | 814 | [[OffsetArrays]] 815 | deps = ["Adapt"] 816 | git-tree-sha1 = "76622f08645764e040b4d7e86d0ff471fd126ae4" 817 | uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" 818 | version = "1.5.3" 819 | 820 | [[Ogg_jll]] 821 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 822 | git-tree-sha1 = "a42c0f138b9ebe8b58eba2271c5053773bde52d0" 823 | uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" 824 | version = "1.3.4+2" 825 | 826 | [[OpenBLAS_jll]] 827 | deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"] 828 | git-tree-sha1 = "0c922fd9634e358622e333fc58de61f05a048492" 829 | uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" 830 | version = "0.3.9+5" 831 | 832 | [[OpenSSL_jll]] 833 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 834 | git-tree-sha1 = "71bbbc616a1d710879f5a1021bcba65ffba6ce58" 835 | uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" 836 | version = "1.1.1+6" 837 | 838 | [[OpenSpecFun_jll]] 839 | deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] 840 | git-tree-sha1 = "9db77584158d0ab52307f8c04f8e7c08ca76b5b3" 841 | uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" 842 | version = "0.5.3+4" 843 | 844 | [[Opus_jll]] 845 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 846 | git-tree-sha1 = "f9d57f4126c39565e05a2b0264df99f497fc6f37" 847 | uuid = "91d4177d-7536-5919-b921-800302f37372" 848 | version = "1.3.1+3" 849 | 850 | [[OrderedCollections]] 851 | git-tree-sha1 = "d45739abcfc03b51f6a42712894a593f74c80a23" 852 | uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" 853 | version = "1.3.3" 854 | 855 | [[OrdinaryDiffEq]] 856 | deps = ["Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "ExponentialUtilities", "FastClosures", "FiniteDiff", "ForwardDiff", "GenericSVD", "LinearAlgebra", "Logging", "MacroTools", "MuladdMacro", "NLsolve", "RecursiveArrayTools", "Reexport", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] 857 | git-tree-sha1 = "bb5455c4813e42108fa54123ed9acc6e1524816e" 858 | uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" 859 | version = "5.50.2" 860 | 861 | [[PCRE_jll]] 862 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 863 | git-tree-sha1 = "1b556ad51dceefdbf30e86ffa8f528b73c7df2bb" 864 | uuid = "2f80f16e-611a-54ab-bc61-aa92de5b98fc" 865 | version = "8.42.0+4" 866 | 867 | [[PDMats]] 868 | deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse", "Test"] 869 | git-tree-sha1 = "95a4038d1011dfdbde7cecd2ad0ac411e53ab1bc" 870 | uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" 871 | version = "0.10.1" 872 | 873 | [[ParameterizedFunctions]] 874 | deps = ["DataStructures", "DiffEqBase", "Latexify", "LinearAlgebra", "ModelingToolkit", "Reexport", "SciMLBase"] 875 | git-tree-sha1 = "3610913402be3856074668741326d82d02cbba5a" 876 | uuid = "65888b18-ceab-5e60-b2b9-181511a3b968" 877 | version = "5.9.0" 878 | 879 | [[Parameters]] 880 | deps = ["OrderedCollections", "UnPack"] 881 | git-tree-sha1 = "2276ac65f1e236e0a6ea70baff3f62ad4c625345" 882 | uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" 883 | version = "0.12.2" 884 | 885 | [[Parsers]] 886 | deps = ["Dates"] 887 | git-tree-sha1 = "50c9a9ed8c714945e01cd53a21007ed3865ed714" 888 | uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" 889 | version = "1.0.15" 890 | 891 | [[Pidfile]] 892 | deps = ["FileWatching", "Test"] 893 | git-tree-sha1 = "1be8660b2064893cd2dae4bd004b589278e4440d" 894 | uuid = "fa939f87-e72e-5be4-a000-7fc836dbe307" 895 | version = "1.2.0" 896 | 897 | [[Pixman_jll]] 898 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 899 | git-tree-sha1 = "6a20a83c1ae86416f0a5de605eaea08a552844a3" 900 | uuid = "30392449-352a-5448-841d-b1acce4e97dc" 901 | version = "0.40.0+0" 902 | 903 | [[Pkg]] 904 | deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"] 905 | uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" 906 | 907 | [[PlotThemes]] 908 | deps = ["PlotUtils", "Requires", "Statistics"] 909 | git-tree-sha1 = "a3a964ce9dc7898193536002a6dd892b1b5a6f1d" 910 | uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" 911 | version = "2.0.1" 912 | 913 | [[PlotUtils]] 914 | deps = ["ColorSchemes", "Colors", "Dates", "Printf", "Random", "Reexport", "Statistics"] 915 | git-tree-sha1 = "ae9a295ac761f64d8c2ec7f9f24d21eb4ffba34d" 916 | uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" 917 | version = "1.0.10" 918 | 919 | [[Plots]] 920 | deps = ["Base64", "Contour", "Dates", "FFMPEG", "FixedPointNumbers", "GR", "GeometryBasics", "JSON", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs"] 921 | git-tree-sha1 = "cab13323a50caf17432793269677b289234f02ca" 922 | uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" 923 | version = "1.10.4" 924 | 925 | [[PoissonRandom]] 926 | deps = ["Random", "Statistics", "Test"] 927 | git-tree-sha1 = "44d018211a56626288b5d3f8c6497d28c26dc850" 928 | uuid = "e409e4f3-bfea-5376-8464-e040bb5c01ab" 929 | version = "0.4.0" 930 | 931 | [[Printf]] 932 | deps = ["Unicode"] 933 | uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" 934 | 935 | [[Profile]] 936 | deps = ["Printf"] 937 | uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" 938 | 939 | [[Qt_jll]] 940 | deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "xkbcommon_jll"] 941 | git-tree-sha1 = "7760cfea90bec61814e31dfb204fa4b81bba7b57" 942 | uuid = "ede63266-ebff-546c-83e0-1c6fb6d0efc8" 943 | version = "5.15.2+1" 944 | 945 | [[QuadGK]] 946 | deps = ["DataStructures", "LinearAlgebra"] 947 | git-tree-sha1 = "12fbe86da16df6679be7521dfb39fbc861e1dc7b" 948 | uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" 949 | version = "2.4.1" 950 | 951 | [[REPL]] 952 | deps = ["InteractiveUtils", "Markdown", "Sockets"] 953 | uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" 954 | 955 | [[Random]] 956 | deps = ["Serialization"] 957 | uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" 958 | 959 | [[Random123]] 960 | deps = ["Libdl", "Random", "RandomNumbers"] 961 | git-tree-sha1 = "7c6710c8198fd4444b5eb6a3840b7d47bd3593c5" 962 | uuid = "74087812-796a-5b5d-8853-05524746bad3" 963 | version = "1.3.1" 964 | 965 | [[RandomExtensions]] 966 | deps = ["Random", "SparseArrays"] 967 | git-tree-sha1 = "062986376ce6d394b23d5d90f01d81426113a3c9" 968 | uuid = "fb686558-2515-59ef-acaa-46db3789a887" 969 | version = "0.4.3" 970 | 971 | [[RandomNumbers]] 972 | deps = ["Random", "Requires"] 973 | git-tree-sha1 = "441e6fc35597524ada7f85e13df1f4e10137d16f" 974 | uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" 975 | version = "1.4.0" 976 | 977 | [[RecipesBase]] 978 | git-tree-sha1 = "b3fb709f3c97bfc6e948be68beeecb55a0b340ae" 979 | uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" 980 | version = "1.1.1" 981 | 982 | [[RecipesPipeline]] 983 | deps = ["Dates", "NaNMath", "PlotUtils", "RecipesBase"] 984 | git-tree-sha1 = "c4d54a78e287de7ec73bbc928ce5eb3c60f80b24" 985 | uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" 986 | version = "0.3.1" 987 | 988 | [[RecursiveArrayTools]] 989 | deps = ["ArrayInterface", "LinearAlgebra", "RecipesBase", "Requires", "StaticArrays", "Statistics", "ZygoteRules"] 990 | git-tree-sha1 = "271a36e18c8806332b7bd0f57e50fcff0d428b11" 991 | uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" 992 | version = "2.11.0" 993 | 994 | [[RecursiveFactorization]] 995 | deps = ["LinearAlgebra", "LoopVectorization", "VectorizationBase"] 996 | git-tree-sha1 = "281d65ba3a0cc00116c7bf0dea2dd2e1f1e6693a" 997 | uuid = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" 998 | version = "0.1.10" 999 | 1000 | [[Reexport]] 1001 | git-tree-sha1 = "57d8440b0c7d98fc4f889e478e80f268d534c9d5" 1002 | uuid = "189a3867-3050-52da-a836-e630ba90ab69" 1003 | version = "1.0.0" 1004 | 1005 | [[Requires]] 1006 | deps = ["UUIDs"] 1007 | git-tree-sha1 = "cfbac6c1ed70c002ec6361e7fd334f02820d6419" 1008 | uuid = "ae029012-a4dd-5104-9daa-d747884805df" 1009 | version = "1.1.2" 1010 | 1011 | [[ResettableStacks]] 1012 | deps = ["StaticArrays"] 1013 | git-tree-sha1 = "622b3e491fb0a85fbfeed6f17dc320a9f46d8929" 1014 | uuid = "ae5879a3-cd67-5da8-be7f-38c6eb64a37b" 1015 | version = "1.1.0" 1016 | 1017 | [[Rmath]] 1018 | deps = ["Random", "Rmath_jll"] 1019 | git-tree-sha1 = "86c5647b565873641538d8f812c04e4c9dbeb370" 1020 | uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" 1021 | version = "0.6.1" 1022 | 1023 | [[Rmath_jll]] 1024 | deps = ["Libdl", "Pkg"] 1025 | git-tree-sha1 = "d76185aa1f421306dec73c057aa384bad74188f0" 1026 | uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" 1027 | version = "0.2.2+1" 1028 | 1029 | [[RuntimeGeneratedFunctions]] 1030 | deps = ["ExprTools", "SHA", "Serialization"] 1031 | git-tree-sha1 = "e02f14dfe3a8d3b8fc92ca80c1882bfdbc015e07" 1032 | uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" 1033 | version = "0.5.1" 1034 | 1035 | [[SHA]] 1036 | uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" 1037 | 1038 | [[SLEEFPirates]] 1039 | deps = ["IfElse", "Libdl", "VectorizationBase"] 1040 | git-tree-sha1 = "ab6194c92dcf38036cd9513e4ab12cd76a613da1" 1041 | uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" 1042 | version = "0.6.10" 1043 | 1044 | [[SafeTestsets]] 1045 | deps = ["Test"] 1046 | git-tree-sha1 = "36ebc5622c82eb9324005cc75e7e2cc51181d181" 1047 | uuid = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" 1048 | version = "0.0.1" 1049 | 1050 | [[SciMLBase]] 1051 | deps = ["ArrayInterface", "CommonSolve", "Distributed", "DocStringExtensions", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "RecipesBase", "RecursiveArrayTools", "StaticArrays", "Statistics", "Tables", "TreeViews"] 1052 | git-tree-sha1 = "92a3f1d17a2656e55d731ef250818367fd0536fa" 1053 | uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" 1054 | version = "1.7.3" 1055 | 1056 | [[Scratch]] 1057 | deps = ["Dates"] 1058 | git-tree-sha1 = "ad4b278adb62d185bbcb6864dc24959ab0627bf6" 1059 | uuid = "6c6a2e73-6563-6170-7368-637461726353" 1060 | version = "1.0.3" 1061 | 1062 | [[Serialization]] 1063 | uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" 1064 | 1065 | [[Setfield]] 1066 | deps = ["ConstructionBase", "Future", "MacroTools", "Requires"] 1067 | git-tree-sha1 = "d5640fc570fb1b6c54512f0bd3853866bd298b3e" 1068 | uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" 1069 | version = "0.7.0" 1070 | 1071 | [[SharedArrays]] 1072 | deps = ["Distributed", "Mmap", "Random", "Serialization"] 1073 | uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" 1074 | 1075 | [[Showoff]] 1076 | deps = ["Dates", "Grisu"] 1077 | git-tree-sha1 = "ee010d8f103468309b8afac4abb9be2e18ff1182" 1078 | uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" 1079 | version = "0.3.2" 1080 | 1081 | [[SimpleTraits]] 1082 | deps = ["InteractiveUtils", "MacroTools"] 1083 | git-tree-sha1 = "daf7aec3fe3acb2131388f93a4c409b8c7f62226" 1084 | uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" 1085 | version = "0.9.3" 1086 | 1087 | [[Sockets]] 1088 | uuid = "6462fe0b-24de-5631-8697-dd941f90decc" 1089 | 1090 | [[SortingAlgorithms]] 1091 | deps = ["DataStructures", "Random", "Test"] 1092 | git-tree-sha1 = "03f5898c9959f8115e30bc7226ada7d0df554ddd" 1093 | uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" 1094 | version = "0.3.1" 1095 | 1096 | [[SparseArrays]] 1097 | deps = ["LinearAlgebra", "Random"] 1098 | uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" 1099 | 1100 | [[SparseDiffTools]] 1101 | deps = ["Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "LightGraphs", "LinearAlgebra", "Requires", "SparseArrays", "VertexSafeGraphs"] 1102 | git-tree-sha1 = "d05bc362e3fa1b0e2361594a706fc63ffbd140f3" 1103 | uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" 1104 | version = "1.13.0" 1105 | 1106 | [[SpecialFunctions]] 1107 | deps = ["ChainRulesCore", "OpenSpecFun_jll"] 1108 | git-tree-sha1 = "75394dbe2bd346beeed750fb02baa6445487b862" 1109 | uuid = "276daf66-3868-5448-9aa4-cd146d93841b" 1110 | version = "1.2.1" 1111 | 1112 | [[StaticArrays]] 1113 | deps = ["LinearAlgebra", "Random", "Statistics"] 1114 | git-tree-sha1 = "9da72ed50e94dbff92036da395275ed114e04d49" 1115 | uuid = "90137ffa-7385-5640-81b9-e52037218182" 1116 | version = "1.0.1" 1117 | 1118 | [[Statistics]] 1119 | deps = ["LinearAlgebra", "SparseArrays"] 1120 | uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" 1121 | 1122 | [[StatsBase]] 1123 | deps = ["DataAPI", "DataStructures", "LinearAlgebra", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics"] 1124 | git-tree-sha1 = "7bab7d4eb46b225b35179632852b595a3162cb61" 1125 | uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" 1126 | version = "0.33.2" 1127 | 1128 | [[StatsFuns]] 1129 | deps = ["Rmath", "SpecialFunctions"] 1130 | git-tree-sha1 = "3b9f665c70712af3264b61c27a7e1d62055dafd1" 1131 | uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" 1132 | version = "0.9.6" 1133 | 1134 | [[SteadyStateDiffEq]] 1135 | deps = ["DiffEqBase", "DiffEqCallbacks", "LinearAlgebra", "NLsolve", "Reexport", "SciMLBase"] 1136 | git-tree-sha1 = "9b908c7a5933b8ec7c2da44a477f74127baa2ce9" 1137 | uuid = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f" 1138 | version = "1.6.1" 1139 | 1140 | [[StochasticDiffEq]] 1141 | deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqJump", "DiffEqNoiseProcess", "FillArrays", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "Logging", "MuladdMacro", "NLsolve", "OrdinaryDiffEq", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] 1142 | git-tree-sha1 = "e207b556e30d79280fa8bac1780b75af11af955e" 1143 | uuid = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" 1144 | version = "6.32.1" 1145 | 1146 | [[StringDistances]] 1147 | deps = ["Distances"] 1148 | git-tree-sha1 = "b0ea34b18ba9da7abc79acabda8a473cd63c1254" 1149 | uuid = "88034a9c-02f8-509d-84a9-84ec65e18404" 1150 | version = "0.8.0" 1151 | 1152 | [[StructArrays]] 1153 | deps = ["Adapt", "DataAPI", "Tables"] 1154 | git-tree-sha1 = "26ea43b4be7e919a2390c3c0f824e7eb4fc19a0a" 1155 | uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" 1156 | version = "0.5.0" 1157 | 1158 | [[SuiteSparse]] 1159 | deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] 1160 | uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" 1161 | 1162 | [[SuiteSparse_jll]] 1163 | deps = ["Libdl", "METIS_jll", "OpenBLAS_jll", "Pkg"] 1164 | git-tree-sha1 = "4a2295b63d67e6f13a0b539c935ccbf218fa1143" 1165 | uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" 1166 | version = "5.4.0+9" 1167 | 1168 | [[Sundials]] 1169 | deps = ["CEnum", "DataStructures", "DiffEqBase", "Libdl", "LinearAlgebra", "Logging", "Reexport", "SparseArrays", "Sundials_jll"] 1170 | git-tree-sha1 = "28db9e1a8fdd1b8e95cee064a6c2066897cf39c5" 1171 | uuid = "c3572dad-4567-51f8-b174-8c6c989267f4" 1172 | version = "4.4.1" 1173 | 1174 | [[Sundials_jll]] 1175 | deps = ["CompilerSupportLibraries_jll", "Libdl", "OpenBLAS_jll", "Pkg", "SuiteSparse_jll"] 1176 | git-tree-sha1 = "013ff4504fc1d475aa80c63b455b6b3a58767db2" 1177 | uuid = "fb77eaff-e24c-56d4-86b1-d163f2edb164" 1178 | version = "5.2.0+1" 1179 | 1180 | [[SymbolicUtils]] 1181 | deps = ["AbstractAlgebra", "AbstractTrees", "Combinatorics", "DataStructures", "IfElse", "LabelledArrays", "NaNMath", "SparseArrays", "SpecialFunctions", "StaticArrays", "TimerOutputs"] 1182 | git-tree-sha1 = "89425f2e56680627bfe08d334a0c5112bfa50c66" 1183 | uuid = "d1185830-fcd6-423d-90d6-eec64667417b" 1184 | version = "0.8.2" 1185 | 1186 | [[TableTraits]] 1187 | deps = ["IteratorInterfaceExtensions"] 1188 | git-tree-sha1 = "b1ad568ba658d8cbb3b892ed5380a6f3e781a81e" 1189 | uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" 1190 | version = "1.0.0" 1191 | 1192 | [[Tables]] 1193 | deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "TableTraits", "Test"] 1194 | git-tree-sha1 = "a716dde43d57fa537a19058d044b495301ba6565" 1195 | uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" 1196 | version = "1.3.2" 1197 | 1198 | [[Test]] 1199 | deps = ["Distributed", "InteractiveUtils", "Logging", "Random"] 1200 | uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" 1201 | 1202 | [[ThreadingUtilities]] 1203 | deps = ["VectorizationBase"] 1204 | git-tree-sha1 = "e3032c97b183e6e2baf4d2cc4fe60c4292a4a707" 1205 | uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" 1206 | version = "0.2.5" 1207 | 1208 | [[TimerOutputs]] 1209 | deps = ["Printf"] 1210 | git-tree-sha1 = "3318281dd4121ecf9713ce1383b9ace7d7476fdd" 1211 | uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" 1212 | version = "0.5.7" 1213 | 1214 | [[Tokenize]] 1215 | git-tree-sha1 = "6c487fa179194ec02c4b9fc246563eb4afc9101c" 1216 | uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624" 1217 | version = "0.5.12" 1218 | 1219 | [[TreeViews]] 1220 | deps = ["Test"] 1221 | git-tree-sha1 = "8d0d7a3fe2f30d6a7f833a5f19f7c7a5b396eae6" 1222 | uuid = "a2a6695c-b41b-5b7d-aed9-dbfdeacea5d7" 1223 | version = "0.3.0" 1224 | 1225 | [[URIParser]] 1226 | deps = ["Unicode"] 1227 | git-tree-sha1 = "53a9f49546b8d2dd2e688d216421d050c9a31d0d" 1228 | uuid = "30578b45-9adc-5946-b283-645ec420af67" 1229 | version = "0.4.1" 1230 | 1231 | [[URIs]] 1232 | git-tree-sha1 = "7855809b88d7b16e9b029afd17880930626f54a2" 1233 | uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" 1234 | version = "1.2.0" 1235 | 1236 | [[UUIDs]] 1237 | deps = ["Random", "SHA"] 1238 | uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" 1239 | 1240 | [[UnPack]] 1241 | git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" 1242 | uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" 1243 | version = "1.0.2" 1244 | 1245 | [[Unicode]] 1246 | uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" 1247 | 1248 | [[Unitful]] 1249 | deps = ["ConstructionBase", "LinearAlgebra", "Random"] 1250 | git-tree-sha1 = "2b643523d52fc9fb4fe0729e6561d066055d58d8" 1251 | uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" 1252 | version = "1.5.0" 1253 | 1254 | [[VectorizationBase]] 1255 | deps = ["ArrayInterface", "Hwloc", "IfElse", "Libdl", "LinearAlgebra"] 1256 | git-tree-sha1 = "fff40362e3170e934afb15b9447e06812c6322e4" 1257 | uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" 1258 | version = "0.18.8" 1259 | 1260 | [[VertexSafeGraphs]] 1261 | deps = ["LightGraphs"] 1262 | git-tree-sha1 = "b9b450c99a3ca1cc1c6836f560d8d887bcbe356e" 1263 | uuid = "19fa3120-7c27-5ec5-8db8-b0b0aa330d6f" 1264 | version = "0.1.2" 1265 | 1266 | [[Wayland_jll]] 1267 | deps = ["Artifacts", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] 1268 | git-tree-sha1 = "dc643a9b774da1c2781413fd7b6dcd2c56bb8056" 1269 | uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" 1270 | version = "1.17.0+4" 1271 | 1272 | [[Wayland_protocols_jll]] 1273 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll"] 1274 | git-tree-sha1 = "2839f1c1296940218e35df0bbb220f2a79686670" 1275 | uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" 1276 | version = "1.18.0+4" 1277 | 1278 | [[WebIO]] 1279 | deps = ["AssetRegistry", "Base64", "Distributed", "FunctionalCollections", "JSON", "Logging", "Observables", "Pkg", "Random", "Requires", "Sockets", "UUIDs", "WebSockets", "Widgets"] 1280 | git-tree-sha1 = "adc25e225bc334c7df6eec3b39496edfc451cc38" 1281 | uuid = "0f1e0344-ec1d-5b48-a673-e5cf874b6c29" 1282 | version = "0.8.15" 1283 | 1284 | [[WebSockets]] 1285 | deps = ["Base64", "Dates", "HTTP", "Logging", "Sockets"] 1286 | git-tree-sha1 = "f91a602e25fe6b89afc93cf02a4ae18ee9384ce3" 1287 | uuid = "104b5d7c-a370-577a-8038-80a2059c5097" 1288 | version = "1.5.9" 1289 | 1290 | [[Widgets]] 1291 | deps = ["Colors", "Dates", "Observables", "OrderedCollections"] 1292 | git-tree-sha1 = "fc0feda91b3fef7fe6948ee09bb628f882b49ca4" 1293 | uuid = "cc8bc4a8-27d6-5769-a93b-9d913e69aa62" 1294 | version = "0.6.2" 1295 | 1296 | [[XML2_jll]] 1297 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"] 1298 | git-tree-sha1 = "be0db24f70aae7e2b89f2f3092e93b8606d659a6" 1299 | uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" 1300 | version = "2.9.10+3" 1301 | 1302 | [[XSLT_jll]] 1303 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Pkg", "XML2_jll"] 1304 | git-tree-sha1 = "2b3eac39df218762d2d005702d601cd44c997497" 1305 | uuid = "aed1982a-8fda-507f-9586-7b0439959a61" 1306 | version = "1.1.33+4" 1307 | 1308 | [[Xorg_libX11_jll]] 1309 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] 1310 | git-tree-sha1 = "5be649d550f3f4b95308bf0183b82e2582876527" 1311 | uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" 1312 | version = "1.6.9+4" 1313 | 1314 | [[Xorg_libXau_jll]] 1315 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1316 | git-tree-sha1 = "4e490d5c960c314f33885790ed410ff3a94ce67e" 1317 | uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" 1318 | version = "1.0.9+4" 1319 | 1320 | [[Xorg_libXcursor_jll]] 1321 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] 1322 | git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" 1323 | uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" 1324 | version = "1.2.0+4" 1325 | 1326 | [[Xorg_libXdmcp_jll]] 1327 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1328 | git-tree-sha1 = "4fe47bd2247248125c428978740e18a681372dd4" 1329 | uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" 1330 | version = "1.1.3+4" 1331 | 1332 | [[Xorg_libXext_jll]] 1333 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] 1334 | git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" 1335 | uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" 1336 | version = "1.3.4+4" 1337 | 1338 | [[Xorg_libXfixes_jll]] 1339 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] 1340 | git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" 1341 | uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" 1342 | version = "5.0.3+4" 1343 | 1344 | [[Xorg_libXi_jll]] 1345 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] 1346 | git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" 1347 | uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" 1348 | version = "1.7.10+4" 1349 | 1350 | [[Xorg_libXinerama_jll]] 1351 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] 1352 | git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" 1353 | uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" 1354 | version = "1.1.4+4" 1355 | 1356 | [[Xorg_libXrandr_jll]] 1357 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] 1358 | git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" 1359 | uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" 1360 | version = "1.5.2+4" 1361 | 1362 | [[Xorg_libXrender_jll]] 1363 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] 1364 | git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" 1365 | uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" 1366 | version = "0.9.10+4" 1367 | 1368 | [[Xorg_libpthread_stubs_jll]] 1369 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1370 | git-tree-sha1 = "6783737e45d3c59a4a4c4091f5f88cdcf0908cbb" 1371 | uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" 1372 | version = "0.1.0+3" 1373 | 1374 | [[Xorg_libxcb_jll]] 1375 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] 1376 | git-tree-sha1 = "daf17f441228e7a3833846cd048892861cff16d6" 1377 | uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" 1378 | version = "1.13.0+3" 1379 | 1380 | [[Xorg_libxkbfile_jll]] 1381 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] 1382 | git-tree-sha1 = "926af861744212db0eb001d9e40b5d16292080b2" 1383 | uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" 1384 | version = "1.1.0+4" 1385 | 1386 | [[Xorg_xcb_util_image_jll]] 1387 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] 1388 | git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" 1389 | uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" 1390 | version = "0.4.0+1" 1391 | 1392 | [[Xorg_xcb_util_jll]] 1393 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] 1394 | git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" 1395 | uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" 1396 | version = "0.4.0+1" 1397 | 1398 | [[Xorg_xcb_util_keysyms_jll]] 1399 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] 1400 | git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" 1401 | uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" 1402 | version = "0.4.0+1" 1403 | 1404 | [[Xorg_xcb_util_renderutil_jll]] 1405 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] 1406 | git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" 1407 | uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" 1408 | version = "0.3.9+1" 1409 | 1410 | [[Xorg_xcb_util_wm_jll]] 1411 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] 1412 | git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" 1413 | uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" 1414 | version = "0.4.1+1" 1415 | 1416 | [[Xorg_xkbcomp_jll]] 1417 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxkbfile_jll"] 1418 | git-tree-sha1 = "4bcbf660f6c2e714f87e960a171b119d06ee163b" 1419 | uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" 1420 | version = "1.4.2+4" 1421 | 1422 | [[Xorg_xkeyboard_config_jll]] 1423 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xkbcomp_jll"] 1424 | git-tree-sha1 = "5c8424f8a67c3f2209646d4425f3d415fee5931d" 1425 | uuid = "33bec58e-1273-512f-9401-5d533626f822" 1426 | version = "2.27.0+4" 1427 | 1428 | [[Xorg_xtrans_jll]] 1429 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1430 | git-tree-sha1 = "79c31e7844f6ecf779705fbc12146eb190b7d845" 1431 | uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" 1432 | version = "1.4.0+3" 1433 | 1434 | [[Zlib_jll]] 1435 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1436 | git-tree-sha1 = "320228915c8debb12cb434c59057290f0834dbf6" 1437 | uuid = "83775a58-1f1d-513f-b197-d71354ab007a" 1438 | version = "1.2.11+18" 1439 | 1440 | [[Zstd_jll]] 1441 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1442 | git-tree-sha1 = "2c1332c54931e83f8f94d310fa447fd743e8d600" 1443 | uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" 1444 | version = "1.4.8+0" 1445 | 1446 | [[ZygoteRules]] 1447 | deps = ["MacroTools"] 1448 | git-tree-sha1 = "9e7a1e8ca60b742e508a315c17eef5211e7fbfd7" 1449 | uuid = "700de1a5-db45-46bc-99cf-38207098b444" 1450 | version = "0.2.1" 1451 | 1452 | [[libass_jll]] 1453 | deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] 1454 | git-tree-sha1 = "acc685bcf777b2202a904cdcb49ad34c2fa1880c" 1455 | uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" 1456 | version = "0.14.0+4" 1457 | 1458 | [[libfdk_aac_jll]] 1459 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1460 | git-tree-sha1 = "7a5780a0d9c6864184b3a2eeeb833a0c871f00ab" 1461 | uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" 1462 | version = "0.1.6+4" 1463 | 1464 | [[libpng_jll]] 1465 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] 1466 | git-tree-sha1 = "6abbc424248097d69c0c87ba50fcb0753f93e0ee" 1467 | uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" 1468 | version = "1.6.37+6" 1469 | 1470 | [[libvorbis_jll]] 1471 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] 1472 | git-tree-sha1 = "fa14ac25af7a4b8a7f61b287a124df7aab601bcd" 1473 | uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" 1474 | version = "1.3.6+6" 1475 | 1476 | [[x264_jll]] 1477 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1478 | git-tree-sha1 = "d713c1ce4deac133e3334ee12f4adff07f81778f" 1479 | uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" 1480 | version = "2020.7.14+2" 1481 | 1482 | [[x265_jll]] 1483 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1484 | git-tree-sha1 = "487da2f8f2f0c8ee0e83f39d13037d6bbf0a45ab" 1485 | uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" 1486 | version = "3.0.0+3" 1487 | 1488 | [[xkbcommon_jll]] 1489 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] 1490 | git-tree-sha1 = "ece2350174195bb31de1a63bea3a41ae1aa593b6" 1491 | uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" 1492 | version = "0.9.1+5" 1493 | -------------------------------------------------------------------------------- /hand-crafted/Project.toml: -------------------------------------------------------------------------------- 1 | [deps] 2 | Atom = "c52e3926-4ff0-5f6e-af25-54175e0327b1" 3 | BSON = "fbb218c0-5317-5bc6-957e-2ee96dd4b1f0" 4 | DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" 5 | DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" 6 | DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def" 7 | DiffEqNoiseProcess = "77a26b50-5914-5dd7-bc55-306e6241c503" 8 | DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" 9 | Juno = "e5e0dc1b-0480-54bc-9374-aad01c23163d" 10 | LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" 11 | LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" 12 | Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" 13 | StochasticDiffEq = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" 14 | -------------------------------------------------------------------------------- /homodyne-current/Control.jl: -------------------------------------------------------------------------------- 1 | # make your scripts automatically re-activate your project 2 | cd(@__DIR__) 3 | using Pkg; Pkg.activate("."); Pkg.instantiate() 4 | 5 | 6 | using Flux, DiffEqFlux, DiffEqSensitivity 7 | using DifferentialEquations 8 | using DiffEqSensitivity 9 | using DiffEqNoiseProcess 10 | using Plots 11 | using Printf, BSON 12 | using QuantumOptics 13 | using Statistics 14 | using Zygote 15 | using StaticArrays 16 | using LinearAlgebra 17 | 18 | ################################################# 19 | #read parameters from external file 20 | include("parameters_qb.jl") 21 | using Main.parameters 22 | 23 | struct Parameters 24 | dim::Int64 25 | w::Float32 26 | force_mag::Float32 27 | n_steps::Int64 28 | dt::Float32 29 | n_substeps::Int64 30 | gamma::Float32 31 | end 32 | 33 | MyParameters=Parameters( 34 | parameters.parameters_para["N"], 35 | parameters.parameters_para["w"], 36 | parameters.parameters_para["force_mag"], 37 | parameters.parameters_para["max_episode_steps"], 38 | parameters.parameters_para["dt"], 39 | parameters.parameters_para["n_substeps"], 40 | parameters.parameters_para["gamma"]) 41 | 42 | n_par = 64 43 | # loss hyperparameters 44 | C1 = 1.2f0 # evolution state fid 45 | C2 = 0.0005f0 # action amplitudes 46 | C3 = 0.8f0*MyParameters.n_steps/50 #enhance last 50steps 47 | 48 | ######################## 49 | using Random 50 | Random.seed!(2) 51 | 52 | ################################ 53 | # Hamiltonian and evolution 54 | basis = SpinBasis(1//2) #max n=dim-1 55 | σ_z = sigmaz(basis) 56 | σ_x = sigmax(basis) 57 | σ_p = sigmap(basis) 58 | σ_m = sigmam(basis) 59 | σ_pm = σ_p*σ_m 60 | 61 | H_0pre = MyParameters.w/2.0f0*σ_z #drift Hamiltonian 62 | H_1pre = σ_x #control field 63 | 64 | #to the dense regime, all real, otherwise Flux.train! complains 65 | H_0 = real(Array{Float32}(H_0pre.data)) 66 | H_1 = real(Array{Float32}(H_1pre.data)) 67 | 68 | Arrayσ_p = real(Array{Float32}(σ_p.data)) 69 | Arrayσ_m = real(Array{Float32}(σ_m.data)) 70 | Arrayσ_pm = real(Array{Float32}(σ_pm.data)) 71 | 72 | ################### 73 | # DRIFT TERM FOR SDE 74 | function qb_dynamics_dt!(du,u, α, t) #du/u have a standard dimension 75 | ψRe = u[1:MyParameters.dim] #(dim,) 76 | ψIm = u[MyParameters.dim+1:end] 77 | 78 | HRe = H_0 .+ α[1]*H_1 #size (dim,dim) ,alpha is just a single number 79 | 80 | Reρ = ψRe.*transpose(ψRe) + ψIm.*transpose(ψIm) 81 | ex_x = real(sum(diag((Arrayσ_p+Arrayσ_m)*Reρ))) 82 | 83 | HIm = -Arrayσ_pm/2 + ex_x*Arrayσ_m 84 | du[1:MyParameters.dim] = dψRe = HIm*ψRe + HRe*ψIm; #size dim) 85 | du[MyParameters.dim+1:end] = dψIm = HIm*ψIm - HRe*ψRe; 86 | end 87 | 88 | ################### 89 | # DIFFUSION TERM FOR SDE 90 | function qb_dynamics_dW!(du,u, α, t) #last action IS NOT STORED IN u 91 | ψRe = u[1:MyParameters.dim] #(dim) 92 | ψIm = u[MyParameters.dim+1:end] 93 | 94 | HRe = Arrayσ_m 95 | 96 | du[1:MyParameters.dim] = dψRe = HRe*ψRe; #size (dim) 97 | du[MyParameters.dim+1:end] = dψIm = HRe*ψIm; 98 | end 99 | 100 | 101 | ################################################ 102 | #model 103 | @info("Constructing model...") 104 | #state-aware, input = homodyne current values as integrated over the last n_substeps 105 | state_1 = Dense(MyParameters.n_substeps, 256,relu ,initb = Flux.glorot_uniform) 106 | state_2 = Dense(256, 256,relu, initb = Flux.glorot_uniform) 107 | state_3 = Dense(256, 128,relu, initb = Flux.glorot_uniform) 108 | #action-aware, input = last actions provided by the NN 109 | nαin = 8 #number of last actions to be remembered 110 | action_1 = Dense(nαin, 128,relu,initb = Flux.glorot_uniform) 111 | action_2 = Dense(128, 128,relu,initb = Flux.glorot_uniform) 112 | #combined 113 | combine_1 = Dense(256, 64,relu,initb = Flux.glorot_uniform) 114 | combine_2 = Dense(64, 32,relu,initb = Flux.glorot_uniform) 115 | combine_3 = Dense(32, 1,softsign,initb = Flux.glorot_uniform) 116 | 117 | state_aware=Chain(state_1, state_2, state_3) 118 | action_aware=Chain(action_1,action_2) 119 | combined=Chain(combine_1, combine_2, combine_3) 120 | 121 | #this concatenates the full NN 122 | struct Concat{T} 123 | catted::T 124 | end 125 | Concat(xs...) = Concat(xs) 126 | Flux.@functor Concat 127 | 128 | function (C::Concat)(x) 129 | mapreduce((f, x) -> f(x), vcat, C.catted, x) 130 | end 131 | 132 | model = Chain(Concat(state_aware, action_aware), combined); 133 | p1, re = Flux.destructure(model) 134 | 135 | ############################################### 136 | # initial state anywhere on the Bloch sphere 137 | u0 = Array{Float32,2}(undef, 2*MyParameters.dim,n_par) 138 | fill!(u0,0.0f0) 139 | u0[2,:] .= 1.0f0 #down state 140 | 141 | function prepare_initial!(u0) #random position on the Bloch sphere 142 | fill!(u0,0.0f0) 143 | theta = acos.(2*rand(n_par).-[1]) #uniform sampling for cos(theta) between -1 and 1 144 | phi = rand(n_par)*2*pi 145 | #real parts 146 | u0[1,:] += cos.(theta/2) 147 | u0[2,:] += sin.(theta/2).*cos.(phi) 148 | #imag parts 149 | #u0[3,:].+=0 150 | u0[4,:] += sin.(theta/2).*sin.(phi) 151 | #normalize initial state -already normalized by definition 152 | norm_factor = sqrt.(sum(u0[1:2*MyParameters.dim,:].^2,dims=1)) 153 | u0[1:2*MyParameters.dim,:] = u0[1:2*MyParameters.dim,:]./norm_factor 154 | return u0 155 | end 156 | 157 | # target state 158 | # ψtar = |up> 159 | ut_complex = Array{Float32,1}(undef, MyParameters.dim) 160 | fill!(ut_complex,0.0f0) 161 | ut_complex[1,:] .= 1.0f0 162 | Re_ut = real(Array{Float32}(ut_complex)) 163 | Im_ut = imag(Array{Float32}(ut_complex)) 164 | #To visualize 165 | Fock_target = SVector{MyParameters.dim}(Re_ut.^2+Im_ut.^2) 166 | 167 | ############################################ 168 | #Mutate vector outside gradients! 169 | # Necessary for collectiong results during the training 170 | mut(A,index,x) = (A[index] = x) 171 | mut_row(A,index,x) = (A[index,:] = x) 172 | mut_vec(A,x) = (A .=x ) 173 | #tell Zygote not to take gradients of these 174 | Zygote.@nograd mut 175 | Zygote.@nograd mut_row 176 | Zygote.@nograd mut_vec 177 | 178 | ################################## 179 | # time range for the solver 180 | t_interval = round(MyParameters.n_substeps*MyParameters.dt,digits=5) 181 | tspan = (0.0f0,t_interval) 182 | 183 | ######################################### 184 | #Static Arrays to collect results 185 | mean_fid_store = zeros(MVector{MyParameters.n_steps+1,Float32}) 186 | std_fid_store = zeros(MVector{MyParameters.n_steps+1,Float32}) 187 | single_traj_fid_store = zeros(MMatrix{MyParameters.n_steps+1,n_par,Float32}) 188 | mean_action_store = zeros(MVector{MyParameters.n_steps,Float32}) 189 | std_action_store = zeros(MVector{MyParameters.n_steps,Float32}) 190 | single_traj_action_store = zeros(MMatrix{MyParameters.n_steps,n_par,Float32}) 191 | Fock_end_example = zeros(MVector{MyParameters.dim,Float32}) 192 | 193 | ######################################### 194 | # compute loss 195 | ########################### 196 | 197 | #normalize the state using callback function 198 | condition(u,t,integrator) = true 199 | function affect!(integrator) 200 | integrator.u=integrator.u/norm(integrator.u) 201 | end 202 | cb = DiscreteCallback(condition,affect!,save_positions=(false,true)) 203 | 204 | CreateGrid(W1) = (NoiseGrid(Array{Float32}((0.0:MyParameters.dt:(t_interval+MyParameters.dt))),W1)) 205 | Zygote.@nograd CreateGrid #avoid taking grads of this function 206 | 207 | # set scalar random process 208 | W = sqrt(MyParameters.dt)*randn(Float32,MyParameters.n_substeps+1) #for 1 trajectory 209 | W1 = cumsum([zero(MyParameters.dt); W[1:end-1]], dims=1) 210 | NG = CreateGrid(W1) 211 | # define SDE problem 212 | prepare_initial!(u0) 213 | α = zeros(Float32,1,n_par) 214 | prob = SDEProblem{true}(qb_dynamics_dt!,qb_dynamics_dW!, u0[:,1], tspan,α[1,1], noise=NG ) 215 | 216 | function compute_ex_x(sol) 217 | #size sol (2*dim, n_substeps+1, n_par) 218 | # Tr{σx*Reρ_i}... 219 | # Trick, σx =(0 1) 220 | # (1 0)... ..the trace effectively sums anti-diagonal terms 221 | # Reρ = ( st. unimportant ψRe[1]ψRe[2]+ψIm[1]ψIm[2]) 222 | # (ψRe[1]ψRe[2]+ψIm[1]ψIm[2] st. unimportant ) 223 | ψRe = @view sol[1:MyParameters.dim,:,:] #(dim,n_substeps+1, n_par) 224 | ψIm = @view sol[MyParameters.dim+1:end,:,:] 225 | ex_x = 2*(ψRe[1,:,:].*ψRe[2,:,:]+ψIm[1,:,:].*ψIm[2,:,:]) #size(n_substeps+1, n_par) 226 | end 227 | 228 | function loss_along_trajectory(p1) 229 | #initial values 230 | loss = 0.0f0 231 | u = u0 #initial state 232 | #prepare ini Jhom, suppose there is no noise in the input 233 | ex_x = transpose(compute_ex_x(u0)) # (1,n_par) 234 | Jhom = reshape(repeat(ex_x,MyParameters.n_substeps),(MyParameters.n_substeps,n_par)) 235 | αin = zeros(Float32,nαin,n_par) #initially all past actions set to zero 236 | 237 | function prob_func(prob, i, repeat) 238 | #prepare tge vector of Wiener Process 239 | NG = CreateGrid(W1j[:,i]) # EM and RKMil 240 | remake(prob,p=α[i:i],u0=u[:,i],noise=NG) 241 | end 242 | 243 | #initial state, save the features 244 | Re_uj = @view u[1:MyParameters.dim,:] 245 | Im_uj= @view u[MyParameters.dim+1:end,:] 246 | fid = zeros(Float32,1,n_par) 247 | fid += abs2.(sum(Re_ut.*Re_uj,dims=1)) 248 | # fid += abs2.(sum(Im_ut.*Im_uj,dims=1)) #commented because Im_ut=0, for general target uncomment 249 | # fid += abs2.(sum(Im_ut.*Re_uj,dims=1)) 250 | fid += abs2.(sum(Re_ut.*Im_uj,dims=1)) 251 | # fid += 2*(sum(Re_ut.*Re_uj,dims=1)).*sum(Im_ut.*Im_uj,dims=1) 252 | # fid -= 2*(sum(Re_ut.*Im_uj,dims=1)).*sum(Im_ut.*Re_uj,dims=1) 253 | mut_row(single_traj_fid_store,1,fid) 254 | mut(mean_fid_store,1,mean(fid)) 255 | mut(std_fid_store,1,std(fid)) 256 | 257 | W = sqrt(MyParameters.dt)*randn(Float32,MyParameters.n_substeps*MyParameters.n_steps+1,n_par) #for 1 trajectory 258 | W1 = cumsum([zero(MyParameters.dt); W[1:end-1,:]], dims=1) 259 | 260 | for j in 1:MyParameters.n_steps 261 | global W1j #must be global to be seen in prob_func 262 | global α 263 | #update action from NN 264 | α = re(p1)([Jhom,αin]).*MyParameters.force_mag #dim (1,n_par) 265 | αin = vcat(αin[2:end,:],α) 266 | #define ensemble problem 267 | W1j = @view W1[1+(j-1)*MyParameters.n_substeps:j*MyParameters.n_substeps+1,:] 268 | ensembleprob = EnsembleProblem(prob,prob_func = prob_func) 269 | 270 | sol = Array(solve(ensembleprob, RKMil(), 271 | ensemblealg=EnsembleThreads(), # EnsembleCPUArray(), EnsembleDistributed() 272 | sensealg = ForwardDiffSensitivity(), 273 | dt=MyParameters.dt, save_everystep=false, 274 | saveat=[t_interval], 275 | callback=cb, adaptive=false, trajectories=n_par, batch_size=n_par, 276 | save_noise=false, 277 | timeseries_errors=false,weak_timeseries_errors=false,weak_dense_errors=false 278 | )) #[2*dim,n_substeps+1, n_par] 279 | 280 | #collect for all n_substeps and n_par 281 | ex_x = compute_ex_x(sol) # (n_substeps, n_par), leave out the ini state 282 | dWj = W1j[2:end,:]-W1j[1:end-1,:] 283 | #NOISY MEASUREMENT at inidividual substeps 284 | Jhom = ex_x.*MyParameters.dt+dWj 285 | #current state 286 | u = @view sol[:,end,:] 287 | #compute loss function 288 | Re_uj = @view u[1:MyParameters.dim,:] 289 | Im_uj = @view u[MyParameters.dim+1:end,:] 290 | fid = zeros(Float32,1,n_par) 291 | fid += abs2.(sum(Re_ut.*Re_uj,dims=1)) 292 | # fid += abs2.(sum(Im_ut.*Im_uj,dims=1)) 293 | # fid += abs2.(sum(Im_ut.*Re_uj,dims=1)) 294 | fid += abs2.(sum(Re_ut.*Im_uj,dims=1)) 295 | # fid += 2*(sum(Re_ut.*Re_uj,dims=1)).*sum(Im_ut.*Im_uj,dims=1) 296 | # fid -= 2*(sum(Re_ut.*Im_uj,dims=1)).*sum(Im_ut.*Re_uj,dims=1) 297 | loss += C1*MyParameters.gamma^j*(1-mean(fid)) 298 | mut(mean_fid_store,j+1,mean(fid)) 299 | mut(std_fid_store,j+1,std(fid)) 300 | mut_row(single_traj_fid_store,j+1,fid) 301 | mut(mean_action_store,j,mean(α)) 302 | mut(std_action_store,j,std(α)) 303 | mut_row(single_traj_action_store,j,α) 304 | #punish large actions--note, that for j we are pointing to the j-1st action! 305 | loss += C2*MyParameters.gamma^(j)*(mean(abs2.(α))) #mimic...sum max valus 306 | #emphasize the main interval 307 | if j>(MyParameters.n_steps-50) 308 | loss += C3*MyParameters.gamma^j*(1-mean(fid)) 309 | mut_vec(Fock_end_example,Re_uj[:,1].^2+Im_uj[:,1].^2); 310 | end 311 | end 312 | return loss 313 | end 314 | 315 | 316 | ################################### 317 | # training loop parameters 318 | epochs=7000 319 | println("total epochs: ",epochs) 320 | training=zeros(epochs+1) #add extra dimension because of grad rejection condition in the training 321 | maxgrads=zeros(epochs+1) 322 | some_nans=zeros(epochs+1) 323 | 324 | data = Iterators.repeated((), epochs) 325 | opt = ADAM(0.0001) 326 | 327 | #grad clipping 328 | function clip(x) 329 | min.(max.(x,-40), 40) 330 | end 331 | 332 | using DelimitedFiles #save txt files 333 | 334 | ## Save model 335 | using BSON: @save 336 | function qb_train!(loss, p1, data, opt,u0) 337 | ps = Flux.params(p1) 338 | iter = 1 #start with iter=1 because of the grad rejection lines below 339 | for d in data 340 | iter += 1 341 | prepare_initial!(u0) #different initial states! 342 | #ini_fid=abs2.(sum(Re_ut.*u0[1:2],dims=1))+abs2.(sum(Re_ut.*u0[3:4],dims=1)) #initial mean fidelity 343 | @show iter 344 | #@show mean(ini_fid) 345 | @time gs = gradient(ps) do 346 | training_loss = loss(Zygote.hook(clip,p1)) #grad clipping does not work now??? 347 | mut(training,iter,training_loss) 348 | println("loss: ",training_loss) 349 | return training_loss 350 | end 351 | maxgrads[iter]=maximum(abs.(gs[p1])) 352 | some_nans[iter]=sum(isnan.(gs[p1])) 353 | println("is nan: ",sum(isnan.(gs[p1]))) 354 | println("max grad: ",maximum(abs.(gs[p1]))) 355 | if iter%1 == 0 356 | fig1 = plot( [1:MyParameters.n_steps+1,1:MyParameters.n_steps+1], 357 | [mean_fid_store mean_fid_store], 358 | fillrange=[mean_fid_store.-std_fid_store mean_fid_store.+std_fid_store], fillalpha=0.3, c=:blue, 359 | xlabel = "steps", ylim=(0,1),xlim=(0,150), lw = 1.5, title="Fidelity" ,legend=false) 360 | fig1=plot!(1:MyParameters.n_steps+1,single_traj_fid_store[:,1], c=:black ) 361 | fig2 = plot( [1:MyParameters.n_steps,1:MyParameters.n_steps], 362 | [mean_action_store mean_action_store], 363 | fillrange=[mean_action_store.-std_action_store mean_action_store.+std_action_store], fillalpha=0.3, c=:orange, 364 | xlabel = "steps", ylim=(-MyParameters.force_mag,MyParameters.force_mag), xlim=(0,150), lw = 1.5, title="Action" ,legend=false) 365 | fig2=plot!(1:MyParameters.n_steps,single_traj_action_store[:,1], c=:black ) 366 | #display(plot(fig1, fig2, layout = (1, 2), legend = false,size=(800,300))); 367 | if iter == 1 || iter%100 == 0 368 | png(string("Figures/Figure_",iter)) #for saving figs 369 | epoch_output=hcat(1:MyParameters.n_steps,mean_fid_store[1:end-1],mean_action_store) #save results for epoch 370 | writedlm(string("Data/Epoch",iter,".txt"), epoch_output) 371 | end 372 | println("iter: ", iter) 373 | end 374 | println("++++++++++++++++++++++") 375 | # Only gradients that don't lead to a rapid increase of the loss function are accepted 376 | # Empirically it prevents instabilities in learning 377 | if training[iter]<1.1* training[iter-1] 378 | Flux.Optimise.update!(opt, ps, gs) 379 | else 380 | println("GRADS REJECTED!") 381 | end 382 | if iter%1000 == 0 #save the model every 1000 epochs 383 | @save string("model_Jhom-in_parallel_",iter,".bson") p1 re opt 384 | end 385 | end 386 | @save string("Data/model_Jhom-in_parallel_END.bson") p1 re opt 387 | end 388 | 389 | #training 390 | Random.seed!(50) 391 | qb_train!(loss_along_trajectory, p1, data, opt,u0) 392 | 393 | #plotting of the loss function 394 | plot(training[2:end], xlabel = "epochs", ylabel="loss", lw = 1.5, title = "Training") 395 | savefig("Figures/Loss.pdf") 396 | #save training a txt 397 | writedlm("Data/Loss.txt", training[2:end]) 398 | -------------------------------------------------------------------------------- /homodyne-current/Data/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /homodyne-current/Figures/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /homodyne-current/Manifest.toml: -------------------------------------------------------------------------------- 1 | # This file is machine-generated - editing it directly is not advised 2 | 3 | [[AbstractAlgebra]] 4 | deps = ["InteractiveUtils", "LinearAlgebra", "Markdown", "Random", "RandomExtensions", "SparseArrays", "Test"] 5 | git-tree-sha1 = "277d8d5af27a9b6032a6fccd32d696587ea0f420" 6 | uuid = "c3fe647b-3220-5bb0-a1ea-a7954cac585d" 7 | version = "0.11.1" 8 | 9 | [[AbstractFFTs]] 10 | deps = ["LinearAlgebra"] 11 | git-tree-sha1 = "051c95d6836228d120f5f4b984dd5aba1624f716" 12 | uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" 13 | version = "0.5.0" 14 | 15 | [[AbstractTrees]] 16 | deps = ["Markdown"] 17 | git-tree-sha1 = "33e450545eaf7699da1a6e755f9ea65f14077a45" 18 | uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" 19 | version = "0.3.3" 20 | 21 | [[Adapt]] 22 | deps = ["LinearAlgebra"] 23 | git-tree-sha1 = "42c42f2221906892ceb765dbcb1a51deeffd86d7" 24 | uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" 25 | version = "2.3.0" 26 | 27 | [[ArnoldiMethod]] 28 | deps = ["DelimitedFiles", "LinearAlgebra", "Random", "SparseArrays", "StaticArrays", "Test"] 29 | git-tree-sha1 = "2b6845cea546604fb4dca4e31414a6a59d39ddcd" 30 | uuid = "ec485272-7323-5ecc-a04f-4719b315124d" 31 | version = "0.0.4" 32 | 33 | [[Arpack]] 34 | deps = ["Arpack_jll", "Libdl", "LinearAlgebra"] 35 | git-tree-sha1 = "2ff92b71ba1747c5fdd541f8fc87736d82f40ec9" 36 | uuid = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97" 37 | version = "0.4.0" 38 | 39 | [[Arpack_jll]] 40 | deps = ["Libdl", "OpenBLAS_jll", "Pkg"] 41 | git-tree-sha1 = "e214a9b9bd1b4e1b4f15b22c0994862b66af7ff7" 42 | uuid = "68821587-b530-5797-8361-c406ea357684" 43 | version = "3.5.0+3" 44 | 45 | [[ArrayInterface]] 46 | deps = ["LinearAlgebra", "Requires", "SparseArrays"] 47 | git-tree-sha1 = "bd09109dffaa3926a20178cb8432edd729be0db0" 48 | uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" 49 | version = "2.13.7" 50 | 51 | [[ArrayLayouts]] 52 | deps = ["Compat", "FillArrays", "LinearAlgebra", "SparseArrays"] 53 | git-tree-sha1 = "d4fc05297de9d8cf41a59162ebfaeee8fb6eb344" 54 | uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" 55 | version = "0.4.10" 56 | 57 | [[Artifacts]] 58 | deps = ["Pkg"] 59 | git-tree-sha1 = "c30985d8821e0cd73870b17b0ed0ce6dc44cb744" 60 | uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" 61 | version = "1.3.0" 62 | 63 | [[AssetRegistry]] 64 | deps = ["Distributed", "JSON", "Pidfile", "SHA", "Test"] 65 | git-tree-sha1 = "b25e88db7944f98789130d7b503276bc34bc098e" 66 | uuid = "bf4720bc-e11a-5d0c-854e-bdca1663c893" 67 | version = "0.1.0" 68 | 69 | [[Atom]] 70 | deps = ["Base64", "CSTParser", "CodeTools", "CodeTracking", "Dates", "DocSeeker", "FlameGraphs", "FuzzyCompletions", "HTTP", "Hiccup", "InteractiveUtils", "JSON", "JuliaFormatter", "JuliaInterpreter", "Juno", "LNR", "Lazy", "Logging", "MacroTools", "Markdown", "Media", "OrderedCollections", "Pkg", "Profile", "REPL", "Requires", "Sockets", "TreeViews", "WebIO", "WebSockets"] 71 | git-tree-sha1 = "4c2f73a508c36a30bb6884255bc82e1384da299a" 72 | uuid = "c52e3926-4ff0-5f6e-af25-54175e0327b1" 73 | version = "0.12.25" 74 | 75 | [[AxisAlgorithms]] 76 | deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] 77 | git-tree-sha1 = "a4d07a1c313392a77042855df46c5f534076fab9" 78 | uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" 79 | version = "1.0.0" 80 | 81 | [[BSON]] 82 | git-tree-sha1 = "dd36d7cf3d185eeaaf64db902c15174b22f5dafb" 83 | uuid = "fbb218c0-5317-5bc6-957e-2ee96dd4b1f0" 84 | version = "0.2.6" 85 | 86 | [[BandedMatrices]] 87 | deps = ["ArrayLayouts", "Compat", "FillArrays", "LinearAlgebra", "Random", "SparseArrays"] 88 | git-tree-sha1 = "8c83ee44dc9835263760ad4e77ed4eed4b3490c1" 89 | uuid = "aae01518-5342-5314-be14-df237901396f" 90 | version = "0.15.25" 91 | 92 | [[Base64]] 93 | uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" 94 | 95 | [[BenchmarkTools]] 96 | deps = ["JSON", "Logging", "Printf", "Statistics", "UUIDs"] 97 | git-tree-sha1 = "9e62e66db34540a0c919d72172cc2f642ac71260" 98 | uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" 99 | version = "0.5.0" 100 | 101 | [[BinaryProvider]] 102 | deps = ["Libdl", "Logging", "SHA"] 103 | git-tree-sha1 = "ecdec412a9abc8db54c0efc5548c64dfce072058" 104 | uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232" 105 | version = "0.5.10" 106 | 107 | [[BlackBoxOptim]] 108 | deps = ["CPUTime", "Compat", "Distributed", "Distributions", "LinearAlgebra", "Printf", "Random", "SpatialIndexing", "StatsBase"] 109 | git-tree-sha1 = "da5cfcc08d24a43fa4e3ad67f565f17838e26fca" 110 | uuid = "a134a8b2-14d6-55f6-9291-3336d3ab0209" 111 | version = "0.5.0" 112 | 113 | [[Blosc]] 114 | deps = ["Blosc_jll"] 115 | git-tree-sha1 = "84cf7d0f8fd46ca6f1b3e0305b4b4a37afe50fd6" 116 | uuid = "a74b3585-a348-5f62-a45c-50e91977d574" 117 | version = "0.7.0" 118 | 119 | [[Blosc_jll]] 120 | deps = ["Libdl", "Lz4_jll", "Pkg", "Zlib_jll", "Zstd_jll"] 121 | git-tree-sha1 = "aa9ef39b54a168c3df1b2911e7797e4feee50fbe" 122 | uuid = "0b7ba130-8d10-5ba8-a3d6-c5182647fed9" 123 | version = "1.14.3+1" 124 | 125 | [[BoundaryValueDiffEq]] 126 | deps = ["BandedMatrices", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "NLsolve", "Reexport", "SparseArrays"] 127 | git-tree-sha1 = "3f2969de608af70db755cee9d4490a7294a6afc3" 128 | uuid = "764a87c0-6b3e-53db-9096-fe964310641d" 129 | version = "2.5.0" 130 | 131 | [[Bzip2_jll]] 132 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 133 | git-tree-sha1 = "c3598e525718abcc440f69cc6d5f60dda0a1b61e" 134 | uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" 135 | version = "1.0.6+5" 136 | 137 | [[CEnum]] 138 | git-tree-sha1 = "215a9aa4a1f23fbd05b92769fdd62559488d70e9" 139 | uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" 140 | version = "0.4.1" 141 | 142 | [[CPUTime]] 143 | git-tree-sha1 = "2dcc50ea6a0a1ef6440d6eecd0fe3813e5671f45" 144 | uuid = "a9c8d775-2e2e-55fc-8582-045d282d599e" 145 | version = "1.0.0" 146 | 147 | [[CSTParser]] 148 | deps = ["Tokenize"] 149 | git-tree-sha1 = "60e9121d9ea044c30a04397e59b00c5d9eb826ee" 150 | uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f" 151 | version = "2.5.0" 152 | 153 | [[CUDA]] 154 | deps = ["AbstractFFTs", "Adapt", "BinaryProvider", "CEnum", "DataStructures", "ExprTools", "GPUArrays", "GPUCompiler", "LLVM", "Libdl", "LinearAlgebra", "Logging", "MacroTools", "NNlib", "Pkg", "Printf", "Random", "Reexport", "Requires", "SparseArrays", "Statistics", "TimerOutputs"] 155 | git-tree-sha1 = "83bfd180e2f842f6d4ee315a6db8665e9aa0c19b" 156 | uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" 157 | version = "1.3.3" 158 | 159 | [[Cassette]] 160 | git-tree-sha1 = "ff6f5109371926beb67ec3101be17d2c211e497d" 161 | uuid = "7057c7e9-c182-5462-911a-8362d720325c" 162 | version = "0.3.3" 163 | 164 | [[ChainRules]] 165 | deps = ["ChainRulesCore", "ChainRulesTestUtils", "Compat", "LinearAlgebra", "Random", "Reexport", "Requires", "Statistics"] 166 | git-tree-sha1 = "f6265a7e32d2c82e9462a06e0d5066284c29b89e" 167 | uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" 168 | version = "0.7.32" 169 | 170 | [[ChainRulesCore]] 171 | deps = ["LinearAlgebra", "MuladdMacro", "SparseArrays"] 172 | git-tree-sha1 = "aebbda0a7c644bd8739b34f2a1b1e48f114aab49" 173 | uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" 174 | version = "0.9.17" 175 | 176 | [[ChainRulesTestUtils]] 177 | deps = ["ChainRulesCore", "Compat", "FiniteDifferences", "LinearAlgebra", "Random", "Test"] 178 | git-tree-sha1 = "157e00b3c05e63c3482aa2179abd3d2a54ad4a57" 179 | uuid = "cdddcdb0-9152-4a09-a978-84456f9df70a" 180 | version = "0.5.3" 181 | 182 | [[Clustering]] 183 | deps = ["Distances", "LinearAlgebra", "NearestNeighbors", "Printf", "SparseArrays", "Statistics", "StatsBase"] 184 | git-tree-sha1 = "75479b7df4167267d75294d14b58244695beb2ac" 185 | uuid = "aaaa29a8-35af-508c-8bc3-b662a17a0fe5" 186 | version = "0.14.2" 187 | 188 | [[CodeTools]] 189 | deps = ["LNR", "Lazy", "Markdown", "Pkg", "Tokenize"] 190 | git-tree-sha1 = "9c4489c7d22b8f28635a999d5d7696b31f931829" 191 | uuid = "53a63b46-67e4-5edd-8c66-0af0544a99b9" 192 | version = "0.7.1" 193 | 194 | [[CodeTracking]] 195 | deps = ["InteractiveUtils", "UUIDs"] 196 | git-tree-sha1 = "ce725fcc331618c422e5561a5183baab6a00482c" 197 | uuid = "da1fd8a2-8d9e-5ec2-8556-3022fb5608a2" 198 | version = "1.0.4" 199 | 200 | [[CodecZlib]] 201 | deps = ["TranscodingStreams", "Zlib_jll"] 202 | git-tree-sha1 = "ded953804d019afa9a3f98981d99b33e3db7b6da" 203 | uuid = "944b1d66-785c-5afd-91f1-9de20f533193" 204 | version = "0.7.0" 205 | 206 | [[ColorSchemes]] 207 | deps = ["ColorTypes", "Colors", "FixedPointNumbers", "Random", "StaticArrays"] 208 | git-tree-sha1 = "5d472aa8908568bc198564db06983913a6c2c8e7" 209 | uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" 210 | version = "3.10.1" 211 | 212 | [[ColorTypes]] 213 | deps = ["FixedPointNumbers", "Random"] 214 | git-tree-sha1 = "4bffea7ed1a9f0f3d1a131bbcd4b925548d75288" 215 | uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" 216 | version = "0.10.9" 217 | 218 | [[Colors]] 219 | deps = ["ColorTypes", "FixedPointNumbers", "InteractiveUtils", "Reexport"] 220 | git-tree-sha1 = "008d6bc68dea6beb6303fdc37188cb557391ebf2" 221 | uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" 222 | version = "0.12.4" 223 | 224 | [[Combinatorics]] 225 | git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" 226 | uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" 227 | version = "1.0.2" 228 | 229 | [[CommonMark]] 230 | deps = ["Crayons", "JSON", "URIParser"] 231 | git-tree-sha1 = "c1f1514d7cc1ad243a103b403d896ee184c91b62" 232 | uuid = "a80b9123-70ca-4bc0-993e-6e3bcb318db6" 233 | version = "0.6.4" 234 | 235 | [[CommonSubexpressions]] 236 | deps = ["MacroTools", "Test"] 237 | git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" 238 | uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" 239 | version = "0.3.0" 240 | 241 | [[Compat]] 242 | deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "SHA", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"] 243 | git-tree-sha1 = "a706ff10f1cd8dab94f59fd09c0e657db8e77ff0" 244 | uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" 245 | version = "3.23.0" 246 | 247 | [[CompilerSupportLibraries_jll]] 248 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 249 | git-tree-sha1 = "8e695f735fca77e9708e795eda62afdb869cbb70" 250 | uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" 251 | version = "0.3.4+0" 252 | 253 | [[ConsoleProgressMonitor]] 254 | deps = ["Logging", "ProgressMeter"] 255 | git-tree-sha1 = "3ab7b2136722890b9af903859afcf457fa3059e8" 256 | uuid = "88cd18e8-d9cc-4ea6-8889-5259c0d15c8b" 257 | version = "0.1.2" 258 | 259 | [[ConstructionBase]] 260 | git-tree-sha1 = "a2a6a5fea4d6f730ec4c18a76d27ec10e8ec1c50" 261 | uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" 262 | version = "1.0.0" 263 | 264 | [[Contour]] 265 | deps = ["StaticArrays"] 266 | git-tree-sha1 = "d05a3a25b762720d40246d5bedf518c9c2614ef5" 267 | uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" 268 | version = "0.5.5" 269 | 270 | [[CpuId]] 271 | deps = ["Markdown", "Test"] 272 | git-tree-sha1 = "f0464e499ab9973b43c20f8216d088b61fda80c6" 273 | uuid = "adafc99b-e345-5852-983c-f28acb93d879" 274 | version = "0.2.2" 275 | 276 | [[Crayons]] 277 | git-tree-sha1 = "3f71217b538d7aaee0b69ab47d9b7724ca8afa0d" 278 | uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" 279 | version = "4.0.4" 280 | 281 | [[DataAPI]] 282 | git-tree-sha1 = "ad84f52c0b8f05aa20839484dbaf01690b41ff84" 283 | uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" 284 | version = "1.4.0" 285 | 286 | [[DataStructures]] 287 | deps = ["Compat", "InteractiveUtils", "OrderedCollections"] 288 | git-tree-sha1 = "fb0aa371da91c1ff9dc7fbed6122d3e411420b9c" 289 | uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" 290 | version = "0.18.8" 291 | 292 | [[DataValueInterfaces]] 293 | git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" 294 | uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" 295 | version = "1.0.0" 296 | 297 | [[DataValues]] 298 | deps = ["DataValueInterfaces", "Dates"] 299 | git-tree-sha1 = "d88a19299eba280a6d062e135a43f00323ae70bf" 300 | uuid = "e7dc6d0d-1eca-5fa6-8ad6-5aecde8b7ea5" 301 | version = "0.4.13" 302 | 303 | [[Dates]] 304 | deps = ["Printf"] 305 | uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" 306 | 307 | [[DelayDiffEq]] 308 | deps = ["DataStructures", "DiffEqBase", "LinearAlgebra", "Logging", "OrdinaryDiffEq", "Printf", "RecursiveArrayTools", "Reexport", "Roots", "UnPack"] 309 | git-tree-sha1 = "b5c8565529d1b9ccfd14ca4607f7673379b34f6f" 310 | uuid = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb" 311 | version = "5.25.1" 312 | 313 | [[DelimitedFiles]] 314 | deps = ["Mmap"] 315 | uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" 316 | 317 | [[DiffEqBase]] 318 | deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "Distributed", "DocStringExtensions", "FunctionWrappers", "IterativeSolvers", "IteratorInterfaceExtensions", "LabelledArrays", "LinearAlgebra", "Logging", "MuladdMacro", "Parameters", "Printf", "RecipesBase", "RecursiveArrayTools", "RecursiveFactorization", "Requires", "Roots", "SparseArrays", "StaticArrays", "Statistics", "SuiteSparse", "TableTraits", "Tables", "TreeViews", "ZygoteRules"] 319 | git-tree-sha1 = "90f582abf7132392937a23c8ab7da2f69d442a31" 320 | uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" 321 | version = "6.48.2" 322 | 323 | [[DiffEqCallbacks]] 324 | deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "LinearAlgebra", "NLsolve", "OrdinaryDiffEq", "RecipesBase", "RecursiveArrayTools", "StaticArrays"] 325 | git-tree-sha1 = "c252e7a153d902f7c535feb3d296fdd9812049c3" 326 | uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" 327 | version = "2.14.1" 328 | 329 | [[DiffEqFinancial]] 330 | deps = ["DiffEqBase", "DiffEqNoiseProcess", "LinearAlgebra", "Markdown", "RandomNumbers"] 331 | git-tree-sha1 = "db08e0def560f204167c58fd0637298e13f58f73" 332 | uuid = "5a0ffddc-d203-54b0-88ba-2c03c0fc2e67" 333 | version = "2.4.0" 334 | 335 | [[DiffEqFlux]] 336 | deps = ["Adapt", "BlackBoxOptim", "ConsoleProgressMonitor", "DiffEqBase", "DiffEqSensitivity", "DiffResults", "Distributions", "DistributionsAD", "Flux", "ForwardDiff", "LinearAlgebra", "Logging", "LoggingExtras", "Optim", "Printf", "ProgressLogging", "RecursiveArrayTools", "Requires", "ReverseDiff", "StaticArrays", "TerminalLoggers", "Tracker", "Zygote", "ZygoteRules"] 337 | git-tree-sha1 = "a64e3c6eb1c41eeb60f7e91112c7d0a5110acc25" 338 | uuid = "aae7a2af-3d4f-5e19-a356-7da93b79d9d0" 339 | version = "1.23.0" 340 | 341 | [[DiffEqGPU]] 342 | deps = ["CUDA", "DiffEqBase", "Distributed", "ForwardDiff", "KernelAbstractions", "LinearAlgebra"] 343 | git-tree-sha1 = "fc9c1c37c13328e38be91b824c5d848cd7d5ba01" 344 | uuid = "071ae1c0-96b5-11e9-1965-c90190d839ea" 345 | version = "1.8.0" 346 | 347 | [[DiffEqJump]] 348 | deps = ["ArrayInterface", "Compat", "DataStructures", "DiffEqBase", "FunctionWrappers", "LinearAlgebra", "PoissonRandom", "Random", "RandomNumbers", "RecursiveArrayTools", "StaticArrays", "TreeViews", "UnPack"] 349 | git-tree-sha1 = "68c389b108388d09f01065cf6d6df426f126d5a0" 350 | uuid = "c894b116-72e5-5b58-be3c-e6d8d4ac2b12" 351 | version = "6.10.1" 352 | 353 | [[DiffEqNoiseProcess]] 354 | deps = ["DiffEqBase", "Distributions", "LinearAlgebra", "PoissonRandom", "Random", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "Requires", "ResettableStacks", "StaticArrays", "Statistics"] 355 | git-tree-sha1 = "1ea45d69ee4c9f9f7da6069947929bf3705a543f" 356 | uuid = "77a26b50-5914-5dd7-bc55-306e6241c503" 357 | version = "5.4.0" 358 | 359 | [[DiffEqPhysics]] 360 | deps = ["DiffEqBase", "DiffEqCallbacks", "ForwardDiff", "LinearAlgebra", "Printf", "Random", "RecipesBase", "RecursiveArrayTools", "Reexport", "StaticArrays"] 361 | git-tree-sha1 = "6bf21882775dc8f7b5fd4f97989a01ab65df157f" 362 | uuid = "055956cb-9e8b-5191-98cc-73ae4a59e68a" 363 | version = "3.6.0" 364 | 365 | [[DiffEqSensitivity]] 366 | deps = ["Adapt", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "Distributions", "FFTW", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "Parameters", "QuadGK", "QuasiMonteCarlo", "RecursiveArrayTools", "Requires", "ReverseDiff", "SharedArrays", "Statistics", "StochasticDiffEq", "Tracker", "Zygote", "ZygoteRules"] 367 | git-tree-sha1 = "4773118be660350d8e133e4f454e0da1dc753f4e" 368 | uuid = "41bf760c-e81c-5289-8e54-58b1f1f8abe2" 369 | version = "6.33.0" 370 | 371 | [[DiffResults]] 372 | deps = ["StaticArrays"] 373 | git-tree-sha1 = "da24935df8e0c6cf28de340b958f6aac88eaa0cc" 374 | uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" 375 | version = "1.0.2" 376 | 377 | [[DiffRules]] 378 | deps = ["NaNMath", "Random", "SpecialFunctions"] 379 | git-tree-sha1 = "eb0c34204c8410888844ada5359ac8b96292cfd1" 380 | uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" 381 | version = "1.0.1" 382 | 383 | [[DifferentialEquations]] 384 | deps = ["BoundaryValueDiffEq", "DelayDiffEq", "DiffEqBase", "DiffEqCallbacks", "DiffEqFinancial", "DiffEqJump", "DiffEqNoiseProcess", "DiffEqPhysics", "DimensionalPlotRecipes", "LinearAlgebra", "MultiScaleArrays", "OrdinaryDiffEq", "ParameterizedFunctions", "Random", "RecursiveArrayTools", "Reexport", "SteadyStateDiffEq", "StochasticDiffEq", "Sundials"] 385 | git-tree-sha1 = "84502233aa79c6b2d0b9d5d50d205b88a02ffd8b" 386 | uuid = "0c46a032-eb83-5123-abaf-570d42b7fbaa" 387 | version = "6.15.0" 388 | 389 | [[DimensionalPlotRecipes]] 390 | deps = ["LinearAlgebra", "RecipesBase"] 391 | git-tree-sha1 = "af883a26bbe6e3f5f778cb4e1b81578b534c32a6" 392 | uuid = "c619ae07-58cd-5f6d-b883-8f17bd6a98f9" 393 | version = "1.2.0" 394 | 395 | [[Distances]] 396 | deps = ["LinearAlgebra", "Statistics"] 397 | git-tree-sha1 = "a5b88815e6984e9f3256b6ca0dc63109b16a506f" 398 | uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" 399 | version = "0.9.2" 400 | 401 | [[Distributed]] 402 | deps = ["Random", "Serialization", "Sockets"] 403 | uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" 404 | 405 | [[Distributions]] 406 | deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SparseArrays", "SpecialFunctions", "StaticArrays", "Statistics", "StatsBase", "StatsFuns"] 407 | git-tree-sha1 = "501c11d708917ca09ce357bed163dbaf0f30229f" 408 | uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" 409 | version = "0.23.12" 410 | 411 | [[DistributionsAD]] 412 | deps = ["Adapt", "ChainRules", "ChainRulesCore", "Compat", "DiffRules", "Distributions", "FillArrays", "ForwardDiff", "LinearAlgebra", "NaNMath", "PDMats", "Random", "Requires", "SpecialFunctions", "StaticArrays", "StatsBase", "StatsFuns", "ZygoteRules"] 413 | git-tree-sha1 = "309458fa6cd189cb080a349130918ace2bce0256" 414 | uuid = "ced4e74d-a319-5a8a-b0ac-84af2272839c" 415 | version = "0.6.9" 416 | 417 | [[DocSeeker]] 418 | deps = ["Distributed", "Hiccup", "Markdown", "Pkg", "REPL", "Requires", "Serialization", "StringDistances", "URIParser"] 419 | git-tree-sha1 = "c9ebf45fdab22433b53b0e6b4a2b29c2a193c5d2" 420 | uuid = "33d173f1-3be9-53c5-a697-8225b67db89c" 421 | version = "0.4.2" 422 | 423 | [[DocStringExtensions]] 424 | deps = ["LibGit2", "Markdown", "Pkg", "Test"] 425 | git-tree-sha1 = "50ddf44c53698f5e784bbebb3f4b21c5807401b1" 426 | uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" 427 | version = "0.8.3" 428 | 429 | [[Documenter]] 430 | deps = ["Base64", "Dates", "DocStringExtensions", "IOCapture", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "REPL", "Test", "Unicode"] 431 | git-tree-sha1 = "71e35e069daa9969b8af06cef595a1add76e0a11" 432 | uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4" 433 | version = "0.25.3" 434 | 435 | [[EarCut_jll]] 436 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 437 | git-tree-sha1 = "92d8f9f208637e8d2d28c664051a00569c01493d" 438 | uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" 439 | version = "2.1.5+1" 440 | 441 | [[ExponentialUtilities]] 442 | deps = ["LinearAlgebra", "Printf", "Requires", "SparseArrays"] 443 | git-tree-sha1 = "4e7db935d55d4a11acb74856ee6cb113a7808c6f" 444 | uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" 445 | version = "1.8.0" 446 | 447 | [[ExprTools]] 448 | git-tree-sha1 = "10407a39b87f29d47ebaca8edbc75d7c302ff93e" 449 | uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" 450 | version = "0.1.3" 451 | 452 | [[FFMPEG]] 453 | deps = ["FFMPEG_jll", "x264_jll"] 454 | git-tree-sha1 = "9a73ffdc375be61b0e4516d83d880b265366fe1f" 455 | uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" 456 | version = "0.4.0" 457 | 458 | [[FFMPEG_jll]] 459 | deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "LibVPX_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "Pkg", "Zlib_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] 460 | git-tree-sha1 = "3cc57ad0a213808473eafef4845a74766242e05f" 461 | uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" 462 | version = "4.3.1+4" 463 | 464 | [[FFTW]] 465 | deps = ["AbstractFFTs", "FFTW_jll", "IntelOpenMP_jll", "Libdl", "LinearAlgebra", "MKL_jll", "Reexport"] 466 | git-tree-sha1 = "8b7c16b56936047ca41bf25effa137ae0b381ae8" 467 | uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" 468 | version = "1.2.4" 469 | 470 | [[FFTW_jll]] 471 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 472 | git-tree-sha1 = "f10c3009373a2d5c4349b8a2932d8accb892892d" 473 | uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" 474 | version = "3.3.9+6" 475 | 476 | [[FastClosures]] 477 | git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" 478 | uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" 479 | version = "0.3.2" 480 | 481 | [[FileIO]] 482 | deps = ["Pkg"] 483 | git-tree-sha1 = "cad2e71389ecb2f4480e0de74faab04af13d7929" 484 | uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" 485 | version = "1.4.4" 486 | 487 | [[FileWatching]] 488 | uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" 489 | 490 | [[FillArrays]] 491 | deps = ["LinearAlgebra", "Random", "SparseArrays"] 492 | git-tree-sha1 = "502b3de6039d5b78c76118423858d981349f3823" 493 | uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" 494 | version = "0.9.7" 495 | 496 | [[FiniteDiff]] 497 | deps = ["ArrayInterface", "LinearAlgebra", "Requires", "SparseArrays", "StaticArrays"] 498 | git-tree-sha1 = "04e18906acf9c7f5b934a7ec3adc82280fb1953b" 499 | uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" 500 | version = "2.7.1" 501 | 502 | [[FiniteDifferences]] 503 | deps = ["ChainRulesCore", "LinearAlgebra", "Printf", "Random", "Richardson"] 504 | git-tree-sha1 = "5ef56eea8b65c2ed2d11bd394629892201369b23" 505 | uuid = "26cc04aa-876d-5657-8c51-4c34ba976000" 506 | version = "0.11.2" 507 | 508 | [[FixedPointNumbers]] 509 | deps = ["Statistics"] 510 | git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" 511 | uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" 512 | version = "0.8.4" 513 | 514 | [[FlameGraphs]] 515 | deps = ["AbstractTrees", "Colors", "FileIO", "FixedPointNumbers", "IndirectArrays", "LeftChildRightSiblingTrees", "Profile"] 516 | git-tree-sha1 = "c0204e7baf2d9d6472a477d677f632b4b80d99be" 517 | uuid = "08572546-2f56-4bcf-ba4e-bab62c3a3f89" 518 | version = "0.2.4" 519 | 520 | [[Flux]] 521 | deps = ["AbstractTrees", "Adapt", "CUDA", "CodecZlib", "Colors", "DelimitedFiles", "Functors", "Juno", "LinearAlgebra", "MacroTools", "NNlib", "Pkg", "Printf", "Random", "Reexport", "SHA", "Statistics", "StatsBase", "Test", "ZipFile", "Zygote"] 522 | git-tree-sha1 = "ceb09ce8510ef31fd86a791bbd0e1d72a60f27d7" 523 | uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" 524 | version = "0.11.1" 525 | 526 | [[Formatting]] 527 | deps = ["Printf"] 528 | git-tree-sha1 = "a0c901c29c0e7c763342751c0a94211d56c0de5c" 529 | uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" 530 | version = "0.4.1" 531 | 532 | [[ForwardDiff]] 533 | deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "NaNMath", "Random", "SpecialFunctions", "StaticArrays"] 534 | git-tree-sha1 = "1d090099fb82223abc48f7ce176d3f7696ede36d" 535 | uuid = "f6369f11-7733-5829-9624-2563aa707210" 536 | version = "0.10.12" 537 | 538 | [[FreeType2_jll]] 539 | deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] 540 | git-tree-sha1 = "cbd58c9deb1d304f5a245a0b7eb841a2560cfec6" 541 | uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" 542 | version = "2.10.1+5" 543 | 544 | [[FriBidi_jll]] 545 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 546 | git-tree-sha1 = "0d20aed5b14dd4c9a2453c1b601d08e1149679cc" 547 | uuid = "559328eb-81f9-559d-9380-de523a88c83c" 548 | version = "1.0.5+6" 549 | 550 | [[FunctionWrappers]] 551 | git-tree-sha1 = "e4813d187be8c7b993cb7f85cbf2b7bfbaadc694" 552 | uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" 553 | version = "1.1.1" 554 | 555 | [[FunctionalCollections]] 556 | deps = ["Test"] 557 | git-tree-sha1 = "04cb9cfaa6ba5311973994fe3496ddec19b6292a" 558 | uuid = "de31a74c-ac4f-5751-b3fd-e18cd04993ca" 559 | version = "0.5.0" 560 | 561 | [[Functors]] 562 | deps = ["MacroTools"] 563 | git-tree-sha1 = "f40adc6422f548176bb4351ebd29e4abf773040a" 564 | uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" 565 | version = "0.1.0" 566 | 567 | [[Future]] 568 | deps = ["Random"] 569 | uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" 570 | 571 | [[FuzzyCompletions]] 572 | deps = ["REPL"] 573 | git-tree-sha1 = "3a66f6f94d00557fae51aeb7305982e1c14ec1ad" 574 | uuid = "fb4132e2-a121-4a70-b8a1-d5b831dcdcc2" 575 | version = "0.2.4" 576 | 577 | [[GPUArrays]] 578 | deps = ["AbstractFFTs", "Adapt", "LinearAlgebra", "Printf", "Random", "Serialization"] 579 | git-tree-sha1 = "da6398282abd2a8c0dc3e55b49d984fcc2c582e5" 580 | uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" 581 | version = "5.2.1" 582 | 583 | [[GPUCompiler]] 584 | deps = ["DataStructures", "InteractiveUtils", "LLVM", "Libdl", "TimerOutputs", "UUIDs"] 585 | git-tree-sha1 = "05097d81898c527e3bf218bb083ad0ead4378e5f" 586 | uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" 587 | version = "0.6.1" 588 | 589 | [[GR]] 590 | deps = ["Base64", "DelimitedFiles", "HTTP", "JSON", "LinearAlgebra", "Printf", "Random", "Serialization", "Sockets", "Test", "UUIDs"] 591 | git-tree-sha1 = "cd0f34bd097d4d5eb6bbe01778cf8a7ed35f29d9" 592 | uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" 593 | version = "0.52.0" 594 | 595 | [[GalacticOptim]] 596 | deps = ["ArrayInterface", "ConsoleProgressMonitor", "DiffEqBase", "DiffResults", "FiniteDiff", "Flux", "ForwardDiff", "Logging", "LoggingExtras", "Optim", "Printf", "ProgressLogging", "Reexport", "Requires", "ReverseDiff", "TerminalLoggers", "Tracker", "Zygote"] 597 | git-tree-sha1 = "82af077dc2c96c6abd7ef3f6caef7560b58e6e47" 598 | uuid = "a75be94c-b780-496d-a8a9-0878b188d577" 599 | version = "0.4.1" 600 | 601 | [[GaussianDistributions]] 602 | deps = ["Distributions", "LinearAlgebra", "Random", "Statistics"] 603 | git-tree-sha1 = "883c8ed412a4bc6d2608d5b60ef482dbafcf35c8" 604 | uuid = "43dcc890-d446-5863-8d1a-14597580bb8d" 605 | version = "0.5.0" 606 | 607 | [[GenericSVD]] 608 | deps = ["LinearAlgebra"] 609 | git-tree-sha1 = "62909c3eda8a25b5673a367d1ad2392ebb265211" 610 | uuid = "01680d73-4ee2-5a08-a1aa-533608c188bb" 611 | version = "0.3.0" 612 | 613 | [[GeometryBasics]] 614 | deps = ["EarCut_jll", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] 615 | git-tree-sha1 = "876a906eab3be990fdcbfe1e43bb3a76f4776f72" 616 | uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" 617 | version = "0.3.3" 618 | 619 | [[GeometryTypes]] 620 | deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "StaticArrays"] 621 | git-tree-sha1 = "34bfa994967e893ab2f17b864eec221b3521ba4d" 622 | uuid = "4d00f742-c7ba-57c2-abde-4428a4b178cb" 623 | version = "0.8.3" 624 | 625 | [[Grisu]] 626 | git-tree-sha1 = "03d381f65183cb2d0af8b3425fde97263ce9a995" 627 | uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" 628 | version = "1.0.0" 629 | 630 | [[HDF5]] 631 | deps = ["Blosc", "HDF5_jll", "Libdl", "Mmap", "Random"] 632 | git-tree-sha1 = "0713cbabdf855852dfab3ce6447c87145f3d9ea8" 633 | uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" 634 | version = "0.13.6" 635 | 636 | [[HDF5_jll]] 637 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] 638 | git-tree-sha1 = "bc9c3d43ffd4d8988bfa372b86d4bdbd26860e95" 639 | uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" 640 | version = "1.10.5+7" 641 | 642 | [[HTTP]] 643 | deps = ["Base64", "Dates", "IniFile", "MbedTLS", "Sockets"] 644 | git-tree-sha1 = "c7ec02c4c6a039a98a15f955462cd7aea5df4508" 645 | uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" 646 | version = "0.8.19" 647 | 648 | [[HalfIntegers]] 649 | git-tree-sha1 = "f075f730195e01c8f5ce1a9229cd75663b33fd8c" 650 | uuid = "f0d1745a-41c9-11e9-1dd9-e5d34d218721" 651 | version = "1.2.4" 652 | 653 | [[Hiccup]] 654 | deps = ["MacroTools", "Test"] 655 | git-tree-sha1 = "6187bb2d5fcbb2007c39e7ac53308b0d371124bd" 656 | uuid = "9fb69e20-1954-56bb-a84f-559cc56a8ff7" 657 | version = "0.2.2" 658 | 659 | [[IOCapture]] 660 | deps = ["Logging"] 661 | git-tree-sha1 = "377252859f740c217b936cebcd918a44f9b53b59" 662 | uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" 663 | version = "0.1.1" 664 | 665 | [[IRTools]] 666 | deps = ["InteractiveUtils", "MacroTools", "Test"] 667 | git-tree-sha1 = "a8d88c05a23b44b4da6cf4fb5659e13ff95e0f47" 668 | uuid = "7869d1d1-7146-5819-86e3-90919afe41df" 669 | version = "0.4.1" 670 | 671 | [[IfElse]] 672 | git-tree-sha1 = "28e837ff3e7a6c3cdb252ce49fb412c8eb3caeef" 673 | uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" 674 | version = "0.1.0" 675 | 676 | [[IndirectArrays]] 677 | git-tree-sha1 = "c2a145a145dc03a7620af1444e0264ef907bd44f" 678 | uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" 679 | version = "0.5.1" 680 | 681 | [[Inflate]] 682 | git-tree-sha1 = "f5fc07d4e706b84f72d54eedcc1c13d92fb0871c" 683 | uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" 684 | version = "0.1.2" 685 | 686 | [[IniFile]] 687 | deps = ["Test"] 688 | git-tree-sha1 = "098e4d2c533924c921f9f9847274f2ad89e018b8" 689 | uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f" 690 | version = "0.5.0" 691 | 692 | [[IntelOpenMP_jll]] 693 | deps = ["Libdl", "Pkg"] 694 | git-tree-sha1 = "fb8e1c7a5594ba56f9011310790e03b5384998d6" 695 | uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" 696 | version = "2018.0.3+0" 697 | 698 | [[InteractiveUtils]] 699 | deps = ["Markdown"] 700 | uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" 701 | 702 | [[Interpolations]] 703 | deps = ["AxisAlgorithms", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] 704 | git-tree-sha1 = "d2ff0813f0f110918db2537201686575fcf8d345" 705 | uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" 706 | version = "0.13.0" 707 | 708 | [[IterTools]] 709 | git-tree-sha1 = "05110a2ab1fc5f932622ffea2a003221f4782c18" 710 | uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" 711 | version = "1.3.0" 712 | 713 | [[IterativeSolvers]] 714 | deps = ["LinearAlgebra", "Printf", "Random", "RecipesBase", "SparseArrays"] 715 | git-tree-sha1 = "3b7e2aac8c94444947facea7cc7ca91c49169be0" 716 | uuid = "42fd0dbc-a981-5370-80f2-aaf504508153" 717 | version = "0.8.4" 718 | 719 | [[IteratorInterfaceExtensions]] 720 | git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" 721 | uuid = "82899510-4779-5014-852e-03e436cf321d" 722 | version = "1.0.0" 723 | 724 | [[JLD]] 725 | deps = ["FileIO", "HDF5", "Printf"] 726 | git-tree-sha1 = "f6cf928214ae7c0e7550b2424a57f11875d7e49a" 727 | uuid = "4138dd39-2aa7-5051-a626-17a0bb65d9c8" 728 | version = "0.10.0" 729 | 730 | [[JLLWrappers]] 731 | git-tree-sha1 = "c70593677bbf2c3ccab4f7500d0f4dacfff7b75c" 732 | uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" 733 | version = "1.1.3" 734 | 735 | [[JSON]] 736 | deps = ["Dates", "Mmap", "Parsers", "Unicode"] 737 | git-tree-sha1 = "81690084b6198a2e1da36fcfda16eeca9f9f24e4" 738 | uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" 739 | version = "0.21.1" 740 | 741 | [[JuliaFormatter]] 742 | deps = ["CSTParser", "CommonMark", "DataStructures", "Documenter", "Pkg", "Test", "Tokenize"] 743 | git-tree-sha1 = "83b49941f9796acbaf945b4ee1f5d20da204b7a7" 744 | uuid = "98e50ef6-434e-11e9-1051-2b60c6c9e899" 745 | version = "0.10.8" 746 | 747 | [[JuliaInterpreter]] 748 | deps = ["CodeTracking", "InteractiveUtils", "Random", "UUIDs"] 749 | git-tree-sha1 = "8f1c59bbca30b0d293f4b2436af49ef4c9c4d601" 750 | uuid = "aa1ae85d-cabe-5617-a682-6adf51b2e16a" 751 | version = "0.8.2" 752 | 753 | [[Juno]] 754 | deps = ["Base64", "Logging", "Media", "Profile"] 755 | git-tree-sha1 = "07cb43290a840908a771552911a6274bc6c072c7" 756 | uuid = "e5e0dc1b-0480-54bc-9374-aad01c23163d" 757 | version = "0.8.4" 758 | 759 | [[KernelAbstractions]] 760 | deps = ["Adapt", "CUDA", "Cassette", "InteractiveUtils", "MacroTools", "SpecialFunctions", "StaticArrays", "UUIDs"] 761 | git-tree-sha1 = "0670f47a3130645575dd3348c13e6f005270047a" 762 | uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" 763 | version = "0.4.5" 764 | 765 | [[KernelDensity]] 766 | deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] 767 | git-tree-sha1 = "09aeec87bdc9c1fa70d0b508dfa94a21acd280d9" 768 | uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" 769 | version = "0.6.2" 770 | 771 | [[LAME_jll]] 772 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 773 | git-tree-sha1 = "df381151e871f41ee86cee4f5f6fd598b8a68826" 774 | uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" 775 | version = "3.100.0+3" 776 | 777 | [[LLVM]] 778 | deps = ["CEnum", "Libdl", "Printf", "Unicode"] 779 | git-tree-sha1 = "a662366a5d485dee882077e8da3e1a95a86d097f" 780 | uuid = "929cbde3-209d-540e-8aea-75f648917ca0" 781 | version = "2.0.0" 782 | 783 | [[LNR]] 784 | deps = ["Compat", "Lazy"] 785 | git-tree-sha1 = "c83f10b69f10e4ddad68f3b061de6f287417b9dc" 786 | uuid = "7c4cb9fa-83a0-5386-9231-d6167c818060" 787 | version = "0.2.1" 788 | 789 | [[LaTeXStrings]] 790 | git-tree-sha1 = "c7aebfecb1a60d59c0fe023a68ec947a208b1e6b" 791 | uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" 792 | version = "1.2.0" 793 | 794 | [[LabelledArrays]] 795 | deps = ["ArrayInterface", "LinearAlgebra", "MacroTools", "StaticArrays"] 796 | git-tree-sha1 = "5e04374019448f8509349948ab504f117e3b575a" 797 | uuid = "2ee39098-c373-598a-b85f-a56591580800" 798 | version = "1.3.0" 799 | 800 | [[Latexify]] 801 | deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "Printf", "Requires"] 802 | git-tree-sha1 = "a8bea922a4678d5d2314b2fc97df0170a2271126" 803 | uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" 804 | version = "0.14.3" 805 | 806 | [[LatinHypercubeSampling]] 807 | deps = ["Random", "StableRNGs", "StatsBase", "Test"] 808 | git-tree-sha1 = "491fadafc336ce0f85c0768cc884b28b871929f7" 809 | uuid = "a5e1c1ea-c99a-51d3-a14d-a9a37257b02d" 810 | version = "1.7.2" 811 | 812 | [[LatticeRules]] 813 | deps = ["Random"] 814 | git-tree-sha1 = "7f5b02258a3ca0221a6a9710b0a0a2e8fb4957fe" 815 | uuid = "73f95e8e-ec14-4e6a-8b18-0d2e271c4e55" 816 | version = "0.0.1" 817 | 818 | [[Lazy]] 819 | deps = ["MacroTools"] 820 | git-tree-sha1 = "1370f8202dac30758f3c345f9909b97f53d87d3f" 821 | uuid = "50d2b5c4-7a5e-59d5-8109-a42b560f39c0" 822 | version = "0.15.1" 823 | 824 | [[LeftChildRightSiblingTrees]] 825 | deps = ["AbstractTrees"] 826 | git-tree-sha1 = "71be1eb5ad19cb4f61fa8c73395c0338fd092ae0" 827 | uuid = "1d6d02ad-be62-4b6b-8a6d-2f90e265016e" 828 | version = "0.1.2" 829 | 830 | [[LibGit2]] 831 | deps = ["Printf"] 832 | uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" 833 | 834 | [[LibVPX_jll]] 835 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 836 | git-tree-sha1 = "85fcc80c3052be96619affa2fe2e6d2da3908e11" 837 | uuid = "dd192d2f-8180-539f-9fb4-cc70b1dcf69a" 838 | version = "1.9.0+1" 839 | 840 | [[Libdl]] 841 | uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" 842 | 843 | [[LightGraphs]] 844 | deps = ["ArnoldiMethod", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] 845 | git-tree-sha1 = "a0d4bcea4b9c056da143a5ded3c2b7f7740c2d41" 846 | uuid = "093fc24a-ae57-5d10-9952-331d41423f4d" 847 | version = "1.3.0" 848 | 849 | [[LineSearches]] 850 | deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] 851 | git-tree-sha1 = "d6e6b2ed397a402a22e474a3f1859c8c1db82c8c" 852 | uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" 853 | version = "7.1.0" 854 | 855 | [[LinearAlgebra]] 856 | deps = ["Libdl"] 857 | uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" 858 | 859 | [[Logging]] 860 | uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" 861 | 862 | [[LoggingExtras]] 863 | deps = ["Dates"] 864 | git-tree-sha1 = "03289aba73c0abc25ff0229bed60f2a4129cd15c" 865 | uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" 866 | version = "0.4.2" 867 | 868 | [[LoopVectorization]] 869 | deps = ["DocStringExtensions", "LinearAlgebra", "OffsetArrays", "SIMDPirates", "SLEEFPirates", "UnPack", "VectorizationBase"] 870 | git-tree-sha1 = "3242a8f411e19eda9adc49d0b877681975c11375" 871 | uuid = "bdcacae8-1622-11e9-2a5c-532679323890" 872 | version = "0.8.26" 873 | 874 | [[Lz4_jll]] 875 | deps = ["Libdl", "Pkg"] 876 | git-tree-sha1 = "51b1db0732bbdcfabb60e36095cc3ed9c0016932" 877 | uuid = "5ced341a-0733-55b8-9ab6-a4889d929147" 878 | version = "1.9.2+2" 879 | 880 | [[METIS_jll]] 881 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 882 | git-tree-sha1 = "2dc1a9fc87e57e32b1fc186db78811157b30c118" 883 | uuid = "d00139f3-1899-568f-a2f0-47f597d42d70" 884 | version = "5.1.0+5" 885 | 886 | [[MKL_jll]] 887 | deps = ["IntelOpenMP_jll", "Libdl", "Pkg"] 888 | git-tree-sha1 = "eb540ede3aabb8284cb482aa41d00d6ca850b1f8" 889 | uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" 890 | version = "2020.2.254+0" 891 | 892 | [[MacroTools]] 893 | deps = ["Markdown", "Random"] 894 | git-tree-sha1 = "6a8a2a625ab0dea913aba95c11370589e0239ff0" 895 | uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" 896 | version = "0.5.6" 897 | 898 | [[Markdown]] 899 | deps = ["Base64"] 900 | uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" 901 | 902 | [[MbedTLS]] 903 | deps = ["Dates", "MbedTLS_jll", "Random", "Sockets"] 904 | git-tree-sha1 = "1c38e51c3d08ef2278062ebceade0e46cefc96fe" 905 | uuid = "739be429-bea8-5141-9913-cc70e7f3736d" 906 | version = "1.0.3" 907 | 908 | [[MbedTLS_jll]] 909 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 910 | git-tree-sha1 = "0eef589dd1c26a3ac9d753fe1a8bcad63f956fa6" 911 | uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" 912 | version = "2.16.8+1" 913 | 914 | [[Measures]] 915 | git-tree-sha1 = "e498ddeee6f9fdb4551ce855a46f54dbd900245f" 916 | uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" 917 | version = "0.3.1" 918 | 919 | [[Media]] 920 | deps = ["MacroTools", "Test"] 921 | git-tree-sha1 = "75a54abd10709c01f1b86b84ec225d26e840ed58" 922 | uuid = "e89f7d12-3494-54d1-8411-f7d8b9ae1f27" 923 | version = "0.5.0" 924 | 925 | [[Missings]] 926 | deps = ["DataAPI"] 927 | git-tree-sha1 = "ed61674a0864832495ffe0a7e889c0da76b0f4c8" 928 | uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" 929 | version = "0.4.4" 930 | 931 | [[Mmap]] 932 | uuid = "a63ad114-7e13-5084-954f-fe012c677804" 933 | 934 | [[ModelingToolkit]] 935 | deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqJump", "DiffRules", "Distributed", "DocStringExtensions", "IfElse", "LabelledArrays", "Latexify", "Libdl", "LightGraphs", "LinearAlgebra", "MacroTools", "NaNMath", "RecursiveArrayTools", "Requires", "RuntimeGeneratedFunctions", "SafeTestsets", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicUtils", "TreeViews", "UnPack", "Unitful"] 936 | git-tree-sha1 = "77ebf555fb5bc7f00dca5ee65cd72c8afcc1cda2" 937 | uuid = "961ee093-0014-501f-94e3-6117800e7a78" 938 | version = "4.0.1" 939 | 940 | [[MuladdMacro]] 941 | git-tree-sha1 = "c6190f9a7fc5d9d5915ab29f2134421b12d24a68" 942 | uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" 943 | version = "0.2.2" 944 | 945 | [[MultiScaleArrays]] 946 | deps = ["DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "OrdinaryDiffEq", "Random", "RecursiveArrayTools", "SparseDiffTools", "Statistics", "StochasticDiffEq", "TreeViews"] 947 | git-tree-sha1 = "258f3be6770fe77be8870727ba9803e236c685b8" 948 | uuid = "f9640e96-87f6-5992-9c3b-0743c6a49ffa" 949 | version = "1.8.1" 950 | 951 | [[MultivariateStats]] 952 | deps = ["Arpack", "LinearAlgebra", "SparseArrays", "Statistics", "StatsBase"] 953 | git-tree-sha1 = "352fae519b447bf52e6de627b89f448bcd469e4e" 954 | uuid = "6f286f6a-111f-5878-ab1e-185364afe411" 955 | version = "0.7.0" 956 | 957 | [[NLSolversBase]] 958 | deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] 959 | git-tree-sha1 = "39d6bc45e99c96e6995cbddac02877f9b61a1dd1" 960 | uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" 961 | version = "7.7.1" 962 | 963 | [[NLsolve]] 964 | deps = ["Distances", "LineSearches", "LinearAlgebra", "NLSolversBase", "Printf", "Reexport"] 965 | git-tree-sha1 = "650f266dcb5a24b4095fdab92f0137c0f4ee9392" 966 | uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" 967 | version = "4.4.1" 968 | 969 | [[NNlib]] 970 | deps = ["Libdl", "LinearAlgebra", "Pkg", "Requires", "Statistics"] 971 | git-tree-sha1 = "a8180fd1445e31c0b1add98dae8da694ac2c23fd" 972 | uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" 973 | version = "0.7.6" 974 | 975 | [[NaNMath]] 976 | git-tree-sha1 = "c84c576296d0e2fbb3fc134d3e09086b3ea617cd" 977 | uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" 978 | version = "0.3.4" 979 | 980 | [[NearestNeighbors]] 981 | deps = ["Distances", "StaticArrays"] 982 | git-tree-sha1 = "da77adc83db31176804ce8307e61ef5bedca2e58" 983 | uuid = "b8a86587-4115-5ab1-83bc-aa920d37bbce" 984 | version = "0.4.7" 985 | 986 | [[Observables]] 987 | git-tree-sha1 = "635fe10760447cfa86f5118edf2f47eb864fb495" 988 | uuid = "510215fc-4207-5dde-b226-833fc4488ee2" 989 | version = "0.3.2" 990 | 991 | [[OffsetArrays]] 992 | deps = ["Adapt"] 993 | git-tree-sha1 = "9db93b990af57b3a56dca38476832f60d58f777b" 994 | uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" 995 | version = "1.4.0" 996 | 997 | [[Ogg_jll]] 998 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 999 | git-tree-sha1 = "a42c0f138b9ebe8b58eba2271c5053773bde52d0" 1000 | uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" 1001 | version = "1.3.4+2" 1002 | 1003 | [[OpenBLAS_jll]] 1004 | deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"] 1005 | git-tree-sha1 = "0c922fd9634e358622e333fc58de61f05a048492" 1006 | uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" 1007 | version = "0.3.9+5" 1008 | 1009 | [[OpenSSL_jll]] 1010 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1011 | git-tree-sha1 = "71bbbc616a1d710879f5a1021bcba65ffba6ce58" 1012 | uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" 1013 | version = "1.1.1+6" 1014 | 1015 | [[OpenSpecFun_jll]] 1016 | deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] 1017 | git-tree-sha1 = "9db77584158d0ab52307f8c04f8e7c08ca76b5b3" 1018 | uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" 1019 | version = "0.5.3+4" 1020 | 1021 | [[Optim]] 1022 | deps = ["Compat", "FillArrays", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] 1023 | git-tree-sha1 = "c434c4853a7e61506caf0340b3c153fc08865088" 1024 | uuid = "429524aa-4258-5aef-a3af-852621145aeb" 1025 | version = "1.2.0" 1026 | 1027 | [[Opus_jll]] 1028 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1029 | git-tree-sha1 = "f9d57f4126c39565e05a2b0264df99f497fc6f37" 1030 | uuid = "91d4177d-7536-5919-b921-800302f37372" 1031 | version = "1.3.1+3" 1032 | 1033 | [[OrderedCollections]] 1034 | git-tree-sha1 = "cf59cfed2e2c12e8a2ff0a4f1e9b2cd8650da6db" 1035 | uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" 1036 | version = "1.3.2" 1037 | 1038 | [[OrdinaryDiffEq]] 1039 | deps = ["Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "ExponentialUtilities", "FastClosures", "FiniteDiff", "ForwardDiff", "GenericSVD", "LinearAlgebra", "Logging", "MacroTools", "MuladdMacro", "NLsolve", "RecursiveArrayTools", "Reexport", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] 1040 | git-tree-sha1 = "4aa8e19a72d6b69ca139de2696d25d9f710ca246" 1041 | uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" 1042 | version = "5.44.0" 1043 | 1044 | [[PDMats]] 1045 | deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse", "Test"] 1046 | git-tree-sha1 = "95a4038d1011dfdbde7cecd2ad0ac411e53ab1bc" 1047 | uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" 1048 | version = "0.10.1" 1049 | 1050 | [[ParameterizedFunctions]] 1051 | deps = ["DataStructures", "DiffEqBase", "Latexify", "LinearAlgebra", "ModelingToolkit", "Reexport"] 1052 | git-tree-sha1 = "bc08a0022d03d88d36fecc56a30b812ad03b0072" 1053 | uuid = "65888b18-ceab-5e60-b2b9-181511a3b968" 1054 | version = "5.7.0" 1055 | 1056 | [[Parameters]] 1057 | deps = ["OrderedCollections", "UnPack"] 1058 | git-tree-sha1 = "38b2e970043613c187bd56a995fe2e551821eb4a" 1059 | uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" 1060 | version = "0.12.1" 1061 | 1062 | [[Parsers]] 1063 | deps = ["Dates"] 1064 | git-tree-sha1 = "6fa4202675c05ba0f8268a6ddf07606350eda3ce" 1065 | uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" 1066 | version = "1.0.11" 1067 | 1068 | [[Pidfile]] 1069 | deps = ["FileWatching", "Test"] 1070 | git-tree-sha1 = "1be8660b2064893cd2dae4bd004b589278e4440d" 1071 | uuid = "fa939f87-e72e-5be4-a000-7fc836dbe307" 1072 | version = "1.2.0" 1073 | 1074 | [[Pkg]] 1075 | deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"] 1076 | uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" 1077 | 1078 | [[PlotThemes]] 1079 | deps = ["PlotUtils", "Requires", "Statistics"] 1080 | git-tree-sha1 = "c6f5ea535551b3b16835134697f0c65d06c94b91" 1081 | uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" 1082 | version = "2.0.0" 1083 | 1084 | [[PlotUtils]] 1085 | deps = ["ColorSchemes", "Colors", "Dates", "Printf", "Random", "Reexport", "Statistics"] 1086 | git-tree-sha1 = "4e098f88dad9a2b518b83124a116be1c49e2b2bf" 1087 | uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" 1088 | version = "1.0.7" 1089 | 1090 | [[Plots]] 1091 | deps = ["Base64", "Contour", "Dates", "FFMPEG", "FixedPointNumbers", "GR", "GeometryBasics", "GeometryTypes", "JSON", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs"] 1092 | git-tree-sha1 = "4d94e6b49fbb0c479e71e12aa1446c4053f5a25e" 1093 | uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" 1094 | version = "1.7.3" 1095 | 1096 | [[PoissonRandom]] 1097 | deps = ["Random", "Statistics", "Test"] 1098 | git-tree-sha1 = "44d018211a56626288b5d3f8c6497d28c26dc850" 1099 | uuid = "e409e4f3-bfea-5376-8464-e040bb5c01ab" 1100 | version = "0.4.0" 1101 | 1102 | [[PositiveFactorizations]] 1103 | deps = ["LinearAlgebra", "Test"] 1104 | git-tree-sha1 = "127c47b91990c101ee3752291c4f45640eeb03d1" 1105 | uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" 1106 | version = "0.2.3" 1107 | 1108 | [[Primes]] 1109 | deps = ["Test"] 1110 | git-tree-sha1 = "ff1a2323cb468ec5f201838fcbe3c232266b1f95" 1111 | uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" 1112 | version = "0.4.0" 1113 | 1114 | [[Printf]] 1115 | deps = ["Unicode"] 1116 | uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" 1117 | 1118 | [[Profile]] 1119 | deps = ["Printf"] 1120 | uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" 1121 | 1122 | [[ProgressLogging]] 1123 | deps = ["Logging", "SHA", "UUIDs"] 1124 | git-tree-sha1 = "59398022b661b6fd569f25de6b18fde39843196a" 1125 | uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" 1126 | version = "0.1.3" 1127 | 1128 | [[ProgressMeter]] 1129 | deps = ["Distributed", "Printf"] 1130 | git-tree-sha1 = "4cff8da83f89e06eeae5b81307a08bb33a96a602" 1131 | uuid = "92933f4c-e287-5a05-a399-4b506db050ca" 1132 | version = "1.4.0" 1133 | 1134 | [[QuadGK]] 1135 | deps = ["DataStructures", "LinearAlgebra"] 1136 | git-tree-sha1 = "12fbe86da16df6679be7521dfb39fbc861e1dc7b" 1137 | uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" 1138 | version = "2.4.1" 1139 | 1140 | [[QuantumOptics]] 1141 | deps = ["Arpack", "DiffEqCallbacks", "FFTW", "LinearAlgebra", "OrdinaryDiffEq", "QuantumOpticsBase", "Random", "RecursiveArrayTools", "Reexport", "SparseArrays", "StochasticDiffEq", "WignerSymbols"] 1142 | git-tree-sha1 = "9f1cb9200a13779a205f827b06fc393b975fc34e" 1143 | uuid = "6e0679c1-51ea-5a7c-ac74-d61b76210b0c" 1144 | version = "0.8.2" 1145 | 1146 | [[QuantumOpticsBase]] 1147 | deps = ["Adapt", "FFTW", "LinearAlgebra", "Random", "SparseArrays"] 1148 | git-tree-sha1 = "9fa548775b1f6a0b30a9f0bfb8bbc8a3bb9d0fc0" 1149 | uuid = "4f57444f-1401-5e15-980d-4471b28d5678" 1150 | version = "0.2.2" 1151 | 1152 | [[QuasiMonteCarlo]] 1153 | deps = ["Distributions", "LatinHypercubeSampling", "LatticeRules", "Sobol"] 1154 | git-tree-sha1 = "8bc69f34bed5d9c3a15fe28bced99fbc054065e9" 1155 | uuid = "8a4e6c94-4038-4cdc-81c3-7e6ffdb2a71b" 1156 | version = "0.2.1" 1157 | 1158 | [[REPL]] 1159 | deps = ["InteractiveUtils", "Markdown", "Sockets"] 1160 | uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" 1161 | 1162 | [[Random]] 1163 | deps = ["Serialization"] 1164 | uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" 1165 | 1166 | [[RandomExtensions]] 1167 | deps = ["Random", "SparseArrays", "Test"] 1168 | git-tree-sha1 = "a1f5f900aaf39849bd59efcf751df79f1179bb73" 1169 | uuid = "fb686558-2515-59ef-acaa-46db3789a887" 1170 | version = "0.4.2" 1171 | 1172 | [[RandomNumbers]] 1173 | deps = ["Random", "Requires"] 1174 | git-tree-sha1 = "441e6fc35597524ada7f85e13df1f4e10137d16f" 1175 | uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" 1176 | version = "1.4.0" 1177 | 1178 | [[RationalRoots]] 1179 | git-tree-sha1 = "4165f49c451e6fc4bc0a2eeb1250abdf8c6e550e" 1180 | uuid = "308eb6b3-cc68-5ff3-9e97-c3c4da4fa681" 1181 | version = "0.1.0" 1182 | 1183 | [[Ratios]] 1184 | git-tree-sha1 = "37d210f612d70f3f7d57d488cb3b6eff56ad4e41" 1185 | uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" 1186 | version = "0.4.0" 1187 | 1188 | [[RecipesBase]] 1189 | git-tree-sha1 = "6ee6c35fe69e79e17c455a386c1ccdc66d9f7da4" 1190 | uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" 1191 | version = "1.1.0" 1192 | 1193 | [[RecipesPipeline]] 1194 | deps = ["Dates", "NaNMath", "PlotUtils", "RecipesBase"] 1195 | git-tree-sha1 = "4a325c9bcc2d8e62a8f975b9666d0251d53b63b9" 1196 | uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" 1197 | version = "0.1.13" 1198 | 1199 | [[RecursiveArrayTools]] 1200 | deps = ["ArrayInterface", "LinearAlgebra", "RecipesBase", "Requires", "StaticArrays", "Statistics", "ZygoteRules"] 1201 | git-tree-sha1 = "639b3c4c7bcdc42be3ce69c4919eac17be73242b" 1202 | uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" 1203 | version = "2.7.2" 1204 | 1205 | [[RecursiveFactorization]] 1206 | deps = ["LinearAlgebra", "LoopVectorization", "VectorizationBase"] 1207 | git-tree-sha1 = "4ca0bdad1d69abbd59c35af89a9a2ab6cd5ef0f1" 1208 | uuid = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" 1209 | version = "0.1.4" 1210 | 1211 | [[Reexport]] 1212 | deps = ["Pkg"] 1213 | git-tree-sha1 = "7b1d07f411bc8ddb7977ec7f377b97b158514fe0" 1214 | uuid = "189a3867-3050-52da-a836-e630ba90ab69" 1215 | version = "0.2.0" 1216 | 1217 | [[Requires]] 1218 | deps = ["UUIDs"] 1219 | git-tree-sha1 = "28faf1c963ca1dc3ec87f166d92982e3c4a1f66d" 1220 | uuid = "ae029012-a4dd-5104-9daa-d747884805df" 1221 | version = "1.1.0" 1222 | 1223 | [[ResettableStacks]] 1224 | deps = ["StaticArrays"] 1225 | git-tree-sha1 = "d19e9c93de6020a96dbb2820567c78d0ab8f7248" 1226 | uuid = "ae5879a3-cd67-5da8-be7f-38c6eb64a37b" 1227 | version = "1.0.0" 1228 | 1229 | [[ReverseDiff]] 1230 | deps = ["DiffResults", "DiffRules", "ForwardDiff", "FunctionWrappers", "LinearAlgebra", "MacroTools", "NaNMath", "Random", "SpecialFunctions", "StaticArrays", "Statistics"] 1231 | git-tree-sha1 = "97c6f7dc9ef6ca1d5bd3aa0072d804281af5072d" 1232 | uuid = "37e2e3b7-166d-5795-8a7a-e32c996b4267" 1233 | version = "1.4.3" 1234 | 1235 | [[Richardson]] 1236 | deps = ["LinearAlgebra"] 1237 | git-tree-sha1 = "776e0fdd3da5ad52067b60310ea8f3150d794c2f" 1238 | uuid = "708f8203-808e-40c0-ba2d-98a6953ed40d" 1239 | version = "1.2.0" 1240 | 1241 | [[Rmath]] 1242 | deps = ["Random", "Rmath_jll"] 1243 | git-tree-sha1 = "86c5647b565873641538d8f812c04e4c9dbeb370" 1244 | uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" 1245 | version = "0.6.1" 1246 | 1247 | [[Rmath_jll]] 1248 | deps = ["Libdl", "Pkg"] 1249 | git-tree-sha1 = "d76185aa1f421306dec73c057aa384bad74188f0" 1250 | uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" 1251 | version = "0.2.2+1" 1252 | 1253 | [[Roots]] 1254 | deps = ["Printf"] 1255 | git-tree-sha1 = "1211c7c1928c1ed29cdcef65979b7a791e3b9fbe" 1256 | uuid = "f2b01f46-fcfa-551c-844a-d8ac1e96c665" 1257 | version = "1.0.5" 1258 | 1259 | [[RuntimeGeneratedFunctions]] 1260 | deps = ["ExprTools", "SHA", "Serialization"] 1261 | git-tree-sha1 = "6b3a11fb560669ebb3918adde9db14f886d8b1cb" 1262 | uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" 1263 | version = "0.4.2" 1264 | 1265 | [[SHA]] 1266 | uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" 1267 | 1268 | [[SIMDPirates]] 1269 | deps = ["VectorizationBase"] 1270 | git-tree-sha1 = "450d163d3279a1d35e3aad3352a5167ef21b84a4" 1271 | uuid = "21efa798-c60a-11e8-04d3-e1a92915a26a" 1272 | version = "0.8.25" 1273 | 1274 | [[SLEEFPirates]] 1275 | deps = ["Libdl", "SIMDPirates", "VectorizationBase"] 1276 | git-tree-sha1 = "67ae90a18aa8c22bf159318300e765fbd89ddf6e" 1277 | uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" 1278 | version = "0.5.5" 1279 | 1280 | [[SafeTestsets]] 1281 | deps = ["Test"] 1282 | git-tree-sha1 = "36ebc5622c82eb9324005cc75e7e2cc51181d181" 1283 | uuid = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" 1284 | version = "0.0.1" 1285 | 1286 | [[Scratch]] 1287 | deps = ["Dates"] 1288 | git-tree-sha1 = "ad4b278adb62d185bbcb6864dc24959ab0627bf6" 1289 | uuid = "6c6a2e73-6563-6170-7368-637461726353" 1290 | version = "1.0.3" 1291 | 1292 | [[Serialization]] 1293 | uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" 1294 | 1295 | [[SharedArrays]] 1296 | deps = ["Distributed", "Mmap", "Random", "Serialization"] 1297 | uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" 1298 | 1299 | [[Showoff]] 1300 | deps = ["Dates", "Grisu"] 1301 | git-tree-sha1 = "ee010d8f103468309b8afac4abb9be2e18ff1182" 1302 | uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" 1303 | version = "0.3.2" 1304 | 1305 | [[SimpleTraits]] 1306 | deps = ["InteractiveUtils", "MacroTools"] 1307 | git-tree-sha1 = "daf7aec3fe3acb2131388f93a4c409b8c7f62226" 1308 | uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" 1309 | version = "0.9.3" 1310 | 1311 | [[Sobol]] 1312 | deps = ["DelimitedFiles", "Random"] 1313 | git-tree-sha1 = "c267048df70f47d47d5272fe1a63a66c51c53014" 1314 | uuid = "ed01d8cd-4d21-5b2a-85b4-cc3bdc58bad4" 1315 | version = "1.4.0" 1316 | 1317 | [[Sockets]] 1318 | uuid = "6462fe0b-24de-5631-8697-dd941f90decc" 1319 | 1320 | [[SortingAlgorithms]] 1321 | deps = ["DataStructures", "Random", "Test"] 1322 | git-tree-sha1 = "03f5898c9959f8115e30bc7226ada7d0df554ddd" 1323 | uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" 1324 | version = "0.3.1" 1325 | 1326 | [[SparseArrays]] 1327 | deps = ["LinearAlgebra", "Random"] 1328 | uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" 1329 | 1330 | [[SparseDiffTools]] 1331 | deps = ["Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "LightGraphs", "LinearAlgebra", "Requires", "SparseArrays", "VertexSafeGraphs"] 1332 | git-tree-sha1 = "69de355cb5e2b9a0e89f383c1762bba5ae70b580" 1333 | uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" 1334 | version = "1.10.0" 1335 | 1336 | [[SpatialIndexing]] 1337 | deps = ["Printf", "Random", "Test"] 1338 | git-tree-sha1 = "7bc6fc5c363aae476ec2c8bc527aef104b90c779" 1339 | uuid = "d4ead438-fe20-5cc5-a293-4fd39a41b74c" 1340 | version = "0.1.2" 1341 | 1342 | [[SpecialFunctions]] 1343 | deps = ["OpenSpecFun_jll"] 1344 | git-tree-sha1 = "d8d8b8a9f4119829410ecd706da4cc8594a1e020" 1345 | uuid = "276daf66-3868-5448-9aa4-cd146d93841b" 1346 | version = "0.10.3" 1347 | 1348 | [[StableRNGs]] 1349 | deps = ["Random", "Test"] 1350 | git-tree-sha1 = "3be7d49667040add7ee151fefaf1f8c04c8c8276" 1351 | uuid = "860ef19b-820b-49d6-a774-d7a799459cd3" 1352 | version = "1.0.0" 1353 | 1354 | [[StaticArrays]] 1355 | deps = ["LinearAlgebra", "Random", "Statistics"] 1356 | git-tree-sha1 = "da4cf579416c81994afd6322365d00916c79b8ae" 1357 | uuid = "90137ffa-7385-5640-81b9-e52037218182" 1358 | version = "0.12.5" 1359 | 1360 | [[Statistics]] 1361 | deps = ["LinearAlgebra", "SparseArrays"] 1362 | uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" 1363 | 1364 | [[StatsBase]] 1365 | deps = ["DataAPI", "DataStructures", "LinearAlgebra", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics"] 1366 | git-tree-sha1 = "7bab7d4eb46b225b35179632852b595a3162cb61" 1367 | uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" 1368 | version = "0.33.2" 1369 | 1370 | [[StatsFuns]] 1371 | deps = ["Rmath", "SpecialFunctions"] 1372 | git-tree-sha1 = "04a5a8e6ab87966b43f247920eab053fd5fdc925" 1373 | uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" 1374 | version = "0.9.5" 1375 | 1376 | [[StatsPlots]] 1377 | deps = ["Clustering", "DataStructures", "DataValues", "Distributions", "Interpolations", "KernelDensity", "LinearAlgebra", "MultivariateStats", "Observables", "Plots", "RecipesBase", "RecipesPipeline", "Reexport", "StatsBase", "TableOperations", "Tables", "Widgets"] 1378 | git-tree-sha1 = "722dd702369773a25c4bc46b69e0aa8b181ab6df" 1379 | uuid = "f3b207a7-027a-5e70-b257-86293d7955fd" 1380 | version = "0.14.15" 1381 | 1382 | [[SteadyStateDiffEq]] 1383 | deps = ["DiffEqBase", "DiffEqCallbacks", "LinearAlgebra", "NLsolve", "Reexport"] 1384 | git-tree-sha1 = "75f258513b7ef8b235876f4cf146577ffd545094" 1385 | uuid = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f" 1386 | version = "1.5.1" 1387 | 1388 | [[StochasticDiffEq]] 1389 | deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqJump", "DiffEqNoiseProcess", "FillArrays", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "Logging", "MuladdMacro", "NLsolve", "OrdinaryDiffEq", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] 1390 | git-tree-sha1 = "09c24c310da843a3c6b41984089f2a28c301d3b1" 1391 | uuid = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" 1392 | version = "6.26.0" 1393 | 1394 | [[StringDistances]] 1395 | deps = ["Distances"] 1396 | git-tree-sha1 = "b0ea34b18ba9da7abc79acabda8a473cd63c1254" 1397 | uuid = "88034a9c-02f8-509d-84a9-84ec65e18404" 1398 | version = "0.8.0" 1399 | 1400 | [[StructArrays]] 1401 | deps = ["Adapt", "DataAPI", "Tables"] 1402 | git-tree-sha1 = "8099ed9fb90b6e754d6ba8c6ed8670f010eadca0" 1403 | uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" 1404 | version = "0.4.4" 1405 | 1406 | [[SuiteSparse]] 1407 | deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] 1408 | uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" 1409 | 1410 | [[SuiteSparse_jll]] 1411 | deps = ["Libdl", "METIS_jll", "OpenBLAS_jll", "Pkg"] 1412 | git-tree-sha1 = "4a2295b63d67e6f13a0b539c935ccbf218fa1143" 1413 | uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" 1414 | version = "5.4.0+9" 1415 | 1416 | [[Sundials]] 1417 | deps = ["CEnum", "DataStructures", "DiffEqBase", "Libdl", "LinearAlgebra", "Logging", "Reexport", "SparseArrays", "Sundials_jll"] 1418 | git-tree-sha1 = "9e7036b5690b264248d99090170f60884105a5e1" 1419 | uuid = "c3572dad-4567-51f8-b174-8c6c989267f4" 1420 | version = "4.3.0" 1421 | 1422 | [[Sundials_jll]] 1423 | deps = ["CompilerSupportLibraries_jll", "Libdl", "OpenBLAS_jll", "Pkg", "SuiteSparse_jll"] 1424 | git-tree-sha1 = "013ff4504fc1d475aa80c63b455b6b3a58767db2" 1425 | uuid = "fb77eaff-e24c-56d4-86b1-d163f2edb164" 1426 | version = "5.2.0+1" 1427 | 1428 | [[SymbolicUtils]] 1429 | deps = ["AbstractAlgebra", "Combinatorics", "DataStructures", "NaNMath", "SpecialFunctions", "TimerOutputs"] 1430 | git-tree-sha1 = "4003d7cd9e785a3f15f36acdbf63ad75bb80d4e8" 1431 | uuid = "d1185830-fcd6-423d-90d6-eec64667417b" 1432 | version = "0.6.0" 1433 | 1434 | [[TableOperations]] 1435 | deps = ["Tables", "Test"] 1436 | git-tree-sha1 = "208630a14884abd110a8f8008b0882f0d0f5632c" 1437 | uuid = "ab02a1b2-a7df-11e8-156e-fb1833f50b87" 1438 | version = "0.2.1" 1439 | 1440 | [[TableTraits]] 1441 | deps = ["IteratorInterfaceExtensions"] 1442 | git-tree-sha1 = "b1ad568ba658d8cbb3b892ed5380a6f3e781a81e" 1443 | uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" 1444 | version = "1.0.0" 1445 | 1446 | [[Tables]] 1447 | deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "TableTraits", "Test"] 1448 | git-tree-sha1 = "24a584cf65e2cfabdadc21694fb69d2e74c82b44" 1449 | uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" 1450 | version = "1.1.0" 1451 | 1452 | [[TerminalLoggers]] 1453 | deps = ["LeftChildRightSiblingTrees", "Logging", "Markdown", "Printf", "ProgressLogging", "UUIDs"] 1454 | git-tree-sha1 = "cbea752b5eef52a3e1188fb31580c3e4fa0cbc35" 1455 | uuid = "5d786b92-1e48-4d6f-9151-6b4477ca9bed" 1456 | version = "0.1.2" 1457 | 1458 | [[Test]] 1459 | deps = ["Distributed", "InteractiveUtils", "Logging", "Random"] 1460 | uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" 1461 | 1462 | [[TimerOutputs]] 1463 | deps = ["Printf"] 1464 | git-tree-sha1 = "3318281dd4121ecf9713ce1383b9ace7d7476fdd" 1465 | uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" 1466 | version = "0.5.7" 1467 | 1468 | [[Tokenize]] 1469 | git-tree-sha1 = "73c00ad506d88a7e8e4f90f48a70943101728227" 1470 | uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624" 1471 | version = "0.5.8" 1472 | 1473 | [[Tracker]] 1474 | deps = ["Adapt", "DiffRules", "ForwardDiff", "LinearAlgebra", "MacroTools", "NNlib", "NaNMath", "Printf", "Random", "Requires", "SpecialFunctions", "Statistics"] 1475 | git-tree-sha1 = "dd5ef5790cca486310575e4e2cc21c087ad7252e" 1476 | uuid = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" 1477 | version = "0.2.12" 1478 | 1479 | [[TranscodingStreams]] 1480 | deps = ["Random", "Test"] 1481 | git-tree-sha1 = "7c53c35547de1c5b9d46a4797cf6d8253807108c" 1482 | uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" 1483 | version = "0.9.5" 1484 | 1485 | [[TreeViews]] 1486 | deps = ["Test"] 1487 | git-tree-sha1 = "8d0d7a3fe2f30d6a7f833a5f19f7c7a5b396eae6" 1488 | uuid = "a2a6695c-b41b-5b7d-aed9-dbfdeacea5d7" 1489 | version = "0.3.0" 1490 | 1491 | [[URIParser]] 1492 | deps = ["Unicode"] 1493 | git-tree-sha1 = "53a9f49546b8d2dd2e688d216421d050c9a31d0d" 1494 | uuid = "30578b45-9adc-5946-b283-645ec420af67" 1495 | version = "0.4.1" 1496 | 1497 | [[UUIDs]] 1498 | deps = ["Random", "SHA"] 1499 | uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" 1500 | 1501 | [[UnPack]] 1502 | git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" 1503 | uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" 1504 | version = "1.0.2" 1505 | 1506 | [[Unicode]] 1507 | uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" 1508 | 1509 | [[Unitful]] 1510 | deps = ["ConstructionBase", "LinearAlgebra", "Random"] 1511 | git-tree-sha1 = "2b643523d52fc9fb4fe0729e6561d066055d58d8" 1512 | uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" 1513 | version = "1.5.0" 1514 | 1515 | [[VectorizationBase]] 1516 | deps = ["CpuId", "Libdl", "LinearAlgebra"] 1517 | git-tree-sha1 = "03e2fbb479a1ea350398195b6fbf439bae0f8260" 1518 | uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" 1519 | version = "0.12.33" 1520 | 1521 | [[VertexSafeGraphs]] 1522 | deps = ["LightGraphs"] 1523 | git-tree-sha1 = "b9b450c99a3ca1cc1c6836f560d8d887bcbe356e" 1524 | uuid = "19fa3120-7c27-5ec5-8db8-b0b0aa330d6f" 1525 | version = "0.1.2" 1526 | 1527 | [[WebIO]] 1528 | deps = ["AssetRegistry", "Base64", "Distributed", "FunctionalCollections", "JSON", "Logging", "Observables", "Pkg", "Random", "Requires", "Sockets", "UUIDs", "WebSockets", "Widgets"] 1529 | git-tree-sha1 = "adc25e225bc334c7df6eec3b39496edfc451cc38" 1530 | uuid = "0f1e0344-ec1d-5b48-a673-e5cf874b6c29" 1531 | version = "0.8.15" 1532 | 1533 | [[WebSockets]] 1534 | deps = ["Base64", "Dates", "Distributed", "HTTP", "Logging", "Random", "Sockets", "Test"] 1535 | git-tree-sha1 = "13f763d38c7a05688938808b49cb29b18b60c8c8" 1536 | uuid = "104b5d7c-a370-577a-8038-80a2059c5097" 1537 | version = "1.5.2" 1538 | 1539 | [[Widgets]] 1540 | deps = ["Colors", "Dates", "Observables", "OrderedCollections"] 1541 | git-tree-sha1 = "fc0feda91b3fef7fe6948ee09bb628f882b49ca4" 1542 | uuid = "cc8bc4a8-27d6-5769-a93b-9d913e69aa62" 1543 | version = "0.6.2" 1544 | 1545 | [[WignerSymbols]] 1546 | deps = ["HalfIntegers", "Primes", "RationalRoots"] 1547 | git-tree-sha1 = "dfb49a51c4c8e205d1d7ddc7e6a1a29da871ef52" 1548 | uuid = "9f57e263-0b3d-5e2e-b1be-24f2bb48858b" 1549 | version = "1.1.0" 1550 | 1551 | [[WoodburyMatrices]] 1552 | deps = ["LinearAlgebra", "SparseArrays"] 1553 | git-tree-sha1 = "59e2ad8fd1591ea019a5259bd012d7aee15f995c" 1554 | uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" 1555 | version = "0.5.3" 1556 | 1557 | [[ZipFile]] 1558 | deps = ["Libdl", "Printf", "Zlib_jll"] 1559 | git-tree-sha1 = "c3a5637e27e914a7a445b8d0ad063d701931e9f7" 1560 | uuid = "a5390f91-8eb1-5f08-bee0-b1d1ffed6cea" 1561 | version = "0.9.3" 1562 | 1563 | [[Zlib_jll]] 1564 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1565 | git-tree-sha1 = "320228915c8debb12cb434c59057290f0834dbf6" 1566 | uuid = "83775a58-1f1d-513f-b197-d71354ab007a" 1567 | version = "1.2.11+18" 1568 | 1569 | [[Zstd_jll]] 1570 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1571 | git-tree-sha1 = "6f1abcb0c44f184690912aa4b0ba861dd64f11b9" 1572 | uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" 1573 | version = "1.4.5+2" 1574 | 1575 | [[Zygote]] 1576 | deps = ["AbstractFFTs", "ArrayLayouts", "ChainRules", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "Future", "IRTools", "InteractiveUtils", "LinearAlgebra", "LoopVectorization", "MacroTools", "NNlib", "NaNMath", "Random", "Requires", "SpecialFunctions", "Statistics", "ZygoteRules"] 1577 | git-tree-sha1 = "b3f792937233abc61d4020a9e89a7f2bcb67333e" 1578 | uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" 1579 | version = "0.5.9" 1580 | 1581 | [[ZygoteRules]] 1582 | deps = ["MacroTools"] 1583 | git-tree-sha1 = "b3b4882cc9accf6731a08cc39543fbc6b669dca8" 1584 | uuid = "700de1a5-db45-46bc-99cf-38207098b444" 1585 | version = "0.2.0" 1586 | 1587 | [[libass_jll]] 1588 | deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] 1589 | git-tree-sha1 = "acc685bcf777b2202a904cdcb49ad34c2fa1880c" 1590 | uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" 1591 | version = "0.14.0+4" 1592 | 1593 | [[libfdk_aac_jll]] 1594 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1595 | git-tree-sha1 = "7a5780a0d9c6864184b3a2eeeb833a0c871f00ab" 1596 | uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" 1597 | version = "0.1.6+4" 1598 | 1599 | [[libvorbis_jll]] 1600 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] 1601 | git-tree-sha1 = "fa14ac25af7a4b8a7f61b287a124df7aab601bcd" 1602 | uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" 1603 | version = "1.3.6+6" 1604 | 1605 | [[x264_jll]] 1606 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1607 | git-tree-sha1 = "d713c1ce4deac133e3334ee12f4adff07f81778f" 1608 | uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" 1609 | version = "2020.7.14+2" 1610 | 1611 | [[x265_jll]] 1612 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1613 | git-tree-sha1 = "487da2f8f2f0c8ee0e83f39d13037d6bbf0a45ab" 1614 | uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" 1615 | version = "3.0.0+3" 1616 | -------------------------------------------------------------------------------- /homodyne-current/Project.toml: -------------------------------------------------------------------------------- 1 | [deps] 2 | Atom = "c52e3926-4ff0-5f6e-af25-54175e0327b1" 3 | BSON = "fbb218c0-5317-5bc6-957e-2ee96dd4b1f0" 4 | BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" 5 | DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" 6 | DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" 7 | DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def" 8 | DiffEqFlux = "aae7a2af-3d4f-5e19-a356-7da93b79d9d0" 9 | DiffEqGPU = "071ae1c0-96b5-11e9-1965-c90190d839ea" 10 | DiffEqNoiseProcess = "77a26b50-5914-5dd7-bc55-306e6241c503" 11 | DiffEqSensitivity = "41bf760c-e81c-5289-8e54-58b1f1f8abe2" 12 | DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" 13 | Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" 14 | GaussianDistributions = "43dcc890-d446-5863-8d1a-14597580bb8d" 15 | JLD = "4138dd39-2aa7-5051-a626-17a0bb65d9c8" 16 | Juno = "e5e0dc1b-0480-54bc-9374-aad01c23163d" 17 | LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" 18 | LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" 19 | Optim = "429524aa-4258-5aef-a3af-852621145aeb" 20 | OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" 21 | Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" 22 | QuantumOptics = "6e0679c1-51ea-5a7c-ac74-d61b76210b0c" 23 | Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" 24 | StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" 25 | StatsPlots = "f3b207a7-027a-5e70-b257-86293d7955fd" 26 | StochasticDiffEq = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" 27 | Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" 28 | -------------------------------------------------------------------------------- /homodyne-current/parameters_qb.jl: -------------------------------------------------------------------------------- 1 | # In this module, all parameters for the cat state preparation are defined: 2 | 3 | module parameters 4 | export parameters_qb 5 | 6 | parameters_para=Dict( 7 | "N" =>2, 8 | "w" => 20.0f0, 9 | "force_mag" => 5.0f0, 10 | "max_episode_steps" => 150, 11 | "dt" => 0.00025f0, 12 | "n_substeps" => 80, 13 | "gamma" => 1.0f0) 14 | end 15 | -------------------------------------------------------------------------------- /misc/method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frankschae/Control-of-Stochastic-Quantum-Dynamics-with-Differentiable-Programming/b043218e775a84cdf0d0f81db788449e8dc24100/misc/method.png -------------------------------------------------------------------------------- /piecewise-constant-control/Control.jl: -------------------------------------------------------------------------------- 1 | # make your scripts automatically re-activate your project 2 | cd(@__DIR__) 3 | using Pkg; Pkg.activate("."); Pkg.instantiate() 4 | 5 | 6 | using Flux, DiffEqFlux, DiffEqSensitivity 7 | using DifferentialEquations 8 | using DiffEqSensitivity 9 | using DiffEqNoiseProcess 10 | using Plots 11 | using Printf, BSON 12 | using QuantumOptics 13 | using Statistics 14 | using Zygote 15 | using StaticArrays 16 | using LinearAlgebra 17 | using JLD #saving models 18 | 19 | ################################################# 20 | #read parameters from external file 21 | include("parameters_qb.jl") 22 | using Main.parameters 23 | 24 | struct Parameters 25 | dim::Int64 26 | w::Float32 27 | force_mag::Float32 28 | n_steps::Int64 29 | dt::Float32 30 | n_substeps::Int64 31 | gamma::Float32 32 | end 33 | 34 | MyParameters=Parameters( 35 | parameters.parameters_para["N"], 36 | parameters.parameters_para["w"], 37 | parameters.parameters_para["force_mag"], 38 | parameters.parameters_para["max_episode_steps"], 39 | parameters.parameters_para["dt"], 40 | parameters.parameters_para["n_substeps"], 41 | parameters.parameters_para["gamma"]) 42 | 43 | # nr of parallel realizations 44 | n_par = 64 45 | 46 | # loss function hyperparameters 47 | C1 = 0.8f0 # evolution state fid 48 | C2 = 0.001f0 # action amplitudes 49 | C3 = 1.8f0*MyParameters.n_steps/50 #enhance last 50 steps 50 | 51 | ######################## 52 | using Random 53 | Random.seed!(2) 54 | 55 | ################################ 56 | # Hamiltonian and evolution 57 | basis = SpinBasis(1//2) #max n=dim-1 58 | σ_z = sigmaz(basis) 59 | σ_x = sigmax(basis) 60 | σ_p = sigmap(basis) 61 | σ_m = sigmam(basis) 62 | σ_pm = σ_p*σ_m 63 | 64 | H_0pre = MyParameters.w/2.0f0*σ_z #drift Hamiltonian 65 | H_1pre = σ_x #control field 66 | 67 | #to the dense regime, all real, otherwise Flux.train! complains 68 | H_0 = real(Array{Float32}(H_0pre.data)) 69 | H_1 = real(Array{Float32}(H_1pre.data)) 70 | 71 | Arrayσ_p = real(Array{Float32}(σ_p.data)) 72 | Arrayσ_m = real(Array{Float32}(σ_m.data)) 73 | Arrayσ_pm = real(Array{Float32}(σ_pm.data)) 74 | 75 | ################### 76 | # DRIFT TERM FOR SDE 77 | function qb_dynamics_dt!(du,u, α, t) #du/u have a standard dimension 78 | ψRe = u[1:MyParameters.dim] #(dim,) 79 | ψIm = u[MyParameters.dim+1:end] 80 | 81 | HRe = H_0.+α[1]*H_1 #size (dim,dim) ,alpha is just a single number 82 | 83 | Reρ = ψRe.*transpose(ψRe)+ψIm.*transpose(ψIm) 84 | ex_x = real(sum(diag((Arrayσ_p+Arrayσ_m)*Reρ))) 85 | 86 | HIm = -Arrayσ_pm/2 +ex_x*Arrayσ_m 87 | du[1:MyParameters.dim] = dψRe = HIm*ψRe+HRe*ψIm; #size dim) 88 | du[MyParameters.dim+1:end] = dψIm = HIm*ψIm-HRe*ψRe; 89 | end 90 | 91 | ################### 92 | # DIFFUSION TERM FOR SDE 93 | function qb_dynamics_dW!(du,u, α, t) #last action IS NOT STORED IN u 94 | ψRe = u[1:MyParameters.dim] #(dim) 95 | ψIm = u[MyParameters.dim+1:end] 96 | 97 | HRe = Arrayσ_m 98 | 99 | du[1:MyParameters.dim,:] = dψRe = HRe*ψRe; #size (dim) 100 | du[MyParameters.dim+1:end,:] = dψIm = HRe*ψIm; 101 | end 102 | 103 | ################################################ 104 | #model 105 | @info("Constructing the model...") #input: current state 106 | state_1 = Dense(2*MyParameters.dim, 256,relu ,initb = Flux.glorot_uniform) 107 | state_2 = Dense(256, 128,relu, initb = Flux.glorot_uniform) 108 | state_3 = Dense(128, 64,relu, initb = Flux.glorot_uniform) 109 | state_4 = Dense(64, 1,softsign,initb = Flux.glorot_uniform) 110 | 111 | model = Chain(state_1, state_2, state_3,state_4) 112 | p1, re = Flux.destructure(model) 113 | 114 | ############################################### 115 | # initial state anywhere on the Bloch sphere 116 | u0 = Array{Float32,2}(undef, 2*MyParameters.dim,n_par) 117 | fill!(u0,0.0f0) 118 | u0[2,:] .= 1.0f0 #down state 119 | 120 | function prepare_initial!(u0) #random position on the Bloch sphere 121 | fill!(u0,0.0f0) 122 | theta = acos.(2*rand(n_par).-[1]) #uniform sampling for cos(theta) between -1 and 1 123 | phi = rand(n_par)*2*pi 124 | #real parts 125 | u0[1,:] += cos.(theta/2) 126 | u0[2,:] += sin.(theta/2).*cos.(phi) 127 | #imag parts 128 | #u0[3,:].+=0 129 | u0[4,:] += sin.(theta/2).*sin.(phi) 130 | #for sure normalize initial state 131 | norm_factor = sqrt.(sum(u0[1:2*MyParameters.dim,:].^2,dims=1)) 132 | u0[1:2*MyParameters.dim,:] = u0[1:2*MyParameters.dim,:]./norm_factor 133 | return u0 134 | end 135 | 136 | ########################## 137 | # target state 138 | # ψtar = |up> 139 | ut_complex = Array{Float32,1}(undef, MyParameters.dim) 140 | fill!(ut_complex,0.0f0) 141 | ut_complex[1,:] .= 1.0f0 142 | Re_ut = real(Array{Float32}(ut_complex)) 143 | Im_ut = imag(Array{Float32}(ut_complex)) 144 | #To visualize 145 | Fock_target = SVector{MyParameters.dim}(Re_ut.^2+Im_ut.^2) 146 | 147 | ############################################ 148 | #Mutate vector outside gradients so Zygote will not complain! 149 | # Necessary for collectiong results during the training 150 | mut(A,index,x) = (A[index] = x) 151 | mut_row(A,index,x) = (A[index,:]=x) 152 | mut_vec(A,x) = (A.=x) 153 | #tell Zygote not to take gradients of these 154 | Zygote.@nograd mut 155 | Zygote.@nograd mut_row 156 | Zygote.@nograd mut_vec 157 | 158 | ################################## 159 | # time range for the solver 160 | t_interval = round(MyParameters.n_substeps*MyParameters.dt,digits=5) 161 | tspan = (0.0f0,t_interval) 162 | 163 | ######################################### 164 | #Static Arrays to collect results 165 | mean_fid_store = zeros(MVector{MyParameters.n_steps+1,Float32}) 166 | std_fid_store = zeros(MVector{MyParameters.n_steps+1,Float32}) 167 | single_traj_fid_store = zeros(MMatrix{MyParameters.n_steps+1,n_par,Float32}) 168 | mean_action_store = zeros(MVector{MyParameters.n_steps,Float32}) 169 | std_action_store = zeros(MVector{MyParameters.n_steps,Float32}) 170 | single_traj_action_store = zeros(MMatrix{MyParameters.n_steps,n_par,Float32}) 171 | Fock_end_example = zeros(MVector{MyParameters.dim,Float32}) 172 | 173 | ########################### 174 | # compute loss 175 | ########################### 176 | 177 | #normalize the state using callback function 178 | condition(u,t,integrator) = true 179 | function affect!(integrator) 180 | integrator.u = integrator.u/norm(integrator.u) 181 | end 182 | cb = DiscreteCallback(condition,affect!,save_positions = (false,false)) 183 | 184 | #creating the noise process 185 | CreateGrid(W1) = (NoiseGrid(Array{Float32}((0.0:MyParameters.dt:(t_interval+MyParameters.dt))),W1)) 186 | Zygote.@nograd CreateGrid #avoid taking grads of this function 187 | 188 | # set scalar random process 189 | W = sqrt(MyParameters.dt)*randn(Float32,MyParameters.n_substeps+1) #for 1 trajectory 190 | W1 = cumsum([zero(MyParameters.dt); W[1:end-1]], dims=1) 191 | NG = CreateGrid(W1) 192 | # define SDE problem 193 | prepare_initial!(u0) 194 | α = zeros(Float32,1,n_par) 195 | prob = SDEProblem{true}(qb_dynamics_dt!,qb_dynamics_dW!, u0[:,1], tspan,α[1,1], noise=NG ) 196 | 197 | 198 | function loss_along_trajectory(p1) 199 | #initial values 200 | loss = 0.0f0 201 | u = u0 202 | α = zeros(Float32,1,n_par) #start with zero actions 203 | 204 | function prob_func(prob, i, repeat) 205 | #prepare tge vector of Wiener Process 206 | W = sqrt(MyParameters.dt)*randn(Float32,MyParameters.n_substeps+1) #for 1 trajectory 207 | W1 = cumsum([zero(MyParameters.dt); W[1:end-1]], dims=1) 208 | NG = CreateGrid(W1) # EM and RKMil 209 | remake(prob,p = α[i:i],u0 = u[:,i],noise = NG) 210 | end 211 | 212 | #initial state 213 | Re_uj = @view u[1:MyParameters.dim,:] 214 | Im_uj = @view u[MyParameters.dim+1:end,:] 215 | fid = zeros(Float32,1,n_par) 216 | fid += abs2.(sum(Re_ut.*Re_uj,dims=1)) 217 | # fid += abs2.(sum(Im_ut.*Im_uj,dims=1)) #commented because Im_ut=0, for general target uncomment 218 | # fid += abs2.(sum(Im_ut.*Re_uj,dims=1)) 219 | fid += abs2.(sum(Re_ut.*Im_uj,dims=1)) 220 | # fid += 2*(sum(Re_ut.*Re_uj,dims=1)).*sum(Im_ut.*Im_uj,dims=1) 221 | # fid -= 2*(sum(Re_ut.*Im_uj,dims=1)).*sum(Im_ut.*Re_uj,dims=1) 222 | mut_row(single_traj_fid_store,1,fid) 223 | mut(mean_fid_store,1,mean(fid)) 224 | mut(std_fid_store,1,std(fid)) 225 | 226 | for j in 1:MyParameters.n_steps 227 | #update action from NN 228 | α = re(p1)(u).*MyParameters.force_mag #dim (1,n_par) 229 | #define ensemble problem 230 | ensembleprob = EnsembleProblem(prob,prob_func = prob_func) 231 | 232 | u = Array(solve(ensembleprob, RKMil(), 233 | ensemblealg = EnsembleThreads(), # EnsembleCPUArray(), EnsembleDistributed() 234 | sensealg = ForwardDiffSensitivity(), 235 | dt = MyParameters.dt,# save_everystep=false, 236 | saveat = [t_interval],callback = cb, adaptive = false, trajectories = n_par, batch_size = n_par, 237 | save_noise = false, 238 | timeseries_errors = false,weak_timeseries_errors = false,weak_dense_errors = false 239 | ))[:,1,:] 240 | 241 | Re_uj = @view u[1:MyParameters.dim,:] 242 | Im_uj = @view u[MyParameters.dim+1:end,:] 243 | fid = zeros(Float32,1,n_par) 244 | fid += abs2.(sum(Re_ut.*Re_uj,dims=1)) #average over n_par 245 | # fid += abs2.(sum(Im_ut.*Im_uj,dims=1)) 246 | # fid +=a bs2.(sum(Im_ut.*Re_uj,dims=1)) 247 | fid += abs2.(sum(Re_ut.*Im_uj,dims=1)) 248 | # fid += 2*(sum(Re_ut.*Re_uj,dims=1)).*sum(Im_ut.*Im_uj,dims=1) 249 | # fid -= 2*(sum(Re_ut.*Im_uj,dims=1)).*sum(Im_ut.*Re_uj,dims=1) 250 | loss += C1*MyParameters.gamma^j*(1-mean(fid)) 251 | 252 | #store data 253 | mut(mean_fid_store,j+1,mean(fid)) 254 | mut(std_fid_store,j+1,std(fid)) 255 | mut_row(single_traj_fid_store,j+1,fid) 256 | mut(mean_action_store,j,mean(α)) 257 | mut(std_action_store,j,std(α)) 258 | mut_row(single_traj_action_store,j,α) 259 | #punish large actions--note, that for j we are pointing to the j-1st action! 260 | loss += C2*MyParameters.gamma^(j)*(mean(abs2.(α))) #mimic...sum max valus 261 | #emphasize the main interval 262 | if j>(MyParameters.n_steps-50) 263 | loss += C3*MyParameters.gamma^j*(1-mean(fid)) 264 | mut_vec(Fock_end_example,Re_uj[:,1].^2+Im_uj[:,1].^2); 265 | end 266 | end 267 | return loss 268 | end 269 | 270 | ################################### 271 | # training loop parameters 272 | epochs = 3000 273 | println("total epochs: ",epochs) 274 | training = zeros(epochs) 275 | maxgrads = zeros(epochs) 276 | some_nans = zeros(epochs) 277 | 278 | data = Iterators.repeated((), epochs) 279 | opt = ADAM(0.0001) 280 | 281 | ### 282 | #grad clipping 283 | function clip(x) 284 | min.(max.(x,-40), 40) 285 | end 286 | 287 | using DelimitedFiles #save txt files 288 | ## Save model 289 | using BSON: @save 290 | function qb_train!(loss, p1, data, opt,u0) 291 | ps = Flux.params(p1) 292 | iter = 0 293 | for d in data 294 | iter += 1 295 | prepare_initial!(u0) #different initial states! 296 | #ini_fid = abs2.(sum(Re_ut.*u0[1:2],dims=1))+abs2.(sum(Re_ut.*u0[3:4],dims=1)) #initial mean fidelity 297 | @show iter 298 | # @show mean(ini_fid) 299 | @time gs = gradient(ps) do 300 | training_loss = loss(Zygote.hook(clip,p1)) 301 | mut(training,iter,training_loss) 302 | println("loss: ",training_loss) 303 | return training_loss 304 | end 305 | maxgrads[iter] = maximum(abs.(gs[p1])) 306 | some_nans[iter] = sum(isnan.(gs[p1])) 307 | println("is nan: ",sum(isnan.(gs[p1]))) 308 | println("max grad: ",maximum(abs.(gs[p1]))) 309 | if iter%1 == 0 310 | fig1 = plot( [1:MyParameters.n_steps+1,1:MyParameters.n_steps+1], 311 | [mean_fid_store mean_fid_store], 312 | fillrange=[mean_fid_store.-std_fid_store mean_fid_store.+std_fid_store], fillalpha=0.3, c=:blue, 313 | xlabel = "steps", ylim=(0,1),xlim=(0,MyParameters.n_steps), lw = 1.5, title="Fidelity" ,legend=false) 314 | fig1=plot!(1:MyParameters.n_steps+1,single_traj_fid_store[:,1], c=:black ) 315 | fig2 = plot( [1:MyParameters.n_steps,1:MyParameters.n_steps], 316 | [mean_action_store mean_action_store], 317 | fillrange = [mean_action_store.-std_action_store mean_action_store.+std_action_store], fillalpha=0.3, c=:orange, 318 | xlabel = "steps", ylim=(-MyParameters.force_mag,MyParameters.force_mag), xlim=(0,MyParameters.n_steps), lw = 1.5, title="Action" ,legend=false) 319 | fig2=plot!(1:MyParameters.n_steps,single_traj_action_store[:,1], c=:black ) 320 | # uncomment to display every epoch performance 321 | # display(plot(fig1, fig2, layout = (1, 2), legend = false,size=(800,360))); 322 | if iter == 1 || iter%100 == 0 323 | png(string("Figures/Figure_",iter)) #for saving figs 324 | epoch_output = hcat(1:MyParameters.n_steps,mean_fid_store[1:end-1],single_traj_fid_store[1:end-1,1],mean_action_store,single_traj_action_store[:,1]) #save results for epoch 325 | writedlm(string("Data/Epoch",iter,".txt"), epoch_output) 326 | end 327 | println("iter: ", iter) 328 | end 329 | if iter%1000 == 0 330 | @save string("Data/model_state-in_parallel_",iter,".bson") p1 re opt 331 | end 332 | println("++++++++++++++++++++++") 333 | Flux.Optimise.update!(opt, ps, gs) 334 | end 335 | @save string("Data/model_state-in_parallel_END.bson") p1 re opt 336 | end 337 | 338 | #training 339 | Random.seed!(10) 340 | qb_train!(loss_along_trajectory, p1, data, opt,u0) 341 | 342 | #plotting of the loss function 343 | plot(training, xlabel = "epochs", ylabel="loss", lw = 1.5, title = "Training") 344 | savefig("Figures/Loss.pdf") 345 | #save training a txt 346 | writedlm("Data/Loss.txt", training) 347 | -------------------------------------------------------------------------------- /piecewise-constant-control/Data/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /piecewise-constant-control/Figures/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /piecewise-constant-control/Project.toml: -------------------------------------------------------------------------------- 1 | [deps] 2 | Atom = "c52e3926-4ff0-5f6e-af25-54175e0327b1" 3 | BSON = "fbb218c0-5317-5bc6-957e-2ee96dd4b1f0" 4 | BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" 5 | DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" 6 | DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" 7 | DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def" 8 | DiffEqFlux = "aae7a2af-3d4f-5e19-a356-7da93b79d9d0" 9 | DiffEqGPU = "071ae1c0-96b5-11e9-1965-c90190d839ea" 10 | DiffEqNoiseProcess = "77a26b50-5914-5dd7-bc55-306e6241c503" 11 | DiffEqSensitivity = "41bf760c-e81c-5289-8e54-58b1f1f8abe2" 12 | DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" 13 | Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" 14 | GaussianDistributions = "43dcc890-d446-5863-8d1a-14597580bb8d" 15 | JLD = "4138dd39-2aa7-5051-a626-17a0bb65d9c8" 16 | Juno = "e5e0dc1b-0480-54bc-9374-aad01c23163d" 17 | LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" 18 | LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" 19 | Optim = "429524aa-4258-5aef-a3af-852621145aeb" 20 | OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" 21 | Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" 22 | QuantumOptics = "6e0679c1-51ea-5a7c-ac74-d61b76210b0c" 23 | Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" 24 | StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" 25 | StatsPlots = "f3b207a7-027a-5e70-b257-86293d7955fd" 26 | StochasticDiffEq = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" 27 | Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" 28 | -------------------------------------------------------------------------------- /piecewise-constant-control/parameters_qb.jl: -------------------------------------------------------------------------------- 1 | # In this module, all parameters are defined: 2 | 3 | module parameters 4 | export parameters_qb 5 | 6 | parameters_para=Dict( 7 | "N" =>2, 8 | "w" => 20.0f0, 9 | "force_mag" => 5.0f0, 10 | "max_episode_steps" => 150, 11 | "dt" => 0.001f0, 12 | "n_substeps" => 20, 13 | "gamma" => 1.0f0) 14 | end 15 | --------------------------------------------------------------------------------