├── CITATION.bib ├── LICENSE ├── README.md ├── SAS_examples.jl ├── SAS_max_propagation.jl ├── SAS_pytorch.ipynb ├── example.png └── propagation_distance_sas.jl /CITATION.bib: -------------------------------------------------------------------------------- 1 | @article{Heintzmann:23, 2 | author = {Rainer Heintzmann and Lars Loetgering and Felix Wechsler}, 3 | journal = {Optica}, 4 | keywords = {Fourier transforms; Inverse design; Phase retrieval; Spatial frequency; Synthetic aperture radar; Wave propagation}, 5 | number = {11}, 6 | pages = {1407--1416}, 7 | publisher = {Optica Publishing Group}, 8 | title = {Scalable angular spectrum propagation}, 9 | volume = {10}, 10 | month = {Nov}, 11 | year = {2023}, 12 | url = {https://opg.optica.org/optica/abstract.cfm?URI=optica-10-11-1407}, 13 | doi = {10.1364/OPTICA.497809} 14 | } 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Felix Wechsler, Rainer Heintzmann, Lars Lötgering 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 | # Scalable Angular Spectrum Method SAS 2 | * **Update: Included in [WaveOpticsPropagation.jl](https://github.com/JuliaPhysics/WaveOpticsPropagation.jl)** 3 | * **Update June 2024: Now included in [chromatix](https://github.com/chromatix-team/chromatix)** 4 | 5 | 6 | Implementations of the Scalable Angular Spectrum (SAS) method for optical wave propagation in Python + PyTorch and Julia Lang. 7 | The SAS allows to propagate optical waves accurately over long distances and high magnifications. 8 | It features a much higher speed than the Angular Spectrum (AS) method and is more precise than the single-step Fresnel (SFT-Fr) method. 9 | It's implementation essentially consists of three FFTs and some phase factors. 10 | 11 | This image compares the three methods for accuracy. 12 | ![](example.png) 13 | 14 | The calculation time for Fresnel was 0.04s, the one for SAS around 0.12s. But AS takes around 6s because of large padding! 15 | 16 | # Publication and Citation 17 | For more details about the mathematics and physics behind this method, see this [OPTICA publication](https://opg.optica.org/optica/fulltext.cfm?uri=optica-10-11-1407&id=541154). 18 | Please consider citing this, if you find it useful: 19 | ``` 20 | @article{Heintzmann:23, 21 | author = {Rainer Heintzmann and Lars Loetgering and Felix Wechsler}, 22 | journal = {Optica}, 23 | keywords = {Fourier transforms; Inverse design; Phase retrieval; Spatial frequency; Synthetic aperture radar; Wave propagation}, 24 | number = {11}, 25 | pages = {1407--1416}, 26 | publisher = {Optica Publishing Group}, 27 | title = {Scalable angular spectrum propagation}, 28 | volume = {10}, 29 | month = {Nov}, 30 | year = {2023}, 31 | url = {https://opg.optica.org/optica/abstract.cfm?URI=optica-10-11-1407}, 32 | doi = {10.1364/OPTICA.497809} 33 | } 34 | ``` 35 | 36 | # License 37 | Check the conditions of the [license](LICENSE). 38 | 39 | 40 | # Julia Code 41 | Tested with [Julia 1.9](https://julialang.org/downloads/). Download the software and install it on your computer. 42 | Open the REPL and type (type really a `]` to enter the package manager. Delete the `]` to go back to REPL): 43 | ```julia 44 | julia > ]add Pluto 45 | 46 | julia > using Pluto 47 | ``` 48 | [Pluto.jl](https://github.com/fonsp/Pluto.jl) is an interactive notebook environment. 49 | Download the file [SAS_examples.jl](SAS_examples.jl). From within Pluto, open this file. 50 | Everything should go fine from now on. 51 | 52 | ## Reproducibility 53 | Pluto notebooks are highly reproducible because of the pinned versions of all dependencies. So running this notebook with Julia 1.9.1 is reproducible. You do not have to handle the versions yourself. Everything is done by Pluto.jl. 54 | 55 | # Python 56 | Implementation in Python and [PyTorch](https://pytorch.org/). Hence, it can be used within neural networks and automatic differentiation. 57 | See this [Jupyter notebook](SAS_pytorch.ipynb). 58 | Install 59 | ``` 60 | pip install numpy matplotlib torch notebook 61 | ``` 62 | to run the Python notebook. 63 | 64 | # Implementations 65 | There is an efficient implementation of the Angular Spectrum method and the Scalable Angular Spectrum method in [WaveOpticsPropagation.jl](https://github.com/JuliaPhysics/WaveOpticsPropagation.jl/). 66 | There is one JAX implementation in [chromatix](https://github.com/chromatix-team/chromatix). 67 | 68 | 69 | # Bugs, Issues 70 | Please feel free to file issues and bugs here on GitHub! Also, if you have any question regarding the paper, post it here too! 71 | -------------------------------------------------------------------------------- /SAS_examples.jl: -------------------------------------------------------------------------------- 1 | ### A Pluto.jl notebook ### 2 | # v0.19.26 3 | 4 | using Markdown 5 | using InteractiveUtils 6 | 7 | # ╔═╡ 4f0ea44a-5475-11ed-3979-6d7d4c1a8ce1 8 | using FFTW, NDTools, Interpolations, IndexFunArrays, Colors, ImageShow, ImageIO, FourierTools, Plots, Interpolations, PlutoUI, ColorSchemes, TestImages, ImageQualityIndexes 9 | 10 | # ╔═╡ 2bd51f20-7abb-4d95-a56b-c2e058c2a1be 11 | md"# Scaled Angular Spectrum 12 | Here we present the Julia implementation of the Scaled Angular Spectrum method and show the examples from the article. 13 | " 14 | 15 | # ╔═╡ 15975d27-b575-4e76-94a7-02b8f218acb1 16 | md"## Load Packages" 17 | 18 | # ╔═╡ 45dabf95-ede9-46c5-896c-39945a2029e7 19 | begin 20 | FFTW.forget_wisdom() 21 | FFTW.set_num_threads(4) 22 | end 23 | 24 | # ╔═╡ 83d8201f-6c96-4849-871b-99409abfc5f8 25 | TableOfContents() 26 | 27 | # ╔═╡ d0e12818-286b-475d-b76b-da777073e72a 28 | md"## Some Utility Functions" 29 | 30 | # ╔═╡ b87f5371-13b0-4c73-91fb-8108a5a80a3e 31 | hann(x) = sinpi(x/2)^2 32 | 33 | # ╔═╡ e53711d2-68ed-4712-82ba-c11bc14ffab3 34 | scale(x, α, β) = clamp(α ≥ β ? (x > β ? zero(x) : one(x)) : 1 - (x-α)/(β-α), 0, 1) 35 | 36 | # ╔═╡ 529a3df1-8a18-416e-9730-14eb10302fbb 37 | function find_width_window(ineq_1D::AbstractVector, bandlimit_border) 38 | bs = ineq_1D .≤ 1 39 | ind_x_first = findfirst(bs) 40 | ind_x_last = findlast(bs) 41 | 42 | if isnothing(ind_x_first) || isnothing(ind_x_last) 43 | return (1,1) 44 | end 45 | 46 | diff_b = round(Int, 0.5 * (1 - bandlimit_border[1]) * (Tuple(ind_x_last)[1] - Tuple(ind_x_first)[1])) 47 | diff_e = round(Int, 0.5 * (1 - bandlimit_border[2]) * (Tuple(ind_x_last)[1] - 48 | Tuple(ind_x_first)[1])) 49 | 50 | ineq_v_b = ineq_1D[ind_x_first + diff_b] 51 | ineq_v_e = ineq_1D[ind_x_first + diff_e] 52 | 53 | return ineq_v_b, ineq_v_e 54 | end 55 | 56 | # ╔═╡ 45e9dad4-8f26-45c6-b58e-93d634881f60 57 | md"# Angular Spectrum of Plane Waves" 58 | 59 | # ╔═╡ 2c6d0d9b-9617-40d3-859d-4c5de8cafbd7 60 | md"# Fresnel Propagation" 61 | 62 | # ╔═╡ 004097d8-1906-4151-a4f3-4be7f7a71434 63 | md"# Scaled Angular Spectrum" 64 | 65 | # ╔═╡ fdb237d3-5c00-463c-9671-3de7ee3e2bcc 66 | 67 | 68 | # ╔═╡ fd94ba72-5130-40e8-884c-37899b2f2fa7 69 | λ = 500e-9 70 | 71 | # ╔═╡ 0c62447e-cc20-4e68-a645-367dd823b507 72 | L = 128e-6 / 2 73 | 74 | # ╔═╡ 8cc751a6-aa3a-4095-97a3-256ba37d3faa 75 | N = 512 76 | 77 | # ╔═╡ 76fc433a-fc15-4660-b7ad-436c4d756488 78 | L / N / λ 79 | 80 | # ╔═╡ a53ce9e8-1f86-40ee-949c-378cf486af1b 81 | y = fftpos(L, N, NDTools.CenterFT) 82 | 83 | # ╔═╡ d58452cc-d4b7-4d6f-9c39-fd8329291cdd 84 | D_circ = N / 8 85 | 86 | # ╔═╡ 5611f23e-8513-4c6d-b2d5-b092bdff21ed 87 | U_circ = ComplexF64.(rr((N, N)) .< D_circ / 2) .* exp.(1im .* 2π ./ λ .* y .* sind(45)) .+ ComplexF64.(rr((N, N)) .< D_circ / 2) .* exp.(1im .* 2π ./ λ .* y' .* sind(-45)); 88 | 89 | # ╔═╡ 694b3ac0-51e2-46b4-a5ce-8b1a93d6a368 90 | M = 4 91 | 92 | # ╔═╡ e05c6882-81f9-4784-ab7e-7a9a8d296b6d 93 | """ 94 | _propagation_variables(field, z, λ, L) 95 | 96 | Internal method to create variables we need for propagation such as frequencies in Fourier space, etc.. 97 | """ 98 | function _propagation_variables(field::AbstractArray{T, M}, z, λ, L) where {T, M} 99 | @assert size(field, 1) == size(field, 2) "Quadratic fields only working currently" 100 | 101 | # wave number 102 | k = T(2π) / λ 103 | # number of samples 104 | N = size(field, 1) 105 | # sample spacing 106 | dx = L / N 107 | # frequency spacing 108 | df = 1 / L 109 | # total size in frequency space 110 | Lf = N * df 111 | 112 | # frequencies centered around first entry 113 | # 1D vectors each 114 | f_y = similar(field, real(eltype(field)), (N,)) 115 | f_y .= fftfreq(N, Lf) 116 | f_x = collect(f_y') 117 | 118 | # y and x positions in real space 119 | #y = ifftshift(range(-L/2, L/2, length=N)) 120 | y = similar(field, real(eltype(field)), (N,)) 121 | y .= ifftshift(fftpos(L, N, CenterFT)) 122 | x = collect(y') 123 | 124 | return (; k, dx, df, f_x, f_y, x, y) 125 | end 126 | 127 | # ╔═╡ adfcc771-e092-4dd3-8ff9-9a940c1c29a3 128 | """ 129 | angular_spectrum(field, z, λ, L) 130 | 131 | Returns the the electrical field with physical length `L` and wavelength `λ` propagated with the angular spectrum method of plane waves (AS) by the propagation distance `z`. 132 | """ 133 | function angular_spectrum(field::Matrix{T}, z, λ, L; pad_factor = 2) where T 134 | @assert size(field, 1) == size(field, 2) "Restricted to auadratic fields." 135 | # we need to apply padding to prevent circular convolution 136 | L_new = pad_factor .* L 137 | 138 | # applies zero padding 139 | field_new = select_region(field, new_size=size(field) .* pad_factor) 140 | 141 | # helpful propagation variables 142 | (; k, f_x, f_y) = _propagation_variables(field_new, z, λ, L_new) 143 | 144 | # transfer function kernel of angular spectrum 145 | H = exp.(1im .* k .* z .* sqrt.(0im .+ 1 .- abs2.(f_x .* λ) .- abs2.(f_y .* λ))) 146 | 147 | # bandlimit according to Matsushima 148 | # as addition we introduce a smooth bandlimit with a Hann window 149 | # and fuzzy logic 150 | Δu = 1 / L_new 151 | u_limit = 1 / (sqrt((2 * Δu * z)^2 + 1) * λ) 152 | smooth_f(x, α, β) = hann(scale(x, α, β)) 153 | 154 | # bandlimit filter 155 | # smoothing at 0.8 is arbitrary but works well 156 | W = .*(smooth_f.(abs2.(f_y) ./ u_limit^2 .+ abs2.(f_x) * λ^2, 0.8, 1), 157 | smooth_f.(abs2.(f_x) ./ u_limit^2 .+ abs2.(f_y) * λ^2, 0.8, 1)) 158 | # propagate field 159 | field_out = fftshift(ifft(fft(ifftshift(field_new)) .* H .* W)) 160 | # take center part because of circular convolution 161 | field_out_cropped = select_region(field_out, new_size=size(field)) 162 | 163 | # return final field and some other variables 164 | return field_out_cropped, (; ) 165 | end 166 | 167 | # ╔═╡ 2177f522-9ccb-4b96-8bd5-92718f0d5cc6 168 | """ 169 | fresnel(field, z, λ, L; skip_final_phase=true) 170 | 171 | Returns the the electrical field with physical length `L` and wavelength `λ` propagated with the fresnel method of plane waves (AS) by the propagation distance `z`. 172 | 173 | 174 | """ 175 | function fresnel(field::Matrix{T}, z, λ, L; skip_final_phase=true) where T 176 | @assert size(field, 1) == size(field, 2) "Restricted to auadratic fields." 177 | # we need to apply padding to prevent circular convolution 178 | pad_factor = 1 179 | L_new = pad_factor .* L 180 | # applies zero padding 181 | field_new = pad_factor != 1 ? 182 | select_region(field, new_size=size(field) .* pad_factor) : 183 | field 184 | 185 | # helpful propagation variables 186 | (; k, f_x, f_y, x, y) = _propagation_variables(field_new, z, λ, L_new) 187 | 188 | 189 | N = size(field_new, 1) 190 | # new sample coordinates 191 | M = λ * z * N / L_new^2 192 | dq = λ * z / L_new 193 | Q = dq * N 194 | 195 | q_y = similar(field, N) 196 | q_y .= ifftshift(fftpos(M * L_new, N, CenterFT)) 197 | q_x = q_y' 198 | 199 | # calculate phases of Fresnel 200 | H₁ = exp.(1im .* k ./ (2 .* z) .* (x .^ 2 .+ y .^ 2)) 201 | 202 | # skips multiplication of final phase 203 | if skip_final_phase 204 | field_out = fftshift(fft(ifftshift(field_new) .* H₁)) 205 | else 206 | H₂ = (exp.(1im .* k .* z) .* 207 | exp.(1im .* k ./ (2 .* z) .* (q_x .^ 2 .+ q_y .^2))) 208 | field_out = fftshift(fft(ifftshift(field_new) .* H₁) .* H₂) 209 | end 210 | 211 | # fix scaling 212 | field_out .*= 1 / (1im * T(sqrt(length(field_out)))) 213 | 214 | # transfer function kernel of angular spectrum 215 | return field_out, (; L=Q) 216 | end 217 | 218 | # ╔═╡ 4db3a990-4e5d-4fe7-89cc-4823d1b5b592 219 | """ 220 | scalable_angular_spectrum(field, z, λ, L; skip_final_phase=true) 221 | 222 | Returns the the electrical field with physical length `L` and wavelength `λ` propagated with the Scaled Angular Spectrum (SAS) of plane waves (AS) by the propagation distance `z`. 223 | """ 224 | function scalable_angular_spectrum(ψ₀::Matrix{T}, z, λ, L ; 225 | pad_factor=2, skip_final_phase=true, set_pad_zero=false, bandlimit_soft_px=20, 226 | bandlimit_border=(0.8, 1)) where {T} 227 | @assert bandlimit_soft_px ≥ 0 "bandlimit_soft_px must be ≥ 0" 228 | @assert size(ψ₀, 1) == size(ψ₀, 2) "Restricted to auadratic fields." 229 | 230 | 231 | N = size(ψ₀, 1) 232 | z_limit = (- 4 * L * sqrt(8*L^2 / N^2 + λ^2) * sqrt(L^2 * inv(8 * L^2 + N^2 * λ^2)) / (λ * (-1+2 * sqrt(2) * sqrt(L^2 * inv(8 * L^2 + N^2 * λ^2))))) 233 | 234 | # vignetting limit 235 | z > z_limit && @warn "Propagated field might be affected by vignetting" 236 | L_new = pad_factor * L 237 | 238 | # applies zero padding 239 | ψ_p = select_region(ψ₀, new_size=size(ψ₀) .* pad_factor) 240 | k, dx, df, f_x, f_y, x, y = _propagation_variables(ψ_p, z, λ, L_new) 241 | M = λ * z * N / L^2 / 2 242 | 243 | # calculate anti_aliasing_filter for precompensation 244 | cx = λ .* f_x 245 | cy = λ .* f_y 246 | tx = L_new / 2 / z .+ abs.(λ .* f_x) 247 | ty = L_new / 2 / z .+ abs.(λ .* f_y) 248 | 249 | # smooth window function 250 | smooth_f(x, α, β) = hann(scale(x, α, β)) 251 | # find boundary for soft hann 252 | ineq_x = fftshift(cx[1, :].^2 .* (1 .+ tx[1, :].^2) ./ tx[1, :].^2 .+ cy[1, :].^2) 253 | limits = find_width_window(ineq_x, bandlimit_border) 254 | 255 | # bandlimit filter for precompensation 256 | W = .*(smooth_f.(cx.^2 .* (1 .+ tx.^2) ./ tx.^2 .+ cy.^2, limits...), 257 | smooth_f.(cy.^2 .* (1 .+ ty.^2) ./ ty.^2 .+ cx.^2, limits...)) 258 | 259 | # ΔH is the core part of Fresnel and AS 260 | H_AS = sqrt.(0im .+ 1 .- abs2.(f_x .* λ) .- abs2.(f_y .* λ)) 261 | H_Fr = 1 .- abs2.(f_x .* λ) / 2 .- abs2.(f_y .* λ) / 2 262 | # take the difference here, key part of the ScaledAS 263 | ΔH = W .* exp.(1im .* k .* z .* (H_AS .- H_Fr)) 264 | 265 | # apply precompensation 266 | ψ_precomp = ifft(fft(ifftshift(ψ_p)) .* ΔH) 267 | 268 | # we can set the padding region to zero 269 | # but quite often there is meaningful signal 270 | # not used, just for debugging 271 | if set_pad_zero 272 | ψ_precomp = select_region(fftshift(ψ_precomp), new_size=size(field)) 273 | ψ_precomp = select_region(ψ_precomp, new_size=pad_factor .* size(ψ₀)) 274 | ψ_precomp = ifftshift(ψ_precomp) 275 | end 276 | 277 | # new sample coordinates 278 | dq = λ * z / L_new 279 | Q = dq * N * pad_factor 280 | q_y = similar(ψ_p, pad_factor * N) 281 | # fftpos generates coordinates from -L/2 to L/2 but excluding the last 282 | # final bit 283 | q_y .= ifftshift(fftpos(dq * pad_factor * N, pad_factor * N, CenterFT)) 284 | q_x = q_y' 285 | 286 | # calculate phases of Fresnel 287 | H₁ = exp.(1im .* k ./ (2 .* z) .* (x .^ 2 .+ y .^ 2)) 288 | 289 | # skip final phase because often undersampled 290 | if skip_final_phase 291 | ψ_p_final = fftshift(fft(H₁ .* ψ_precomp)) 292 | else 293 | H₂ = (exp.(1im .* k .* z) .* 294 | exp.(1im .* k ./ (2 .* z) .* (q_x .^ 2 .+ q_y .^2))) 295 | ψ_p_final = fftshift(H₂ .* fft(H₁ .* ψ_precomp)) 296 | end 297 | 298 | # fix absolute scaling of field 299 | ψ_p_final .*= 1 / (1im * T(sqrt(length(ψ_precomp)))) 300 | # unpad/crop/extract center 301 | ψ_final = select_region(ψ_p_final, new_size=size(ψ₀)) 302 | 303 | return ψ_final, (;Q, L=L * M, W) 304 | end 305 | 306 | # ╔═╡ 6fa374ce-6953-443a-94a0-9859237fe345 307 | z_circ = M / N /λ * L^2 * 2 308 | 309 | # ╔═╡ c7194950-26ff-4972-81be-1fabf1ba9dcf 310 | md"# First Example: Circular 311 | 312 | In the first example, one straight beam and one oblique beam are passing through a round aperture. 313 | 314 | The Fresnel number is $(round((D_circ / 2 * L / N)^2 / z_circ / λ, digits=3)) 315 | " 316 | 317 | # ╔═╡ 6a977f39-626a-441a-816a-66f4b8e0c64c 318 | z_circ / L 319 | 320 | # ╔═╡ 764349e1-3b12-412b-bcdd-ba1bb64bc391 321 | z_circ 322 | 323 | # ╔═╡ 0cd5c3e8-39ca-40be-8fef-17faf7738b45 324 | simshow(U_circ) 325 | 326 | # ╔═╡ 77f6528c-cf26-465e-a5bd-7bd336e1b4bc 327 | @time as_circ = angular_spectrum(select_region(U_circ, new_size=round.(Int, size(U_circ) .* M)), z_circ, λ, L * M) 328 | 329 | # ╔═╡ dd434bfd-c14d-4417-922a-01a573c44143 330 | @time sft_fr_circ = select_region(fresnel(select_region(U_circ, M=2), z_circ, λ, 2 * L, skip_final_phase=true)[1], M=0.5); 331 | 332 | # ╔═╡ 6af0bc99-4245-44f8-bc45-405f9e56b513 333 | @time sas_circ = scalable_angular_spectrum(U_circ, z_circ, λ, L, bandlimit_border=(0.9, 1)); 334 | 335 | # ╔═╡ 3524374c-97f0-4cdd-88cd-7ffbdb52834c 336 | simshow(abs2.(as_circ[1]), γ=0.13, cmap=:inferno) 337 | 338 | # ╔═╡ 45872398-895b-4713-b33a-ca573920efc6 339 | sum(resample(abs2.(as_circ[1]), (512, 512), normalize=false)) 340 | 341 | # ╔═╡ 9df1ae34-d976-4513-9704-0f99dacbf01c 342 | sum(abs2.(sas_circ[1])) 343 | 344 | # ╔═╡ b95302c7-0385-46ac-8f53-2e6cf7cecea9 345 | simshow(abs2.(sft_fr_circ), γ=0.13, cmap=:inferno) 346 | 347 | # ╔═╡ 103e1291-2a49-409d-8c53-6edc63de6f2c 348 | simshow(abs.(abs2.(as_circ[1][1:4:end, 1:4:end]) .- abs2.(sas_circ[1])), γ=0.13, cmap=:inferno) 349 | 350 | # ╔═╡ c4f2b545-cd1d-4ae2-bccb-7a89119ae7df 351 | simshow(abs2.(sas_circ[1]), γ=.13, cmap=:inferno) 352 | 353 | # ╔═╡ 9a34e78f-8a14-405d-bcb9-7184ba01b767 354 | md"# 355 | 356 | #### SSIM of AS and SAS: $(round(assess_ssim(resample(abs2.(as_circ[1]), (512, 512), normalize=false), abs2.(sas_circ[1])), digits=6)) 357 | 358 | #### SSIM of AS and SFT-FR: $(round(assess_ssim(resample(abs2.(as_circ[1]), (512, 512), normalize=false), abs2.(sft_fr_circ)), digits=6)) 359 | " 360 | 361 | # ╔═╡ d623e68d-8cfd-4df8-af30-396097ddc6aa 362 | L_box = 128e-6; 363 | 364 | # ╔═╡ 81c307a0-82d4-4514-8d28-12e12defcea2 365 | N_box = 512; 366 | 367 | # ╔═╡ 01f39e27-8e6a-4056-b496-d6bdf955120f 368 | y_box = fftpos(L_box, N_box, NDTools.CenterFT); 369 | 370 | # ╔═╡ 930bc90e-a55f-4674-a6f8-246efa183520 371 | x_box = y_box'; 372 | 373 | # ╔═╡ 22812caa-acc6-4a50-bdb0-d43b153c9c9a 374 | D_box = L_box / 16 375 | 376 | # ╔═╡ 840f8832-ee38-4da5-b722-e9022fca3076 377 | U_box = (x_box.^2 .<= (D_box / 2).^2) .* (y_box.^2 .<= (D_box / 2).^2) .* (exp.(1im .* 2π ./ λ .* y_box' .* sind(20))); 378 | 379 | # ╔═╡ af91c034-2f43-4786-aef7-a7bce45ab38e 380 | M_box = 8; 381 | 382 | # ╔═╡ 7b13f72d-6e5d-440b-b080-1301a1560acc 383 | z_box = M_box / N_box / λ * L_box^2 * 2 384 | 385 | # ╔═╡ 1815437a-332c-4bc1-9b72-b75cd4b8b653 386 | md"# Second Example: Quadratic 387 | 388 | 389 | The Fresnel number is $(round((D_box)^2 / z_box / λ, digits=3)) 390 | " 391 | 392 | # ╔═╡ e4bb5e06-0b89-4c27-885f-0d13da6d2ff0 393 | simshow(U_box) 394 | 395 | # ╔═╡ 9d78321e-6586-4c31-bec7-279d23c79841 396 | @time as_box = angular_spectrum(select_region(U_box, new_size=round.(Int, size(U_box) .* M_box)), z_box, λ, L_box * M_box); 397 | 398 | # ╔═╡ dc0ae388-c96d-4e9b-bd1b-0c752ddfa237 399 | @time sft_fr_box = select_region(fresnel(select_region(U_box, M=2), z_box, λ, L_box, skip_final_phase=true)[1], M=1//2); 400 | 401 | # ╔═╡ b3e31f75-5216-47b5-85b3-026a0321c0a8 402 | @time sas_box = scalable_angular_spectrum(U_box, z_box, λ, L_box, bandlimit_border=(0.8, 1.0), skip_final_phase=true); 403 | 404 | # ╔═╡ d128d0ec-61bd-46a2-a915-e42220cd09cc 405 | simshow(abs2.(as_box[1]), γ=0.13, cmap=:inferno) 406 | 407 | # ╔═╡ ac013a5b-9225-4ce2-9e6a-7d83c94f5aa6 408 | simshow(abs2.(sft_fr_box), γ=0.13, cmap=:inferno) 409 | 410 | # ╔═╡ 9c46ad96-96ac-4d40-bfec-d146451f1130 411 | simshow(abs2.(sas_box[1]), γ=0.13, cmap=:inferno) 412 | 413 | # ╔═╡ 23c190f2-3e4e-4c71-af6f-c8c8583dcace 414 | md"# 415 | 416 | #### SSIM of AS and SAS: $(round(assess_ssim(resample(abs2.(as_box[1]), (512, 512), normalize=false), abs2.(sas_box[1])), digits=6)) 417 | 418 | #### SSIM of AS and SFT-FR: $(round(assess_ssim(resample(abs2.(as_box[1]), (512, 512), normalize=false), abs2.(sft_fr_box)), digits=6)) 419 | " 420 | 421 | # ╔═╡ 00000000-0000-0000-0000-000000000001 422 | PLUTO_PROJECT_TOML_CONTENTS = """ 423 | [deps] 424 | ColorSchemes = "35d6a980-a343-548e-a6ea-1d62b119f2f4" 425 | Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" 426 | FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" 427 | FourierTools = "b18b359b-aebc-45ac-a139-9c0ccbb2871e" 428 | ImageIO = "82e4d734-157c-48bb-816b-45c225c6df19" 429 | ImageQualityIndexes = "2996bd0c-7a13-11e9-2da2-2f5ce47296a9" 430 | ImageShow = "4e3cecfd-b093-5904-9786-8bbb286a6a31" 431 | IndexFunArrays = "613c443e-d742-454e-bfc6-1d7f8dd76566" 432 | Interpolations = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" 433 | NDTools = "98581153-e998-4eef-8d0d-5ec2c052313d" 434 | Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" 435 | PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8" 436 | TestImages = "5e47fb64-e119-507b-a336-dd2b206d9990" 437 | 438 | [compat] 439 | ColorSchemes = "~3.20.0" 440 | Colors = "~0.12.10" 441 | FFTW = "~1.5.0" 442 | FourierTools = "~0.4.0" 443 | ImageIO = "~0.6.6" 444 | ImageQualityIndexes = "~0.3.6" 445 | ImageShow = "~0.3.7" 446 | IndexFunArrays = "~0.2.5" 447 | Interpolations = "~0.14.7" 448 | NDTools = "~0.5.2" 449 | Plots = "~1.38.5" 450 | PlutoUI = "~0.7.50" 451 | TestImages = "~1.7.1" 452 | """ 453 | 454 | # ╔═╡ 00000000-0000-0000-0000-000000000002 455 | PLUTO_MANIFEST_TOML_CONTENTS = """ 456 | # This file is machine-generated - editing it directly is not advised 457 | 458 | julia_version = "1.9.1" 459 | manifest_format = "2.0" 460 | project_hash = "f103461623010ca81b8b768029b438656bdb9d12" 461 | 462 | [[deps.AbstractFFTs]] 463 | deps = ["LinearAlgebra"] 464 | git-tree-sha1 = "16b6dbc4cf7caee4e1e75c49485ec67b667098a0" 465 | uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" 466 | version = "1.3.1" 467 | weakdeps = ["ChainRulesCore"] 468 | 469 | [deps.AbstractFFTs.extensions] 470 | AbstractFFTsChainRulesCoreExt = "ChainRulesCore" 471 | 472 | [[deps.AbstractNFFTs]] 473 | deps = ["LinearAlgebra", "Printf"] 474 | git-tree-sha1 = "292e21e99dedb8621c15f185b8fdb4260bb3c429" 475 | uuid = "7f219486-4aa7-41d6-80a7-e08ef20ceed7" 476 | version = "0.8.2" 477 | 478 | [[deps.AbstractPlutoDingetjes]] 479 | deps = ["Pkg"] 480 | git-tree-sha1 = "8eaf9f1b4921132a4cff3f36a1d9ba923b14a481" 481 | uuid = "6e696c72-6542-2067-7265-42206c756150" 482 | version = "1.1.4" 483 | 484 | [[deps.Adapt]] 485 | deps = ["LinearAlgebra", "Requires"] 486 | git-tree-sha1 = "76289dc51920fdc6e0013c872ba9551d54961c24" 487 | uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" 488 | version = "3.6.2" 489 | weakdeps = ["StaticArrays"] 490 | 491 | [deps.Adapt.extensions] 492 | AdaptStaticArraysExt = "StaticArrays" 493 | 494 | [[deps.ArgCheck]] 495 | git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" 496 | uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" 497 | version = "2.3.0" 498 | 499 | [[deps.ArgTools]] 500 | uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" 501 | version = "1.1.1" 502 | 503 | [[deps.ArrayInterface]] 504 | deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] 505 | git-tree-sha1 = "f83ec24f76d4c8f525099b2ac475fc098138ec31" 506 | uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" 507 | version = "7.4.11" 508 | 509 | [deps.ArrayInterface.extensions] 510 | ArrayInterfaceBandedMatricesExt = "BandedMatrices" 511 | ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" 512 | ArrayInterfaceCUDAExt = "CUDA" 513 | ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" 514 | ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" 515 | ArrayInterfaceTrackerExt = "Tracker" 516 | 517 | [deps.ArrayInterface.weakdeps] 518 | BandedMatrices = "aae01518-5342-5314-be14-df237901396f" 519 | BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" 520 | CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" 521 | GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" 522 | StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" 523 | Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" 524 | 525 | [[deps.ArrayInterfaceCore]] 526 | deps = ["LinearAlgebra", "SnoopPrecompile", "SparseArrays", "SuiteSparse"] 527 | git-tree-sha1 = "e5f08b5689b1aad068e01751889f2f615c7db36d" 528 | uuid = "30b0a656-2188-435a-8636-2ec0e6a096e2" 529 | version = "0.1.29" 530 | 531 | [[deps.Artifacts]] 532 | uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" 533 | 534 | [[deps.AxisAlgorithms]] 535 | deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] 536 | git-tree-sha1 = "66771c8d21c8ff5e3a93379480a2307ac36863f7" 537 | uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" 538 | version = "1.0.1" 539 | 540 | [[deps.AxisArrays]] 541 | deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"] 542 | git-tree-sha1 = "1dd4d9f5beebac0c03446918741b1a03dc5e5788" 543 | uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" 544 | version = "0.4.6" 545 | 546 | [[deps.BangBang]] 547 | deps = ["Compat", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires", "Setfield", "Tables"] 548 | git-tree-sha1 = "e28912ce94077686443433c2800104b061a827ed" 549 | uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" 550 | version = "0.3.39" 551 | 552 | [deps.BangBang.extensions] 553 | BangBangChainRulesCoreExt = "ChainRulesCore" 554 | BangBangDataFramesExt = "DataFrames" 555 | BangBangStaticArraysExt = "StaticArrays" 556 | BangBangStructArraysExt = "StructArrays" 557 | BangBangTypedTablesExt = "TypedTables" 558 | 559 | [deps.BangBang.weakdeps] 560 | ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" 561 | DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" 562 | StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" 563 | StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" 564 | TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9" 565 | 566 | [[deps.Base64]] 567 | uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" 568 | 569 | [[deps.Baselet]] 570 | git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e" 571 | uuid = "9718e550-a3fa-408a-8086-8db961cd8217" 572 | version = "0.1.1" 573 | 574 | [[deps.BasicInterpolators]] 575 | deps = ["LinearAlgebra", "Memoize", "Random"] 576 | git-tree-sha1 = "3f7be532673fc4a22825e7884e9e0e876236b12a" 577 | uuid = "26cce99e-4866-4b6d-ab74-862489e035e0" 578 | version = "0.7.1" 579 | 580 | [[deps.BitFlags]] 581 | git-tree-sha1 = "43b1a4a8f797c1cddadf60499a8a077d4af2cd2d" 582 | uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" 583 | version = "0.1.7" 584 | 585 | [[deps.BitTwiddlingConvenienceFunctions]] 586 | deps = ["Static"] 587 | git-tree-sha1 = "0c5f81f47bbbcf4aea7b2959135713459170798b" 588 | uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" 589 | version = "0.1.5" 590 | 591 | [[deps.Bzip2_jll]] 592 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 593 | git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" 594 | uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" 595 | version = "1.0.8+0" 596 | 597 | [[deps.CEnum]] 598 | git-tree-sha1 = "eb4cb44a499229b3b8426dcfb5dd85333951ff90" 599 | uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" 600 | version = "0.4.2" 601 | 602 | [[deps.CPUSummary]] 603 | deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] 604 | git-tree-sha1 = "89e0654ed8c7aebad6d5ad235d6242c2d737a928" 605 | uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" 606 | version = "0.2.3" 607 | 608 | [[deps.Cairo_jll]] 609 | deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] 610 | git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" 611 | uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" 612 | version = "1.16.1+1" 613 | 614 | [[deps.CatIndices]] 615 | deps = ["CustomUnitRanges", "OffsetArrays"] 616 | git-tree-sha1 = "a0f80a09780eed9b1d106a1bf62041c2efc995bc" 617 | uuid = "aafaddc9-749c-510e-ac4f-586e18779b91" 618 | version = "0.2.2" 619 | 620 | [[deps.ChainRulesCore]] 621 | deps = ["Compat", "LinearAlgebra", "SparseArrays"] 622 | git-tree-sha1 = "e30f2f4e20f7f186dc36529910beaedc60cfa644" 623 | uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" 624 | version = "1.16.0" 625 | 626 | [[deps.CloseOpenIntervals]] 627 | deps = ["Static", "StaticArrayInterface"] 628 | git-tree-sha1 = "70232f82ffaab9dc52585e0dd043b5e0c6b714f1" 629 | uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" 630 | version = "0.1.12" 631 | 632 | [[deps.CodecZlib]] 633 | deps = ["TranscodingStreams", "Zlib_jll"] 634 | git-tree-sha1 = "9c209fb7536406834aa938fb149964b985de6c83" 635 | uuid = "944b1d66-785c-5afd-91f1-9de20f533193" 636 | version = "0.7.1" 637 | 638 | [[deps.ColorSchemes]] 639 | deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Random", "SnoopPrecompile"] 640 | git-tree-sha1 = "aa3edc8f8dea6cbfa176ee12f7c2fc82f0608ed3" 641 | uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" 642 | version = "3.20.0" 643 | 644 | [[deps.ColorTypes]] 645 | deps = ["FixedPointNumbers", "Random"] 646 | git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" 647 | uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" 648 | version = "0.11.4" 649 | 650 | [[deps.ColorVectorSpace]] 651 | deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "TensorCore"] 652 | git-tree-sha1 = "600cc5508d66b78aae350f7accdb58763ac18589" 653 | uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" 654 | version = "0.9.10" 655 | 656 | [[deps.Colors]] 657 | deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] 658 | git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" 659 | uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" 660 | version = "0.12.10" 661 | 662 | [[deps.Compat]] 663 | deps = ["UUIDs"] 664 | git-tree-sha1 = "7a60c856b9fa189eb34f5f8a6f6b5529b7942957" 665 | uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" 666 | version = "4.6.1" 667 | weakdeps = ["Dates", "LinearAlgebra"] 668 | 669 | [deps.Compat.extensions] 670 | CompatLinearAlgebraExt = "LinearAlgebra" 671 | 672 | [[deps.CompilerSupportLibraries_jll]] 673 | deps = ["Artifacts", "Libdl"] 674 | uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" 675 | version = "1.0.2+0" 676 | 677 | [[deps.CompositionsBase]] 678 | git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" 679 | uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" 680 | version = "0.1.2" 681 | 682 | [deps.CompositionsBase.extensions] 683 | CompositionsBaseInverseFunctionsExt = "InverseFunctions" 684 | 685 | [deps.CompositionsBase.weakdeps] 686 | InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" 687 | 688 | [[deps.ComputationalResources]] 689 | git-tree-sha1 = "52cb3ec90e8a8bea0e62e275ba577ad0f74821f7" 690 | uuid = "ed09eef8-17a6-5b46-8889-db040fac31e3" 691 | version = "0.3.2" 692 | 693 | [[deps.ConcurrentUtilities]] 694 | deps = ["Serialization", "Sockets"] 695 | git-tree-sha1 = "96d823b94ba8d187a6d8f0826e731195a74b90e9" 696 | uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" 697 | version = "2.2.0" 698 | 699 | [[deps.ConstructionBase]] 700 | deps = ["LinearAlgebra"] 701 | git-tree-sha1 = "738fec4d684a9a6ee9598a8bfee305b26831f28c" 702 | uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" 703 | version = "1.5.2" 704 | weakdeps = ["IntervalSets", "StaticArrays"] 705 | 706 | [deps.ConstructionBase.extensions] 707 | ConstructionBaseIntervalSetsExt = "IntervalSets" 708 | ConstructionBaseStaticArraysExt = "StaticArrays" 709 | 710 | [[deps.ContextVariablesX]] 711 | deps = ["Compat", "Logging", "UUIDs"] 712 | git-tree-sha1 = "25cc3803f1030ab855e383129dcd3dc294e322cc" 713 | uuid = "6add18c4-b38d-439d-96f6-d6bc489c04c5" 714 | version = "0.1.3" 715 | 716 | [[deps.Contour]] 717 | git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" 718 | uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" 719 | version = "0.6.2" 720 | 721 | [[deps.CoordinateTransformations]] 722 | deps = ["LinearAlgebra", "StaticArrays"] 723 | git-tree-sha1 = "f9d7112bfff8a19a3a4ea4e03a8e6a91fe8456bf" 724 | uuid = "150eb455-5306-5404-9cee-2592286d6298" 725 | version = "0.6.3" 726 | 727 | [[deps.CpuId]] 728 | deps = ["Markdown"] 729 | git-tree-sha1 = "fcbb72b032692610bfbdb15018ac16a36cf2e406" 730 | uuid = "adafc99b-e345-5852-983c-f28acb93d879" 731 | version = "0.3.1" 732 | 733 | [[deps.CustomUnitRanges]] 734 | git-tree-sha1 = "1a3f97f907e6dd8983b744d2642651bb162a3f7a" 735 | uuid = "dc8bdbbb-1ca9-579f-8c36-e416f6a65cce" 736 | version = "1.0.2" 737 | 738 | [[deps.DataAPI]] 739 | git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" 740 | uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" 741 | version = "1.15.0" 742 | 743 | [[deps.DataStructures]] 744 | deps = ["Compat", "InteractiveUtils", "OrderedCollections"] 745 | git-tree-sha1 = "d1fff3a548102f48987a52a2e0d114fa97d730f0" 746 | uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" 747 | version = "0.18.13" 748 | 749 | [[deps.DataValueInterfaces]] 750 | git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" 751 | uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" 752 | version = "1.0.0" 753 | 754 | [[deps.Dates]] 755 | deps = ["Printf"] 756 | uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" 757 | 758 | [[deps.DefineSingletons]] 759 | git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c" 760 | uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" 761 | version = "0.1.2" 762 | 763 | [[deps.DelimitedFiles]] 764 | deps = ["Mmap"] 765 | git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" 766 | uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" 767 | version = "1.9.1" 768 | 769 | [[deps.Distances]] 770 | deps = ["LinearAlgebra", "SparseArrays", "Statistics", "StatsAPI"] 771 | git-tree-sha1 = "49eba9ad9f7ead780bfb7ee319f962c811c6d3b2" 772 | uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" 773 | version = "0.10.8" 774 | 775 | [[deps.Distributed]] 776 | deps = ["Random", "Serialization", "Sockets"] 777 | uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" 778 | 779 | [[deps.DocStringExtensions]] 780 | deps = ["LibGit2"] 781 | git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" 782 | uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" 783 | version = "0.9.3" 784 | 785 | [[deps.Downloads]] 786 | deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] 787 | uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" 788 | version = "1.6.0" 789 | 790 | [[deps.Expat_jll]] 791 | deps = ["Artifacts", "JLLWrappers", "Libdl"] 792 | git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" 793 | uuid = "2e619515-83b5-522b-bb60-26c02a35a201" 794 | version = "2.5.0+0" 795 | 796 | [[deps.FFMPEG]] 797 | deps = ["FFMPEG_jll"] 798 | git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" 799 | uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" 800 | version = "0.4.1" 801 | 802 | [[deps.FFMPEG_jll]] 803 | 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"] 804 | git-tree-sha1 = "74faea50c1d007c85837327f6775bea60b5492dd" 805 | uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" 806 | version = "4.4.2+2" 807 | 808 | [[deps.FFTViews]] 809 | deps = ["CustomUnitRanges", "FFTW"] 810 | git-tree-sha1 = "cbdf14d1e8c7c8aacbe8b19862e0179fd08321c2" 811 | uuid = "4f61f5a4-77b1-5117-aa51-3ab5ef4ef0cd" 812 | version = "0.3.2" 813 | 814 | [[deps.FFTW]] 815 | deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] 816 | git-tree-sha1 = "90630efff0894f8142308e334473eba54c433549" 817 | uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" 818 | version = "1.5.0" 819 | 820 | [[deps.FFTW_jll]] 821 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 822 | git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" 823 | uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" 824 | version = "3.3.10+0" 825 | 826 | [[deps.FLoops]] 827 | deps = ["BangBang", "Compat", "FLoopsBase", "InitialValues", "JuliaVariables", "MLStyle", "Serialization", "Setfield", "Transducers"] 828 | git-tree-sha1 = "ffb97765602e3cbe59a0589d237bf07f245a8576" 829 | uuid = "cc61a311-1640-44b5-9fba-1b764f453329" 830 | version = "0.2.1" 831 | 832 | [[deps.FLoopsBase]] 833 | deps = ["ContextVariablesX"] 834 | git-tree-sha1 = "656f7a6859be8673bf1f35da5670246b923964f7" 835 | uuid = "b9860ae5-e623-471e-878b-f6a53c775ea6" 836 | version = "0.1.1" 837 | 838 | [[deps.FileIO]] 839 | deps = ["Pkg", "Requires", "UUIDs"] 840 | git-tree-sha1 = "299dc33549f68299137e51e6d49a13b5b1da9673" 841 | uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" 842 | version = "1.16.1" 843 | 844 | [[deps.FileWatching]] 845 | uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" 846 | 847 | [[deps.FixedPointNumbers]] 848 | deps = ["Statistics"] 849 | git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" 850 | uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" 851 | version = "0.8.4" 852 | 853 | [[deps.Fontconfig_jll]] 854 | deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] 855 | git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" 856 | uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" 857 | version = "2.13.93+0" 858 | 859 | [[deps.Formatting]] 860 | deps = ["Printf"] 861 | git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" 862 | uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" 863 | version = "0.4.2" 864 | 865 | [[deps.FourierTools]] 866 | deps = ["ChainRulesCore", "FFTW", "IndexFunArrays", "LinearAlgebra", "NDTools", "NFFT", "PaddedViews", "Reexport", "ShiftedArrays"] 867 | git-tree-sha1 = "8967a9d259ab1c50e3b3abc6b77d3e3d829d2e6d" 868 | uuid = "b18b359b-aebc-45ac-a139-9c0ccbb2871e" 869 | version = "0.4.2" 870 | 871 | [[deps.FreeType2_jll]] 872 | deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] 873 | git-tree-sha1 = "87eb71354d8ec1a96d4a7636bd57a7347dde3ef9" 874 | uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" 875 | version = "2.10.4+0" 876 | 877 | [[deps.FriBidi_jll]] 878 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 879 | git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" 880 | uuid = "559328eb-81f9-559d-9380-de523a88c83c" 881 | version = "1.0.10+0" 882 | 883 | [[deps.Future]] 884 | deps = ["Random"] 885 | uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" 886 | 887 | [[deps.GLFW_jll]] 888 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pkg", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] 889 | git-tree-sha1 = "d972031d28c8c8d9d7b41a536ad7bb0c2579caca" 890 | uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" 891 | version = "3.3.8+0" 892 | 893 | [[deps.GR]] 894 | deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] 895 | git-tree-sha1 = "8b8a2fd4536ece6e554168c21860b6820a8a83db" 896 | uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" 897 | version = "0.72.7" 898 | 899 | [[deps.GR_jll]] 900 | deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt5Base_jll", "Zlib_jll", "libpng_jll"] 901 | git-tree-sha1 = "19fad9cd9ae44847fe842558a744748084a722d1" 902 | uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" 903 | version = "0.72.7+0" 904 | 905 | [[deps.Gettext_jll]] 906 | deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] 907 | git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" 908 | uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" 909 | version = "0.21.0+0" 910 | 911 | [[deps.Ghostscript_jll]] 912 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 913 | git-tree-sha1 = "43ba3d3c82c18d88471cfd2924931658838c9d8f" 914 | uuid = "61579ee1-b43e-5ca0-a5da-69d92c66a64b" 915 | version = "9.55.0+4" 916 | 917 | [[deps.Glib_jll]] 918 | deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Pkg", "Zlib_jll"] 919 | git-tree-sha1 = "d3b3624125c1474292d0d8ed0f65554ac37ddb23" 920 | uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" 921 | version = "2.74.0+2" 922 | 923 | [[deps.Graphics]] 924 | deps = ["Colors", "LinearAlgebra", "NaNMath"] 925 | git-tree-sha1 = "d61890399bc535850c4bf08e4e0d3a7ad0f21cbd" 926 | uuid = "a2bd30eb-e257-5431-a919-1863eab51364" 927 | version = "1.1.2" 928 | 929 | [[deps.Graphite2_jll]] 930 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 931 | git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" 932 | uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" 933 | version = "1.3.14+0" 934 | 935 | [[deps.Grisu]] 936 | git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" 937 | uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" 938 | version = "1.0.2" 939 | 940 | [[deps.HTTP]] 941 | deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] 942 | git-tree-sha1 = "5e77dbf117412d4f164a464d610ee6050cc75272" 943 | uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" 944 | version = "1.9.6" 945 | 946 | [[deps.HarfBuzz_jll]] 947 | deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] 948 | git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" 949 | uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" 950 | version = "2.8.1+1" 951 | 952 | [[deps.HostCPUFeatures]] 953 | deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] 954 | git-tree-sha1 = "d38bd0d9759e3c6cfa19bdccc314eccf8ce596cc" 955 | uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" 956 | version = "0.1.15" 957 | 958 | [[deps.Hyperscript]] 959 | deps = ["Test"] 960 | git-tree-sha1 = "8d511d5b81240fc8e6802386302675bdf47737b9" 961 | uuid = "47d2ed2b-36de-50cf-bf87-49c2cf4b8b91" 962 | version = "0.0.4" 963 | 964 | [[deps.HypertextLiteral]] 965 | deps = ["Tricks"] 966 | git-tree-sha1 = "c47c5fa4c5308f27ccaac35504858d8914e102f9" 967 | uuid = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2" 968 | version = "0.9.4" 969 | 970 | [[deps.IOCapture]] 971 | deps = ["Logging", "Random"] 972 | git-tree-sha1 = "d75853a0bdbfb1ac815478bacd89cd27b550ace6" 973 | uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" 974 | version = "0.2.3" 975 | 976 | [[deps.IfElse]] 977 | git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" 978 | uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" 979 | version = "0.1.1" 980 | 981 | [[deps.ImageAxes]] 982 | deps = ["AxisArrays", "ImageBase", "ImageCore", "Reexport", "SimpleTraits"] 983 | git-tree-sha1 = "c54b581a83008dc7f292e205f4c409ab5caa0f04" 984 | uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac" 985 | version = "0.6.10" 986 | 987 | [[deps.ImageBase]] 988 | deps = ["ImageCore", "Reexport"] 989 | git-tree-sha1 = "b51bb8cae22c66d0f6357e3bcb6363145ef20835" 990 | uuid = "c817782e-172a-44cc-b673-b171935fbb9e" 991 | version = "0.1.5" 992 | 993 | [[deps.ImageContrastAdjustment]] 994 | deps = ["ImageCore", "ImageTransformations", "Parameters"] 995 | git-tree-sha1 = "0d75cafa80cf22026cea21a8e6cf965295003edc" 996 | uuid = "f332f351-ec65-5f6a-b3d1-319c6670881a" 997 | version = "0.3.10" 998 | 999 | [[deps.ImageCore]] 1000 | deps = ["AbstractFFTs", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Graphics", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "Reexport"] 1001 | git-tree-sha1 = "acf614720ef026d38400b3817614c45882d75500" 1002 | uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" 1003 | version = "0.9.4" 1004 | 1005 | [[deps.ImageDistances]] 1006 | deps = ["Distances", "ImageCore", "ImageMorphology", "LinearAlgebra", "Statistics"] 1007 | git-tree-sha1 = "b1798a4a6b9aafb530f8f0c4a7b2eb5501e2f2a3" 1008 | uuid = "51556ac3-7006-55f5-8cb3-34580c88182d" 1009 | version = "0.2.16" 1010 | 1011 | [[deps.ImageFiltering]] 1012 | deps = ["CatIndices", "ComputationalResources", "DataStructures", "FFTViews", "FFTW", "ImageBase", "ImageCore", "LinearAlgebra", "OffsetArrays", "Reexport", "SnoopPrecompile", "SparseArrays", "StaticArrays", "Statistics", "TiledIteration"] 1013 | git-tree-sha1 = "d90867cbe037730a73c9a9499b3591eedbe387a0" 1014 | uuid = "6a3955dd-da59-5b1f-98d4-e7296123deb5" 1015 | version = "0.7.5" 1016 | 1017 | [[deps.ImageIO]] 1018 | deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] 1019 | git-tree-sha1 = "342f789fd041a55166764c351da1710db97ce0e0" 1020 | uuid = "82e4d734-157c-48bb-816b-45c225c6df19" 1021 | version = "0.6.6" 1022 | 1023 | [[deps.ImageMagick]] 1024 | deps = ["FileIO", "ImageCore", "ImageMagick_jll", "InteractiveUtils", "Libdl", "Pkg", "Random"] 1025 | git-tree-sha1 = "5bc1cb62e0c5f1005868358db0692c994c3a13c6" 1026 | uuid = "6218d12a-5da1-5696-b52f-db25d2ecc6d1" 1027 | version = "1.2.1" 1028 | 1029 | [[deps.ImageMagick_jll]] 1030 | deps = ["Artifacts", "Ghostscript_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "OpenJpeg_jll", "Pkg", "Zlib_jll", "libpng_jll"] 1031 | git-tree-sha1 = "124626988534986113cfd876e3093e4a03890f58" 1032 | uuid = "c73af94c-d91f-53ed-93a7-00f77d67a9d7" 1033 | version = "6.9.12+3" 1034 | 1035 | [[deps.ImageMetadata]] 1036 | deps = ["AxisArrays", "ImageAxes", "ImageBase", "ImageCore"] 1037 | git-tree-sha1 = "36cbaebed194b292590cba2593da27b34763804a" 1038 | uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49" 1039 | version = "0.9.8" 1040 | 1041 | [[deps.ImageMorphology]] 1042 | deps = ["DataStructures", "ImageCore", "LinearAlgebra", "LoopVectorization", "OffsetArrays", "Requires", "TiledIteration"] 1043 | git-tree-sha1 = "d1dbe4a987f7eea2ccc183720f87f1bea89c5cde" 1044 | uuid = "787d08f9-d448-5407-9aad-5290dd7ab264" 1045 | version = "0.4.4" 1046 | 1047 | [[deps.ImageQualityIndexes]] 1048 | deps = ["ImageContrastAdjustment", "ImageCore", "ImageDistances", "ImageFiltering", "LazyModules", "OffsetArrays", "PrecompileTools", "Statistics"] 1049 | git-tree-sha1 = "bfb3a198ef5c96582b8095f8a6eece8937c8ceb3" 1050 | uuid = "2996bd0c-7a13-11e9-2da2-2f5ce47296a9" 1051 | version = "0.3.6" 1052 | 1053 | [[deps.ImageShow]] 1054 | deps = ["Base64", "ColorSchemes", "FileIO", "ImageBase", "ImageCore", "OffsetArrays", "StackViews"] 1055 | git-tree-sha1 = "ce28c68c900eed3cdbfa418be66ed053e54d4f56" 1056 | uuid = "4e3cecfd-b093-5904-9786-8bbb286a6a31" 1057 | version = "0.3.7" 1058 | 1059 | [[deps.ImageTransformations]] 1060 | deps = ["AxisAlgorithms", "ColorVectorSpace", "CoordinateTransformations", "ImageBase", "ImageCore", "Interpolations", "OffsetArrays", "Rotations", "StaticArrays"] 1061 | git-tree-sha1 = "8717482f4a2108c9358e5c3ca903d3a6113badc9" 1062 | uuid = "02fcd773-0e25-5acc-982a-7f6622650795" 1063 | version = "0.9.5" 1064 | 1065 | [[deps.Imath_jll]] 1066 | deps = ["Artifacts", "JLLWrappers", "Libdl"] 1067 | git-tree-sha1 = "3d09a9f60edf77f8a4d99f9e015e8fbf9989605d" 1068 | uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1" 1069 | version = "3.1.7+0" 1070 | 1071 | [[deps.IndexFunArrays]] 1072 | deps = ["ChainRulesCore", "LinearAlgebra"] 1073 | git-tree-sha1 = "e66a2aeb6d5814015004080e5203dfff44d2856f" 1074 | uuid = "613c443e-d742-454e-bfc6-1d7f8dd76566" 1075 | version = "0.2.6" 1076 | 1077 | [[deps.IndirectArrays]] 1078 | git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f" 1079 | uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" 1080 | version = "1.0.0" 1081 | 1082 | [[deps.Inflate]] 1083 | git-tree-sha1 = "5cd07aab533df5170988219191dfad0519391428" 1084 | uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" 1085 | version = "0.1.3" 1086 | 1087 | [[deps.InitialValues]] 1088 | git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3" 1089 | uuid = "22cec73e-a1b8-11e9-2c92-598750a2cf9c" 1090 | version = "0.3.1" 1091 | 1092 | [[deps.IntelOpenMP_jll]] 1093 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1094 | git-tree-sha1 = "0cb9352ef2e01574eeebdb102948a58740dcaf83" 1095 | uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" 1096 | version = "2023.1.0+0" 1097 | 1098 | [[deps.InteractiveUtils]] 1099 | deps = ["Markdown"] 1100 | uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" 1101 | 1102 | [[deps.Interpolations]] 1103 | deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] 1104 | git-tree-sha1 = "721ec2cf720536ad005cb38f50dbba7b02419a15" 1105 | uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" 1106 | version = "0.14.7" 1107 | 1108 | [[deps.IntervalSets]] 1109 | deps = ["Dates", "Random", "Statistics"] 1110 | git-tree-sha1 = "16c0cc91853084cb5f58a78bd209513900206ce6" 1111 | uuid = "8197267c-284f-5f27-9208-e0e47529a953" 1112 | version = "0.7.4" 1113 | 1114 | [[deps.IrrationalConstants]] 1115 | git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" 1116 | uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" 1117 | version = "0.2.2" 1118 | 1119 | [[deps.IterTools]] 1120 | git-tree-sha1 = "4ced6667f9974fc5c5943fa5e2ef1ca43ea9e450" 1121 | uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" 1122 | version = "1.8.0" 1123 | 1124 | [[deps.IteratorInterfaceExtensions]] 1125 | git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" 1126 | uuid = "82899510-4779-5014-852e-03e436cf321d" 1127 | version = "1.0.0" 1128 | 1129 | [[deps.JLFzf]] 1130 | deps = ["Pipe", "REPL", "Random", "fzf_jll"] 1131 | git-tree-sha1 = "f377670cda23b6b7c1c0b3893e37451c5c1a2185" 1132 | uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" 1133 | version = "0.1.5" 1134 | 1135 | [[deps.JLLWrappers]] 1136 | deps = ["Preferences"] 1137 | git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1" 1138 | uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" 1139 | version = "1.4.1" 1140 | 1141 | [[deps.JSON]] 1142 | deps = ["Dates", "Mmap", "Parsers", "Unicode"] 1143 | git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" 1144 | uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" 1145 | version = "0.21.4" 1146 | 1147 | [[deps.JpegTurbo]] 1148 | deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] 1149 | git-tree-sha1 = "106b6aa272f294ba47e96bd3acbabdc0407b5c60" 1150 | uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" 1151 | version = "0.1.2" 1152 | 1153 | [[deps.JpegTurbo_jll]] 1154 | deps = ["Artifacts", "JLLWrappers", "Libdl"] 1155 | git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" 1156 | uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" 1157 | version = "2.1.91+0" 1158 | 1159 | [[deps.JuliaVariables]] 1160 | deps = ["MLStyle", "NameResolution"] 1161 | git-tree-sha1 = "49fb3cb53362ddadb4415e9b73926d6b40709e70" 1162 | uuid = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec" 1163 | version = "0.2.4" 1164 | 1165 | [[deps.LAME_jll]] 1166 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1167 | git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" 1168 | uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" 1169 | version = "3.100.1+0" 1170 | 1171 | [[deps.LERC_jll]] 1172 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1173 | git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" 1174 | uuid = "88015f11-f218-50d7-93a8-a6af411a945d" 1175 | version = "3.0.0+1" 1176 | 1177 | [[deps.LLVMOpenMP_jll]] 1178 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1179 | git-tree-sha1 = "f689897ccbe049adb19a065c495e75f372ecd42b" 1180 | uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" 1181 | version = "15.0.4+0" 1182 | 1183 | [[deps.LZO_jll]] 1184 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1185 | git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" 1186 | uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" 1187 | version = "2.10.1+0" 1188 | 1189 | [[deps.LaTeXStrings]] 1190 | git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" 1191 | uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" 1192 | version = "1.3.0" 1193 | 1194 | [[deps.Latexify]] 1195 | deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] 1196 | git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" 1197 | uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" 1198 | version = "0.16.1" 1199 | 1200 | [deps.Latexify.extensions] 1201 | DataFramesExt = "DataFrames" 1202 | SymEngineExt = "SymEngine" 1203 | 1204 | [deps.Latexify.weakdeps] 1205 | DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" 1206 | SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" 1207 | 1208 | [[deps.LayoutPointers]] 1209 | deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] 1210 | git-tree-sha1 = "88b8f66b604da079a627b6fb2860d3704a6729a1" 1211 | uuid = "10f19ff3-798f-405d-979b-55457f8fc047" 1212 | version = "0.1.14" 1213 | 1214 | [[deps.LazyArtifacts]] 1215 | deps = ["Artifacts", "Pkg"] 1216 | uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" 1217 | 1218 | [[deps.LazyModules]] 1219 | git-tree-sha1 = "a560dd966b386ac9ae60bdd3a3d3a326062d3c3e" 1220 | uuid = "8cdb02fc-e678-4876-92c5-9defec4f444e" 1221 | version = "0.3.1" 1222 | 1223 | [[deps.LibCURL]] 1224 | deps = ["LibCURL_jll", "MozillaCACerts_jll"] 1225 | uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" 1226 | version = "0.6.3" 1227 | 1228 | [[deps.LibCURL_jll]] 1229 | deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] 1230 | uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" 1231 | version = "7.84.0+0" 1232 | 1233 | [[deps.LibGit2]] 1234 | deps = ["Base64", "NetworkOptions", "Printf", "SHA"] 1235 | uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" 1236 | 1237 | [[deps.LibSSH2_jll]] 1238 | deps = ["Artifacts", "Libdl", "MbedTLS_jll"] 1239 | uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" 1240 | version = "1.10.2+0" 1241 | 1242 | [[deps.Libdl]] 1243 | uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" 1244 | 1245 | [[deps.Libffi_jll]] 1246 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1247 | git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" 1248 | uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" 1249 | version = "3.2.2+1" 1250 | 1251 | [[deps.Libgcrypt_jll]] 1252 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] 1253 | git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" 1254 | uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" 1255 | version = "1.8.7+0" 1256 | 1257 | [[deps.Libglvnd_jll]] 1258 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] 1259 | git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" 1260 | uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" 1261 | version = "1.6.0+0" 1262 | 1263 | [[deps.Libgpg_error_jll]] 1264 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1265 | git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" 1266 | uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" 1267 | version = "1.42.0+0" 1268 | 1269 | [[deps.Libiconv_jll]] 1270 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1271 | git-tree-sha1 = "c7cb1f5d892775ba13767a87c7ada0b980ea0a71" 1272 | uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" 1273 | version = "1.16.1+2" 1274 | 1275 | [[deps.Libmount_jll]] 1276 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1277 | git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" 1278 | uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" 1279 | version = "2.35.0+0" 1280 | 1281 | [[deps.Libtiff_jll]] 1282 | deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "Pkg", "Zlib_jll", "Zstd_jll"] 1283 | git-tree-sha1 = "3eb79b0ca5764d4799c06699573fd8f533259713" 1284 | uuid = "89763e89-9b03-5906-acba-b20f662cd828" 1285 | version = "4.4.0+0" 1286 | 1287 | [[deps.Libuuid_jll]] 1288 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1289 | git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" 1290 | uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" 1291 | version = "2.36.0+0" 1292 | 1293 | [[deps.LinearAlgebra]] 1294 | deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] 1295 | uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" 1296 | 1297 | [[deps.LittleCMS_jll]] 1298 | deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pkg"] 1299 | git-tree-sha1 = "110897e7db2d6836be22c18bffd9422218ee6284" 1300 | uuid = "d3a379c0-f9a3-5b72-a4c0-6bf4d2e8af0f" 1301 | version = "2.12.0+0" 1302 | 1303 | [[deps.LogExpFunctions]] 1304 | deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] 1305 | git-tree-sha1 = "c3ce8e7420b3a6e071e0fe4745f5d4300e37b13f" 1306 | uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" 1307 | version = "0.3.24" 1308 | 1309 | [deps.LogExpFunctions.extensions] 1310 | LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" 1311 | LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" 1312 | LogExpFunctionsInverseFunctionsExt = "InverseFunctions" 1313 | 1314 | [deps.LogExpFunctions.weakdeps] 1315 | ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" 1316 | ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" 1317 | InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" 1318 | 1319 | [[deps.Logging]] 1320 | uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" 1321 | 1322 | [[deps.LoggingExtras]] 1323 | deps = ["Dates", "Logging"] 1324 | git-tree-sha1 = "cedb76b37bc5a6c702ade66be44f831fa23c681e" 1325 | uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" 1326 | version = "1.0.0" 1327 | 1328 | [[deps.LoopVectorization]] 1329 | deps = ["ArrayInterface", "ArrayInterfaceCore", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] 1330 | git-tree-sha1 = "b6b453635656ea4b245d61d354516284d6fc1962" 1331 | uuid = "bdcacae8-1622-11e9-2a5c-532679323890" 1332 | version = "0.12.160" 1333 | 1334 | [deps.LoopVectorization.extensions] 1335 | ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] 1336 | SpecialFunctionsExt = "SpecialFunctions" 1337 | 1338 | [deps.LoopVectorization.weakdeps] 1339 | ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" 1340 | ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" 1341 | SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" 1342 | 1343 | [[deps.MIMEs]] 1344 | git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" 1345 | uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" 1346 | version = "0.1.4" 1347 | 1348 | [[deps.MKL_jll]] 1349 | deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] 1350 | git-tree-sha1 = "2ce8695e1e699b68702c03402672a69f54b8aca9" 1351 | uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" 1352 | version = "2022.2.0+0" 1353 | 1354 | [[deps.MLStyle]] 1355 | git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" 1356 | uuid = "d8e11817-5142-5d16-987a-aa16d5891078" 1357 | version = "0.4.17" 1358 | 1359 | [[deps.MacroTools]] 1360 | deps = ["Markdown", "Random"] 1361 | git-tree-sha1 = "42324d08725e200c23d4dfb549e0d5d89dede2d2" 1362 | uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" 1363 | version = "0.5.10" 1364 | 1365 | [[deps.ManualMemory]] 1366 | git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" 1367 | uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" 1368 | version = "0.1.8" 1369 | 1370 | [[deps.MappedArrays]] 1371 | git-tree-sha1 = "2dab0221fe2b0f2cb6754eaa743cc266339f527e" 1372 | uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" 1373 | version = "0.4.2" 1374 | 1375 | [[deps.Markdown]] 1376 | deps = ["Base64"] 1377 | uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" 1378 | 1379 | [[deps.MbedTLS]] 1380 | deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "Random", "Sockets"] 1381 | git-tree-sha1 = "03a9b9718f5682ecb107ac9f7308991db4ce395b" 1382 | uuid = "739be429-bea8-5141-9913-cc70e7f3736d" 1383 | version = "1.1.7" 1384 | 1385 | [[deps.MbedTLS_jll]] 1386 | deps = ["Artifacts", "Libdl"] 1387 | uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" 1388 | version = "2.28.2+0" 1389 | 1390 | [[deps.Measures]] 1391 | git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" 1392 | uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" 1393 | version = "0.3.2" 1394 | 1395 | [[deps.Memoize]] 1396 | deps = ["MacroTools"] 1397 | git-tree-sha1 = "2b1dfcba103de714d31c033b5dacc2e4a12c7caa" 1398 | uuid = "c03570c3-d221-55d1-a50c-7939bbd78826" 1399 | version = "0.4.4" 1400 | 1401 | [[deps.MicroCollections]] 1402 | deps = ["BangBang", "InitialValues", "Setfield"] 1403 | git-tree-sha1 = "629afd7d10dbc6935ec59b32daeb33bc4460a42e" 1404 | uuid = "128add7d-3638-4c79-886c-908ea0c25c34" 1405 | version = "0.1.4" 1406 | 1407 | [[deps.Missings]] 1408 | deps = ["DataAPI"] 1409 | git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" 1410 | uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" 1411 | version = "1.1.0" 1412 | 1413 | [[deps.Mmap]] 1414 | uuid = "a63ad114-7e13-5084-954f-fe012c677804" 1415 | 1416 | [[deps.MosaicViews]] 1417 | deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] 1418 | git-tree-sha1 = "7b86a5d4d70a9f5cdf2dacb3cbe6d251d1a61dbe" 1419 | uuid = "e94cdb99-869f-56ef-bcf0-1ae2bcbe0389" 1420 | version = "0.3.4" 1421 | 1422 | [[deps.MozillaCACerts_jll]] 1423 | uuid = "14a3606d-f60d-562e-9121-12d972cd8159" 1424 | version = "2022.10.11" 1425 | 1426 | [[deps.NDTools]] 1427 | deps = ["LinearAlgebra", "OffsetArrays", "PaddedViews", "Random", "Statistics"] 1428 | git-tree-sha1 = "10e35b25261dfd361045e16afa9db5b14a4c1184" 1429 | uuid = "98581153-e998-4eef-8d0d-5ec2c052313d" 1430 | version = "0.5.2" 1431 | 1432 | [[deps.NFFT]] 1433 | deps = ["AbstractNFFTs", "BasicInterpolators", "Distributed", "FFTW", "FLoops", "LinearAlgebra", "Printf", "Random", "Reexport", "SnoopPrecompile", "SparseArrays", "SpecialFunctions"] 1434 | git-tree-sha1 = "93a5f32dd6cf09456b0b81afcb8fc29f06535ffd" 1435 | uuid = "efe261a4-0d2b-5849-be55-fc731d526b0d" 1436 | version = "0.13.3" 1437 | 1438 | [[deps.NaNMath]] 1439 | deps = ["OpenLibm_jll"] 1440 | git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" 1441 | uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" 1442 | version = "1.0.2" 1443 | 1444 | [[deps.NameResolution]] 1445 | deps = ["PrettyPrint"] 1446 | git-tree-sha1 = "1a0fa0e9613f46c9b8c11eee38ebb4f590013c5e" 1447 | uuid = "71a1bf82-56d0-4bbc-8a3c-48b961074391" 1448 | version = "0.1.5" 1449 | 1450 | [[deps.Netpbm]] 1451 | deps = ["FileIO", "ImageCore", "ImageMetadata"] 1452 | git-tree-sha1 = "5ae7ca23e13855b3aba94550f26146c01d259267" 1453 | uuid = "f09324ee-3d7c-5217-9330-fc30815ba969" 1454 | version = "1.1.0" 1455 | 1456 | [[deps.NetworkOptions]] 1457 | uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" 1458 | version = "1.2.0" 1459 | 1460 | [[deps.OffsetArrays]] 1461 | deps = ["Adapt"] 1462 | git-tree-sha1 = "82d7c9e310fe55aa54996e6f7f94674e2a38fcb4" 1463 | uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" 1464 | version = "1.12.9" 1465 | 1466 | [[deps.Ogg_jll]] 1467 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1468 | git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" 1469 | uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" 1470 | version = "1.3.5+1" 1471 | 1472 | [[deps.OpenBLAS_jll]] 1473 | deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] 1474 | uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" 1475 | version = "0.3.21+4" 1476 | 1477 | [[deps.OpenEXR]] 1478 | deps = ["Colors", "FileIO", "OpenEXR_jll"] 1479 | git-tree-sha1 = "327f53360fdb54df7ecd01e96ef1983536d1e633" 1480 | uuid = "52e1d378-f018-4a11-a4be-720524705ac7" 1481 | version = "0.3.2" 1482 | 1483 | [[deps.OpenEXR_jll]] 1484 | deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Zlib_jll"] 1485 | git-tree-sha1 = "a4ca623df1ae99d09bc9868b008262d0c0ac1e4f" 1486 | uuid = "18a262bb-aa17-5467-a713-aee519bc75cb" 1487 | version = "3.1.4+0" 1488 | 1489 | [[deps.OpenJpeg_jll]] 1490 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libtiff_jll", "LittleCMS_jll", "Pkg", "libpng_jll"] 1491 | git-tree-sha1 = "76374b6e7f632c130e78100b166e5a48464256f8" 1492 | uuid = "643b3616-a352-519d-856d-80112ee9badc" 1493 | version = "2.4.0+0" 1494 | 1495 | [[deps.OpenLibm_jll]] 1496 | deps = ["Artifacts", "Libdl"] 1497 | uuid = "05823500-19ac-5b8b-9628-191a04bc5112" 1498 | version = "0.8.1+0" 1499 | 1500 | [[deps.OpenSSL]] 1501 | deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] 1502 | git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" 1503 | uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" 1504 | version = "1.4.1" 1505 | 1506 | [[deps.OpenSSL_jll]] 1507 | deps = ["Artifacts", "JLLWrappers", "Libdl"] 1508 | git-tree-sha1 = "1aa4b74f80b01c6bc2b89992b861b5f210e665b5" 1509 | uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" 1510 | version = "1.1.21+0" 1511 | 1512 | [[deps.OpenSpecFun_jll]] 1513 | deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] 1514 | git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" 1515 | uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" 1516 | version = "0.5.5+0" 1517 | 1518 | [[deps.Opus_jll]] 1519 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1520 | git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" 1521 | uuid = "91d4177d-7536-5919-b921-800302f37372" 1522 | version = "1.3.2+0" 1523 | 1524 | [[deps.OrderedCollections]] 1525 | git-tree-sha1 = "d321bf2de576bf25ec4d3e4360faca399afca282" 1526 | uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" 1527 | version = "1.6.0" 1528 | 1529 | [[deps.PCRE2_jll]] 1530 | deps = ["Artifacts", "Libdl"] 1531 | uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" 1532 | version = "10.42.0+0" 1533 | 1534 | [[deps.PNGFiles]] 1535 | deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] 1536 | git-tree-sha1 = "f809158b27eba0c18c269cf2a2be6ed751d3e81d" 1537 | uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" 1538 | version = "0.3.17" 1539 | 1540 | [[deps.PaddedViews]] 1541 | deps = ["OffsetArrays"] 1542 | git-tree-sha1 = "0fac6313486baae819364c52b4f483450a9d793f" 1543 | uuid = "5432bcbf-9aad-5242-b902-cca2824c8663" 1544 | version = "0.5.12" 1545 | 1546 | [[deps.Parameters]] 1547 | deps = ["OrderedCollections", "UnPack"] 1548 | git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" 1549 | uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" 1550 | version = "0.12.3" 1551 | 1552 | [[deps.Parsers]] 1553 | deps = ["Dates", "PrecompileTools", "UUIDs"] 1554 | git-tree-sha1 = "5a6ab2f64388fd1175effdf73fe5933ef1e0bac0" 1555 | uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" 1556 | version = "2.7.0" 1557 | 1558 | [[deps.Pipe]] 1559 | git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" 1560 | uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" 1561 | version = "1.3.0" 1562 | 1563 | [[deps.Pixman_jll]] 1564 | deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] 1565 | git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" 1566 | uuid = "30392449-352a-5448-841d-b1acce4e97dc" 1567 | version = "0.42.2+0" 1568 | 1569 | [[deps.Pkg]] 1570 | deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] 1571 | uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" 1572 | version = "1.9.0" 1573 | 1574 | [[deps.PkgVersion]] 1575 | deps = ["Pkg"] 1576 | git-tree-sha1 = "f6cf8e7944e50901594838951729a1861e668cb8" 1577 | uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" 1578 | version = "0.3.2" 1579 | 1580 | [[deps.PlotThemes]] 1581 | deps = ["PlotUtils", "Statistics"] 1582 | git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" 1583 | uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" 1584 | version = "3.1.0" 1585 | 1586 | [[deps.PlotUtils]] 1587 | deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] 1588 | git-tree-sha1 = "f92e1315dadf8c46561fb9396e525f7200cdc227" 1589 | uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" 1590 | version = "1.3.5" 1591 | 1592 | [[deps.Plots]] 1593 | deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Preferences", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] 1594 | git-tree-sha1 = "75ca67b2c6512ad2d0c767a7cfc55e75075f8bbc" 1595 | uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" 1596 | version = "1.38.16" 1597 | 1598 | [deps.Plots.extensions] 1599 | FileIOExt = "FileIO" 1600 | GeometryBasicsExt = "GeometryBasics" 1601 | IJuliaExt = "IJulia" 1602 | ImageInTerminalExt = "ImageInTerminal" 1603 | UnitfulExt = "Unitful" 1604 | 1605 | [deps.Plots.weakdeps] 1606 | FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" 1607 | GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" 1608 | IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" 1609 | ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" 1610 | Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" 1611 | 1612 | [[deps.PlutoUI]] 1613 | deps = ["AbstractPlutoDingetjes", "Base64", "ColorTypes", "Dates", "FixedPointNumbers", "Hyperscript", "HypertextLiteral", "IOCapture", "InteractiveUtils", "JSON", "Logging", "MIMEs", "Markdown", "Random", "Reexport", "URIs", "UUIDs"] 1614 | git-tree-sha1 = "b478a748be27bd2f2c73a7690da219d0844db305" 1615 | uuid = "7f904dfe-b85e-4ff6-b463-dae2292396a8" 1616 | version = "0.7.51" 1617 | 1618 | [[deps.PolyesterWeave]] 1619 | deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] 1620 | git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" 1621 | uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" 1622 | version = "0.2.1" 1623 | 1624 | [[deps.PrecompileTools]] 1625 | deps = ["Preferences"] 1626 | git-tree-sha1 = "9673d39decc5feece56ef3940e5dafba15ba0f81" 1627 | uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" 1628 | version = "1.1.2" 1629 | 1630 | [[deps.Preferences]] 1631 | deps = ["TOML"] 1632 | git-tree-sha1 = "7eb1686b4f04b82f96ed7a4ea5890a4f0c7a09f1" 1633 | uuid = "21216c6a-2e73-6563-6e65-726566657250" 1634 | version = "1.4.0" 1635 | 1636 | [[deps.PrettyPrint]] 1637 | git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" 1638 | uuid = "8162dcfd-2161-5ef2-ae6c-7681170c5f98" 1639 | version = "0.2.0" 1640 | 1641 | [[deps.Printf]] 1642 | deps = ["Unicode"] 1643 | uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" 1644 | 1645 | [[deps.ProgressMeter]] 1646 | deps = ["Distributed", "Printf"] 1647 | git-tree-sha1 = "d7a7aef8f8f2d537104f170139553b14dfe39fe9" 1648 | uuid = "92933f4c-e287-5a05-a399-4b506db050ca" 1649 | version = "1.7.2" 1650 | 1651 | [[deps.QOI]] 1652 | deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] 1653 | git-tree-sha1 = "18e8f4d1426e965c7b532ddd260599e1510d26ce" 1654 | uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65" 1655 | version = "1.0.0" 1656 | 1657 | [[deps.Qt5Base_jll]] 1658 | 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"] 1659 | git-tree-sha1 = "0c03844e2231e12fda4d0086fd7cbe4098ee8dc5" 1660 | uuid = "ea2cea3b-5b76-57ae-a6ef-0a8af62496e1" 1661 | version = "5.15.3+2" 1662 | 1663 | [[deps.Quaternions]] 1664 | deps = ["LinearAlgebra", "Random", "RealDot"] 1665 | git-tree-sha1 = "da095158bdc8eaccb7890f9884048555ab771019" 1666 | uuid = "94ee1d12-ae83-5a48-8b1c-48b8ff168ae0" 1667 | version = "0.7.4" 1668 | 1669 | [[deps.REPL]] 1670 | deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] 1671 | uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" 1672 | 1673 | [[deps.Random]] 1674 | deps = ["SHA", "Serialization"] 1675 | uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" 1676 | 1677 | [[deps.RangeArrays]] 1678 | git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5" 1679 | uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d" 1680 | version = "0.3.2" 1681 | 1682 | [[deps.Ratios]] 1683 | deps = ["Requires"] 1684 | git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b" 1685 | uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" 1686 | version = "0.4.5" 1687 | weakdeps = ["FixedPointNumbers"] 1688 | 1689 | [deps.Ratios.extensions] 1690 | RatiosFixedPointNumbersExt = "FixedPointNumbers" 1691 | 1692 | [[deps.RealDot]] 1693 | deps = ["LinearAlgebra"] 1694 | git-tree-sha1 = "9f0a1b71baaf7650f4fa8a1d168c7fb6ee41f0c9" 1695 | uuid = "c1ae055f-0cd5-4b69-90a6-9a35b1a98df9" 1696 | version = "0.1.0" 1697 | 1698 | [[deps.RecipesBase]] 1699 | deps = ["PrecompileTools"] 1700 | git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" 1701 | uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" 1702 | version = "1.3.4" 1703 | 1704 | [[deps.RecipesPipeline]] 1705 | deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] 1706 | git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" 1707 | uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" 1708 | version = "0.6.12" 1709 | 1710 | [[deps.Reexport]] 1711 | git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" 1712 | uuid = "189a3867-3050-52da-a836-e630ba90ab69" 1713 | version = "1.2.2" 1714 | 1715 | [[deps.RelocatableFolders]] 1716 | deps = ["SHA", "Scratch"] 1717 | git-tree-sha1 = "90bc7a7c96410424509e4263e277e43250c05691" 1718 | uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" 1719 | version = "1.0.0" 1720 | 1721 | [[deps.Requires]] 1722 | deps = ["UUIDs"] 1723 | git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" 1724 | uuid = "ae029012-a4dd-5104-9daa-d747884805df" 1725 | version = "1.3.0" 1726 | 1727 | [[deps.Rotations]] 1728 | deps = ["LinearAlgebra", "Quaternions", "Random", "StaticArrays"] 1729 | git-tree-sha1 = "54ccb4dbab4b1f69beb255a2c0ca5f65a9c82f08" 1730 | uuid = "6038ab10-8711-5258-84ad-4b1120ba62dc" 1731 | version = "1.5.1" 1732 | 1733 | [[deps.SHA]] 1734 | uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" 1735 | version = "0.7.0" 1736 | 1737 | [[deps.SIMDTypes]] 1738 | git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" 1739 | uuid = "94e857df-77ce-4151-89e5-788b33177be4" 1740 | version = "0.1.0" 1741 | 1742 | [[deps.SLEEFPirates]] 1743 | deps = ["IfElse", "Static", "VectorizationBase"] 1744 | git-tree-sha1 = "4b8586aece42bee682399c4c4aee95446aa5cd19" 1745 | uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" 1746 | version = "0.6.39" 1747 | 1748 | [[deps.Scratch]] 1749 | deps = ["Dates"] 1750 | git-tree-sha1 = "30449ee12237627992a99d5e30ae63e4d78cd24a" 1751 | uuid = "6c6a2e73-6563-6170-7368-637461726353" 1752 | version = "1.2.0" 1753 | 1754 | [[deps.Serialization]] 1755 | uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" 1756 | 1757 | [[deps.Setfield]] 1758 | deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] 1759 | git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" 1760 | uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" 1761 | version = "1.1.1" 1762 | 1763 | [[deps.SharedArrays]] 1764 | deps = ["Distributed", "Mmap", "Random", "Serialization"] 1765 | uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" 1766 | 1767 | [[deps.ShiftedArrays]] 1768 | git-tree-sha1 = "503688b59397b3307443af35cd953a13e8005c16" 1769 | uuid = "1277b4bf-5013-50f5-be3d-901d8477a67a" 1770 | version = "2.0.0" 1771 | 1772 | [[deps.Showoff]] 1773 | deps = ["Dates", "Grisu"] 1774 | git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" 1775 | uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" 1776 | version = "1.0.3" 1777 | 1778 | [[deps.SimpleBufferStream]] 1779 | git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" 1780 | uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" 1781 | version = "1.1.0" 1782 | 1783 | [[deps.SimpleTraits]] 1784 | deps = ["InteractiveUtils", "MacroTools"] 1785 | git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" 1786 | uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" 1787 | version = "0.9.4" 1788 | 1789 | [[deps.Sixel]] 1790 | deps = ["Dates", "FileIO", "ImageCore", "IndirectArrays", "OffsetArrays", "REPL", "libsixel_jll"] 1791 | git-tree-sha1 = "8fb59825be681d451c246a795117f317ecbcaa28" 1792 | uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47" 1793 | version = "0.1.2" 1794 | 1795 | [[deps.SnoopPrecompile]] 1796 | deps = ["Preferences"] 1797 | git-tree-sha1 = "e760a70afdcd461cf01a575947738d359234665c" 1798 | uuid = "66db9d55-30c0-4569-8b51-7e840670fc0c" 1799 | version = "1.0.3" 1800 | 1801 | [[deps.Sockets]] 1802 | uuid = "6462fe0b-24de-5631-8697-dd941f90decc" 1803 | 1804 | [[deps.SortingAlgorithms]] 1805 | deps = ["DataStructures"] 1806 | git-tree-sha1 = "c60ec5c62180f27efea3ba2908480f8055e17cee" 1807 | uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" 1808 | version = "1.1.1" 1809 | 1810 | [[deps.SparseArrays]] 1811 | deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] 1812 | uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" 1813 | 1814 | [[deps.SpecialFunctions]] 1815 | deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] 1816 | git-tree-sha1 = "ef28127915f4229c971eb43f3fc075dd3fe91880" 1817 | uuid = "276daf66-3868-5448-9aa4-cd146d93841b" 1818 | version = "2.2.0" 1819 | weakdeps = ["ChainRulesCore"] 1820 | 1821 | [deps.SpecialFunctions.extensions] 1822 | SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" 1823 | 1824 | [[deps.SplittablesBase]] 1825 | deps = ["Setfield", "Test"] 1826 | git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" 1827 | uuid = "171d559e-b47b-412a-8079-5efa626c420e" 1828 | version = "0.1.15" 1829 | 1830 | [[deps.StackViews]] 1831 | deps = ["OffsetArrays"] 1832 | git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c" 1833 | uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15" 1834 | version = "0.1.1" 1835 | 1836 | [[deps.Static]] 1837 | deps = ["IfElse"] 1838 | git-tree-sha1 = "dbde6766fc677423598138a5951269432b0fcc90" 1839 | uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" 1840 | version = "0.8.7" 1841 | 1842 | [[deps.StaticArrayInterface]] 1843 | deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "Requires", "SnoopPrecompile", "SparseArrays", "Static", "SuiteSparse"] 1844 | git-tree-sha1 = "33040351d2403b84afce74dae2e22d3f5b18edcb" 1845 | uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" 1846 | version = "1.4.0" 1847 | weakdeps = ["OffsetArrays", "StaticArrays"] 1848 | 1849 | [deps.StaticArrayInterface.extensions] 1850 | StaticArrayInterfaceOffsetArraysExt = "OffsetArrays" 1851 | StaticArrayInterfaceStaticArraysExt = "StaticArrays" 1852 | 1853 | [[deps.StaticArrays]] 1854 | deps = ["LinearAlgebra", "Random", "StaticArraysCore", "Statistics"] 1855 | git-tree-sha1 = "832afbae2a45b4ae7e831f86965469a24d1d8a83" 1856 | uuid = "90137ffa-7385-5640-81b9-e52037218182" 1857 | version = "1.5.26" 1858 | 1859 | [[deps.StaticArraysCore]] 1860 | git-tree-sha1 = "6b7ba252635a5eff6a0b0664a41ee140a1c9e72a" 1861 | uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" 1862 | version = "1.4.0" 1863 | 1864 | [[deps.Statistics]] 1865 | deps = ["LinearAlgebra", "SparseArrays"] 1866 | uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" 1867 | version = "1.9.0" 1868 | 1869 | [[deps.StatsAPI]] 1870 | deps = ["LinearAlgebra"] 1871 | git-tree-sha1 = "45a7769a04a3cf80da1c1c7c60caf932e6f4c9f7" 1872 | uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" 1873 | version = "1.6.0" 1874 | 1875 | [[deps.StatsBase]] 1876 | deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] 1877 | git-tree-sha1 = "75ebe04c5bed70b91614d684259b661c9e6274a4" 1878 | uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" 1879 | version = "0.34.0" 1880 | 1881 | [[deps.StringDistances]] 1882 | deps = ["Distances", "StatsAPI"] 1883 | git-tree-sha1 = "ceeef74797d961aee825aabf71446d6aba898acb" 1884 | uuid = "88034a9c-02f8-509d-84a9-84ec65e18404" 1885 | version = "0.11.2" 1886 | 1887 | [[deps.SuiteSparse]] 1888 | deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] 1889 | uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" 1890 | 1891 | [[deps.SuiteSparse_jll]] 1892 | deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] 1893 | uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" 1894 | version = "5.10.1+6" 1895 | 1896 | [[deps.TOML]] 1897 | deps = ["Dates"] 1898 | uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" 1899 | version = "1.0.3" 1900 | 1901 | [[deps.TableTraits]] 1902 | deps = ["IteratorInterfaceExtensions"] 1903 | git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" 1904 | uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" 1905 | version = "1.0.1" 1906 | 1907 | [[deps.Tables]] 1908 | deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits", "Test"] 1909 | git-tree-sha1 = "1544b926975372da01227b382066ab70e574a3ec" 1910 | uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" 1911 | version = "1.10.1" 1912 | 1913 | [[deps.Tar]] 1914 | deps = ["ArgTools", "SHA"] 1915 | uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" 1916 | version = "1.10.0" 1917 | 1918 | [[deps.TensorCore]] 1919 | deps = ["LinearAlgebra"] 1920 | git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" 1921 | uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" 1922 | version = "0.1.1" 1923 | 1924 | [[deps.Test]] 1925 | deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] 1926 | uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" 1927 | 1928 | [[deps.TestImages]] 1929 | deps = ["AxisArrays", "ColorTypes", "FileIO", "ImageIO", "ImageMagick", "OffsetArrays", "Pkg", "StringDistances"] 1930 | git-tree-sha1 = "03492434a1bdde3026288939fc31b5660407b624" 1931 | uuid = "5e47fb64-e119-507b-a336-dd2b206d9990" 1932 | version = "1.7.1" 1933 | 1934 | [[deps.ThreadingUtilities]] 1935 | deps = ["ManualMemory"] 1936 | git-tree-sha1 = "c97f60dd4f2331e1a495527f80d242501d2f9865" 1937 | uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" 1938 | version = "0.5.1" 1939 | 1940 | [[deps.TiffImages]] 1941 | deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"] 1942 | git-tree-sha1 = "8621f5c499a8aa4aa970b1ae381aae0ef1576966" 1943 | uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" 1944 | version = "0.6.4" 1945 | 1946 | [[deps.TiledIteration]] 1947 | deps = ["OffsetArrays", "StaticArrayInterface"] 1948 | git-tree-sha1 = "1176cc31e867217b06928e2f140c90bd1bc88283" 1949 | uuid = "06e1c1a7-607b-532d-9fad-de7d9aa2abac" 1950 | version = "0.5.0" 1951 | 1952 | [[deps.TranscodingStreams]] 1953 | deps = ["Random", "Test"] 1954 | git-tree-sha1 = "9a6ae7ed916312b41236fcef7e0af564ef934769" 1955 | uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" 1956 | version = "0.9.13" 1957 | 1958 | [[deps.Transducers]] 1959 | deps = ["Adapt", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] 1960 | git-tree-sha1 = "25358a5f2384c490e98abd565ed321ffae2cbb37" 1961 | uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" 1962 | version = "0.4.76" 1963 | 1964 | [[deps.Tricks]] 1965 | git-tree-sha1 = "aadb748be58b492045b4f56166b5188aa63ce549" 1966 | uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" 1967 | version = "0.1.7" 1968 | 1969 | [[deps.URIs]] 1970 | git-tree-sha1 = "074f993b0ca030848b897beff716d93aca60f06a" 1971 | uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" 1972 | version = "1.4.2" 1973 | 1974 | [[deps.UUIDs]] 1975 | deps = ["Random", "SHA"] 1976 | uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" 1977 | 1978 | [[deps.UnPack]] 1979 | git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" 1980 | uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" 1981 | version = "1.0.2" 1982 | 1983 | [[deps.Unicode]] 1984 | uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" 1985 | 1986 | [[deps.UnicodeFun]] 1987 | deps = ["REPL"] 1988 | git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" 1989 | uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" 1990 | version = "0.4.1" 1991 | 1992 | [[deps.Unitful]] 1993 | deps = ["ConstructionBase", "Dates", "LinearAlgebra", "Random"] 1994 | git-tree-sha1 = "ba4aa36b2d5c98d6ed1f149da916b3ba46527b2b" 1995 | uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" 1996 | version = "1.14.0" 1997 | 1998 | [deps.Unitful.extensions] 1999 | InverseFunctionsUnitfulExt = "InverseFunctions" 2000 | 2001 | [deps.Unitful.weakdeps] 2002 | InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" 2003 | 2004 | [[deps.UnitfulLatexify]] 2005 | deps = ["LaTeXStrings", "Latexify", "Unitful"] 2006 | git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" 2007 | uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" 2008 | version = "1.6.3" 2009 | 2010 | [[deps.Unzip]] 2011 | git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" 2012 | uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" 2013 | version = "0.2.0" 2014 | 2015 | [[deps.VectorizationBase]] 2016 | deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"] 2017 | git-tree-sha1 = "b182207d4af54ac64cbc71797765068fdeff475d" 2018 | uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" 2019 | version = "0.21.64" 2020 | 2021 | [[deps.Wayland_jll]] 2022 | deps = ["Artifacts", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] 2023 | git-tree-sha1 = "ed8d92d9774b077c53e1da50fd81a36af3744c1c" 2024 | uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" 2025 | version = "1.21.0+0" 2026 | 2027 | [[deps.Wayland_protocols_jll]] 2028 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 2029 | git-tree-sha1 = "4528479aa01ee1b3b4cd0e6faef0e04cf16466da" 2030 | uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" 2031 | version = "1.25.0+0" 2032 | 2033 | [[deps.WoodburyMatrices]] 2034 | deps = ["LinearAlgebra", "SparseArrays"] 2035 | git-tree-sha1 = "de67fa59e33ad156a590055375a30b23c40299d3" 2036 | uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" 2037 | version = "0.5.5" 2038 | 2039 | [[deps.XML2_jll]] 2040 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"] 2041 | git-tree-sha1 = "93c41695bc1c08c46c5899f4fe06d6ead504bb73" 2042 | uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" 2043 | version = "2.10.3+0" 2044 | 2045 | [[deps.XSLT_jll]] 2046 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] 2047 | git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" 2048 | uuid = "aed1982a-8fda-507f-9586-7b0439959a61" 2049 | version = "1.1.34+0" 2050 | 2051 | [[deps.Xorg_libX11_jll]] 2052 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] 2053 | git-tree-sha1 = "5be649d550f3f4b95308bf0183b82e2582876527" 2054 | uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" 2055 | version = "1.6.9+4" 2056 | 2057 | [[deps.Xorg_libXau_jll]] 2058 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 2059 | git-tree-sha1 = "4e490d5c960c314f33885790ed410ff3a94ce67e" 2060 | uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" 2061 | version = "1.0.9+4" 2062 | 2063 | [[deps.Xorg_libXcursor_jll]] 2064 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] 2065 | git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" 2066 | uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" 2067 | version = "1.2.0+4" 2068 | 2069 | [[deps.Xorg_libXdmcp_jll]] 2070 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 2071 | git-tree-sha1 = "4fe47bd2247248125c428978740e18a681372dd4" 2072 | uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" 2073 | version = "1.1.3+4" 2074 | 2075 | [[deps.Xorg_libXext_jll]] 2076 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] 2077 | git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" 2078 | uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" 2079 | version = "1.3.4+4" 2080 | 2081 | [[deps.Xorg_libXfixes_jll]] 2082 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] 2083 | git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" 2084 | uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" 2085 | version = "5.0.3+4" 2086 | 2087 | [[deps.Xorg_libXi_jll]] 2088 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] 2089 | git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" 2090 | uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" 2091 | version = "1.7.10+4" 2092 | 2093 | [[deps.Xorg_libXinerama_jll]] 2094 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] 2095 | git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" 2096 | uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" 2097 | version = "1.1.4+4" 2098 | 2099 | [[deps.Xorg_libXrandr_jll]] 2100 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] 2101 | git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" 2102 | uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" 2103 | version = "1.5.2+4" 2104 | 2105 | [[deps.Xorg_libXrender_jll]] 2106 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] 2107 | git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" 2108 | uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" 2109 | version = "0.9.10+4" 2110 | 2111 | [[deps.Xorg_libpthread_stubs_jll]] 2112 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 2113 | git-tree-sha1 = "6783737e45d3c59a4a4c4091f5f88cdcf0908cbb" 2114 | uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" 2115 | version = "0.1.0+3" 2116 | 2117 | [[deps.Xorg_libxcb_jll]] 2118 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] 2119 | git-tree-sha1 = "daf17f441228e7a3833846cd048892861cff16d6" 2120 | uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" 2121 | version = "1.13.0+3" 2122 | 2123 | [[deps.Xorg_libxkbfile_jll]] 2124 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] 2125 | git-tree-sha1 = "926af861744212db0eb001d9e40b5d16292080b2" 2126 | uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" 2127 | version = "1.1.0+4" 2128 | 2129 | [[deps.Xorg_xcb_util_image_jll]] 2130 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] 2131 | git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" 2132 | uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" 2133 | version = "0.4.0+1" 2134 | 2135 | [[deps.Xorg_xcb_util_jll]] 2136 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] 2137 | git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" 2138 | uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" 2139 | version = "0.4.0+1" 2140 | 2141 | [[deps.Xorg_xcb_util_keysyms_jll]] 2142 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] 2143 | git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" 2144 | uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" 2145 | version = "0.4.0+1" 2146 | 2147 | [[deps.Xorg_xcb_util_renderutil_jll]] 2148 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] 2149 | git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" 2150 | uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" 2151 | version = "0.3.9+1" 2152 | 2153 | [[deps.Xorg_xcb_util_wm_jll]] 2154 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] 2155 | git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" 2156 | uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" 2157 | version = "0.4.1+1" 2158 | 2159 | [[deps.Xorg_xkbcomp_jll]] 2160 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxkbfile_jll"] 2161 | git-tree-sha1 = "4bcbf660f6c2e714f87e960a171b119d06ee163b" 2162 | uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" 2163 | version = "1.4.2+4" 2164 | 2165 | [[deps.Xorg_xkeyboard_config_jll]] 2166 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xkbcomp_jll"] 2167 | git-tree-sha1 = "5c8424f8a67c3f2209646d4425f3d415fee5931d" 2168 | uuid = "33bec58e-1273-512f-9401-5d533626f822" 2169 | version = "2.27.0+4" 2170 | 2171 | [[deps.Xorg_xtrans_jll]] 2172 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 2173 | git-tree-sha1 = "79c31e7844f6ecf779705fbc12146eb190b7d845" 2174 | uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" 2175 | version = "1.4.0+3" 2176 | 2177 | [[deps.Zlib_jll]] 2178 | deps = ["Libdl"] 2179 | uuid = "83775a58-1f1d-513f-b197-d71354ab007a" 2180 | version = "1.2.13+0" 2181 | 2182 | [[deps.Zstd_jll]] 2183 | deps = ["Artifacts", "JLLWrappers", "Libdl"] 2184 | git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" 2185 | uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" 2186 | version = "1.5.5+0" 2187 | 2188 | [[deps.fzf_jll]] 2189 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 2190 | git-tree-sha1 = "868e669ccb12ba16eaf50cb2957ee2ff61261c56" 2191 | uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" 2192 | version = "0.29.0+0" 2193 | 2194 | [[deps.libaom_jll]] 2195 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 2196 | git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" 2197 | uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" 2198 | version = "3.4.0+0" 2199 | 2200 | [[deps.libass_jll]] 2201 | deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] 2202 | git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" 2203 | uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" 2204 | version = "0.15.1+0" 2205 | 2206 | [[deps.libblastrampoline_jll]] 2207 | deps = ["Artifacts", "Libdl"] 2208 | uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" 2209 | version = "5.8.0+0" 2210 | 2211 | [[deps.libfdk_aac_jll]] 2212 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 2213 | git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" 2214 | uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" 2215 | version = "2.0.2+0" 2216 | 2217 | [[deps.libpng_jll]] 2218 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] 2219 | git-tree-sha1 = "94d180a6d2b5e55e447e2d27a29ed04fe79eb30c" 2220 | uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" 2221 | version = "1.6.38+0" 2222 | 2223 | [[deps.libsixel_jll]] 2224 | deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "libpng_jll"] 2225 | git-tree-sha1 = "d4f63314c8aa1e48cd22aa0c17ed76cd1ae48c3c" 2226 | uuid = "075b6546-f08a-558a-be8f-8157d0f608a5" 2227 | version = "1.10.3+0" 2228 | 2229 | [[deps.libvorbis_jll]] 2230 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] 2231 | git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" 2232 | uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" 2233 | version = "1.3.7+1" 2234 | 2235 | [[deps.nghttp2_jll]] 2236 | deps = ["Artifacts", "Libdl"] 2237 | uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" 2238 | version = "1.48.0+0" 2239 | 2240 | [[deps.p7zip_jll]] 2241 | deps = ["Artifacts", "Libdl"] 2242 | uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" 2243 | version = "17.4.0+0" 2244 | 2245 | [[deps.x264_jll]] 2246 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 2247 | git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" 2248 | uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" 2249 | version = "2021.5.5+0" 2250 | 2251 | [[deps.x265_jll]] 2252 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 2253 | git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" 2254 | uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" 2255 | version = "3.5.0+0" 2256 | 2257 | [[deps.xkbcommon_jll]] 2258 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] 2259 | git-tree-sha1 = "9ebfc140cc56e8c2156a15ceac2f0302e327ac0a" 2260 | uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" 2261 | version = "1.4.1+0" 2262 | """ 2263 | 2264 | # ╔═╡ Cell order: 2265 | # ╟─2bd51f20-7abb-4d95-a56b-c2e058c2a1be 2266 | # ╟─15975d27-b575-4e76-94a7-02b8f218acb1 2267 | # ╠═4f0ea44a-5475-11ed-3979-6d7d4c1a8ce1 2268 | # ╠═45dabf95-ede9-46c5-896c-39945a2029e7 2269 | # ╠═83d8201f-6c96-4849-871b-99409abfc5f8 2270 | # ╟─d0e12818-286b-475d-b76b-da777073e72a 2271 | # ╠═b87f5371-13b0-4c73-91fb-8108a5a80a3e 2272 | # ╠═e53711d2-68ed-4712-82ba-c11bc14ffab3 2273 | # ╠═529a3df1-8a18-416e-9730-14eb10302fbb 2274 | # ╠═e05c6882-81f9-4784-ab7e-7a9a8d296b6d 2275 | # ╟─45e9dad4-8f26-45c6-b58e-93d634881f60 2276 | # ╠═adfcc771-e092-4dd3-8ff9-9a940c1c29a3 2277 | # ╟─2c6d0d9b-9617-40d3-859d-4c5de8cafbd7 2278 | # ╠═2177f522-9ccb-4b96-8bd5-92718f0d5cc6 2279 | # ╟─004097d8-1906-4151-a4f3-4be7f7a71434 2280 | # ╠═fdb237d3-5c00-463c-9671-3de7ee3e2bcc 2281 | # ╠═4db3a990-4e5d-4fe7-89cc-4823d1b5b592 2282 | # ╟─c7194950-26ff-4972-81be-1fabf1ba9dcf 2283 | # ╠═fd94ba72-5130-40e8-884c-37899b2f2fa7 2284 | # ╠═0c62447e-cc20-4e68-a645-367dd823b507 2285 | # ╠═76fc433a-fc15-4660-b7ad-436c4d756488 2286 | # ╠═6a977f39-626a-441a-816a-66f4b8e0c64c 2287 | # ╠═8cc751a6-aa3a-4095-97a3-256ba37d3faa 2288 | # ╠═a53ce9e8-1f86-40ee-949c-378cf486af1b 2289 | # ╠═d58452cc-d4b7-4d6f-9c39-fd8329291cdd 2290 | # ╠═5611f23e-8513-4c6d-b2d5-b092bdff21ed 2291 | # ╠═694b3ac0-51e2-46b4-a5ce-8b1a93d6a368 2292 | # ╠═6fa374ce-6953-443a-94a0-9859237fe345 2293 | # ╠═764349e1-3b12-412b-bcdd-ba1bb64bc391 2294 | # ╠═0cd5c3e8-39ca-40be-8fef-17faf7738b45 2295 | # ╠═77f6528c-cf26-465e-a5bd-7bd336e1b4bc 2296 | # ╠═dd434bfd-c14d-4417-922a-01a573c44143 2297 | # ╠═6af0bc99-4245-44f8-bc45-405f9e56b513 2298 | # ╠═3524374c-97f0-4cdd-88cd-7ffbdb52834c 2299 | # ╠═45872398-895b-4713-b33a-ca573920efc6 2300 | # ╠═9df1ae34-d976-4513-9704-0f99dacbf01c 2301 | # ╠═b95302c7-0385-46ac-8f53-2e6cf7cecea9 2302 | # ╠═103e1291-2a49-409d-8c53-6edc63de6f2c 2303 | # ╠═c4f2b545-cd1d-4ae2-bccb-7a89119ae7df 2304 | # ╟─9a34e78f-8a14-405d-bcb9-7184ba01b767 2305 | # ╟─1815437a-332c-4bc1-9b72-b75cd4b8b653 2306 | # ╠═d623e68d-8cfd-4df8-af30-396097ddc6aa 2307 | # ╠═81c307a0-82d4-4514-8d28-12e12defcea2 2308 | # ╠═01f39e27-8e6a-4056-b496-d6bdf955120f 2309 | # ╠═930bc90e-a55f-4674-a6f8-246efa183520 2310 | # ╠═22812caa-acc6-4a50-bdb0-d43b153c9c9a 2311 | # ╠═840f8832-ee38-4da5-b722-e9022fca3076 2312 | # ╠═af91c034-2f43-4786-aef7-a7bce45ab38e 2313 | # ╠═7b13f72d-6e5d-440b-b080-1301a1560acc 2314 | # ╠═e4bb5e06-0b89-4c27-885f-0d13da6d2ff0 2315 | # ╠═9d78321e-6586-4c31-bec7-279d23c79841 2316 | # ╠═dc0ae388-c96d-4e9b-bd1b-0c752ddfa237 2317 | # ╠═b3e31f75-5216-47b5-85b3-026a0321c0a8 2318 | # ╠═d128d0ec-61bd-46a2-a915-e42220cd09cc 2319 | # ╠═ac013a5b-9225-4ce2-9e6a-7d83c94f5aa6 2320 | # ╠═9c46ad96-96ac-4d40-bfec-d146451f1130 2321 | # ╟─23c190f2-3e4e-4c71-af6f-c8c8583dcace 2322 | # ╟─00000000-0000-0000-0000-000000000001 2323 | # ╟─00000000-0000-0000-0000-000000000002 2324 | -------------------------------------------------------------------------------- /SAS_max_propagation.jl: -------------------------------------------------------------------------------- 1 | ### A Pluto.jl notebook ### 2 | # v0.19.23 3 | 4 | using Markdown 5 | using InteractiveUtils 6 | 7 | # ╔═╡ 4f0ea44a-5475-11ed-3979-6d7d4c1a8ce1 8 | using Plots,PlutoUI 9 | 10 | # ╔═╡ 2bd51f20-7abb-4d95-a56b-c2e058c2a1be 11 | md"# Scaled Angular Spectrum Maximum Propagation Distance 12 | This notebook estimates the maximal propagation distance of the Scaled Angular Spectrum (SAS) method. 13 | " 14 | 15 | # ╔═╡ 15975d27-b575-4e76-94a7-02b8f218acb1 16 | md"## Load Packages" 17 | 18 | # ╔═╡ 83d8201f-6c96-4849-871b-99409abfc5f8 19 | TableOfContents() 20 | 21 | # ╔═╡ d0e12818-286b-475d-b76b-da777073e72a 22 | md"## Define Propagation Ranges" 23 | 24 | # ╔═╡ 6ed1ba5e-c7f2-49c3-847c-f5a1d3f5d9d9 25 | begin 26 | Rs = 0.5001:0.001:15.0 27 | Rsf = 0.01:0.01:15.0 28 | zeroax = 0.0001 .*Rsf 29 | maxax = 1e10 .*Rsf 30 | end 31 | 32 | # ╔═╡ 27244271-bac7-45c1-926f-aaf93826ede3 33 | md"## Equation defining the propagation range" 34 | 35 | # ╔═╡ fb6db56c-a5cc-45bc-b83a-ae9f46bc8784 36 | z_L(R)=4/(1/R-2*sqrt(2)/sqrt(1+8*R^2)) # z_L is really z/L 37 | 38 | # ╔═╡ d8ea0db6-cbe9-4415-b4ef-bfcb590a00f6 39 | md"## Define a function for adding a second x-axis" 40 | 41 | # ╔═╡ e05c6882-81f9-4784-ab7e-7a9a8d296b6d 42 | function other_x!(plt, myxlims=(0.0, 10.0), func=(x)->1/(2x), ifunc=(y)->1/(2y), xtick=[0.01,0.05,0.1,0.2,0.3,1.0]; numdigits=2, name = "NAₚᵢₓₑₗ") 43 | xlims!(plt, myxlims) 44 | DX = myxlims[2]-myxlims[1] 45 | tick_pos = (ifunc.(xtick).-myxlims[1])./DX 46 | newpos = (x)->func(myxlims[1]+x*DX) 47 | # formatter is given a linear relative x-position and computes the label string 48 | myformatter = x->string(round(Int, 10^numdigits*newpos(x))/10^numdigits) 49 | plot!(plt, twiny(), xtick=tick_pos, xaxis=(formatter=myformatter),xlabel=name) 50 | end 51 | 52 | # ╔═╡ 7ae68d67-531f-4eb9-abc7-50d9acaeb5f7 53 | md"# Plot the range" 54 | 55 | # ╔═╡ c3774fe9-6823-48ef-afb9-ae8145db7b6a 56 | begin 57 | plt = plot(Rsf,z_L.(Rsf), fillrange=zeroax, fillalpha=0.2, xlabel="pixel pitch / λ", yaxis=:log, ylabel="distance / L", label="SAS Vignetting Limit",legend=:bottomright, color=:green, ylims=(0.01,1e6)) 58 | # add a vertical line at 0.5 59 | vline!([0.5], xticks=[0.5,(2:2:14)...],seriestype = :vline, label="λ/2 pixel pitch", color=:blue) 60 | 61 | end 62 | 63 | # ╔═╡ 40d90094-6657-4f5d-aef5-f70562135823 64 | md"Some problem for the `mask_box`!" 65 | 66 | # ╔═╡ 8df3f230-ce9c-4956-9382-81b9512cc820 67 | other_x!(plt,(0,14)) 68 | 69 | # ╔═╡ 00000000-0000-0000-0000-000000000001 70 | PLUTO_PROJECT_TOML_CONTENTS = """ 71 | [deps] 72 | Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" 73 | PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8" 74 | 75 | [compat] 76 | Plots = "~1.38.5" 77 | PlutoUI = "~0.7.50" 78 | """ 79 | 80 | # ╔═╡ 00000000-0000-0000-0000-000000000002 81 | PLUTO_MANIFEST_TOML_CONTENTS = """ 82 | # This file is machine-generated - editing it directly is not advised 83 | 84 | julia_version = "1.8.2" 85 | manifest_format = "2.0" 86 | project_hash = "79b333e79eb8ebb238ae6a0b9fbf3cece5cd1b0a" 87 | 88 | [[deps.AbstractPlutoDingetjes]] 89 | deps = ["Pkg"] 90 | git-tree-sha1 = "8eaf9f1b4921132a4cff3f36a1d9ba923b14a481" 91 | uuid = "6e696c72-6542-2067-7265-42206c756150" 92 | version = "1.1.4" 93 | 94 | [[deps.ArgTools]] 95 | uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" 96 | version = "1.1.1" 97 | 98 | [[deps.Artifacts]] 99 | uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" 100 | 101 | [[deps.Base64]] 102 | uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" 103 | 104 | [[deps.BitFlags]] 105 | git-tree-sha1 = "43b1a4a8f797c1cddadf60499a8a077d4af2cd2d" 106 | uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" 107 | version = "0.1.7" 108 | 109 | [[deps.Bzip2_jll]] 110 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 111 | git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" 112 | uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" 113 | version = "1.0.8+0" 114 | 115 | [[deps.Cairo_jll]] 116 | deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] 117 | git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" 118 | uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" 119 | version = "1.16.1+1" 120 | 121 | [[deps.ChainRulesCore]] 122 | deps = ["Compat", "LinearAlgebra", "SparseArrays"] 123 | git-tree-sha1 = "c6d890a52d2c4d55d326439580c3b8d0875a77d9" 124 | uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" 125 | version = "1.15.7" 126 | 127 | [[deps.ChangesOfVariables]] 128 | deps = ["ChainRulesCore", "LinearAlgebra", "Test"] 129 | git-tree-sha1 = "485193efd2176b88e6622a39a246f8c5b600e74e" 130 | uuid = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" 131 | version = "0.1.6" 132 | 133 | [[deps.CodecZlib]] 134 | deps = ["TranscodingStreams", "Zlib_jll"] 135 | git-tree-sha1 = "9c209fb7536406834aa938fb149964b985de6c83" 136 | uuid = "944b1d66-785c-5afd-91f1-9de20f533193" 137 | version = "0.7.1" 138 | 139 | [[deps.ColorSchemes]] 140 | deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Random", "SnoopPrecompile"] 141 | git-tree-sha1 = "aa3edc8f8dea6cbfa176ee12f7c2fc82f0608ed3" 142 | uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" 143 | version = "3.20.0" 144 | 145 | [[deps.ColorTypes]] 146 | deps = ["FixedPointNumbers", "Random"] 147 | git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" 148 | uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" 149 | version = "0.11.4" 150 | 151 | [[deps.ColorVectorSpace]] 152 | deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "TensorCore"] 153 | git-tree-sha1 = "600cc5508d66b78aae350f7accdb58763ac18589" 154 | uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" 155 | version = "0.9.10" 156 | 157 | [[deps.Colors]] 158 | deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] 159 | git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" 160 | uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" 161 | version = "0.12.10" 162 | 163 | [[deps.Compat]] 164 | deps = ["Dates", "LinearAlgebra", "UUIDs"] 165 | git-tree-sha1 = "61fdd77467a5c3ad071ef8277ac6bd6af7dd4c04" 166 | uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" 167 | version = "4.6.0" 168 | 169 | [[deps.CompilerSupportLibraries_jll]] 170 | deps = ["Artifacts", "Libdl"] 171 | uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" 172 | version = "0.5.2+0" 173 | 174 | [[deps.Contour]] 175 | git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" 176 | uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" 177 | version = "0.6.2" 178 | 179 | [[deps.DataAPI]] 180 | git-tree-sha1 = "e8119c1a33d267e16108be441a287a6981ba1630" 181 | uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" 182 | version = "1.14.0" 183 | 184 | [[deps.DataStructures]] 185 | deps = ["Compat", "InteractiveUtils", "OrderedCollections"] 186 | git-tree-sha1 = "d1fff3a548102f48987a52a2e0d114fa97d730f0" 187 | uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" 188 | version = "0.18.13" 189 | 190 | [[deps.Dates]] 191 | deps = ["Printf"] 192 | uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" 193 | 194 | [[deps.DelimitedFiles]] 195 | deps = ["Mmap"] 196 | uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" 197 | 198 | [[deps.DocStringExtensions]] 199 | deps = ["LibGit2"] 200 | git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" 201 | uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" 202 | version = "0.9.3" 203 | 204 | [[deps.Downloads]] 205 | deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] 206 | uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" 207 | version = "1.6.0" 208 | 209 | [[deps.Expat_jll]] 210 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 211 | git-tree-sha1 = "bad72f730e9e91c08d9427d5e8db95478a3c323d" 212 | uuid = "2e619515-83b5-522b-bb60-26c02a35a201" 213 | version = "2.4.8+0" 214 | 215 | [[deps.FFMPEG]] 216 | deps = ["FFMPEG_jll"] 217 | git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" 218 | uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" 219 | version = "0.4.1" 220 | 221 | [[deps.FFMPEG_jll]] 222 | 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"] 223 | git-tree-sha1 = "74faea50c1d007c85837327f6775bea60b5492dd" 224 | uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" 225 | version = "4.4.2+2" 226 | 227 | [[deps.FileWatching]] 228 | uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" 229 | 230 | [[deps.FixedPointNumbers]] 231 | deps = ["Statistics"] 232 | git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" 233 | uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" 234 | version = "0.8.4" 235 | 236 | [[deps.Fontconfig_jll]] 237 | deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] 238 | git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" 239 | uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" 240 | version = "2.13.93+0" 241 | 242 | [[deps.Formatting]] 243 | deps = ["Printf"] 244 | git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" 245 | uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" 246 | version = "0.4.2" 247 | 248 | [[deps.FreeType2_jll]] 249 | deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] 250 | git-tree-sha1 = "87eb71354d8ec1a96d4a7636bd57a7347dde3ef9" 251 | uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" 252 | version = "2.10.4+0" 253 | 254 | [[deps.FriBidi_jll]] 255 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 256 | git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" 257 | uuid = "559328eb-81f9-559d-9380-de523a88c83c" 258 | version = "1.0.10+0" 259 | 260 | [[deps.GLFW_jll]] 261 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pkg", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] 262 | git-tree-sha1 = "d972031d28c8c8d9d7b41a536ad7bb0c2579caca" 263 | uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" 264 | version = "3.3.8+0" 265 | 266 | [[deps.GR]] 267 | deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] 268 | git-tree-sha1 = "660b2ea2ec2b010bb02823c6d0ff6afd9bdc5c16" 269 | uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" 270 | version = "0.71.7" 271 | 272 | [[deps.GR_jll]] 273 | deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt5Base_jll", "Zlib_jll", "libpng_jll"] 274 | git-tree-sha1 = "d5e1fd17ac7f3aa4c5287a61ee28d4f8b8e98873" 275 | uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" 276 | version = "0.71.7+0" 277 | 278 | [[deps.Gettext_jll]] 279 | deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] 280 | git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" 281 | uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" 282 | version = "0.21.0+0" 283 | 284 | [[deps.Glib_jll]] 285 | deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Pkg", "Zlib_jll"] 286 | git-tree-sha1 = "d3b3624125c1474292d0d8ed0f65554ac37ddb23" 287 | uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" 288 | version = "2.74.0+2" 289 | 290 | [[deps.Graphite2_jll]] 291 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 292 | git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" 293 | uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" 294 | version = "1.3.14+0" 295 | 296 | [[deps.Grisu]] 297 | git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" 298 | uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" 299 | version = "1.0.2" 300 | 301 | [[deps.HTTP]] 302 | deps = ["Base64", "CodecZlib", "Dates", "IniFile", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] 303 | git-tree-sha1 = "37e4657cd56b11abe3d10cd4a1ec5fbdb4180263" 304 | uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" 305 | version = "1.7.4" 306 | 307 | [[deps.HarfBuzz_jll]] 308 | deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] 309 | git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" 310 | uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" 311 | version = "2.8.1+1" 312 | 313 | [[deps.Hyperscript]] 314 | deps = ["Test"] 315 | git-tree-sha1 = "8d511d5b81240fc8e6802386302675bdf47737b9" 316 | uuid = "47d2ed2b-36de-50cf-bf87-49c2cf4b8b91" 317 | version = "0.0.4" 318 | 319 | [[deps.HypertextLiteral]] 320 | deps = ["Tricks"] 321 | git-tree-sha1 = "c47c5fa4c5308f27ccaac35504858d8914e102f9" 322 | uuid = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2" 323 | version = "0.9.4" 324 | 325 | [[deps.IOCapture]] 326 | deps = ["Logging", "Random"] 327 | git-tree-sha1 = "f7be53659ab06ddc986428d3a9dcc95f6fa6705a" 328 | uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" 329 | version = "0.2.2" 330 | 331 | [[deps.IniFile]] 332 | git-tree-sha1 = "f550e6e32074c939295eb5ea6de31849ac2c9625" 333 | uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f" 334 | version = "0.5.1" 335 | 336 | [[deps.InteractiveUtils]] 337 | deps = ["Markdown"] 338 | uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" 339 | 340 | [[deps.InverseFunctions]] 341 | deps = ["Test"] 342 | git-tree-sha1 = "49510dfcb407e572524ba94aeae2fced1f3feb0f" 343 | uuid = "3587e190-3f89-42d0-90ee-14403ec27112" 344 | version = "0.1.8" 345 | 346 | [[deps.IrrationalConstants]] 347 | git-tree-sha1 = "637b58b3c037d3877f263418de820920b47ceeb5" 348 | uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" 349 | version = "0.2.0" 350 | 351 | [[deps.JLFzf]] 352 | deps = ["Pipe", "REPL", "Random", "fzf_jll"] 353 | git-tree-sha1 = "f377670cda23b6b7c1c0b3893e37451c5c1a2185" 354 | uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" 355 | version = "0.1.5" 356 | 357 | [[deps.JLLWrappers]] 358 | deps = ["Preferences"] 359 | git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1" 360 | uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" 361 | version = "1.4.1" 362 | 363 | [[deps.JSON]] 364 | deps = ["Dates", "Mmap", "Parsers", "Unicode"] 365 | git-tree-sha1 = "3c837543ddb02250ef42f4738347454f95079d4e" 366 | uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" 367 | version = "0.21.3" 368 | 369 | [[deps.JpegTurbo_jll]] 370 | deps = ["Artifacts", "JLLWrappers", "Libdl"] 371 | git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" 372 | uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" 373 | version = "2.1.91+0" 374 | 375 | [[deps.LAME_jll]] 376 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 377 | git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" 378 | uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" 379 | version = "3.100.1+0" 380 | 381 | [[deps.LERC_jll]] 382 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 383 | git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" 384 | uuid = "88015f11-f218-50d7-93a8-a6af411a945d" 385 | version = "3.0.0+1" 386 | 387 | [[deps.LZO_jll]] 388 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 389 | git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" 390 | uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" 391 | version = "2.10.1+0" 392 | 393 | [[deps.LaTeXStrings]] 394 | git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" 395 | uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" 396 | version = "1.3.0" 397 | 398 | [[deps.Latexify]] 399 | deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] 400 | git-tree-sha1 = "2422f47b34d4b127720a18f86fa7b1aa2e141f29" 401 | uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" 402 | version = "0.15.18" 403 | 404 | [[deps.LibCURL]] 405 | deps = ["LibCURL_jll", "MozillaCACerts_jll"] 406 | uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" 407 | version = "0.6.3" 408 | 409 | [[deps.LibCURL_jll]] 410 | deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] 411 | uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" 412 | version = "7.84.0+0" 413 | 414 | [[deps.LibGit2]] 415 | deps = ["Base64", "NetworkOptions", "Printf", "SHA"] 416 | uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" 417 | 418 | [[deps.LibSSH2_jll]] 419 | deps = ["Artifacts", "Libdl", "MbedTLS_jll"] 420 | uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" 421 | version = "1.10.2+0" 422 | 423 | [[deps.Libdl]] 424 | uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" 425 | 426 | [[deps.Libffi_jll]] 427 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 428 | git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" 429 | uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" 430 | version = "3.2.2+1" 431 | 432 | [[deps.Libgcrypt_jll]] 433 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] 434 | git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" 435 | uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" 436 | version = "1.8.7+0" 437 | 438 | [[deps.Libglvnd_jll]] 439 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] 440 | git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" 441 | uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" 442 | version = "1.6.0+0" 443 | 444 | [[deps.Libgpg_error_jll]] 445 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 446 | git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" 447 | uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" 448 | version = "1.42.0+0" 449 | 450 | [[deps.Libiconv_jll]] 451 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 452 | git-tree-sha1 = "c7cb1f5d892775ba13767a87c7ada0b980ea0a71" 453 | uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" 454 | version = "1.16.1+2" 455 | 456 | [[deps.Libmount_jll]] 457 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 458 | git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" 459 | uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" 460 | version = "2.35.0+0" 461 | 462 | [[deps.Libtiff_jll]] 463 | deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "Pkg", "Zlib_jll", "Zstd_jll"] 464 | git-tree-sha1 = "3eb79b0ca5764d4799c06699573fd8f533259713" 465 | uuid = "89763e89-9b03-5906-acba-b20f662cd828" 466 | version = "4.4.0+0" 467 | 468 | [[deps.Libuuid_jll]] 469 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 470 | git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" 471 | uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" 472 | version = "2.36.0+0" 473 | 474 | [[deps.LinearAlgebra]] 475 | deps = ["Libdl", "libblastrampoline_jll"] 476 | uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" 477 | 478 | [[deps.LogExpFunctions]] 479 | deps = ["ChainRulesCore", "ChangesOfVariables", "DocStringExtensions", "InverseFunctions", "IrrationalConstants", "LinearAlgebra"] 480 | git-tree-sha1 = "0a1b7c2863e44523180fdb3146534e265a91870b" 481 | uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" 482 | version = "0.3.23" 483 | 484 | [[deps.Logging]] 485 | uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" 486 | 487 | [[deps.LoggingExtras]] 488 | deps = ["Dates", "Logging"] 489 | git-tree-sha1 = "cedb76b37bc5a6c702ade66be44f831fa23c681e" 490 | uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" 491 | version = "1.0.0" 492 | 493 | [[deps.MIMEs]] 494 | git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" 495 | uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" 496 | version = "0.1.4" 497 | 498 | [[deps.MacroTools]] 499 | deps = ["Markdown", "Random"] 500 | git-tree-sha1 = "42324d08725e200c23d4dfb549e0d5d89dede2d2" 501 | uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" 502 | version = "0.5.10" 503 | 504 | [[deps.Markdown]] 505 | deps = ["Base64"] 506 | uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" 507 | 508 | [[deps.MbedTLS]] 509 | deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "Random", "Sockets"] 510 | git-tree-sha1 = "03a9b9718f5682ecb107ac9f7308991db4ce395b" 511 | uuid = "739be429-bea8-5141-9913-cc70e7f3736d" 512 | version = "1.1.7" 513 | 514 | [[deps.MbedTLS_jll]] 515 | deps = ["Artifacts", "Libdl"] 516 | uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" 517 | version = "2.28.0+0" 518 | 519 | [[deps.Measures]] 520 | git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" 521 | uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" 522 | version = "0.3.2" 523 | 524 | [[deps.Missings]] 525 | deps = ["DataAPI"] 526 | git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" 527 | uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" 528 | version = "1.1.0" 529 | 530 | [[deps.Mmap]] 531 | uuid = "a63ad114-7e13-5084-954f-fe012c677804" 532 | 533 | [[deps.MozillaCACerts_jll]] 534 | uuid = "14a3606d-f60d-562e-9121-12d972cd8159" 535 | version = "2022.2.1" 536 | 537 | [[deps.NaNMath]] 538 | deps = ["OpenLibm_jll"] 539 | git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" 540 | uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" 541 | version = "1.0.2" 542 | 543 | [[deps.NetworkOptions]] 544 | uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" 545 | version = "1.2.0" 546 | 547 | [[deps.Ogg_jll]] 548 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 549 | git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" 550 | uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" 551 | version = "1.3.5+1" 552 | 553 | [[deps.OpenBLAS_jll]] 554 | deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] 555 | uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" 556 | version = "0.3.20+0" 557 | 558 | [[deps.OpenLibm_jll]] 559 | deps = ["Artifacts", "Libdl"] 560 | uuid = "05823500-19ac-5b8b-9628-191a04bc5112" 561 | version = "0.8.1+0" 562 | 563 | [[deps.OpenSSL]] 564 | deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] 565 | git-tree-sha1 = "6503b77492fd7fcb9379bf73cd31035670e3c509" 566 | uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" 567 | version = "1.3.3" 568 | 569 | [[deps.OpenSSL_jll]] 570 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 571 | git-tree-sha1 = "9ff31d101d987eb9d66bd8b176ac7c277beccd09" 572 | uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" 573 | version = "1.1.20+0" 574 | 575 | [[deps.OpenSpecFun_jll]] 576 | deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] 577 | git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" 578 | uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" 579 | version = "0.5.5+0" 580 | 581 | [[deps.Opus_jll]] 582 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 583 | git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" 584 | uuid = "91d4177d-7536-5919-b921-800302f37372" 585 | version = "1.3.2+0" 586 | 587 | [[deps.OrderedCollections]] 588 | git-tree-sha1 = "85f8e6578bf1f9ee0d11e7bb1b1456435479d47c" 589 | uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" 590 | version = "1.4.1" 591 | 592 | [[deps.PCRE2_jll]] 593 | deps = ["Artifacts", "Libdl"] 594 | uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" 595 | version = "10.40.0+0" 596 | 597 | [[deps.Parsers]] 598 | deps = ["Dates", "SnoopPrecompile"] 599 | git-tree-sha1 = "6f4fbcd1ad45905a5dee3f4256fabb49aa2110c6" 600 | uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" 601 | version = "2.5.7" 602 | 603 | [[deps.Pipe]] 604 | git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" 605 | uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" 606 | version = "1.3.0" 607 | 608 | [[deps.Pixman_jll]] 609 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 610 | git-tree-sha1 = "b4f5d02549a10e20780a24fce72bea96b6329e29" 611 | uuid = "30392449-352a-5448-841d-b1acce4e97dc" 612 | version = "0.40.1+0" 613 | 614 | [[deps.Pkg]] 615 | deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] 616 | uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" 617 | version = "1.8.0" 618 | 619 | [[deps.PlotThemes]] 620 | deps = ["PlotUtils", "Statistics"] 621 | git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" 622 | uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" 623 | version = "3.1.0" 624 | 625 | [[deps.PlotUtils]] 626 | deps = ["ColorSchemes", "Colors", "Dates", "Printf", "Random", "Reexport", "SnoopPrecompile", "Statistics"] 627 | git-tree-sha1 = "c95373e73290cf50a8a22c3375e4625ded5c5280" 628 | uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" 629 | version = "1.3.4" 630 | 631 | [[deps.Plots]] 632 | deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "Preferences", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SnoopPrecompile", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "Unzip"] 633 | git-tree-sha1 = "8ac949bd0ebc46a44afb1fdca1094554a84b086e" 634 | uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" 635 | version = "1.38.5" 636 | 637 | [[deps.PlutoUI]] 638 | deps = ["AbstractPlutoDingetjes", "Base64", "ColorTypes", "Dates", "FixedPointNumbers", "Hyperscript", "HypertextLiteral", "IOCapture", "InteractiveUtils", "JSON", "Logging", "MIMEs", "Markdown", "Random", "Reexport", "URIs", "UUIDs"] 639 | git-tree-sha1 = "5bb5129fdd62a2bbbe17c2756932259acf467386" 640 | uuid = "7f904dfe-b85e-4ff6-b463-dae2292396a8" 641 | version = "0.7.50" 642 | 643 | [[deps.Preferences]] 644 | deps = ["TOML"] 645 | git-tree-sha1 = "47e5f437cc0e7ef2ce8406ce1e7e24d44915f88d" 646 | uuid = "21216c6a-2e73-6563-6e65-726566657250" 647 | version = "1.3.0" 648 | 649 | [[deps.Printf]] 650 | deps = ["Unicode"] 651 | uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" 652 | 653 | [[deps.Qt5Base_jll]] 654 | 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"] 655 | git-tree-sha1 = "0c03844e2231e12fda4d0086fd7cbe4098ee8dc5" 656 | uuid = "ea2cea3b-5b76-57ae-a6ef-0a8af62496e1" 657 | version = "5.15.3+2" 658 | 659 | [[deps.REPL]] 660 | deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] 661 | uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" 662 | 663 | [[deps.Random]] 664 | deps = ["SHA", "Serialization"] 665 | uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" 666 | 667 | [[deps.RecipesBase]] 668 | deps = ["SnoopPrecompile"] 669 | git-tree-sha1 = "261dddd3b862bd2c940cf6ca4d1c8fe593e457c8" 670 | uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" 671 | version = "1.3.3" 672 | 673 | [[deps.RecipesPipeline]] 674 | deps = ["Dates", "NaNMath", "PlotUtils", "RecipesBase", "SnoopPrecompile"] 675 | git-tree-sha1 = "e974477be88cb5e3040009f3767611bc6357846f" 676 | uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" 677 | version = "0.6.11" 678 | 679 | [[deps.Reexport]] 680 | git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" 681 | uuid = "189a3867-3050-52da-a836-e630ba90ab69" 682 | version = "1.2.2" 683 | 684 | [[deps.RelocatableFolders]] 685 | deps = ["SHA", "Scratch"] 686 | git-tree-sha1 = "90bc7a7c96410424509e4263e277e43250c05691" 687 | uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" 688 | version = "1.0.0" 689 | 690 | [[deps.Requires]] 691 | deps = ["UUIDs"] 692 | git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" 693 | uuid = "ae029012-a4dd-5104-9daa-d747884805df" 694 | version = "1.3.0" 695 | 696 | [[deps.SHA]] 697 | uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" 698 | version = "0.7.0" 699 | 700 | [[deps.Scratch]] 701 | deps = ["Dates"] 702 | git-tree-sha1 = "f94f779c94e58bf9ea243e77a37e16d9de9126bd" 703 | uuid = "6c6a2e73-6563-6170-7368-637461726353" 704 | version = "1.1.1" 705 | 706 | [[deps.Serialization]] 707 | uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" 708 | 709 | [[deps.Showoff]] 710 | deps = ["Dates", "Grisu"] 711 | git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" 712 | uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" 713 | version = "1.0.3" 714 | 715 | [[deps.SimpleBufferStream]] 716 | git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" 717 | uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" 718 | version = "1.1.0" 719 | 720 | [[deps.SnoopPrecompile]] 721 | deps = ["Preferences"] 722 | git-tree-sha1 = "e760a70afdcd461cf01a575947738d359234665c" 723 | uuid = "66db9d55-30c0-4569-8b51-7e840670fc0c" 724 | version = "1.0.3" 725 | 726 | [[deps.Sockets]] 727 | uuid = "6462fe0b-24de-5631-8697-dd941f90decc" 728 | 729 | [[deps.SortingAlgorithms]] 730 | deps = ["DataStructures"] 731 | git-tree-sha1 = "a4ada03f999bd01b3a25dcaa30b2d929fe537e00" 732 | uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" 733 | version = "1.1.0" 734 | 735 | [[deps.SparseArrays]] 736 | deps = ["LinearAlgebra", "Random"] 737 | uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" 738 | 739 | [[deps.SpecialFunctions]] 740 | deps = ["ChainRulesCore", "IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] 741 | git-tree-sha1 = "ef28127915f4229c971eb43f3fc075dd3fe91880" 742 | uuid = "276daf66-3868-5448-9aa4-cd146d93841b" 743 | version = "2.2.0" 744 | 745 | [[deps.Statistics]] 746 | deps = ["LinearAlgebra", "SparseArrays"] 747 | uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" 748 | 749 | [[deps.StatsAPI]] 750 | deps = ["LinearAlgebra"] 751 | git-tree-sha1 = "f9af7f195fb13589dd2e2d57fdb401717d2eb1f6" 752 | uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" 753 | version = "1.5.0" 754 | 755 | [[deps.StatsBase]] 756 | deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] 757 | git-tree-sha1 = "d1bf48bfcc554a3761a133fe3a9bb01488e06916" 758 | uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" 759 | version = "0.33.21" 760 | 761 | [[deps.TOML]] 762 | deps = ["Dates"] 763 | uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" 764 | version = "1.0.0" 765 | 766 | [[deps.Tar]] 767 | deps = ["ArgTools", "SHA"] 768 | uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" 769 | version = "1.10.1" 770 | 771 | [[deps.TensorCore]] 772 | deps = ["LinearAlgebra"] 773 | git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" 774 | uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" 775 | version = "0.1.1" 776 | 777 | [[deps.Test]] 778 | deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] 779 | uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" 780 | 781 | [[deps.TranscodingStreams]] 782 | deps = ["Random", "Test"] 783 | git-tree-sha1 = "94f38103c984f89cf77c402f2a68dbd870f8165f" 784 | uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" 785 | version = "0.9.11" 786 | 787 | [[deps.Tricks]] 788 | git-tree-sha1 = "6bac775f2d42a611cdfcd1fb217ee719630c4175" 789 | uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" 790 | version = "0.1.6" 791 | 792 | [[deps.URIs]] 793 | git-tree-sha1 = "074f993b0ca030848b897beff716d93aca60f06a" 794 | uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" 795 | version = "1.4.2" 796 | 797 | [[deps.UUIDs]] 798 | deps = ["Random", "SHA"] 799 | uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" 800 | 801 | [[deps.Unicode]] 802 | uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" 803 | 804 | [[deps.UnicodeFun]] 805 | deps = ["REPL"] 806 | git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" 807 | uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" 808 | version = "0.4.1" 809 | 810 | [[deps.Unzip]] 811 | git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" 812 | uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" 813 | version = "0.2.0" 814 | 815 | [[deps.Wayland_jll]] 816 | deps = ["Artifacts", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] 817 | git-tree-sha1 = "ed8d92d9774b077c53e1da50fd81a36af3744c1c" 818 | uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" 819 | version = "1.21.0+0" 820 | 821 | [[deps.Wayland_protocols_jll]] 822 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 823 | git-tree-sha1 = "4528479aa01ee1b3b4cd0e6faef0e04cf16466da" 824 | uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" 825 | version = "1.25.0+0" 826 | 827 | [[deps.XML2_jll]] 828 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"] 829 | git-tree-sha1 = "93c41695bc1c08c46c5899f4fe06d6ead504bb73" 830 | uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" 831 | version = "2.10.3+0" 832 | 833 | [[deps.XSLT_jll]] 834 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] 835 | git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" 836 | uuid = "aed1982a-8fda-507f-9586-7b0439959a61" 837 | version = "1.1.34+0" 838 | 839 | [[deps.Xorg_libX11_jll]] 840 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] 841 | git-tree-sha1 = "5be649d550f3f4b95308bf0183b82e2582876527" 842 | uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" 843 | version = "1.6.9+4" 844 | 845 | [[deps.Xorg_libXau_jll]] 846 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 847 | git-tree-sha1 = "4e490d5c960c314f33885790ed410ff3a94ce67e" 848 | uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" 849 | version = "1.0.9+4" 850 | 851 | [[deps.Xorg_libXcursor_jll]] 852 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] 853 | git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" 854 | uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" 855 | version = "1.2.0+4" 856 | 857 | [[deps.Xorg_libXdmcp_jll]] 858 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 859 | git-tree-sha1 = "4fe47bd2247248125c428978740e18a681372dd4" 860 | uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" 861 | version = "1.1.3+4" 862 | 863 | [[deps.Xorg_libXext_jll]] 864 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] 865 | git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" 866 | uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" 867 | version = "1.3.4+4" 868 | 869 | [[deps.Xorg_libXfixes_jll]] 870 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] 871 | git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" 872 | uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" 873 | version = "5.0.3+4" 874 | 875 | [[deps.Xorg_libXi_jll]] 876 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] 877 | git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" 878 | uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" 879 | version = "1.7.10+4" 880 | 881 | [[deps.Xorg_libXinerama_jll]] 882 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] 883 | git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" 884 | uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" 885 | version = "1.1.4+4" 886 | 887 | [[deps.Xorg_libXrandr_jll]] 888 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] 889 | git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" 890 | uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" 891 | version = "1.5.2+4" 892 | 893 | [[deps.Xorg_libXrender_jll]] 894 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] 895 | git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" 896 | uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" 897 | version = "0.9.10+4" 898 | 899 | [[deps.Xorg_libpthread_stubs_jll]] 900 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 901 | git-tree-sha1 = "6783737e45d3c59a4a4c4091f5f88cdcf0908cbb" 902 | uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" 903 | version = "0.1.0+3" 904 | 905 | [[deps.Xorg_libxcb_jll]] 906 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] 907 | git-tree-sha1 = "daf17f441228e7a3833846cd048892861cff16d6" 908 | uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" 909 | version = "1.13.0+3" 910 | 911 | [[deps.Xorg_libxkbfile_jll]] 912 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] 913 | git-tree-sha1 = "926af861744212db0eb001d9e40b5d16292080b2" 914 | uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" 915 | version = "1.1.0+4" 916 | 917 | [[deps.Xorg_xcb_util_image_jll]] 918 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] 919 | git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" 920 | uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" 921 | version = "0.4.0+1" 922 | 923 | [[deps.Xorg_xcb_util_jll]] 924 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] 925 | git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" 926 | uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" 927 | version = "0.4.0+1" 928 | 929 | [[deps.Xorg_xcb_util_keysyms_jll]] 930 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] 931 | git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" 932 | uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" 933 | version = "0.4.0+1" 934 | 935 | [[deps.Xorg_xcb_util_renderutil_jll]] 936 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] 937 | git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" 938 | uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" 939 | version = "0.3.9+1" 940 | 941 | [[deps.Xorg_xcb_util_wm_jll]] 942 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] 943 | git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" 944 | uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" 945 | version = "0.4.1+1" 946 | 947 | [[deps.Xorg_xkbcomp_jll]] 948 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxkbfile_jll"] 949 | git-tree-sha1 = "4bcbf660f6c2e714f87e960a171b119d06ee163b" 950 | uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" 951 | version = "1.4.2+4" 952 | 953 | [[deps.Xorg_xkeyboard_config_jll]] 954 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xkbcomp_jll"] 955 | git-tree-sha1 = "5c8424f8a67c3f2209646d4425f3d415fee5931d" 956 | uuid = "33bec58e-1273-512f-9401-5d533626f822" 957 | version = "2.27.0+4" 958 | 959 | [[deps.Xorg_xtrans_jll]] 960 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 961 | git-tree-sha1 = "79c31e7844f6ecf779705fbc12146eb190b7d845" 962 | uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" 963 | version = "1.4.0+3" 964 | 965 | [[deps.Zlib_jll]] 966 | deps = ["Libdl"] 967 | uuid = "83775a58-1f1d-513f-b197-d71354ab007a" 968 | version = "1.2.12+3" 969 | 970 | [[deps.Zstd_jll]] 971 | deps = ["Artifacts", "JLLWrappers", "Libdl"] 972 | git-tree-sha1 = "c6edfe154ad7b313c01aceca188c05c835c67360" 973 | uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" 974 | version = "1.5.4+0" 975 | 976 | [[deps.fzf_jll]] 977 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 978 | git-tree-sha1 = "868e669ccb12ba16eaf50cb2957ee2ff61261c56" 979 | uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" 980 | version = "0.29.0+0" 981 | 982 | [[deps.libaom_jll]] 983 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 984 | git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" 985 | uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" 986 | version = "3.4.0+0" 987 | 988 | [[deps.libass_jll]] 989 | deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] 990 | git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" 991 | uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" 992 | version = "0.15.1+0" 993 | 994 | [[deps.libblastrampoline_jll]] 995 | deps = ["Artifacts", "Libdl", "OpenBLAS_jll"] 996 | uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" 997 | version = "5.1.1+0" 998 | 999 | [[deps.libfdk_aac_jll]] 1000 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1001 | git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" 1002 | uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" 1003 | version = "2.0.2+0" 1004 | 1005 | [[deps.libpng_jll]] 1006 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] 1007 | git-tree-sha1 = "94d180a6d2b5e55e447e2d27a29ed04fe79eb30c" 1008 | uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" 1009 | version = "1.6.38+0" 1010 | 1011 | [[deps.libvorbis_jll]] 1012 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] 1013 | git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" 1014 | uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" 1015 | version = "1.3.7+1" 1016 | 1017 | [[deps.nghttp2_jll]] 1018 | deps = ["Artifacts", "Libdl"] 1019 | uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" 1020 | version = "1.48.0+0" 1021 | 1022 | [[deps.p7zip_jll]] 1023 | deps = ["Artifacts", "Libdl"] 1024 | uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" 1025 | version = "17.4.0+0" 1026 | 1027 | [[deps.x264_jll]] 1028 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1029 | git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" 1030 | uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" 1031 | version = "2021.5.5+0" 1032 | 1033 | [[deps.x265_jll]] 1034 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1035 | git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" 1036 | uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" 1037 | version = "3.5.0+0" 1038 | 1039 | [[deps.xkbcommon_jll]] 1040 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] 1041 | git-tree-sha1 = "9ebfc140cc56e8c2156a15ceac2f0302e327ac0a" 1042 | uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" 1043 | version = "1.4.1+0" 1044 | """ 1045 | 1046 | # ╔═╡ Cell order: 1047 | # ╟─2bd51f20-7abb-4d95-a56b-c2e058c2a1be 1048 | # ╟─15975d27-b575-4e76-94a7-02b8f218acb1 1049 | # ╠═4f0ea44a-5475-11ed-3979-6d7d4c1a8ce1 1050 | # ╠═83d8201f-6c96-4849-871b-99409abfc5f8 1051 | # ╟─d0e12818-286b-475d-b76b-da777073e72a 1052 | # ╠═6ed1ba5e-c7f2-49c3-847c-f5a1d3f5d9d9 1053 | # ╟─27244271-bac7-45c1-926f-aaf93826ede3 1054 | # ╠═fb6db56c-a5cc-45bc-b83a-ae9f46bc8784 1055 | # ╠═d8ea0db6-cbe9-4415-b4ef-bfcb590a00f6 1056 | # ╠═e05c6882-81f9-4784-ab7e-7a9a8d296b6d 1057 | # ╠═7ae68d67-531f-4eb9-abc7-50d9acaeb5f7 1058 | # ╠═c3774fe9-6823-48ef-afb9-ae8145db7b6a 1059 | # ╟─40d90094-6657-4f5d-aef5-f70562135823 1060 | # ╠═8df3f230-ce9c-4956-9382-81b9512cc820 1061 | # ╟─00000000-0000-0000-0000-000000000001 1062 | # ╟─00000000-0000-0000-0000-000000000002 1063 | -------------------------------------------------------------------------------- /example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bionanoimaging/Scalable-Angular-Spectrum-Method-SAS/3e887910ac50fba255cda921575753f54181e6d5/example.png -------------------------------------------------------------------------------- /propagation_distance_sas.jl: -------------------------------------------------------------------------------- 1 | using Plots 2 | # using FieldPropagation 3 | 4 | Rs = 0.5001:0.001:15.0 # SourcePixelsize / λ 5 | Rsf = 0.01:0.01:15.0 6 | # R = L / (λ N) = SourcePixelsize / λ 7 | z_L(R)=4/(1/R-2*sqrt(2)/sqrt(1+8*R^2)) # z_L is really z/L 8 | function z_L2(R) 9 | λf = inv(sqrt(16*R^2+2)) 10 | return inv(λf/sqrt(1-2*λf^2)-λf) 11 | #return 1-2*λf^2 12 | end 13 | function z_L3(R) 14 | inv(inv(4*R)-inv(sqrt(16*R^2+2))) 15 | end 16 | function z_L4(R) 17 | 4*R*sqrt(16*R^2+2)/(sqrt(16*R^2+2)-4*R) 18 | end 19 | 20 | zeroax = 0.0001 .*Rsf 21 | maxax = 1e10 .*Rsf 22 | plot(Rsf,z_L.(Rsf), fillrange=zeroax, fillalpha=0.2, xlabel="pixel pitch / λ", yaxis=:log, ylabel="distance / L", label="SAS Vignetting Limit",legend=:bottomright, color=:green) 23 | ylims!((0.01,1e6)) 24 | 25 | N = 256.0 26 | vline!([0.5], xticks=[0.5,(2:2:14)...],seriestype = :vline, label="λ/2 pixel pitch", color=:blue) 27 | 28 | # Angular spectrum limit where a frequency entirely disappears, 29 | # assuming 100% zero padding in source and destination planes 30 | R_as(R) = sqrt(4*R^2-1) # R = L/(lambda N) 31 | 32 | function other_x!(myxlims=(0.0, 10.0), func=(x)->1/(2x), ifunc=(y)->1/(2y), xtick=[0.01,0.05,0.1,0.2,0.3,1.0]; numdigits=2, name = "NAₚᵢₓₑₗ") 33 | xlims!(myxlims) 34 | DX = myxlims[2]-myxlims[1] 35 | tick_pos = (ifunc.(xtick).-myxlims[1])./DX 36 | newpos = (x)->func(myxlims[1]+x*DX) 37 | # formatter is given a linear relative x-position and computes the label string 38 | myformatter = x->string(round(Int, 10^numdigits*newpos(x))/10^numdigits) 39 | display(plot!(twiny(), xtick=tick_pos, xaxis=(formatter=myformatter),xlabel=name)) 40 | end 41 | 42 | # a distance is also related to an NA via the beam in from the optical axis to the side 43 | z_L(R)=4/(1/R-2*sqrt(2)/sqrt(1+8*R^2)) # z_L is really z/L 44 | 45 | # M = round(z_L(myR) ./ myR / 2 *100)/100 46 | # zL = round(z_L.(myR)*100)/100 47 | # M = (z/L) / (pix/λ) / 2 48 | # NA = sin(atan(ML/z)) 49 | # z/L = M/tan(asin(NA)) 50 | function z_L_from_na(na) 51 | @show na 52 | Ms = z_L.(Rsf) ./ Rsf ./ 2 53 | zLs = z_L.(Rsf) 54 | nas = sin.(atan.(Ms ./ zLs)) 55 | pos = findfirst(na.>nas) 56 | return Ms[pos]/tan(asin(na)) 57 | end 58 | 59 | function na_from_z_L(zL) 60 | @show zL 61 | Ms = z_L.(Rsf) ./ Rsf ./ 2 62 | zLs = z_L.(Rsf) 63 | nas = sin.(atan.(Ms ./ zLs)) 64 | pos = findfirst(zL.na_from_z_L(na), ifunc=(na)->z_L_from_na(na), 119 | ytick=[0.04,0.05,0.1,0.2,0.3,0.5,0.8]; numdigits=2, name = "NAₚᵣₒₚ") 120 | ylims!(myylims) 121 | # DY = myylims[2]-myylims[1] 122 | logfac = log(myylims[2]/myylims[1]) 123 | # calculate all relative tick positions 124 | tick_pos = log.(ifunc.(ytick)/myylims[1])./logfac 125 | # NA label in dependence of the linear y-position 126 | lin_to_log(y) = myylims[1]*exp(y*logfac) 127 | newpos = (y)->func(lin_to_log(y)) # myylims[1]+y*DY 128 | # formatter is given a linear relative y-position and computes the label string 129 | myformatter = y->string(round(Int, 10^numdigits*newpos(y))/10^numdigits) 130 | display(plot!(twinx(), ytick=tick_pos, yaxis=(formatter=myformatter), ylabel=name)) 131 | end 132 | myylims=(0.1, 1E6) 133 | ylims!(myylims) 134 | other_y!() 135 | 136 | # equation von Felix: 137 | λ = 0.5566e-6 138 | N = 256 139 | # R = pix/lambda = L/(N λ) 140 | # L = R * (λ N) 141 | zf(L,λ,N)=4*L*sqrt(λ^2+8*L^2/N^2)*sqrt(L^2/(8L^2+λ^2*N^2))/λ/(1-2*sqrt(2)*sqrt(L^2/(8L^2+λ^2*N^2))) 142 | plot!(Rs,zf.(Rs.*λ.*N,λ,N) ./ (Rs.*λ.*N), xlabel="pixelsize / λ", yaxis=:log, ylabel="distance / L", label="SAS limit Felix") 143 | 144 | zf(100.0,1.0,1000) 145 | z_L(0.1) * 1000 146 | 147 | ########## compare equation 18 with the exact expression 24 148 | # 18: Lp/z = (f_max λ) ^3 149 | # 24: Lp/z = 2 * abs(f_max λ / sqrt(1-λf_max^2) - λf_max) 150 | 151 | eq18(f_max_λ) = f_max_λ ^3 152 | eq24(f_max_λ) = 2 * abs(f_max_λ / sqrt(1-f_max_λ^2) - f_max_λ) 153 | 154 | f_max_λ = 0.01:0.01:0.95 155 | 156 | plot(f_max_λ, eq18.(f_max_λ), label="Eq. 18", xlabel="f_max λ", ylabel= "L / z") 157 | plot!(f_max_λ, eq24.(f_max_λ), label="Eq. 24") 158 | 159 | --------------------------------------------------------------------------------