├── .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 |
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 |
--------------------------------------------------------------------------------