### A Pluto.jl notebook ### # v0.19.14 using Markdown using InteractiveUtils # This Pluto notebook uses @bind for interactivity. When running this notebook outside of Pluto, the following 'mock version' of @bind gives bound variables a default value (instead of an error). macro bind(def, element) quote local iv = try Base.loaded_modules[Base.PkgId(Base.UUID("6e696c72-6542-2067-7265-42206c756150"), "AbstractPlutoDingetjes")].Bonds.initial_value catch; b -> missing; end local el = $(esc(element)) global $(esc(def)) = Core.applicable(Base.get, el) ? Base.get(el) : iv(el) el end end # ╔═╡ d3c9d60e-19d1-11eb-064d-61814bb84582 using Plots, PlutoUI, BenchmarkTools, FFTW, Test; gr(size = (640, 360)); PlutoUI.TableOfContents(depth=4) # ╔═╡ 147ff08c-19cf-11eb-341d-ed1c6568c0c7 md""" # Numerical Methods of Medical Imaging - Exercise 2 [Institute for Biomedical Imaging](https://www.tuhh.de/ibi/home.html), Hamburg University of Technology * 👨‍🏫 Prof. Dr. Tobias Knopp * 👨‍🏫 Dr. Martin Möddel """ # ╔═╡ 58b50b7a-19cf-11eb-146e-a5405521ff5d md""" # Discrete and fast Fourier transform * 📅 Due date: 22.11.2022, 12 a.m. * You can earn 1 point for each task (6 points in total). ![](https://imgs.xkcd.com/comics/fourier.jpg) "Fourier" taken from [xkcd](https://xkcd.com/26/) is licensed under [CC](https://en.wikipedia.org/wiki/en:Creative_Commons) [BY-NC 2.5](https://creativecommons.org/licenses/by-nc/2.5/) license. """ # ╔═╡ 4bec237c-19d1-11eb-27bd-13b1f2086f69 md""" ## Fourier Expansion It is possible to expand piecewise continuous functions $f:\mathbb{R}\rightarrow\mathbb{R}$ into a so-called Fourier series $f(x) = \sum_{k=-\infty}^{\infty} \hat{f}_k e^{-2\pi i k x}.$ For 1-perioic functions, the Fourier coefficients $\hat f_k$ are given by the scalar product of $f$ with elements from the Fourier basis $\{e^{-2\pi i k x}\}_k$, i.e. $\hat f_k = \int_{0}^{1} f(x)e^{-2\pi i k x}dx$ ### 1. The Discrete Fourier Transform Whenever these coefficients can not be obtained analytically, discrete Fourier transformation provides an approximation up to a constant, which depends on the number of sampling points $N$ $\hat f_k \propto \sum_{n=0}^{N-1} f_n e^{-\frac{2 \pi i k n}{N}},$ with $f_n = f(\frac n N)$ and $n=0,1,\dots,N-1$. """ # ╔═╡ 800f28ce-19f3-11eb-0765-fd1c43b4bc19 md""" Let $r(x) = \begin{cases} 1 &\text{if } \vert x \vert < \frac 1 4\\ \frac 1 2 & \text{if } \vert x \vert = \frac 1 4\\ 0 & \text{else} \end{cases}$ be the 1-periodic rectangular function $r:\mathbb R \rightarrow \left[ 0,1 \right]$ given on the domain $x \in [-\frac 1 2,\frac 1 2 )$. """ # ╔═╡ 91726846-19d1-11eb-36e3-b1dc8f478323 function r(x) y = rem(abs(x)+0.25,1.0) if y==0.5 || y==0.0 return 0.5 elseif y<0.5 return 1.0 else return 0.0 end end # ╔═╡ e8936f28-19d1-11eb-32aa-efda10cd8210 plot(range(-2,stop=2,length=500),r, xlabel = "x", ylabel = "y", title = "rectangular function", label = "r", lw = 2 ) # ╔═╡ 4e339c26-19f6-11eb-2296-e1e0f2fda2fe md""" #### 🎓 Task Implement a function `sample(f::Function, N::Integer=128)` to discretize $f$ into a vector $f_n = f(\frac n N)$ and $n=0,1,\dots,N-1$. Implement a function `dft(fns::Vector)` returning the discrete Fourier coefficients $\hat{f}_k$, $k=0,1,\dots,N-1$ as a vector. """ # ╔═╡ c3d9ef84-19fb-11eb-24ad-6f6671b3dec0 @bind N Slider(1:128, default=32) # ╔═╡ d14ff6d4-19f3-11eb-17e6-773096878044 begin function sample(f::Function, N::Integer=128) # this does not seem to be correct return ones(Float64,N) end function dft(fns::Vector) # this does not seem to be correct return ones(ComplexF64,length(fns)) end end # ╔═╡ 018e0d2a-1b63-11eb-0841-6d88fc93a49f fns = sample(r,N) # ╔═╡ 6215a130-1b63-11eb-3b4b-99fd03bf750a scatter((0:N-1)/N,abs.(fns), xlabel = "k", ylabel = "abs.(fₖ)", title = "rectangular function", label = "sampled function r (N = $N)", lw = 2) # ╔═╡ 730e092a-19f4-11eb-0ac8-e946f31b3363 fks = dft(fns) # ╔═╡ dbacee5a-19f5-11eb-1c1b-0d1ae9b92f0e scatter(0:N-1,abs.(fks), xlabel = "k", ylabel = "abs.(fₖ)", title = "rectangular function", label = "discrete Fourier coefficients (N = $N)", lw = 2, yscale = :log10) # ╔═╡ f918a2f0-1a85-11eb-2807-51f70d8984d7 md""" ### 2. The Inverse Discrete Fourier Transform The inverse discrete Fourier Transform for $n=0,\dots,N-1$ is given by $f_n = \frac{1}{N} \sum_{k=0}^{N-1} \hat f_k e^{\frac{2\pi i k n}{N}}.$ #### 🎓 Task Implement the inverse of the discrete Fourier transform `idft(fks::Vector)` and test if `idft(dft(fns)) ≈ fns`. """ # ╔═╡ db0c98aa-1a8c-11eb-01b1-5dbfff26d33b function idft(fks::AbstractVector) # this does not seem to be correct return ones(ComplexF64,length(fks)) end # ╔═╡ fb8ab86e-1a8c-11eb-0779-d9215f2c3f14 fnsi = idft(fks) # ╔═╡ 975c3e5c-1b64-11eb-3136-4b9f0c1922d5 @test fns ≈ fnsi # ╔═╡ 3103d282-1a8d-11eb-2b36-e508a89b3171 scatter((0:N-1)/N,abs.(fnsi), xlabel = "k", ylabel = "abs.(fₖ)", title = "rectangular function", label = "idft(dft(fns)) (N = $N)", lw = 2) # ╔═╡ 32a544fe-19fc-11eb-2309-8509537cdb4d md""" ### 3. The Complex Trigonometric Polynomial of Degree N The complex trigonometric polynomial of degree $N$ given by $p_N(x) = \begin{cases} \frac{1}{N} \left[ \hat{f}_0 + \hat{f}_1 e^{i 2\pi t} + \cdots + \hat{f}_{N/2-1} e^{i(N/2-1) 2\pi t} + \hat{f}_{N/2} \cos(N\pi t) + \hat{f}_{N/2+1} e^{i(-N/2+1) 2\pi t} + \cdots + \hat{f}_{N-1} e^{-i 2\pi t} \right], & N\text{ even} \\ \frac{1}{N} \left[ \hat{f}_0 + \hat{f}_1 e^{i 2\pi t} + \cdots + \hat{f}_{\lfloor N/2 \rfloor} e^{i \lfloor N/2 \rfloor 2\pi t} + \hat{f}_{\lfloor N/2 \rfloor+1} e^{-i \lfloor N/2 \rfloor 2\pi t} + \cdots + \hat{f}_{N-1} e^{-i 2\pi t} \right], & N\text{ odd} \end{cases}$ satisfies the interpolation property $p(n/N) = f_n$ for $n=0,\ldots,N-1$ and provides an approximation to the function from which the original DFT coefficients stem from. #### 🎓 Task Implement the `complexTrigonometricPolynomial(fks::AbstractVector,x)` and see if it approximates the original function using the Fourier coefficients of the rectangle function. """ # ╔═╡ ca622d7a-1a8d-11eb-3960-7b2cef5b540d function complexTrigonometricPolynomial(fks::AbstractVector,x) # this does not seem to be correct return one(ComplexF64) end # ╔═╡ e55a43a2-1a8f-11eb-32cc-e73ad807a202 pr(x) = real(complexTrigonometricPolynomial(fks,x)) # ╔═╡ 1d074a4a-1a90-11eb-2b14-ad6654f2a9af begin plot(range(-2,stop=2,length=500),r, xlabel = "x", ylabel = "y", title = "rectangular function", label = "r", lw = 2 ) plot!(range(-2,stop=2,length=500),pr, xlabel = "x", ylabel = "y", label = "p_N (N = $N)", lw = 2 ) end # ╔═╡ 867639d4-1ac3-11eb-0236-d50896ecbd11 md""" ### 4. Fourier Filter A Fourier filter is a type of signal filter which is based on the manipulation of specific frequency components of a signal, where all Fourier coefficients $\hat f_k$ are multiplied by a frequency specific factor $w_k$ for all $k=0,1,\dots,N-1$ $\hat f_k \mapsto w_k \hat f_k.$ Often so-called window functions are used to define the coefficients. One well-known window function is the the Hann window $w_k={\frac {1}{2}}\left[1+\cos \left({\frac {2\pi k}{N-1}}\right)\right].$ #### 🎓 Task The overshot of the complex trigonometric polynomial at the edges of the recangle function is known as Gibbs phenomena. Check if filtering can help to reduce this phenomena. Implement the `hannFilter(N)` and filter the Fourier coefficients of the rectangle function. Use these and the original coefficients to compare their respective complex trigonometric polynomials. """ # ╔═╡ e37cdb34-1ac4-11eb-323e-f1d316774b5d function hannFilter(N) # this does not seem to be correct return ones(ComplexF64,N) end # ╔═╡ ea15a9c0-1ac5-11eb-31df-d16368be8d92 fksFiltered = fks.*hannFilter(N) # ╔═╡ 3c74354a-1b7c-11eb-0936-671d831ae74d begin scatter(0:N-1,map(x->iszero(x) ? missing : x, abs.(fks)), xlabel = "k", ylabel = "abs.(fₖ)", title = "rectangular function", label = "discrete Fourier coefficients (N = $N)", lw = 2, yscale = :log10) scatter!(0:N-1,map(x->iszero(x) ? missing : x, abs.(fksFiltered)), xlabel = "k", ylabel = "abs.(fₖ)", label = "filtered discrete Fourier coefficients", lw = 2, yscale = :log10) end # ╔═╡ 00137b6c-1ac6-11eb-1874-c54f9797b035 pFiltered(x) = real(complexTrigonometricPolynomial(fksFiltered,x)) # ╔═╡ 1e728862-1ac6-11eb-204c-8feaf3874724 begin plot(range(-2,stop=2,length=500),r, xlabel = "x", ylabel = "y", title = "rectangular function", label = "r", lw = 2 ) plot!(range(-2,stop=2,length=500),pr, xlabel = "x", ylabel = "y", label = "p_N (N = $N)", lw = 2 ) plot!(range(-2,stop=2,length=500),pFiltered, xlabel = "x", ylabel = "y", label = "p_N filtered", lw = 2 ) end # ╔═╡ 0e635470-1ab5-11eb-3ead-c96330845afb md""" ### 5. Fast Fourier Transformation For a fast and efficient calculation of the Fourier coefficients the function `fft` of the `FFTW` package can be used. The following Benchmark shows the speedup. """ # ╔═╡ dc756532-1ab4-11eb-116d-0502731ad456 @test fft(fns) ≈ dft(fns) # ╔═╡ ed60fce0-1ab3-11eb-09e4-7dfdcd494259 b_dft = @benchmark dft($fns) # ╔═╡ 3e9ff912-1ab4-11eb-0977-1d5a23618723 b_fft = @benchmark fft($fns) # ╔═╡ f3da4924-1b7a-11eb-277d-dbf45b22f5af md""" #### 🎓 Task Write a function `dftfaster(fns::Vector)` which speeds up your original implementation if this is possible. Try to avoid computations of `exp(im*ϕ)` and unneccessary allocations of memory. Further tips on performance can be found in the [julia documentation](https://docs.julialang.org/en/v1/manual/performance-tips/). """ # ╔═╡ 6c059a14-1ab5-11eb-2ca2-7d8bf4299714 function dftfaster(fns::Vector) # this does not seem to be correct return ones(ComplexF64,length(fks)) end # ╔═╡ e48966e0-1ab8-11eb-19ed-c7e8752b9838 @test dftfaster(fns) ≈ fks # ╔═╡ ef01a9a4-1ab9-11eb-1796-cfa7726948d0 b_dft2 = @benchmark dftfaster($fns) # ╔═╡ fcff99e0-1abf-11eb-2dbf-850b32db7108 md""" ### 6. Spectral Leakage Discrete Fourier transformation of a periodic signal assumes that a whole period of the signal is taken. But what happens if this assumption is violated? #### 🎓 Task Take the functions $\sin (2\pi x)$ and $\sin (2.1\pi x)$ and calculate their Fourier coefficients assuming that both functions are periodic with period length $1$. Plot and compare both spectra and the respective complex trigonometric polynomial of degree $N$. """ # ╔═╡ 1930182c-1ac0-11eb-1bda-3ff057b25970 fkssin1 = dft(sample(x->sin(2*π*x),N)) # ╔═╡ 8cc698e2-1ac0-11eb-0844-837ad17db528 fkssin2 = dft(sample(x->sin(2.1*π*x),N)) # ╔═╡ 9d1231ca-1ac0-11eb-04c5-4571e9851823 begin scatter(0:N-1,abs.(fkssin2), xlabel = "k", ylabel = "abs.(fₖ)", title = "Fourier coefficients", label = "DFT(sin(2.1πx))", lw = 2, yscale = :log10) scatter!(0:N-1,abs.(fkssin1), xlabel = "k", ylabel = "abs.(fₖ)", title = "Fourier coefficients", label = "DFT(sin(2πx))", lw = 2, yscale = :log10) end # ╔═╡ 0ad8cbd0-1ac1-11eb-14c3-7b20fd63c023 psin1(x) = real(complexTrigonometricPolynomial(fkssin1,x)) # ╔═╡ 31fb3e26-1ac1-11eb-3529-21c456cba268 psin2(x) = real(complexTrigonometricPolynomial(fkssin2,x)) # ╔═╡ 44fced44-1ac1-11eb-163e-c9fd874bffd9 begin plot(range(-2,stop=2,length=500),psin1, xlabel = "x", ylabel = "y", title = "complex trigonometric polynomial", label = "p_sin(2πx)", lw = 2 ) plot!(range(-2,stop=2,length=500),psin2, xlabel = "x", ylabel = "y", title = "complex trigonometric polynomial", label = "p_sin(2.1πx)", lw = 2 ) end # ╔═╡ d03112a7-0073-4290-90c3-b2e1f4089d9f begin hint(text) = Markdown.MD(Markdown.Admonition("hint", "Hint", [text])) not_defined(variable_name) = Markdown.MD(Markdown.Admonition("danger", "Oh, oh! 😱", [md"Variable **$(Markdown.Code(string(variable_name)))** is not defined. You should probably do something about this."])) failed_test(text=md"Some tests failed. Keep working on it!") = Markdown.MD(Markdown.Admonition("danger", "Oh, oh! 😱", [text])) still_missing(text=md"Replace `missing` with your solution.") = Markdown.MD(Markdown.Admonition("warning", "Let's go!", [text])) keep_working(text=md"The answer is not quite right.") = Markdown.MD(Markdown.Admonition("danger", "Keep working on it!", [text])); yays = [md"Great! 🥳", md"Correct! 👏", md"Tada! 🎉"] correct(text=md"$(rand(yays)) Let's move on to the next task.") = Markdown.MD(Markdown.Admonition("correct", "Got it!", [text])) end; # ╔═╡ 22c63176-05d1-4430-a92d-308a02b5e502 # invisible test let fn32 = sample(r,32) fks32 = dft(fn32) if fn32[rand(union(1:8,26:32))]!=1.0 || fn32[9]!=0.5 || fn32[rand(10:24)]!=0.0 keep_working(md"Your version of `sample` is not quite right.") elseif !isapprox(fks32[1], 16.0+0.0im, atol=1e-6) || !isapprox(fks32[7], -6.05072e-15+7.77156e-16im, atol=1e-6) || !isapprox(fks32[16], -0.0984914-1.10467e-14im, atol=1e-6) || !isapprox(fks32[23], 9.60343e-15-9.65894e-15im, atol=1e-6) keep_working(md"Your version of `dft` is not quite right.") else correct() end end # ╔═╡ e7416b55-7513-4601-8fea-85688663a0ac # invisible test let x = ones(ComplexF64,32)/32 y = zeros(ComplexF64,32); y[1]=1 if !isapprox(idft(y), x, atol=1e-6) keep_working(md"Your version of `idft` is not quite right.") else correct() end end # ╔═╡ 01f1afc4-a70f-40f2-a55e-eb64f6946539 # invisible test let fn32 = sample(r,32) fks32 = dft(fn32) pr32(x) = real(complexTrigonometricPolynomial(fks32,x)) if !isapprox(pr32(0.0),1.0,atol=1e-6) || !isapprox(pr32(0.25),0.5,atol=1e-6) || !isapprox(pr32(0.3),-0.0253537,atol=1e-6) || !isapprox(pr32(0.77),0.886791,atol=1e-6) keep_working(md"Your version of `complexTrigonometricPolynomial` is not quite right.") else correct() end end # ╔═╡ 0abdaefe-2c16-4315-a8c9-37287ce965b5 # invisible test let hf32 = hannFilter(32) if !isapprox(hf32[1],1.0,atol=1e-6) || !isapprox(hf32[7],0.673653,atol=1e-6) || !isapprox(hf32[16],0.00256534,atol=1e-6) || !isapprox(hf32[23],0.374674,atol=1e-6) keep_working(md"Your version of `hannFilter` is not quite right.") else correct() end end # ╔═╡ b2e5f6d2-3095-4a2d-bdb2-6cbd53ade757 # invisible test let if !isapprox(dftfaster(fns), fks, atol=1e-6) keep_working(md"`dftfaster` and `dft` do not yield the same results.") elseif median(b_dft2).time >= median(b_dft).time keep_working(md"`dftfaster` does not appear to be faster then `dft`.") else correct() end end # ╔═╡ 00000000-0000-0000-0000-000000000001 PLUTO_PROJECT_TOML_CONTENTS = """ [deps] BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [compat] BenchmarkTools = "~1.3.1" FFTW = "~1.5.0" Plots = "~1.35.2" PlutoUI = "~0.7.43" """ # ╔═╡ 00000000-0000-0000-0000-000000000002 PLUTO_MANIFEST_TOML_CONTENTS = """ # This file is machine-generated - editing it directly is not advised [[AbstractFFTs]] deps = ["ChainRulesCore", "LinearAlgebra"] git-tree-sha1 = "69f7020bd72f069c219b5e8c236c1fa90d2cb409" uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" version = "1.2.1" [[AbstractPlutoDingetjes]] deps = ["Pkg"] git-tree-sha1 = "8eaf9f1b4921132a4cff3f36a1d9ba923b14a481" uuid = "6e696c72-6542-2067-7265-42206c756150" version = "1.1.4" [[ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" version = "1.1.1" [[Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" [[Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" [[BenchmarkTools]] deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] git-tree-sha1 = "4c10eee4af024676200bc7752e536f858c6b8f93" uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" version = "1.3.1" [[BitFlags]] git-tree-sha1 = "84259bb6172806304b9101094a7cc4bc6f56dbc6" uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" version = "0.1.5" [[Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" version = "1.0.8+0" [[Cairo_jll]] 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"] git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" version = "1.16.1+1" [[ChainRulesCore]] deps = ["Compat", "LinearAlgebra", "SparseArrays"] git-tree-sha1 = "e7ff6cadf743c098e08fca25c91103ee4303c9bb" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" version = "1.15.6" [[ChangesOfVariables]] deps = ["ChainRulesCore", "LinearAlgebra", "Test"] git-tree-sha1 = "38f7a08f19d8810338d4f5085211c7dfa5d5bdd8" uuid = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" version = "0.1.4" [[CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] git-tree-sha1 = "ded953804d019afa9a3f98981d99b33e3db7b6da" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" version = "0.7.0" [[ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Random"] git-tree-sha1 = "1fd869cc3875b57347f7027521f561cf46d1fcd8" uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" version = "3.19.0" [[ColorTypes]] deps = ["FixedPointNumbers", "Random"] git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" version = "0.11.4" [[ColorVectorSpace]] deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "TensorCore"] git-tree-sha1 = "d08c20eef1f2cbc6e60fd3612ac4340b89fea322" uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" version = "0.9.9" [[Colors]] deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] git-tree-sha1 = "417b0ed7b8b838aa6ca0a87aadf1bb9eb111ce40" uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" version = "0.12.8" [[Compat]] deps = ["Dates", "LinearAlgebra", "UUIDs"] git-tree-sha1 = "3ca828fe1b75fa84b021a7860bd039eaea84d2f2" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" version = "4.3.0" [[CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" version = "0.5.2+0" [[Contour]] git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" version = "0.6.2" [[DataAPI]] git-tree-sha1 = "46d2680e618f8abd007bce0c3026cb0c4a8f2032" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" version = "1.12.0" [[DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] git-tree-sha1 = "d1fff3a548102f48987a52a2e0d114fa97d730f0" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" version = "0.18.13" [[Dates]] deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" [[DelimitedFiles]] deps = ["Mmap"] uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" [[DocStringExtensions]] deps = ["LibGit2"] git-tree-sha1 = "5158c2b41018c5f7eb1470d558127ac274eca0c9" uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" version = "0.9.1" [[Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" version = "1.6.0" [[Expat_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "bad72f730e9e91c08d9427d5e8db95478a3c323d" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" version = "2.4.8+0" [[FFMPEG]] deps = ["FFMPEG_jll"] git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" version = "0.4.1" [[FFMPEG_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Pkg", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] git-tree-sha1 = "74faea50c1d007c85837327f6775bea60b5492dd" uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" version = "4.4.2+2" [[FFTW]] deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] git-tree-sha1 = "90630efff0894f8142308e334473eba54c433549" uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" version = "1.5.0" [[FFTW_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" version = "3.3.10+0" [[FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[FixedPointNumbers]] deps = ["Statistics"] git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" version = "0.8.4" [[Fontconfig_jll]] deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" version = "2.13.93+0" [[Formatting]] deps = ["Printf"] git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" version = "0.4.2" [[FreeType2_jll]] deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] git-tree-sha1 = "87eb71354d8ec1a96d4a7636bd57a7347dde3ef9" uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" version = "2.10.4+0" [[FriBidi_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" uuid = "559328eb-81f9-559d-9380-de523a88c83c" version = "1.0.10+0" [[GLFW_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pkg", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] git-tree-sha1 = "d972031d28c8c8d9d7b41a536ad7bb0c2579caca" uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" version = "3.3.8+0" [[GR]] deps = ["Base64", "DelimitedFiles", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "Test", "UUIDs"] git-tree-sha1 = "cf7bf90e483228f6c988e474b420064e5351b892" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" version = "0.69.4" [[GR_jll]] deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Pkg", "Qt5Base_jll", "Zlib_jll", "libpng_jll"] git-tree-sha1 = "bc9f7725571ddb4ab2c4bc74fa397c1c5ad08943" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" version = "0.69.1+0" [[Gettext_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" version = "0.21.0+0" [[Glib_jll]] deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Pkg", "Zlib_jll"] git-tree-sha1 = "fb83fbe02fe57f2c068013aa94bcdf6760d3a7a7" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" version = "2.74.0+1" [[Graphite2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" version = "1.3.14+0" [[Grisu]] git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" version = "1.0.2" [[HTTP]] deps = ["Base64", "CodecZlib", "Dates", "IniFile", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] git-tree-sha1 = "4abede886fcba15cd5fd041fef776b230d004cee" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" version = "1.4.0" [[HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" version = "2.8.1+1" [[Hyperscript]] deps = ["Test"] git-tree-sha1 = "8d511d5b81240fc8e6802386302675bdf47737b9" uuid = "47d2ed2b-36de-50cf-bf87-49c2cf4b8b91" version = "0.0.4" [[HypertextLiteral]] deps = ["Tricks"] git-tree-sha1 = "c47c5fa4c5308f27ccaac35504858d8914e102f9" uuid = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2" version = "0.9.4" [[IOCapture]] deps = ["Logging", "Random"] git-tree-sha1 = "f7be53659ab06ddc986428d3a9dcc95f6fa6705a" uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" version = "0.2.2" [[IniFile]] git-tree-sha1 = "f550e6e32074c939295eb5ea6de31849ac2c9625" uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f" version = "0.5.1" [[IntelOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "d979e54b71da82f3a65b62553da4fc3d18c9004c" uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" version = "2018.0.3+2" [[InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" [[InverseFunctions]] deps = ["Test"] git-tree-sha1 = "49510dfcb407e572524ba94aeae2fced1f3feb0f" uuid = "3587e190-3f89-42d0-90ee-14403ec27112" version = "0.1.8" [[IrrationalConstants]] git-tree-sha1 = "7fd44fd4ff43fc60815f8e764c0f352b83c49151" uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" version = "0.1.1" [[JLFzf]] deps = ["Pipe", "REPL", "Random", "fzf_jll"] git-tree-sha1 = "f377670cda23b6b7c1c0b3893e37451c5c1a2185" uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" version = "0.1.5" [[JLLWrappers]] deps = ["Preferences"] git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" version = "1.4.1" [[JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] git-tree-sha1 = "3c837543ddb02250ef42f4738347454f95079d4e" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" version = "0.21.3" [[JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "b53380851c6e6664204efb2e62cd24fa5c47e4ba" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" version = "2.1.2+0" [[LAME_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" version = "3.100.1+0" [[LERC_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" uuid = "88015f11-f218-50d7-93a8-a6af411a945d" version = "3.0.0+1" [[LZO_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" version = "2.10.1+0" [[LaTeXStrings]] git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" version = "1.3.0" [[Latexify]] deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] git-tree-sha1 = "ab9aa169d2160129beb241cb2750ca499b4e90e9" uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" version = "0.15.17" [[LazyArtifacts]] deps = ["Artifacts", "Pkg"] uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" [[LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" version = "0.6.3" [[LibCURL_jll]] deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" version = "7.84.0+0" [[LibGit2]] deps = ["Base64", "NetworkOptions", "Printf", "SHA"] uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" [[LibSSH2_jll]] deps = ["Artifacts", "Libdl", "MbedTLS_jll"] uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" version = "1.10.2+0" [[Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" [[Libffi_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" version = "3.2.2+1" [[Libgcrypt_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" version = "1.8.7+0" [[Libglvnd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] git-tree-sha1 = "7739f837d6447403596a75d19ed01fd08d6f56bf" uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" version = "1.3.0+3" [[Libgpg_error_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" version = "1.42.0+0" [[Libiconv_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "42b62845d70a619f063a7da093d995ec8e15e778" uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" version = "1.16.1+1" [[Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" version = "2.35.0+0" [[Libtiff_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "Pkg", "Zlib_jll", "Zstd_jll"] git-tree-sha1 = "3eb79b0ca5764d4799c06699573fd8f533259713" uuid = "89763e89-9b03-5906-acba-b20f662cd828" version = "4.4.0+0" [[Libuuid_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" version = "2.36.0+0" [[LinearAlgebra]] deps = ["Libdl", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" [[LogExpFunctions]] deps = ["ChainRulesCore", "ChangesOfVariables", "DocStringExtensions", "InverseFunctions", "IrrationalConstants", "LinearAlgebra"] git-tree-sha1 = "94d9c52ca447e23eac0c0f074effbcd38830deb5" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" version = "0.3.18" [[Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" [[LoggingExtras]] deps = ["Dates", "Logging"] git-tree-sha1 = "5d4d2d9904227b8bd66386c1138cf4d5ffa826bf" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" version = "0.4.9" [[MKL_jll]] deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] git-tree-sha1 = "41d162ae9c868218b1f3fe78cba878aa348c2d26" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" version = "2022.1.0+0" [[MacroTools]] deps = ["Markdown", "Random"] git-tree-sha1 = "42324d08725e200c23d4dfb549e0d5d89dede2d2" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" version = "0.5.10" [[Markdown]] deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" [[MbedTLS]] deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "Random", "Sockets"] git-tree-sha1 = "6872f9594ff273da6d13c7c1a1545d5a8c7d0c1c" uuid = "739be429-bea8-5141-9913-cc70e7f3736d" version = "1.1.6" [[MbedTLS_jll]] deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" version = "2.28.0+0" [[Measures]] git-tree-sha1 = "e498ddeee6f9fdb4551ce855a46f54dbd900245f" uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" version = "0.3.1" [[Missings]] deps = ["DataAPI"] git-tree-sha1 = "bf210ce90b6c9eed32d25dbcae1ebc565df2687f" uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" version = "1.0.2" [[Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" [[MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" version = "2022.2.1" [[NaNMath]] deps = ["OpenLibm_jll"] git-tree-sha1 = "a7c3d1da1189a1c2fe843a3bfa04d18d20eb3211" uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" version = "1.0.1" [[NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" [[Ogg_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" version = "1.3.5+1" [[OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" version = "0.3.20+0" [[OpenLibm_jll]] deps = ["Artifacts", "Libdl"] uuid = "05823500-19ac-5b8b-9628-191a04bc5112" version = "0.8.1+0" [[OpenSSL]] deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] git-tree-sha1 = "ebe81469e9d7b471d7ddb611d9e147ea16de0add" uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" version = "1.2.1" [[OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "e60321e3f2616584ff98f0a4f18d98ae6f89bbb3" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" version = "1.1.17+0" [[OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" version = "0.5.5+0" [[Opus_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" uuid = "91d4177d-7536-5919-b921-800302f37372" version = "1.3.2+0" [[OrderedCollections]] git-tree-sha1 = "85f8e6578bf1f9ee0d11e7bb1b1456435479d47c" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" version = "1.4.1" [[PCRE2_jll]] deps = ["Artifacts", "Libdl"] uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" version = "10.40.0+0" [[Parsers]] deps = ["Dates"] git-tree-sha1 = "3d5bf43e3e8b412656404ed9466f1dcbf7c50269" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" version = "2.4.0" [[Pipe]] git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" version = "1.3.0" [[Pixman_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "b4f5d02549a10e20780a24fce72bea96b6329e29" uuid = "30392449-352a-5448-841d-b1acce4e97dc" version = "0.40.1+0" [[Pkg]] deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" version = "1.8.0" [[PlotThemes]] deps = ["PlotUtils", "Statistics"] git-tree-sha1 = "8162b2f8547bc23876edd0c5181b27702ae58dce" uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" version = "3.0.0" [[PlotUtils]] deps = ["ColorSchemes", "Colors", "Dates", "Printf", "Random", "Reexport", "SnoopPrecompile", "Statistics"] git-tree-sha1 = "21303256d239f6b484977314674aef4bb1fe4420" uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" version = "1.3.1" [[Plots]] deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SnoopPrecompile", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "Unzip"] git-tree-sha1 = "65451f70d8d71bd9d06821c7a53adbed162454c9" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" version = "1.35.2" [[PlutoUI]] deps = ["AbstractPlutoDingetjes", "Base64", "ColorTypes", "Dates", "Hyperscript", "HypertextLiteral", "IOCapture", "InteractiveUtils", "JSON", "Logging", "Markdown", "Random", "Reexport", "UUIDs"] git-tree-sha1 = "2777a5c2c91b3145f5aa75b61bb4c2eb38797136" uuid = "7f904dfe-b85e-4ff6-b463-dae2292396a8" version = "0.7.43" [[Preferences]] deps = ["TOML"] git-tree-sha1 = "47e5f437cc0e7ef2ce8406ce1e7e24d44915f88d" uuid = "21216c6a-2e73-6563-6e65-726566657250" version = "1.3.0" [[Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" [[Profile]] deps = ["Printf"] uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" [[Qt5Base_jll]] 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"] git-tree-sha1 = "c6c0f690d0cc7caddb74cef7aa847b824a16b256" uuid = "ea2cea3b-5b76-57ae-a6ef-0a8af62496e1" version = "5.15.3+1" [[REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[Random]] deps = ["SHA", "Serialization"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [[RecipesBase]] deps = ["SnoopPrecompile"] git-tree-sha1 = "612a4d76ad98e9722c8ba387614539155a59e30c" uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" version = "1.3.0" [[RecipesPipeline]] deps = ["Dates", "NaNMath", "PlotUtils", "RecipesBase"] git-tree-sha1 = "017f217e647cf20b0081b9be938b78c3443356a0" uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" version = "0.6.6" [[Reexport]] git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" uuid = "189a3867-3050-52da-a836-e630ba90ab69" version = "1.2.2" [[RelocatableFolders]] deps = ["SHA", "Scratch"] git-tree-sha1 = "90bc7a7c96410424509e4263e277e43250c05691" uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" version = "1.0.0" [[Requires]] deps = ["UUIDs"] git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" uuid = "ae029012-a4dd-5104-9daa-d747884805df" version = "1.3.0" [[SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" version = "0.7.0" [[Scratch]] deps = ["Dates"] git-tree-sha1 = "f94f779c94e58bf9ea243e77a37e16d9de9126bd" uuid = "6c6a2e73-6563-6170-7368-637461726353" version = "1.1.1" [[Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" [[Showoff]] deps = ["Dates", "Grisu"] git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" version = "1.0.3" [[SimpleBufferStream]] git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" version = "1.1.0" [[SnoopPrecompile]] git-tree-sha1 = "f604441450a3c0569830946e5b33b78c928e1a85" uuid = "66db9d55-30c0-4569-8b51-7e840670fc0c" version = "1.0.1" [[Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" [[SortingAlgorithms]] deps = ["DataStructures"] git-tree-sha1 = "b3363d7460f7d098ca0912c69b082f75625d7508" uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" version = "1.0.1" [[SparseArrays]] deps = ["LinearAlgebra", "Random"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" [[SpecialFunctions]] deps = ["ChainRulesCore", "IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] git-tree-sha1 = "d75bda01f8c31ebb72df80a46c88b25d1c79c56d" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" version = "2.1.7" [[Statistics]] deps = ["LinearAlgebra", "SparseArrays"] uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" [[StatsAPI]] deps = ["LinearAlgebra"] git-tree-sha1 = "f9af7f195fb13589dd2e2d57fdb401717d2eb1f6" uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" version = "1.5.0" [[StatsBase]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] git-tree-sha1 = "d1bf48bfcc554a3761a133fe3a9bb01488e06916" uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" version = "0.33.21" [[TOML]] deps = ["Dates"] uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" version = "1.0.0" [[Tar]] deps = ["ArgTools", "SHA"] uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" version = "1.10.1" [[TensorCore]] deps = ["LinearAlgebra"] git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" version = "0.1.1" [[Test]] deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [[TranscodingStreams]] deps = ["Random", "Test"] git-tree-sha1 = "8a75929dcd3c38611db2f8d08546decb514fcadf" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" version = "0.9.9" [[Tricks]] git-tree-sha1 = "6bac775f2d42a611cdfcd1fb217ee719630c4175" uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" version = "0.1.6" [[URIs]] git-tree-sha1 = "e59ecc5a41b000fa94423a578d29290c7266fc10" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" version = "1.4.0" [[UUIDs]] deps = ["Random", "SHA"] uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" [[Unicode]] uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" [[UnicodeFun]] deps = ["REPL"] git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" version = "0.4.1" [[Unzip]] git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" version = "0.2.0" [[Wayland_jll]] deps = ["Artifacts", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] git-tree-sha1 = "3e61f0b86f90dacb0bc0e73a0c5a83f6a8636e23" uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" version = "1.19.0+0" [[Wayland_protocols_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "4528479aa01ee1b3b4cd0e6faef0e04cf16466da" uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" version = "1.25.0+0" [[XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"] git-tree-sha1 = "58443b63fb7e465a8a7210828c91c08b92132dff" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" version = "2.9.14+0" [[XSLT_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" uuid = "aed1982a-8fda-507f-9586-7b0439959a61" version = "1.1.34+0" [[Xorg_libX11_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] git-tree-sha1 = "5be649d550f3f4b95308bf0183b82e2582876527" uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" version = "1.6.9+4" [[Xorg_libXau_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "4e490d5c960c314f33885790ed410ff3a94ce67e" uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" version = "1.0.9+4" [[Xorg_libXcursor_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" version = "1.2.0+4" [[Xorg_libXdmcp_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "4fe47bd2247248125c428978740e18a681372dd4" uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" version = "1.1.3+4" [[Xorg_libXext_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" version = "1.3.4+4" [[Xorg_libXfixes_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" version = "5.0.3+4" [[Xorg_libXi_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" version = "1.7.10+4" [[Xorg_libXinerama_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" version = "1.1.4+4" [[Xorg_libXrandr_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" version = "1.5.2+4" [[Xorg_libXrender_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" version = "0.9.10+4" [[Xorg_libpthread_stubs_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "6783737e45d3c59a4a4c4091f5f88cdcf0908cbb" uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" version = "0.1.0+3" [[Xorg_libxcb_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] git-tree-sha1 = "daf17f441228e7a3833846cd048892861cff16d6" uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" version = "1.13.0+3" [[Xorg_libxkbfile_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] git-tree-sha1 = "926af861744212db0eb001d9e40b5d16292080b2" uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" version = "1.1.0+4" [[Xorg_xcb_util_image_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" version = "0.4.0+1" [[Xorg_xcb_util_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" version = "0.4.0+1" [[Xorg_xcb_util_keysyms_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" version = "0.4.0+1" [[Xorg_xcb_util_renderutil_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" version = "0.3.9+1" [[Xorg_xcb_util_wm_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" version = "0.4.1+1" [[Xorg_xkbcomp_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxkbfile_jll"] git-tree-sha1 = "4bcbf660f6c2e714f87e960a171b119d06ee163b" uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" version = "1.4.2+4" [[Xorg_xkeyboard_config_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xkbcomp_jll"] git-tree-sha1 = "5c8424f8a67c3f2209646d4425f3d415fee5931d" uuid = "33bec58e-1273-512f-9401-5d533626f822" version = "2.27.0+4" [[Xorg_xtrans_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "79c31e7844f6ecf779705fbc12146eb190b7d845" uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" version = "1.4.0+3" [[Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" version = "1.2.12+3" [[Zstd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "e45044cd873ded54b6a5bac0eb5c971392cf1927" uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" version = "1.5.2+0" [[fzf_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "868e669ccb12ba16eaf50cb2957ee2ff61261c56" uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" version = "0.29.0+0" [[libaom_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" version = "3.4.0+0" [[libass_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" version = "0.15.1+0" [[libblastrampoline_jll]] deps = ["Artifacts", "Libdl", "OpenBLAS_jll"] uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" version = "5.1.1+0" [[libfdk_aac_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" version = "2.0.2+0" [[libpng_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] git-tree-sha1 = "94d180a6d2b5e55e447e2d27a29ed04fe79eb30c" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" version = "1.6.38+0" [[libvorbis_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" version = "1.3.7+1" [[nghttp2_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" version = "1.48.0+0" [[p7zip_jll]] deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" version = "17.4.0+0" [[x264_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" version = "2021.5.5+0" [[x265_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" version = "3.5.0+0" [[xkbcommon_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] git-tree-sha1 = "9ebfc140cc56e8c2156a15ceac2f0302e327ac0a" uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" version = "1.4.1+0" """ # ╔═╡ Cell order: # ╟─147ff08c-19cf-11eb-341d-ed1c6568c0c7 # ╠═d3c9d60e-19d1-11eb-064d-61814bb84582 # ╟─58b50b7a-19cf-11eb-146e-a5405521ff5d # ╟─4bec237c-19d1-11eb-27bd-13b1f2086f69 # ╟─800f28ce-19f3-11eb-0765-fd1c43b4bc19 # ╠═91726846-19d1-11eb-36e3-b1dc8f478323 # ╠═e8936f28-19d1-11eb-32aa-efda10cd8210 # ╟─4e339c26-19f6-11eb-2296-e1e0f2fda2fe # ╠═c3d9ef84-19fb-11eb-24ad-6f6671b3dec0 # ╠═d14ff6d4-19f3-11eb-17e6-773096878044 # ╠═018e0d2a-1b63-11eb-0841-6d88fc93a49f # ╠═6215a130-1b63-11eb-3b4b-99fd03bf750a # ╠═730e092a-19f4-11eb-0ac8-e946f31b3363 # ╠═dbacee5a-19f5-11eb-1c1b-0d1ae9b92f0e # ╟─22c63176-05d1-4430-a92d-308a02b5e502 # ╟─f918a2f0-1a85-11eb-2807-51f70d8984d7 # ╠═db0c98aa-1a8c-11eb-01b1-5dbfff26d33b # ╠═fb8ab86e-1a8c-11eb-0779-d9215f2c3f14 # ╠═975c3e5c-1b64-11eb-3136-4b9f0c1922d5 # ╠═3103d282-1a8d-11eb-2b36-e508a89b3171 # ╟─e7416b55-7513-4601-8fea-85688663a0ac # ╟─32a544fe-19fc-11eb-2309-8509537cdb4d # ╠═ca622d7a-1a8d-11eb-3960-7b2cef5b540d # ╠═e55a43a2-1a8f-11eb-32cc-e73ad807a202 # ╠═1d074a4a-1a90-11eb-2b14-ad6654f2a9af # ╟─01f1afc4-a70f-40f2-a55e-eb64f6946539 # ╟─867639d4-1ac3-11eb-0236-d50896ecbd11 # ╠═e37cdb34-1ac4-11eb-323e-f1d316774b5d # ╠═ea15a9c0-1ac5-11eb-31df-d16368be8d92 # ╠═3c74354a-1b7c-11eb-0936-671d831ae74d # ╠═00137b6c-1ac6-11eb-1874-c54f9797b035 # ╠═1e728862-1ac6-11eb-204c-8feaf3874724 # ╟─0abdaefe-2c16-4315-a8c9-37287ce965b5 # ╟─0e635470-1ab5-11eb-3ead-c96330845afb # ╠═dc756532-1ab4-11eb-116d-0502731ad456 # ╠═ed60fce0-1ab3-11eb-09e4-7dfdcd494259 # ╠═3e9ff912-1ab4-11eb-0977-1d5a23618723 # ╟─f3da4924-1b7a-11eb-277d-dbf45b22f5af # ╠═6c059a14-1ab5-11eb-2ca2-7d8bf4299714 # ╠═e48966e0-1ab8-11eb-19ed-c7e8752b9838 # ╠═ef01a9a4-1ab9-11eb-1796-cfa7726948d0 # ╟─b2e5f6d2-3095-4a2d-bdb2-6cbd53ade757 # ╟─fcff99e0-1abf-11eb-2dbf-850b32db7108 # ╠═1930182c-1ac0-11eb-1bda-3ff057b25970 # ╠═8cc698e2-1ac0-11eb-0844-837ad17db528 # ╠═9d1231ca-1ac0-11eb-04c5-4571e9851823 # ╠═0ad8cbd0-1ac1-11eb-14c3-7b20fd63c023 # ╠═31fb3e26-1ac1-11eb-3529-21c456cba268 # ╠═44fced44-1ac1-11eb-163e-c9fd874bffd9 # ╟─d03112a7-0073-4290-90c3-b2e1f4089d9f # ╟─00000000-0000-0000-0000-000000000001 # ╟─00000000-0000-0000-0000-000000000002