From 0fa9bbaa9a883dc3bff62549e3d7da326b3b3b57 Mon Sep 17 00:00:00 2001 From: roflmaostc Date: Tue, 4 Jun 2024 10:37:32 +0200 Subject: [PATCH 1/2] Add new mu convention --- Project.toml | 2 +- examples/1_glass_vial_pattern_optimization.jl | 94 ++-- .../2_benchy_boat_optimization_ray_optics.jl | 4 +- examples/4_realistic_pattern_optimization.jl | 23 +- examples/Manifest.toml | 477 +++++++++--------- src/ray_optics.jl | 36 +- test/runtests.jl | 4 +- 7 files changed, 353 insertions(+), 287 deletions(-) diff --git a/Project.toml b/Project.toml index 9aff6e7..f04f276 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "SwissVAMyKnife" uuid = "fafdf525-54c7-48ec-ae29-528bd4cccfab" authors = ["roflmaostc "] -version = "0.1.1" +version = "0.2.0" [deps] CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" diff --git a/examples/1_glass_vial_pattern_optimization.jl b/examples/1_glass_vial_pattern_optimization.jl index e198ae8..c0ce013 100644 --- a/examples/1_glass_vial_pattern_optimization.jl +++ b/examples/1_glass_vial_pattern_optimization.jl @@ -1,5 +1,5 @@ ### A Pluto.jl notebook ### -# v0.19.38 +# v0.19.42 using Markdown using InteractiveUtils @@ -67,6 +67,12 @@ However, we add a trailing 1 z dimension. sz = (256, 256, 1) # ╔═╡ b2dae3ea-5a40-498f-a134-5a9a98e58de0 +# ╠═╡ disabled = true +#=╠═╡ +target = box(Float32, sz, (150, 110, 1), offset=(90, 160, 1)) .- box(Float32, sz, (80, 50, 1), offset=(90, 160, 1)); + ╠═╡ =# + +# ╔═╡ 827f6f0a-12d9-4a72-8f8b-c3869a037590 target = box(Float32, sz, (150, 110, 1)) .- box(Float32, sz, (80, 50, 1)); # ╔═╡ 047023bf-96dd-4427-aa13-3fb2340af90e @@ -86,7 +92,7 @@ Let's use the `LossThreshold` to achieve this: " # ╔═╡ ae3fdae9-7b3c-4391-8fff-530f7758942c -loss = LossThreshold(thresholds=(0.85, 0.95)) +loss = LossThreshold(thresholds=(0.9, 0.98)) # ╔═╡ b58c9e1f-7ca6-4171-8004-2b84d33cf335 md"## Specify Geometry @@ -99,13 +105,13 @@ As absorption we set $μ=nothing$, so we ignore absorption first! " # ╔═╡ 0dd200a7-a0f0-416e-ad69-7343e210a36e -angles = range(0, 2π, 400) +angles = range(0, 2π, 401)[begin:end-1] # ╔═╡ 303a363f-f941-45b9-9194-62a2c411964a μ = nothing # ╔═╡ 6d130809-8b78-485c-bba1-fc958bc9d873 -geometry = ParallelRayOptics(angles, μ) +geometry = ParallelRayOptics(angles=angles, μ=μ, DMD_diameter=10e-3) # ╔═╡ cb8b9ccc-4085-4abe-bd71-5e70cc8decfa md" As optimizer we use a gradient descent based variant" @@ -120,6 +126,7 @@ Let's try to run the optimization: `togoc` moves the target onto the CUDA device # ╔═╡ 07e97af6-f30b-4100-999c-c61b52cec76e @mytime patterns, printed_intensity, optim_res = optimize_patterns(togoc(target), geometry, optimizer, loss) + # ╔═╡ c13abe2d-ff27-42e2-9534-cb1936e68236 optim_res @@ -148,31 +155,35 @@ Printed intensity ----------------------------- Printed intensity after threshol # ╔═╡ 5801f61a-79fa-4326-82dd-3901dd4d493a [simshow(Array(printed_intensity[:, :, 1])) simshow(ones((sz[1], 5))) simshow(thresh .< Array(printed_intensity[:, :, 1])) simshow(ones((sz[1], 5))) simshow(target[:, :, 1])] +# ╔═╡ 605e1421-23dd-465d-b94d-3a649154f6f8 +simshow(360 .< Array(backproject(patterns, angles; μ)[:, :, 1])) + +# ╔═╡ b08e897d-c260-4a42-8065-989abbbcab4e +simshow(Array(backproject(reverse(patterns, dims=Tuple(())), .-angles; μ)[:, :, 1])) + +# ╔═╡ 44ea2ea2-1e4f-44d3-aa02-68e96d6c7b39 +size(patterns) + # ╔═╡ 92f5b987-13c7-463c-b150-71c51ec4aa72 simshow(Array(patterns)[:, :, 1], cmap=:turbo) # ╔═╡ 6654e278-3d71-48a3-9382-7b8e486f4d72 sum(patterns ./ maximum(patterns)) / length(patterns) -# ╔═╡ 3fb2afdb-2ad2-4ce5-9ca3-e1c5c1d45970 -histogram(Array(patterns[:]), yscale=:log10) - # ╔═╡ 11af6da4-5fa2-4e48-a1c8-32bc686b8239 md"# 4. Include Absorption of the Photo initiator Let's add some absorption! - -256 is the size of the object in pixels. -A $μ=2/(256)$ would mean that after propagation through the vial, the ray has only $I(x) = I_0 \cdot \exp(-2) ≈ I_0 \cdot 0.135$ of the initial intensity left. - -And the printing is still possible! -Empirically, a factor of 3 might be possible to print. A higher $\mu$ means actually shorter printing times. +$\mu$ expects units of inverse meters. +Empirically, a factor of 3/10mm is possible to print. +This is equivalent that only $\exp(-3)$ of the light is left after the propagation through the vial (if the vial has a diameter of 10mm). +A higher $\mu$ means actually shorter printing times. " # ╔═╡ 2f51ec68-09c6-4475-81b9-ec252fba5df7 -μ2 = 2 / (256) +μ2 = 3 / (10e-3) # ╔═╡ 2e76c088-e61f-4deb-ac69-b73d6e3f361c -geometry_μ = ParallelRayOptics(angles, μ2) +geometry_μ = ParallelRayOptics(angles=angles, DMD_diameter=10e-3, μ=μ2) # ╔═╡ 0e4da85b-99bd-47e0-a8fe-3c69c3a05708 @mytime patterns_μ, printed_intensity_μ, optim_res_μ = optimize_patterns(togoc(target), geometry_μ, @@ -218,10 +229,10 @@ Luckily, you just have to specify the following parameters for the geometry: # ╔═╡ f9a82207-6841-44c9-9aec-e8da3de8e0b0 geometry_vial = VialRayOptics( angles=angles, - μ=2/256, + μ=0/256, R_outer=(16.60e-3) / 2, R_inner=(15.2e-3) / 2, - DMD_diameter=14.6e-3, + DMD_diameter=16.60e-3, n_vial=1.47, n_resin=1.4849 ) @@ -266,7 +277,7 @@ sum(patterns_vial) / (maximum(patterns_vial) * length(patterns_vial)) md"# 6. Reduce Sparsity" # ╔═╡ 699a0dbd-df85-41b9-b751-cc936d6c03c5 -loss_sparse = LossThresholdSparsity(thresholds=(0.75f0, 0.85f0), λ=3f-6) +loss_sparse = LossThresholdSparsity(thresholds=(0.9f0, 0.97f0), λ=500f-6) # ╔═╡ 006aa5f6-8008-455a-a2a6-54eeb0c097bf @mytime patterns_vial_s, printed_intensity_vial_s, optim_res_vial_s = optimize_patterns(togoc(target), geometry_vial, @@ -276,6 +287,9 @@ loss_sparse = LossThresholdSparsity(thresholds=(0.75f0, 0.85f0), λ=3f-6) # ╔═╡ 9f7d62be-378f-4b3c-bf38-239c9daa8705 plot_intensity_histogram(target, printed_intensity_vial_s, loss_sparse.thresholds) +# ╔═╡ 93f5bffa-f916-4d4b-90f5-751613b48efb +calculate_IoU(target, Array(printed_intensity_vial_s .> 0.93)) + # ╔═╡ b4c7ed0d-e31e-417b-abaf-2193980c9378 @bind thresh5 PlutoUI.Slider(0:0.01:1, show_value=true, default=0.5) @@ -288,11 +302,15 @@ simshow(Array(patterns_vial_s[:,:,1]), cmap=:turbo) # ╔═╡ dc0c21f2-980a-4c97-9a9d-b3d824121bbe md" The efficiency can be defined as the mean of the pixel values divided by the maximum. -Because in experiment the real absolute maximum is fixed by the light source intensity. Hence we would like to maximize the real efficiency of the DMD +Because in experiment the real absolute maximum is fixed by the light source intensity. Hence we would like to maximize the real efficiency of the DMD. +In this case the efficiency is $\eta$ = $(sum(patterns_vial_s) / (maximum(patterns_vial_s) * length(patterns_vial))) " -# ╔═╡ 23c9a442-d892-464d-9174-960eca8de2e7 -sum(patterns_vial_s) / (maximum(patterns_vial_s) * length(patterns_vial)) +# ╔═╡ a0f85250-7c40-4026-b2b2-d267ec58de6f +histogram(xlabel="pixel intensity", ylabel="Occurence", Array(patterns_vial)[:], yscale=:log10, title="Without sparsity term") + +# ╔═╡ 0a805204-d2ad-4672-88ab-4acdff243083 +histogram(xlabel="pixel intensity", ylabel="Occurence", Array(patterns_vial_s)[:], yscale=:log10, title="With sparsity term") # ╔═╡ a7cafba6-849a-4eb8-9709-a76cb98e9879 md"# 7. Let's do a bigger 3D object! @@ -305,17 +323,18 @@ We deactive the cell by default. However of the (...) next to the cell and click # ╔═╡ 8824fb56-0fbf-4cba-9aea-6449627923f2 geometry_vial2 = VialRayOptics( - angles=range(0, 2π, 300), - μ=2/256, + angles=range(0, 2π, 1000)[begin:end-1], + μ=nothing, R_outer=(16.60e-3) / 2, R_inner=(15.2e-3) / 2, n_vial=1.47, - n_resin=1.4849 + n_resin=1.4849, + DMD_diameter=10e-3 ) # ╔═╡ 0a655d51-e3b6-413b-83de-9781974242a2 begin - KK = 128 + KK = 400 target_3D = box(Float32, (KK, KK, KK), (80, 80, 100)) .- box(Float32, (KK, KK, KK), (60, 50, 80)); target_3D = Float32.(Bool.(target_3D) .|| (rr2(size(target_3D)) .< 30^2)) @@ -327,9 +346,12 @@ md"z slide value $(@bind slice PlutoUI.Slider(axes(target_3D, 3), show_value=tru # ╔═╡ a05d8dd4-40c3-41da-9dbd-f58ab161b2d4 simshow(target_3D[:, :, slice]) +# ╔═╡ 1bdd07f2-35df-4d5e-b296-7159ae774aa3 +geometry3 = ParallelRayOptics(angles=angles[1:1], μ=1/16.6e-3, DMD_diameter=16.6e-3) + # ╔═╡ d6a59254-bffe-4116-9335-8884eb44556f @mytime patterns_3D, printed_intensity_3D, optim_res_3D = optimize_patterns(togoc(target_3D), geometry_vial2, - GradientBased(optimizer=Optim.LBFGS(), options=Optim.Options(iterations=20, store_trace=true)) + GradientBased(optimizer=Optim.LBFGS(m=3), options=Optim.Options(iterations=20, store_trace=true)) , loss) # ╔═╡ 6009b601-6988-4be8-a519-7c59660c73ab @@ -341,11 +363,14 @@ md"threshold value=$(@bind thresh4 PlutoUI.Slider(0:0.01:1, show_value=true, def # ╔═╡ 10cc0e79-5d5b-43cf-afb8-ad21875d6d97 md"z slider value $(@bind slice2 PlutoUI.Slider(axes(target_3D, 3), show_value=true, default=0.5))" +# ╔═╡ 2a879d1f-c430-48dd-9264-4c1d6b5bbf18 +exp(-0.99) + # ╔═╡ 0835d1b0-a562-4edf-939e-3044f94e53c7 [simshow(Array(printed_intensity_3D[:, :, slice2]), set_one=false) simshow(ones((size(target_3D, 1), 5))) simshow(thresh4 .< Array(printed_intensity_3D[:, :, slice2])) simshow(ones((size(target_3D, 1), 5))) simshow(target_3D[:, :, slice2])] # ╔═╡ 83793ffe-38de-4a76-b80f-8dee1d18c5a5 -plot_intensity_histogram(target_3D, printed_intensity_3D, loss.thresholds) +plot_intensity_histogram(target_3D, printed_intensity_3D, loss.thresholds, xlim=(0.7, 1.1)) # ╔═╡ 262b96e8-a78c-441c-9b46-2d87636286d7 md"angle $(@bind angle PlutoUI.Slider(axes(patterns_3D, 2), show_value=true, default=0.5))" @@ -367,6 +392,7 @@ simshow(Array(patterns_3D[:,angle,:]), cmap=:turbo, set_one=true) # ╟─465e830f-ca33-427a-ad7b-e18f3bbaa3c4 # ╠═4475e0c5-4ae6-403f-bb2b-c5bc8a25d18a # ╠═b2dae3ea-5a40-498f-a134-5a9a98e58de0 +# ╠═827f6f0a-12d9-4a72-8f8b-c3869a037590 # ╠═047023bf-96dd-4427-aa13-3fb2340af90e # ╟─1d2bdd44-95d2-45ef-8e24-c8ca3df7485a # ╠═ae3fdae9-7b3c-4391-8fff-530f7758942c @@ -385,9 +411,11 @@ simshow(Array(patterns_3D[:,angle,:]), cmap=:turbo, set_one=true) # ╟─dc538ea6-54e3-4a0f-a5ef-427802239cf2 # ╟─71333d50-fa28-4bdf-bad4-d787682e043a # ╟─5801f61a-79fa-4326-82dd-3901dd4d493a +# ╠═605e1421-23dd-465d-b94d-3a649154f6f8 +# ╠═b08e897d-c260-4a42-8065-989abbbcab4e +# ╠═44ea2ea2-1e4f-44d3-aa02-68e96d6c7b39 # ╠═92f5b987-13c7-463c-b150-71c51ec4aa72 # ╠═6654e278-3d71-48a3-9382-7b8e486f4d72 -# ╠═3fb2afdb-2ad2-4ce5-9ca3-e1c5c1d45970 # ╟─11af6da4-5fa2-4e48-a1c8-32bc686b8239 # ╠═2f51ec68-09c6-4475-81b9-ec252fba5df7 # ╠═2e76c088-e61f-4deb-ac69-b73d6e3f361c @@ -398,7 +426,7 @@ simshow(Array(patterns_3D[:,angle,:]), cmap=:turbo, set_one=true) # ╠═17621d91-1f93-4fcf-abf1-5e97463a0bdf # ╠═05c6a38e-a87d-46da-acb6-33b393369f4c # ╟─f940c2a6-ebc2-4dca-986c-fe25bfa9e4f0 -# ╟─f9a82207-6841-44c9-9aec-e8da3de8e0b0 +# ╠═f9a82207-6841-44c9-9aec-e8da3de8e0b0 # ╠═71b479a0-29fc-4411-a02d-096427f2a631 # ╠═675764cb-721a-4b89-92c4-8a1ab7f5867f # ╠═9ddd098d-2d78-4de8-a322-40a2463adcda @@ -412,21 +440,25 @@ simshow(Array(patterns_3D[:,angle,:]), cmap=:turbo, set_one=true) # ╠═699a0dbd-df85-41b9-b751-cc936d6c03c5 # ╠═006aa5f6-8008-455a-a2a6-54eeb0c097bf # ╠═9f7d62be-378f-4b3c-bf38-239c9daa8705 +# ╠═93f5bffa-f916-4d4b-90f5-751613b48efb # ╟─b4c7ed0d-e31e-417b-abaf-2193980c9378 # ╟─afa94e1a-d426-4a29-b0fd-73bcdc3e914f # ╠═0fc8abe6-2a22-477e-b2a4-6ccba1e16991 # ╟─dc0c21f2-980a-4c97-9a9d-b3d824121bbe -# ╟─23c9a442-d892-464d-9174-960eca8de2e7 +# ╟─a0f85250-7c40-4026-b2b2-d267ec58de6f +# ╟─0a805204-d2ad-4672-88ab-4acdff243083 # ╟─a7cafba6-849a-4eb8-9709-a76cb98e9879 # ╠═8824fb56-0fbf-4cba-9aea-6449627923f2 # ╠═0a655d51-e3b6-413b-83de-9781974242a2 # ╟─877b1484-969c-45d7-a3e7-4f0301a81a4b # ╠═a05d8dd4-40c3-41da-9dbd-f58ab161b2d4 +# ╠═1bdd07f2-35df-4d5e-b296-7159ae774aa3 # ╠═d6a59254-bffe-4116-9335-8884eb44556f # ╠═6009b601-6988-4be8-a519-7c59660c73ab # ╟─fa45b520-18a8-4465-b642-a1c08de48e20 # ╟─10cc0e79-5d5b-43cf-afb8-ad21875d6d97 +# ╠═2a879d1f-c430-48dd-9264-4c1d6b5bbf18 # ╟─0835d1b0-a562-4edf-939e-3044f94e53c7 -# ╟─83793ffe-38de-4a76-b80f-8dee1d18c5a5 +# ╠═83793ffe-38de-4a76-b80f-8dee1d18c5a5 # ╟─262b96e8-a78c-441c-9b46-2d87636286d7 # ╠═c8774a2b-47e0-4be6-b213-bdef6d7b0726 diff --git a/examples/2_benchy_boat_optimization_ray_optics.jl b/examples/2_benchy_boat_optimization_ray_optics.jl index bd6125d..1afbd76 100644 --- a/examples/2_benchy_boat_optimization_ray_optics.jl +++ b/examples/2_benchy_boat_optimization_ray_optics.jl @@ -1,5 +1,5 @@ ### A Pluto.jl notebook ### -# v0.19.40 +# v0.19.42 using Markdown using InteractiveUtils @@ -112,7 +112,7 @@ loss = LossThreshold(thresholds=(0.7, 0.8)) angles = range(0, 2π, 201)[begin:end-1] # ╔═╡ 93cebf3f-389b-4fde-8d13-af3e1165ad9c -geometry = ParallelRayOptics(angles, nothing) +geometry = ParallelRayOptics(angles=angles, μ=nothing, DMD_diameter=Inf) # ╔═╡ 2ffbef8c-066d-49b6-8a29-1ef710099029 optimizer = GradientBased(optimizer=Optim.LBFGS(), options=Optim.Options(iterations=40, store_trace=true)) diff --git a/examples/4_realistic_pattern_optimization.jl b/examples/4_realistic_pattern_optimization.jl index 6220652..b465676 100644 --- a/examples/4_realistic_pattern_optimization.jl +++ b/examples/4_realistic_pattern_optimization.jl @@ -1,5 +1,5 @@ ### A Pluto.jl notebook ### -# v0.19.38 +# v0.19.42 using Markdown using InteractiveUtils @@ -83,7 +83,7 @@ md"# 2. Specify Optimization Parameters" loss = LossThreshold(thresholds=(0.65, 0.75)) # ╔═╡ e5bec833-47c5-4f65-8667-f28d4ccb1fbc -angles = range(0, 2π, 301)[begin:end-1] +angles = range(0, 2π, 1001)[begin:end-1] # ╔═╡ e45eeeed-a86e-40e1-b4a2-e4c25cc6a368 optimizer = GradientBased(optimizer=Optim.LBFGS(), options=Optim.Options(iterations=20, store_trace=true)) @@ -91,7 +91,7 @@ optimizer = GradientBased(optimizer=Optim.LBFGS(), options=Optim.Options(iterati # ╔═╡ f618cc32-6851-42de-b2c2-0ddc70b4668d geometry_vial = VialRayOptics( angles=angles, - μ=2/550, + μ=2 / 14.6e-3, R_outer=(16.60e-3) / 2, R_inner=(15.2e-3) / 2, DMD_diameter=14.6e-3, @@ -99,6 +99,14 @@ geometry_vial = VialRayOptics( n_resin=1.4849 ) +# ╔═╡ 29bbf20e-da89-42af-b7a0-a921c1c5fe3f +md" +In this case the DMD is smaller than the glass vial. +That means, our DMD area is smaller than the simulated target volume. +The resulting pattern size is: $(floor(Int, (14.6e-3 / 16.6e-3) * size(target, 1))) pixels + +" + # ╔═╡ 3dfccb9a-8f21-4695-965c-c1d97077ba52 md"# 3. Optimize" @@ -138,12 +146,12 @@ md"Different projection patterns: $(@bind angle PlutoUI.Slider(axes(patterns_via simshow(Array(patterns_vial[:,angle,:])[end:-1:begin, :]', cmap=:turbo, set_one=true) # ╔═╡ Cell order: -# ╠═c973ccfd-11b7-4e0a-9d1a-32b0d449bfd1 +# ╟─c973ccfd-11b7-4e0a-9d1a-32b0d449bfd1 # ╠═32d9b7b4-bacd-48c5-8ac5-a7d16bc26f3f # ╠═fb00f77e-3a43-43c6-83f5-ab9ffa690585 # ╠═2a2c5c57-3b51-463b-90b3-bf4733df1c71 # ╠═9122b9a9-43f4-48be-88f6-6d02a110f900 -# ╠═5c3dda08-010e-4d76-bf35-1c3385a2a0c0 +# ╟─5c3dda08-010e-4d76-bf35-1c3385a2a0c0 # ╠═efc9b013-0452-482f-9112-d444d2197ba9 # ╠═54e9b00d-2589-430e-9ac9-ffdb48a54c0e # ╠═93591474-679b-4944-a673-616cb5f354e0 @@ -152,13 +160,14 @@ simshow(Array(patterns_vial[:,angle,:])[end:-1:begin, :]', cmap=:turbo, set_one= # ╠═5e2ffa51-c23b-4223-89f8-dfa138cfaca5 # ╠═9aa5e2c5-f0d0-43dc-9c3a-b4cebc5bb100 # ╠═6869714a-040b-4694-b099-8962445daa33 -# ╠═e7715af7-de78-4668-9733-487f482ac3ef +# ╟─e7715af7-de78-4668-9733-487f482ac3ef # ╠═018120f1-8859-4606-ac62-507fbcaf4097 -# ╠═f1cbc5fd-8454-430c-9267-73c67eca623b +# ╟─f1cbc5fd-8454-430c-9267-73c67eca623b # ╠═3f00e0e5-2d87-406c-9e4a-42b76c3bf2ec # ╠═e5bec833-47c5-4f65-8667-f28d4ccb1fbc # ╠═e45eeeed-a86e-40e1-b4a2-e4c25cc6a368 # ╠═f618cc32-6851-42de-b2c2-0ddc70b4668d +# ╟─29bbf20e-da89-42af-b7a0-a921c1c5fe3f # ╠═3dfccb9a-8f21-4695-965c-c1d97077ba52 # ╠═2350dd2f-11dd-4b81-93b0-a05e88dd0fa7 # ╠═6eb9c0bc-2aa7-470d-96ca-3716c3c75e4e diff --git a/examples/Manifest.toml b/examples/Manifest.toml index 7bc7bcf..c29d098 100644 --- a/examples/Manifest.toml +++ b/examples/Manifest.toml @@ -1,13 +1,21 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.10.2" +julia_version = "1.10.3" manifest_format = "2.0" project_hash = "4572e0414a07078d4cbe216e83a70beefead47c1" [[deps.ADTypes]] -git-tree-sha1 = "016833eb52ba2d6bea9fcb50ca295980e728ee24" +git-tree-sha1 = "daf26bbdec60d9ca1c0003b70f389d821ddb4224" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "0.2.7" +version = "1.2.1" + + [deps.ADTypes.extensions] + ADTypesChainRulesCoreExt = "ChainRulesCore" + ADTypesEnzymeCoreExt = "EnzymeCore" + + [deps.ADTypes.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" [[deps.AbstractFFTs]] deps = ["LinearAlgebra"] @@ -28,9 +36,9 @@ version = "0.8.2" [[deps.AbstractPlutoDingetjes]] deps = ["Pkg"] -git-tree-sha1 = "0f748c81756f2e5e6854298f11ad8b2dfae6911a" +git-tree-sha1 = "6e1d2a35f2f90a4bc7c2ed98079b2ba09c35b83a" uuid = "6e696c72-6542-2067-7265-42206c756150" -version = "1.3.0" +version = "1.3.2" [[deps.AbstractTrees]] git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" @@ -79,14 +87,15 @@ version = "1.1.1" [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "44691067188f6bd1b2289552a23e4b7572f4528d" +git-tree-sha1 = "133a240faec6e074e07c31ee75619c90544179cf" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.9.0" +version = "7.10.0" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceCUDSSExt = "CUDSS" ArrayInterfaceChainRulesExt = "ChainRules" ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" ArrayInterfaceReverseDiffExt = "ReverseDiff" @@ -97,6 +106,7 @@ version = "7.9.0" BandedMatrices = "aae01518-5342-5314-be14-df237901396f" BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" @@ -176,50 +186,55 @@ version = "0.5.0" [[deps.CUDA]] deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "Crayons", "DataFrames", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LLVMLoopInfo", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "NVTX", "Preferences", "PrettyTables", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "StaticArrays", "Statistics"] -git-tree-sha1 = "baa8ea7a1ea63316fa3feb454635215773c9c845" +git-tree-sha1 = "6e945e876652f2003e6ca74e19a3c45017d3e9f6" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "5.2.0" -weakdeps = ["ChainRulesCore", "SpecialFunctions"] +version = "5.4.2" [deps.CUDA.extensions] ChainRulesCoreExt = "ChainRulesCore" + EnzymeCoreExt = "EnzymeCore" SpecialFunctionsExt = "SpecialFunctions" + [deps.CUDA.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" + [[deps.CUDA_Driver_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] -git-tree-sha1 = "d01bfc999768f0a31ed36f5d22a76161fc63079c" +git-tree-sha1 = "c48f9da18efd43b6b7adb7ee1f93fe5f2926c339" uuid = "4ee394cb-3365-5eb0-8335-949819d2adfc" -version = "0.7.0+1" +version = "0.9.0+0" [[deps.CUDA_Runtime_Discovery]] deps = ["Libdl"] -git-tree-sha1 = "2cb12f6b2209f40a4b8967697689a47c50485490" +git-tree-sha1 = "5db9da5fdeaa708c22ba86b82c49528f402497f2" uuid = "1af6417a-86b4-443c-805f-a4643ffb695f" -version = "0.2.3" +version = "0.3.3" [[deps.CUDA_Runtime_jll]] deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "8e25c009d2bf16c2c31a70a6e9e8939f7325cc84" +git-tree-sha1 = "bcba305388e16aa5c879e896726db9e71b4942c6" uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" -version = "0.11.1+0" +version = "0.14.0+1" [[deps.Cairo_jll]] deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "a4c43f59baa34011e303e76f5c8c91bf58415aaf" +git-tree-sha1 = "a2f1c8c668c8e3cb4cca4e57a8efdb09067bb3fd" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" -version = "1.18.0+1" +version = "1.18.0+2" [[deps.ChainRules]] deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] -git-tree-sha1 = "4e42872be98fa3343c4f8458cbda8c5c6a6fa97c" +git-tree-sha1 = "5ec157747036038ec70b250f578362268f0472f1" uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.63.0" +version = "1.68.0" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra"] -git-tree-sha1 = "575cd02e080939a33b6df6c5853d14924c08e35b" +git-tree-sha1 = "71acdbf594aab5bbb2cec89b208c41b4c411e49f" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.23.0" +version = "1.24.0" weakdeps = ["SparseArrays"] [deps.ChainRulesCore.extensions] @@ -227,9 +242,9 @@ weakdeps = ["SparseArrays"] [[deps.ChainRulesTestUtils]] deps = ["ChainRulesCore", "Compat", "FiniteDifferences", "LinearAlgebra", "Random", "Suppressor", "Test"] -git-tree-sha1 = "bc0259df37fe91c06f9a7338d0dbfc12c337ce36" +git-tree-sha1 = "cffe963ae0879e455d74ffd8243348293d72988a" uuid = "cdddcdb0-9152-4a09-a978-84456f9df70a" -version = "1.12.0" +version = "1.13.0" [[deps.CodeTracking]] deps = ["InteractiveUtils", "UUIDs"] @@ -245,9 +260,9 @@ version = "0.7.4" [[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] -git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +git-tree-sha1 = "4b270d6465eb21ae89b732182c20dc165f8bf9f2" uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" -version = "3.24.0" +version = "3.25.0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] @@ -263,9 +278,9 @@ version = "0.9.10" [[deps.Colors]] deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] -git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +git-tree-sha1 = "362a287c3aa50601b0bc359053d5c2468f0e7ce0" uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" -version = "0.12.10" +version = "0.12.11" [[deps.CommonSolve]] git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" @@ -280,9 +295,9 @@ version = "0.3.0" [[deps.Compat]] deps = ["TOML", "UUIDs"] -git-tree-sha1 = "c955881e3c981181362ae4088b35995446298b80" +git-tree-sha1 = "b1c55339b7c6c350ee89f2c1604299660525b248" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.14.0" +version = "4.15.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -291,7 +306,7 @@ weakdeps = ["Dates", "LinearAlgebra"] [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.1.0+0" +version = "1.1.1+0" [[deps.CompositionsBase]] git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" @@ -360,9 +375,9 @@ version = "1.6.1" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "0f4b5d62a88d8f59003e43c25a8a90de9eb76317" +git-tree-sha1 = "1d0a14036acb104d9e89698bd408f63ab58cdc82" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.18" +version = "0.18.20" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -453,9 +468,9 @@ version = "0.1.10" [[deps.Expat_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +git-tree-sha1 = "1c6317308b9dc757616f0b5cb379db10494443a7" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" -version = "2.5.0+0" +version = "2.6.2+0" [[deps.ExprTools]] git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" @@ -468,9 +483,9 @@ uuid = "21656369-7473-754a-2065-74616d696c43" version = "1.0.2" [[deps.ExproniconLite]] -git-tree-sha1 = "5552cf384e4577c5dd2db57d7086a4a41747dbb9" +git-tree-sha1 = "6091a6fc0f16639f43d7f78fee225ba365712612" uuid = "55351af7-c7e9-48d6-89ff-24e801d99491" -version = "0.10.6" +version = "0.10.8" [[deps.FFMPEG]] deps = ["FFMPEG_jll"] @@ -519,9 +534,9 @@ uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[deps.FillArrays]] deps = ["LinearAlgebra"] -git-tree-sha1 = "bfe82a708416cf00b73a3198db0859c82f741558" +git-tree-sha1 = "0653c0a2396a6da5bc4766c43041ef5fd3efbe57" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.10.0" +version = "1.11.0" [deps.FillArrays.extensions] FillArraysPDMatsExt = "PDMats" @@ -535,9 +550,9 @@ version = "1.10.0" [[deps.FiniteDiff]] deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] -git-tree-sha1 = "bc0c5092d6caaea112d3c8e3b238d61563c58d5f" +git-tree-sha1 = "2de436b72c3422940cbe1367611d137008af7ec3" uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.23.0" +version = "2.23.1" [deps.FiniteDiff.extensions] FiniteDiffBandedMatricesExt = "BandedMatrices" @@ -551,21 +566,21 @@ version = "2.23.0" [[deps.FiniteDifferences]] deps = ["ChainRulesCore", "LinearAlgebra", "Printf", "Random", "Richardson", "SparseArrays", "StaticArrays"] -git-tree-sha1 = "d77e4697046989f44dce3ed66269aaf1611a3406" +git-tree-sha1 = "06d76c780d657729cf20821fb5832c6cc4dfd0b5" uuid = "26cc04aa-876d-5657-8c51-4c34ba976000" -version = "0.12.31" +version = "0.12.32" [[deps.FixedPointNumbers]] deps = ["Statistics"] -git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +git-tree-sha1 = "05882d6995ae5c12bb5f36dd2ed3f61c98cbb172" uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" -version = "0.8.4" +version = "0.8.5" [[deps.Fontconfig_jll]] -deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"] +git-tree-sha1 = "db16beca600632c95fc8aca29890d83788dd8b23" uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" -version = "2.13.93+0" +version = "2.13.96+0" [[deps.Format]] git-tree-sha1 = "9c68794ef81b08086aeb32eeaf33531668d5f5fc" @@ -590,15 +605,15 @@ version = "0.4.3" [[deps.FreeType2_jll]] deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +git-tree-sha1 = "5c1d8ae0efc6c2e7b1fc502cbe25def8f661b7bc" uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" -version = "2.13.1+0" +version = "2.13.2+0" [[deps.FriBidi_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1ed150b39aebcc805c26b93a8d0122c940f64ce2" uuid = "559328eb-81f9-559d-9380-de523a88c83c" -version = "1.0.10+0" +version = "1.0.14+0" [[deps.FunctionWrappers]] git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" @@ -635,9 +650,9 @@ version = "3.3.9+0" [[deps.GPUArrays]] deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] -git-tree-sha1 = "68e8ff56a4a355a85d2784b94614491f8c900cde" +git-tree-sha1 = "38cb19b8a3e600e509dc36a6396ac74266d108c1" uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "10.1.0" +version = "10.1.1" [[deps.GPUArraysCore]] deps = ["Adapt"] @@ -647,21 +662,21 @@ version = "0.1.6" [[deps.GPUCompiler]] deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "a846f297ce9d09ccba02ead0cae70690e072a119" +git-tree-sha1 = "518ebd058c9895de468a8c255797b0c53fdb44dd" uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.25.0" +version = "0.26.5" [[deps.GR]] -deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] -git-tree-sha1 = "3437ade7073682993e092ca570ad68a2aba26983" +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "p7zip_jll"] +git-tree-sha1 = "ddda044ca260ee324c5fc07edb6d7cf3f0b9c350" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.73.3" +version = "0.73.5" [[deps.GR_jll]] deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "a96d5c713e6aa28c242b0d25c1347e258d6541ab" +git-tree-sha1 = "278e5e0f820178e8a26df3184fcb2280717c79b1" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.73.3+0" +version = "0.73.5+0" [[deps.Gettext_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] @@ -677,9 +692,9 @@ version = "9.55.0+4" [[deps.Glib_jll]] deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "359a1ba2e320790ddbe4ee8b4d54a305c0ea2aff" +git-tree-sha1 = "7c82e6a6cd34e9d935e9aa4051b66c6ff3af59ba" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.80.0+0" +version = "2.80.2+0" [[deps.Glob]] git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" @@ -723,9 +738,9 @@ version = "1.14.2+1" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "8e59b47b9dc525b70550ca082ce85bcd7f5477cd" +git-tree-sha1 = "d1d712be3164d61d1fb98e7ce9bcbc6cc06b45ed" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.10.5" +version = "1.10.8" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -758,10 +773,10 @@ uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" version = "0.2.4" [[deps.IRTools]] -deps = ["InteractiveUtils", "MacroTools", "Test"] -git-tree-sha1 = "5d8c5713f38f7bc029e26627b687710ba406d0dd" +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "950c3717af761bc3ff906c2e8e52bd83390b6ec2" uuid = "7869d1d1-7146-5819-86e3-90919afe41df" -version = "0.4.12" +version = "0.4.14" [[deps.IfElse]] git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" @@ -788,9 +803,9 @@ version = "0.9.4" [[deps.ImageIO]] deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] -git-tree-sha1 = "bca20b2f5d00c4fbc192c3212da8fa79f4688009" +git-tree-sha1 = "437abb322a41d527c197fa800455f79d414f0a3c" uuid = "82e4d734-157c-48bb-816b-45c225c6df19" -version = "0.6.7" +version = "0.6.8" [[deps.ImageMagick]] deps = ["FileIO", "ImageCore", "ImageMagick_jll", "InteractiveUtils", "Libdl", "Pkg", "Random"] @@ -818,9 +833,9 @@ version = "0.3.8" [[deps.Imath_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "3d09a9f60edf77f8a4d99f9e015e8fbf9989605d" +git-tree-sha1 = "0936ba688c6d201805a83da835b55c61a180db52" uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1" -version = "3.1.7+0" +version = "3.1.11+0" [[deps.IndexFunArrays]] deps = ["ChainRulesCore", "LinearAlgebra"] @@ -834,9 +849,9 @@ uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" version = "1.0.0" [[deps.Inflate]] -git-tree-sha1 = "ea8031dea4aff6bd41f1df8f2fdfb25b33626381" +git-tree-sha1 = "d1b1b796e47d94588b3757fe84fbf65a5ec4a80d" uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" -version = "0.1.4" +version = "0.1.5" [[deps.InitialValues]] git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3" @@ -851,9 +866,9 @@ version = "1.4.0" [[deps.IntelOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "5fdf2fe6724d8caabf43b557b84ce53f3b7e2f6b" +git-tree-sha1 = "be50fe8df3acbffa0274a744f1a99d29c45a57f4" uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2024.0.2+0" +version = "2024.1.0+0" [[deps.InteractiveUtils]] deps = ["Markdown"] @@ -872,9 +887,9 @@ weakdeps = ["Random", "RecipesBase", "Statistics"] [[deps.InverseFunctions]] deps = ["Test"] -git-tree-sha1 = "896385798a8d49a255c398bd49162062e4a4c435" +git-tree-sha1 = "e7cbed5032c4c397a6ac23d1493f3289e01231c4" uuid = "3587e190-3f89-42d0-90ee-14403ec27112" -version = "0.1.13" +version = "0.1.14" weakdeps = ["Dates"] [deps.InverseFunctions.extensions] @@ -901,10 +916,10 @@ uuid = "82899510-4779-5014-852e-03e436cf321d" version = "1.0.0" [[deps.JLD2]] -deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "PrecompileTools", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] -git-tree-sha1 = "5ea6acdd53a51d897672edb694e3cc2912f3f8a7" +deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "PrecompileTools", "Reexport", "Requires", "TranscodingStreams", "UUIDs", "Unicode"] +git-tree-sha1 = "bdbe8222d2f5703ad6a7019277d149ec6d78c301" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.4.46" +version = "0.4.48" [[deps.JLFzf]] deps = ["Pipe", "REPL", "Random", "fzf_jll"] @@ -932,9 +947,9 @@ version = "0.1.5" [[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "3336abae9a713d2210bb57ab484b1e065edd7d23" +git-tree-sha1 = "c84a835e1a09b289ffcd2271bf2a337bbdda6637" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" -version = "3.0.2+0" +version = "3.0.3+0" [[deps.JuliaInterpreter]] deps = ["CodeTracking", "InteractiveUtils", "Random", "UUIDs"] @@ -956,9 +971,9 @@ version = "0.2.4" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "ed7167240f40e62d97c1f5f7735dea6de3cc5c49" +git-tree-sha1 = "db02395e4c374030c53dc28f3c1d33dec35f7272" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.18" +version = "0.9.19" [deps.KernelAbstractions.extensions] EnzymeExt = "EnzymeCore" @@ -967,10 +982,16 @@ version = "0.9.18" EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" [[deps.LAME_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "170b660facf5df5de098d866564877e119141cbd" uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" -version = "3.100.1+0" +version = "3.100.2+0" + +[[deps.LBFGSB]] +deps = ["L_BFGS_B_jll"] +git-tree-sha1 = "e2e6f53ee20605d0ea2be473480b7480bd5091b5" +uuid = "5be7bae1-8223-5378-bac3-9e7378a2f6e6" +version = "0.4.1" [[deps.LERC_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -980,9 +1001,9 @@ version = "3.0.0+1" [[deps.LLVM]] deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] -git-tree-sha1 = "839c82932db86740ae729779e610f07a1640be9a" +git-tree-sha1 = "065c36f95709dd4a676dc6839a35d6fa6f192f24" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "6.6.3" +version = "7.1.0" weakdeps = ["BFloat16s"] [deps.LLVM.extensions] @@ -1006,10 +1027,16 @@ uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" version = "15.0.7+0" [[deps.LZO_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "70c5da094887fd2cae843b8db33920bac4b6f07d" uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" -version = "2.10.1+0" +version = "2.10.2+0" + +[[deps.L_BFGS_B_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "77feda930ed3f04b2b0fbb5bea89e69d3677c6b0" +uuid = "81d17ec3-03a1-5e46-b53e-bddc35a13473" +version = "3.0.1+0" [[deps.LaTeXStrings]] git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" @@ -1018,9 +1045,9 @@ version = "1.3.1" [[deps.Latexify]] deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] -git-tree-sha1 = "cad560042a7cc108f5a4c24ea1431a9221f22c1b" +git-tree-sha1 = "e0b5cd21dc1b44ec6e64f351976f961e6f31d6c4" uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" -version = "0.16.2" +version = "0.16.3" [deps.Latexify.extensions] DataFramesExt = "DataFrames" @@ -1084,10 +1111,10 @@ uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" version = "3.2.2+1" [[deps.Libgcrypt_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] -git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll"] +git-tree-sha1 = "9fd170c4bbfd8b935fdc5f8b7aa33532c991a673" uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" -version = "1.8.7+0" +version = "1.8.11+0" [[deps.Libglvnd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] @@ -1096,10 +1123,10 @@ uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" version = "1.6.0+0" [[deps.Libgpg_error_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "fbb1f2bef882392312feb1ede3615ddc1e9b99ed" uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" -version = "1.42.0+0" +version = "1.49.0+0" [[deps.Libiconv_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1109,9 +1136,9 @@ version = "1.17.0+0" [[deps.Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "dae976433497a2f841baadea93d27e68f1a12a97" +git-tree-sha1 = "0c4f9c4f1a50d8f35048fa0532dabbadf702f81e" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" -version = "2.39.3+0" +version = "2.40.1+0" [[deps.Libtiff_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] @@ -1121,9 +1148,9 @@ version = "4.5.1+1" [[deps.Libuuid_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "0a04a1318df1bf510beb2562cf90fb0c386f58c4" +git-tree-sha1 = "5ee6203157c120d79034c748a2acba45b82b8807" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" -version = "2.39.3+1" +version = "2.40.1+0" [[deps.LineSearches]] deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] @@ -1137,15 +1164,15 @@ uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" [[deps.LittleCMS_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll"] -git-tree-sha1 = "08ed30575ffc5651a50d3291beaf94c3e7996e55" +git-tree-sha1 = "fa7fd067dca76cadd880f1ca937b4f387975a9f5" uuid = "d3a379c0-f9a3-5b72-a4c0-6bf4d2e8af0f" -version = "2.15.0+0" +version = "2.16.0+0" [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "18144f3e9cbe9b15b070288eef858f71b291ce37" +git-tree-sha1 = "a2d09619db4e765091ee5c6ffe8872849de0feea" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.27" +version = "0.3.28" [deps.LogExpFunctions.extensions] LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" @@ -1168,9 +1195,9 @@ version = "1.0.3" [[deps.LoweredCodeUtils]] deps = ["JuliaInterpreter"] -git-tree-sha1 = "31e27f0b0bf0df3e3e951bfcc43fe8c730a219f6" +git-tree-sha1 = "c6a36b22d2cca0e1a903f00f600991f97bf5f426" uuid = "6f1432cf-f94c-5a45-995e-cdbf5db27b0b" -version = "2.4.5" +version = "2.4.6" [[deps.MIMEs]] git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" @@ -1178,10 +1205,10 @@ uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" version = "0.1.4" [[deps.MKL_jll]] -deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] -git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"] +git-tree-sha1 = "80b2833b56d466b3858d565adcd16a4a05f2089b" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2024.0.0+0" +version = "2024.1.0+0" [[deps.MLStyle]] git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" @@ -1190,21 +1217,21 @@ version = "0.4.17" [[deps.MPICH_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "656036b9ed6f942d35e536e249600bc31d0f9df8" +git-tree-sha1 = "4099bb6809ac109bfc17d521dad33763bcf026b7" uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" -version = "4.2.0+0" +version = "4.2.1+1" [[deps.MPIPreferences]] deps = ["Libdl", "Preferences"] -git-tree-sha1 = "8f6af051b9e8ec597fa09d8885ed79fd582f33c9" +git-tree-sha1 = "c105fe467859e7f6e9a852cb15cb4301126fac07" uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" -version = "0.1.10" +version = "0.1.11" [[deps.MPItrampoline_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "77c3bd69fdb024d75af38713e883d0f249ce19c2" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "8c35d5420193841b2f367e658540e8d9e0601ed0" uuid = "f1f71cc9-e9ae-5b93-9b94-4fe0e1ad3748" -version = "5.3.2+0" +version = "5.4.0+0" [[deps.MacroTools]] deps = ["Markdown", "Random"] @@ -1288,9 +1315,9 @@ version = "1.2.1" [[deps.NDTools]] deps = ["LinearAlgebra", "OffsetArrays", "PaddedViews", "Random", "Statistics"] -git-tree-sha1 = "4d5fc006e0a006875f57be883c81d9c4a5d56bc6" +git-tree-sha1 = "3e87b9a00ad1d7b0322150b1acba91f7e48792b5" uuid = "98581153-e998-4eef-8d0d-5ec2c052313d" -version = "0.5.3" +version = "0.6.0" [[deps.NFFT]] deps = ["AbstractNFFTs", "BasicInterpolators", "Distributed", "FFTW", "FLoops", "LinearAlgebra", "Printf", "Random", "Reexport", "SnoopPrecompile", "SparseArrays", "SpecialFunctions"] @@ -1306,9 +1333,9 @@ version = "7.8.3" [[deps.NNlib]] deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] -git-tree-sha1 = "1fa1a14766c60e66ab22e242d45c1857c83a3805" +git-tree-sha1 = "3d4617f943afe6410206a5294a95948c8d1b35bd" uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -version = "0.9.13" +version = "0.9.17" [deps.NNlib.extensions] NNlibAMDGPUExt = "AMDGPU" @@ -1363,9 +1390,9 @@ uuid = "81d43f40-5267-43b7-ae1c-8b967f377efa" version = "0.3.3" [[deps.OffsetArrays]] -git-tree-sha1 = "6a731f2b5c03157418a20c12195eb4b74c8f8621" +git-tree-sha1 = "e64b4f5ea6b7389f6f046d13d4896a8f9c1ba71e" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.13.0" +version = "1.14.0" weakdeps = ["Adapt"] [deps.OffsetArrays.extensions] @@ -1390,15 +1417,15 @@ version = "0.3.2" [[deps.OpenEXR_jll]] deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "a4ca623df1ae99d09bc9868b008262d0c0ac1e4f" +git-tree-sha1 = "8292dd5c8a38257111ada2174000a33745b06d4e" uuid = "18a262bb-aa17-5467-a713-aee519bc75cb" -version = "3.1.4+0" +version = "3.2.4+0" [[deps.OpenJpeg_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libtiff_jll", "LittleCMS_jll", "libpng_jll"] -git-tree-sha1 = "8d4c87ffaf09dbdd82bcf8c939843e94dd424df2" +git-tree-sha1 = "f4cb457ffac5f5cf695699f82c537073958a6a6c" uuid = "643b3616-a352-519d-856d-80112ee9badc" -version = "2.5.0+0" +version = "2.5.2+0" [[deps.OpenLibm_jll]] deps = ["Artifacts", "Libdl"] @@ -1406,16 +1433,16 @@ uuid = "05823500-19ac-5b8b-9628-191a04bc5112" version = "0.8.1+2" [[deps.OpenMPI_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "PMIx_jll", "TOML", "Zlib_jll", "libevent_jll", "prrte_jll"] -git-tree-sha1 = "f46caf663e069027a06942d00dced37f1eb3d8ad" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML", "Zlib_jll"] +git-tree-sha1 = "a9de2f1fc98b92f8856c640bf4aec1ac9b2a0d86" uuid = "fe0851c0-eecd-5654-98d4-656369965a5c" -version = "5.0.2+0" +version = "5.0.3+0" [[deps.OpenSSL]] deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] -git-tree-sha1 = "af81a32750ebc831ee28bdaaba6e1067decef51e" +git-tree-sha1 = "38cb508d080d21dc1128f7fb04f20387ed4c0af4" uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" -version = "1.4.2" +version = "1.4.3" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1443,21 +1470,21 @@ version = "1.9.4" [[deps.Optimisers]] deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] -git-tree-sha1 = "264b061c1903bc0fe9be77cb9050ebacff66bb63" +git-tree-sha1 = "6572fe0c5b74431aaeb0b18a4aa5ef03c84678be" uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" -version = "0.3.2" +version = "0.3.3" [[deps.Optimization]] -deps = ["ADTypes", "ArrayInterface", "ConsoleProgressMonitor", "DocStringExtensions", "LinearAlgebra", "Logging", "LoggingExtras", "OptimizationBase", "Pkg", "Printf", "ProgressLogging", "Reexport", "SciMLBase", "SparseArrays", "TerminalLoggers"] -git-tree-sha1 = "bc659730e7efff07c95218f24ed4c6f472054938" +deps = ["ADTypes", "ArrayInterface", "ConsoleProgressMonitor", "DocStringExtensions", "LBFGSB", "LinearAlgebra", "Logging", "LoggingExtras", "OptimizationBase", "Pkg", "Printf", "ProgressLogging", "Reexport", "SciMLBase", "SparseArrays", "TerminalLoggers"] +git-tree-sha1 = "fe516248dcccd7285c0ac699eeaf32ae64d8e759" uuid = "7f7a1694-90dd-40f0-9382-eb1efda571ba" -version = "3.24.3" +version = "3.25.1" [[deps.OptimizationBase]] deps = ["ADTypes", "ArrayInterface", "DocStringExtensions", "LinearAlgebra", "Reexport", "Requires", "SciMLBase", "SparseArrays"] -git-tree-sha1 = "6266f3365980f0a6a39426316595bc1254df239c" +git-tree-sha1 = "196a0a0ec2301de58a1e4cf2931211f6ae35f65f" uuid = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" -version = "0.0.5" +version = "1.0.2" [deps.OptimizationBase.extensions] OptimizationEnzymeExt = "Enzyme" @@ -1482,9 +1509,9 @@ version = "0.0.5" [[deps.OptimizationOptimJL]] deps = ["Optim", "Optimization", "Reexport", "SparseArrays"] -git-tree-sha1 = "4747c78bea226ac7876ae72e5e2521c43a5c927c" +git-tree-sha1 = "d405cc3190e039da584da43c55ed4490d79a242f" uuid = "36348300-93cb-4f02-beb5-3c3902f8871e" -version = "0.2.3" +version = "0.3.1" [[deps.OptimizationOptimisers]] deps = ["Optimisers", "Optimization", "Printf", "ProgressLogging", "Reexport"] @@ -1508,12 +1535,6 @@ deps = ["Artifacts", "Libdl"] uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" version = "10.42.0+1" -[[deps.PMIx_jll]] -deps = ["Artifacts", "Hwloc_jll", "JLLWrappers", "Libdl", "Zlib_jll", "libevent_jll"] -git-tree-sha1 = "360f48126b5f2c2f0c833be960097f7c62705976" -uuid = "32165bc3-0280-59bc-8c0b-c33b6203efab" -version = "4.2.9+0" - [[deps.PNGFiles]] deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] git-tree-sha1 = "67186a2bc9a90f9f85ff3cc8277868961fb57cbd" @@ -1545,9 +1566,9 @@ version = "1.3.0" [[deps.Pixman_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] -git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +git-tree-sha1 = "35621f10a7531bc8fa58f74610b1bfb70a3cfc6b" uuid = "30392449-352a-5448-841d-b1acce4e97dc" -version = "0.42.2+0" +version = "0.43.4+0" [[deps.Pkg]] deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] @@ -1562,9 +1583,9 @@ version = "0.3.3" [[deps.PlotThemes]] deps = ["PlotUtils", "Statistics"] -git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" +git-tree-sha1 = "6e55c6841ce3411ccb3457ee52fc48cb698d6fb0" uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" -version = "3.1.0" +version = "3.2.0" [[deps.PlotUtils]] deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] @@ -1574,9 +1595,9 @@ version = "1.4.1" [[deps.Plots]] deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] -git-tree-sha1 = "3bdfa4fa528ef21287ef659a89d686e8a1bcb1a9" +git-tree-sha1 = "442e1e7ac27dd5ff8825c3fa62fbd1e86397974b" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.40.3" +version = "1.40.4" [deps.Plots.extensions] FileIOExt = "FileIO" @@ -1594,9 +1615,9 @@ version = "1.40.3" [[deps.Pluto]] deps = ["Base64", "Configurations", "Dates", "Downloads", "ExpressionExplorer", "FileWatching", "FuzzyCompletions", "HTTP", "HypertextLiteral", "InteractiveUtils", "Logging", "LoggingExtras", "MIMEs", "Malt", "Markdown", "MsgPack", "Pkg", "PlutoDependencyExplorer", "PrecompileSignatures", "PrecompileTools", "REPL", "RegistryInstances", "RelocatableFolders", "Scratch", "Sockets", "TOML", "Tables", "URIs", "UUIDs"] -git-tree-sha1 = "35280d2e6b2211bc5f9e913460c263ac89ef56f0" +git-tree-sha1 = "7074b3a8339fadaf8524a9252ae7565b85f648f1" uuid = "c3e4b0f8-55cb-11ea-2926-15256bba5781" -version = "0.19.40" +version = "0.19.42" [[deps.PlutoDependencyExplorer]] deps = ["ExpressionExplorer", "InteractiveUtils", "Markdown"] @@ -1606,9 +1627,9 @@ version = "1.0.4" [[deps.PlutoUI]] deps = ["AbstractPlutoDingetjes", "Base64", "ColorTypes", "Dates", "FixedPointNumbers", "Hyperscript", "HypertextLiteral", "IOCapture", "InteractiveUtils", "JSON", "Logging", "MIMEs", "Markdown", "Random", "Reexport", "URIs", "UUIDs"] -git-tree-sha1 = "71a22244e352aa8c5f0f2adde4150f62368a3f2e" +git-tree-sha1 = "ab55ee1510ad2af0ff674dbcced5e94921f867a9" uuid = "7f904dfe-b85e-4ff6-b463-dae2292396a8" -version = "0.7.58" +version = "0.7.59" [[deps.PoissonRandom]] deps = ["Random"] @@ -1652,9 +1673,9 @@ version = "0.2.0" [[deps.PrettyTables]] deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] -git-tree-sha1 = "88b895d13d53b5577fd53379d913b9ab9ac82660" +git-tree-sha1 = "66b20dd35966a748321d3b2537c4584cf40387c7" uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" -version = "2.3.1" +version = "2.3.2" [[deps.Printf]] deps = ["Unicode"] @@ -1700,9 +1721,9 @@ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[deps.RadonKA]] deps = ["Atomix", "ChainRulesCore", "FFTW", "IndexFunArrays", "KernelAbstractions", "PrecompileTools"] -git-tree-sha1 = "e31da20e6606cf9f8fedf51422a06b15fc3cf633" +git-tree-sha1 = "28c1558936dd80dd207530921a960873e6056b45" uuid = "86de8297-835b-47df-b249-c04e8db91db5" -version = "0.6.0" +version = "0.6.1" [[deps.Random]] deps = ["SHA"] @@ -1745,9 +1766,9 @@ version = "0.6.12" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "SparseArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "d8f131090f2e44b145084928856a561c83f43b27" +git-tree-sha1 = "23a2f876de8c1f1fda6345b289cd7a3641fd0340" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.13.0" +version = "3.21.0" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" @@ -1804,19 +1825,25 @@ version = "1.4.2" [[deps.RuntimeGeneratedFunctions]] deps = ["ExprTools", "SHA", "Serialization"] -git-tree-sha1 = "6aacc5eefe8415f47b3e34214c1d79d2674a0ba2" +git-tree-sha1 = "04c968137612c4a5629fa531334bb81ad5680f00" uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" -version = "0.5.12" +version = "0.5.13" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" version = "0.7.0" +[[deps.SIMD]] +deps = ["PrecompileTools"] +git-tree-sha1 = "2803cab51702db743f3fda07dd1745aadfbf43bd" +uuid = "fdea26ae-647d-5447-a871-4b548cad5224" +version = "3.5.0" + [[deps.SciMLBase]] deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "d15c65e25615272e1b1c5edb1d307484c7942824" +git-tree-sha1 = "9f59654e2a85017ee27b0f59c7fac5a57aa10ced" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.31.0" +version = "2.39.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -1844,9 +1871,9 @@ uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" version = "0.3.8" [[deps.SciMLStructures]] -git-tree-sha1 = "5833c10ce83d690c124beedfe5f621b50b02ba4d" +git-tree-sha1 = "d778a74df2f64059c38453b34abad1953b2b8722" uuid = "53ae85a6-f571-4167-b2af-e1d143709226" -version = "1.1.0" +version = "1.2.0" [[deps.Scratch]] deps = ["Dates"] @@ -1856,9 +1883,9 @@ version = "1.2.1" [[deps.SentinelArrays]] deps = ["Dates", "Random"] -git-tree-sha1 = "0e7508ff27ba32f26cd459474ca2ede1bc10991f" +git-tree-sha1 = "90b4f68892337554d31cdcdbe19e48989f26c7e6" uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" -version = "1.4.1" +version = "1.4.3" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" @@ -1925,9 +1952,9 @@ version = "0.1.2" [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +git-tree-sha1 = "2f5d4697f21388cbe1ff299430dd169ef97d7e14" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.3.1" +version = "2.4.0" weakdeps = ["ChainRulesCore"] [deps.SpecialFunctions.extensions] @@ -1964,9 +1991,9 @@ weakdeps = ["OffsetArrays", "StaticArrays"] [[deps.StaticArrays]] deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] -git-tree-sha1 = "bf074c045d3d5ffd956fa0a461da38a44685d6b2" +git-tree-sha1 = "9ae599cd7529cfce7fea36cf00a62cfc56f0f37c" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.9.3" +version = "1.9.4" weakdeps = ["ChainRulesCore", "Statistics"] [deps.StaticArrays.extensions] @@ -2039,13 +2066,13 @@ version = "0.2.7" deps = ["CUDA", "ChainRulesCore", "DiffImageRotation", "FFTW", "FileIO", "FourierTools", "HDF5", "ImageIO", "ImageShow", "IndexFunArrays", "JLD2", "NDTools", "NNlib", "Optim", "Parameters", "Pkg", "Plots", "RadonKA", "Statistics", "Tar", "WaveOpticsPropagation", "Zygote"] path = ".." uuid = "fafdf525-54c7-48ec-ae29-528bd4cccfab" -version = "0.1.0" +version = "0.2.0" [[deps.SymbolicIndexingInterface]] -deps = ["Accessors", "ArrayInterface", "MacroTools", "RuntimeGeneratedFunctions", "StaticArraysCore"] -git-tree-sha1 = "4b7f4c80449d8baae8857d55535033981862619c" +deps = ["Accessors", "ArrayInterface", "RuntimeGeneratedFunctions", "StaticArraysCore"] +git-tree-sha1 = "a5f6f138b740c9d93d76f0feddd3092e6ef002b7" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.15" +version = "0.3.22" [[deps.TOML]] deps = ["Dates"] @@ -2092,21 +2119,21 @@ uuid = "5e47fb64-e119-507b-a336-dd2b206d9990" version = "1.8.0" [[deps.TiffImages]] -deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"] -git-tree-sha1 = "34cc045dd0aaa59b8bbe86c644679bc57f1d5bd0" +deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "SIMD", "UUIDs"] +git-tree-sha1 = "bc7fd5c91041f44636b2c134041f7e5263ce58ae" uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" -version = "0.6.8" +version = "0.10.0" [[deps.TimerOutputs]] deps = ["ExprTools", "Printf"] -git-tree-sha1 = "f548a9e9c490030e545f72074a41edfd0e5bcdd7" +git-tree-sha1 = "5a13ae8a41237cff5ecf34f73eb1b8f42fff6531" uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" -version = "0.5.23" +version = "0.5.24" [[deps.TranscodingStreams]] -git-tree-sha1 = "71509f04d045ec714c4748c785a59045c3736349" +git-tree-sha1 = "a947ea21087caba0a798c5e494d0bb78e3a1a3a0" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.10.7" +version = "0.10.9" weakdeps = ["Random", "Test"] [deps.TranscodingStreams.extensions] @@ -2162,9 +2189,9 @@ version = "0.4.1" [[deps.Unitful]] deps = ["Dates", "LinearAlgebra", "Random"] -git-tree-sha1 = "3c793be6df9dd77a0cf49d80984ef9ff996948fa" +git-tree-sha1 = "dd260903fdabea27d9b6021689b3cd5401a57748" uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" -version = "1.19.0" +version = "1.20.0" weakdeps = ["ConstructionBase", "InverseFunctions"] [deps.Unitful.extensions] @@ -2184,9 +2211,9 @@ version = "0.2.1" [[deps.UnsafeAtomicsLLVM]] deps = ["LLVM", "UnsafeAtomics"] -git-tree-sha1 = "323e3d0acf5e78a56dfae7bd8928c989b4f3083e" +git-tree-sha1 = "d9f5962fecd5ccece07db1ff006fb0b5271bdfdd" uuid = "d80eeb9a-aca5-4d75-85e5-170c8b632249" -version = "0.1.3" +version = "0.1.4" [[deps.Unzip]] git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" @@ -2207,9 +2234,9 @@ version = "1.3.243+0" [[deps.WaveOpticsPropagation]] deps = ["CUDA", "ChainRulesCore", "EllipsisNotation", "FFTW", "FourierTools", "IndexFunArrays", "NDTools", "Zygote"] -git-tree-sha1 = "aa796c8f1e8426ac7f5f540db62b50372de9e6ae" +git-tree-sha1 = "889a19c8d0743b162e046b9b8012a3275301b48f" uuid = "c4c7a1f9-3adc-4a73-843a-d378b6c86436" -version = "0.2.0" +version = "0.3.0" [[deps.Wayland_jll]] deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] @@ -2225,9 +2252,9 @@ version = "1.31.0+0" [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] -git-tree-sha1 = "532e22cf7be8462035d092ff21fada7527e2c488" +git-tree-sha1 = "52ff2af32e591541550bd753c0da8b9bc92bb9d9" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.12.6+0" +version = "2.12.7+0" [[deps.XSLT_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] @@ -2242,16 +2269,16 @@ uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" version = "5.4.6+0" [[deps.Xorg_libICE_jll]] -deps = ["Libdl", "Pkg"] -git-tree-sha1 = "e5becd4411063bdcac16be8b66fc2f9f6f1e8fe5" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "326b4fea307b0b39892b3e85fa451692eda8d46c" uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" -version = "1.0.10+1" +version = "1.1.1+0" [[deps.Xorg_libSM_jll]] -deps = ["Libdl", "Pkg", "Xorg_libICE_jll"] -git-tree-sha1 = "4a9d9e4c180e1e8119b5ffc224a7b59d3a7f7e18" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libICE_jll"] +git-tree-sha1 = "3796722887072218eabafb494a13c963209754ce" uuid = "c834827a-8449-5923-a945-d239c165b7dd" -version = "1.2.3+0" +version = "1.2.4+0" [[deps.Xorg_libX11_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] @@ -2278,10 +2305,10 @@ uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" version = "1.1.4+0" [[deps.Xorg_libXext_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] -git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "d2d1a5c49fae4ba39983f63de6afcbea47194e85" uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" -version = "1.3.4+4" +version = "1.3.6+0" [[deps.Xorg_libXfixes_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] @@ -2308,10 +2335,10 @@ uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" version = "1.5.2+4" [[deps.Xorg_libXrender_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] -git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "47e45cd78224c53109495b3e324df0c37bb61fbe" uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" -version = "0.9.10+4" +version = "0.9.11+0" [[deps.Xorg_libpthread_stubs_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -2398,9 +2425,9 @@ version = "1.5.6+0" [[deps.Zygote]] deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArrays", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "PrecompileTools", "Random", "Requires", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] -git-tree-sha1 = "4ddb4470e47b0094c93055a3bcae799165cc68f1" +git-tree-sha1 = "19c586905e78a26f7e4e97f81716057bd6b1bc54" uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" -version = "0.6.69" +version = "0.6.70" [deps.Zygote.extensions] ZygoteColorsExt = "Colors" @@ -2443,10 +2470,10 @@ uuid = "477f73a3-ac25-53e9-8cc3-50b2fa2566f0" version = "1.1.2+0" [[deps.libaom_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1827acba325fdcdf1d2647fc8d5301dd9ba43a9d" uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" -version = "3.4.0+0" +version = "3.9.0+0" [[deps.libass_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] @@ -2465,12 +2492,6 @@ git-tree-sha1 = "141fe65dc3efabb0b1d5ba74e91f6ad26f84cc22" uuid = "2db6ffa8-e38f-5e21-84af-90c45d0032cc" version = "1.11.0+0" -[[deps.libevent_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "OpenSSL_jll"] -git-tree-sha1 = "f04ec6d9a186115fb38f858f05c0c4e1b7fc9dcb" -uuid = "1080aeaf-3a6a-583e-a51c-c537b09f60ec" -version = "2.1.13+1" - [[deps.libfdk_aac_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" @@ -2512,17 +2533,17 @@ deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" version = "1.52.0+1" +[[deps.oneTBB_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "7d0ea0f4895ef2f5cb83645fa689e52cb55cf493" +uuid = "1317d2d5-d96f-522e-a858-c73665f53c3e" +version = "2021.12.0+0" + [[deps.p7zip_jll]] deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" version = "17.4.0+2" -[[deps.prrte_jll]] -deps = ["Artifacts", "Hwloc_jll", "JLLWrappers", "Libdl", "PMIx_jll", "libevent_jll"] -git-tree-sha1 = "5adb2d7a18a30280feb66cad6f1a1dfdca2dc7b0" -uuid = "eb928a42-fffd-568d-ab9c-3f5d54fc65b9" -version = "3.0.2+0" - [[deps.x264_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" diff --git a/src/ray_optics.jl b/src/ray_optics.jl index d91589a..6c8b32b 100644 --- a/src/ray_optics.jl +++ b/src/ray_optics.jl @@ -23,7 +23,6 @@ Forward model is the (attenuated) Radon transform. - `angles` is a range or `Vector` (or `CuVector`) storing the illumination angles. - `μ` is the absorption coefficient of the resin in units of pixels. -- So `μ=0.1` means that after ten pixels of propagation the intensity is `I(10) = I_0 * exp(-10 * 0.1)`. - `R_outer` is the outer radius of the glass vial. - `R_inner` is the inner radius of the glass vial. - `camera_diameter` is the diameter of the camera along the vial radius. So this is not the height along the rotation axis! @@ -60,7 +59,7 @@ end """ - ParallelRayOptics(angles, μ) + ParallelRayOptics(angles, μ, DMD_diameter) Type to represent the parallel ray optical approach. This is suited for a printer with an index matching bath. @@ -68,8 +67,9 @@ This is equivalent to an inverse (attenuated) Radon transform as the forward mod - `angles` is a range or `Vector` (or `CuVector`) storing the illumination angles. -- `μ` is the absorption coefficient of the resin in units of pixels. - So `μ=0.1` means that after ten pixels of propagation the intensity is `I(10) = I_0 * exp(-10 * 0.1)`. +- `DMD_diameter` is the diameter of the DMD along the vial radius. So this is not the height along the rotation axis! +- `μ` is the absorption coefficient of the resin in units of inverse meters + So `μ=100.0 1/m` means that after 10mm of propagation the intensity is `I(10mm) = I_0 * exp(-10.0mm * 100.0/m) = I_0 * exp(-1)`. See also [`VialRayOptics`](@ref) for a printer without index matching bath. @@ -82,9 +82,10 @@ julia> ParallelRayOptics(range(0, 2π, 401)[begin:end-1], nothing) ParallelRayOptics{Nothing, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}(0.0:0.015707963267948967:6.267477343911637, nothing) ``` """ -struct ParallelRayOptics{T, A} <: PropagationScheme +@with_kw struct ParallelRayOptics{T, A, ToN} <: PropagationScheme angles::A - μ::T + DMD_diameter::T + μ::ToN=nothing end @@ -95,8 +96,8 @@ This is equivalent to an inverse (attenuated) Radon transform as the forward mod - `angles` is a range or `Vector` (or `CuVector`) storing the illumination angles. -- `μ` is the absorption coefficient of the resin in units of pixels. -- So `μ=0.1` means that after ten pixels of propagation the intensity is `I(10) = I_0 * exp(-10 * 0.1)`. +- `μ` is the absorption coefficient of the resin in units of inverse meters + So `μ=100.0 1/m` means that after 10mm of propagation the intensity is `I(10mm) = I_0 * exp(-10.0mm * 100.0/m) = I_0 * exp(-1)`. - `R_outer` is the outer radius of the glass vial. - `R_inner` is the inner radius of the glass vial. - `DMD_diameter` is the diameter of the DMD along the vial radius. So this is not the height along the rotation axis! @@ -213,7 +214,8 @@ function _prepare_ray_forward(target::AbstractArray{T}, ps::ParallelRayOptics, d kernel ./= sum(kernel) kernel_fft = p * ifftshift(kernel, (1,2,3)) - fwd = let angles=ps.angles, μ=ps.μ, geometry=geometry, kernel_fft=kernel_fft, target=target, p=p, pinv=inv(p) + μ_pixels = isnothing(ps.μ) ? nothing : T(ps.μ * ps.DMD_diameter / size(target, 1)) + fwd = let angles=ps.angles, μ_pixels=μ_pixels, geometry=geometry, kernel_fft=kernel_fft, target=target, p=p, pinv=inv(p) function fwd(x) out = 0 .* target f(j) = begin @@ -221,7 +223,7 @@ function _prepare_ray_forward(target::AbstractArray{T}, ps::ParallelRayOptics, d angle_range = 1 + (j-1) * N_angles_d : j * N_angles_d return backproject(NNlib.relu.(view(x, :, angle_range, :) ./ length(angles)), angles[angle_range]; - μ, geometry) + μ=μ_pixels, geometry) end backprojections = [f(j) for j in 1:diff.diffusion_steps_per_rotation] @@ -241,9 +243,10 @@ end function _prepare_ray_forward(target::AbstractArray{T}, ps::ParallelRayOptics, ::Nothing) where T geometry = RadonParallelCircle(size(target, 1), -(size(target,1) -1)÷2:1:(size(target,1) -1)÷2) - pat0 = radon(target, ps.angles, μ=ps.μ, geometry=geometry) - fwd = let angles=ps.angles, μ=ps.μ, geometry=geometry - fwd(x) = backproject(NNlib.relu.(x) ./ length(angles), angles; μ, geometry) + μ_pixels = isnothing(ps.μ) ? nothing : T(ps.μ * ps.DMD_diameter / size(target, 1)) + pat0 = radon(target, ps.angles, μ=μ_pixels, geometry=geometry) + fwd = let angles=ps.angles, μ_pixels=μ_pixels, geometry=geometry + fwd(x) = backproject(NNlib.relu.(x) ./ length(angles), angles; μ=μ_pixels, geometry) end return fwd, pat0 end @@ -275,11 +278,12 @@ function _prepare_ray_forward(target::AbstractArray{T}, ps::VialRayOptics, ::Not geometry = RadonFlexibleCircle(size(target, 1), in_height, out_height, weights) # create forward model - fwd = let angles=ps.angles, μ=ps.μ, geometry=geometry - fwd(x) = backproject(NNlib.relu.(x) ./ length(angles), angles; μ, geometry) + μ_pixels = isnothing(ps.μ) ? nothing : T(ps.μ * ps.DMD_diameter / length(heights)) + fwd = let angles=ps.angles, μ_pixels=μ_pixels, geometry=geometry + fwd(x) = backproject(NNlib.relu.(x) ./ length(angles), angles; μ=μ_pixels, geometry) end - pat0 = radon(target, ps.angles; μ=ps.μ, geometry) + pat0 = radon(target, ps.angles; μ=μ_pixels, geometry) return fwd, pat0 end diff --git a/test/runtests.jl b/test/runtests.jl index f63302b..216e6e0 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -11,7 +11,7 @@ using ChainRulesTestUtils target2 = box(Float32, sz2, (17, 17, 1)) .- box(Float32, sz2, (9, 9, 1)); angles2 = range(0, 2π, 60) optimizer2 = GradientBased(optimizer=Optim.LBFGS(), options=Optim.Options(iterations=25, store_trace=true)) - geometry2 = ParallelRayOptics(angles2, nothing) + geometry2 = ParallelRayOptics(angles=angles2, μ=nothing, DMD_diameter=16e-3) @test target2 == (0.7 .< optimize_patterns((target2), geometry2, optimizer2, LossThreshold(thresholds=(0.65, 0.75)))[2]) @@ -31,7 +31,7 @@ using ChainRulesTestUtils geometry_vial = VialRayOptics( angles=angles2, - μ=2/256, + μ=3/(16e-3), R_outer=8e-3, R_inner=7.5e-3, n_vial=1.5, From 0884171fa8b44646ad82a2e5b116951ea056a7ed Mon Sep 17 00:00:00 2001 From: roflmaostc Date: Tue, 4 Jun 2024 10:44:27 +0200 Subject: [PATCH 2/2] Update realistic example --- examples/4_realistic_pattern_optimization.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/4_realistic_pattern_optimization.jl b/examples/4_realistic_pattern_optimization.jl index b465676..de919cc 100644 --- a/examples/4_realistic_pattern_optimization.jl +++ b/examples/4_realistic_pattern_optimization.jl @@ -168,7 +168,7 @@ simshow(Array(patterns_vial[:,angle,:])[end:-1:begin, :]', cmap=:turbo, set_one= # ╠═e45eeeed-a86e-40e1-b4a2-e4c25cc6a368 # ╠═f618cc32-6851-42de-b2c2-0ddc70b4668d # ╟─29bbf20e-da89-42af-b7a0-a921c1c5fe3f -# ╠═3dfccb9a-8f21-4695-965c-c1d97077ba52 +# ╟─3dfccb9a-8f21-4695-965c-c1d97077ba52 # ╠═2350dd2f-11dd-4b81-93b0-a05e88dd0fa7 # ╠═6eb9c0bc-2aa7-470d-96ca-3716c3c75e4e # ╟─819bb337-ef70-4088-82da-bda208264b30