diff --git a/.gitignore b/.gitignore index 93bde09..365e838 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ # /notebooks # /_research /data/models +**.tar** ################################################################################ # Julia # diff --git a/CondaPkg.toml b/CondaPkg.toml deleted file mode 100644 index 1a9e505..0000000 --- a/CondaPkg.toml +++ /dev/null @@ -1,2 +0,0 @@ -[deps] -scipy = "" diff --git a/LocalPreferences.toml b/LocalPreferences.toml new file mode 100644 index 0000000..3238d0e --- /dev/null +++ b/LocalPreferences.toml @@ -0,0 +1,3 @@ +[CUDA_Runtime_jll] +__clear__ = ["local"] +version = "11.8" diff --git a/Manifest.toml b/Manifest.toml index a6fbce3..30faa32 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -1,53 +1,46 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.9.0" +julia_version = "1.10.0" manifest_format = "2.0" -project_hash = "b4e9d58711e74c18ca7f8191fbbf787c9cd13e4a" +project_hash = "d29588532aa2f635d669710d6071116375c4476d" + +[[deps.ADTypes]] +git-tree-sha1 = "332e5d7baeff8497b923b730b994fa480601efc7" +uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" +version = "0.2.5" [[deps.AbstractFFTs]] deps = ["LinearAlgebra"] -git-tree-sha1 = "16b6dbc4cf7caee4e1e75c49485ec67b667098a0" +git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef" uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" -version = "1.3.1" -weakdeps = ["ChainRulesCore"] +version = "1.5.0" +weakdeps = ["ChainRulesCore", "Test"] [deps.AbstractFFTs.extensions] AbstractFFTsChainRulesCoreExt = "ChainRulesCore" + AbstractFFTsTestExt = "Test" + +[[deps.AbstractLattices]] +git-tree-sha1 = "222ee9e50b98f51b5d78feb93dd928880df35f06" +uuid = "398f06c4-4d28-53ec-89ca-5b2656b7603d" +version = "0.3.0" [[deps.AbstractPlutoDingetjes]] deps = ["Pkg"] -git-tree-sha1 = "8eaf9f1b4921132a4cff3f36a1d9ba923b14a481" +git-tree-sha1 = "793501dcd3fa7ce8d375a2c878dca2296232686e" uuid = "6e696c72-6542-2067-7265-42206c756150" -version = "1.1.4" +version = "1.2.2" [[deps.AbstractTrees]] git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c" uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" version = "0.4.4" -[[deps.Accessors]] -deps = ["Compat", "CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "MacroTools", "Requires", "Test"] -git-tree-sha1 = "a4f8669e46c8cdf68661fe6bb0f7b89f51dd23cf" -uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" -version = "0.1.30" - - [deps.Accessors.extensions] - AccessorsAxisKeysExt = "AxisKeys" - AccessorsIntervalSetsExt = "IntervalSets" - AccessorsStaticArraysExt = "StaticArrays" - AccessorsStructArraysExt = "StructArrays" - - [deps.Accessors.weakdeps] - AxisKeys = "94b1ba4f-4ee9-5380-92f1-94cde586c3c5" - IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" - [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "cc37d689f599e8df4f464b2fa3870ff7db7492ef" +git-tree-sha1 = "02f731463748db57cc2ebfbd9fbc9ce8280d3433" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.6.1" +version = "3.7.1" weakdeps = ["StaticArrays"] [deps.Adapt.extensions] @@ -68,17 +61,11 @@ version = "2.3.0" uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" version = "1.1.1" -[[deps.ArnoldiMethod]] -deps = ["LinearAlgebra", "Random", "StaticArrays"] -git-tree-sha1 = "62e51b39331de8911e4a7ff6f5aaf38a5f4cc0ae" -uuid = "ec485272-7323-5ecc-a04f-4719b315124d" -version = "0.2.0" - [[deps.ArrayInterface]] -deps = ["Adapt", "LinearAlgebra", "Requires", "SnoopPrecompile", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "38911c7737e123b28182d89027f4216cfc8a9da7" +deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "247efbccf92448be332d154d6ca56b9fcdd93c31" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.4.3" +version = "7.6.1" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" @@ -96,18 +83,6 @@ version = "7.4.3" StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" -[[deps.ArrayInterfaceCore]] -deps = ["LinearAlgebra", "SnoopPrecompile", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "e5f08b5689b1aad068e01751889f2f615c7db36d" -uuid = "30b0a656-2188-435a-8636-2ec0e6a096e2" -version = "0.1.29" - -[[deps.ArrayLayouts]] -deps = ["FillArrays", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "4efc22e4c299e49995a38d503d9dbb0544a37838" -uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.0.4" - [[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" @@ -117,11 +92,17 @@ git-tree-sha1 = "c06a868224ecba914baa6942988e2f2aade419be" uuid = "a9b6321e-bd34-4604-b9c9-b65b8de01458" version = "0.1.0" +[[deps.AtomsBase]] +deps = ["LinearAlgebra", "PeriodicTable", "Printf", "Requires", "StaticArrays", "Unitful", "UnitfulAtomic"] +git-tree-sha1 = "995c2b6b17840cd87b722ce9c6cdd72f47bab545" +uuid = "a963bdd2-2df7-4f54-a1ee-49d51e6be12a" +version = "0.3.5" + [[deps.Automa]] -deps = ["Printf", "ScanByte", "TranscodingStreams"] -git-tree-sha1 = "d50976f217489ce799e366d9561d56a98a30d7fe" +deps = ["TranscodingStreams"] +git-tree-sha1 = "ef9997b3d5547c48b41c7bd8899e812a917b409d" uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" -version = "0.8.2" +version = "0.8.4" [[deps.AxisAlgorithms]] deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] @@ -131,26 +112,35 @@ version = "1.0.1" [[deps.AxisArrays]] deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"] -git-tree-sha1 = "1dd4d9f5beebac0c03446918741b1a03dc5e5788" +git-tree-sha1 = "16351be62963a67ac4083f748fdb3cca58bfd52f" uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" -version = "0.4.6" +version = "0.4.7" [[deps.BFloat16s]] deps = ["LinearAlgebra", "Printf", "Random", "Test"] -git-tree-sha1 = "a598ecb0d717092b5539dbbe890c98bac842b072" +git-tree-sha1 = "dbf84058d0a8cbbadee18d25cf606934b22d7c66" uuid = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" -version = "0.2.0" - -[[deps.BSON]] -git-tree-sha1 = "2208958832d6e1b59e49f53697483a84ca8d664e" -uuid = "fbb218c0-5317-5bc6-957e-2ee96dd4b1f0" -version = "0.3.7" +version = "0.4.2" [[deps.BangBang]] -deps = ["Compat", "ConstructionBase", "Future", "InitialValues", "LinearAlgebra", "Requires", "Setfield", "Tables", "ZygoteRules"] -git-tree-sha1 = "7fe6d92c4f281cf4ca6f2fba0ce7b299742da7ca" +deps = ["Compat", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires", "Setfield", "Tables"] +git-tree-sha1 = "e28912ce94077686443433c2800104b061a827ed" uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" -version = "0.3.37" +version = "0.3.39" + + [deps.BangBang.extensions] + BangBangChainRulesCoreExt = "ChainRulesCore" + BangBangDataFramesExt = "DataFrames" + BangBangStaticArraysExt = "StaticArrays" + BangBangStructArraysExt = "StructArrays" + BangBangTypedTablesExt = "TypedTables" + + [deps.BangBang.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9" [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" @@ -160,10 +150,16 @@ git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e" uuid = "9718e550-a3fa-408a-8086-8db961cd8217" version = "0.1.1" +[[deps.BenchmarkTools]] +deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] +git-tree-sha1 = "d9a9701b899b30332bbcb3e1679c41cce81fb0e8" +uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +version = "1.3.2" + [[deps.BitFlags]] -git-tree-sha1 = "43b1a4a8f797c1cddadf60499a8a077d4af2cd2d" +git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" -version = "0.1.7" +version = "0.1.8" [[deps.BitTwiddlingConvenienceFunctions]] deps = ["Static"] @@ -172,9 +168,9 @@ uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" version = "0.1.5" [[deps.BufferedStreams]] -git-tree-sha1 = "bb065b14d7f941b8617bc323063dbe79f55d16ea" +git-tree-sha1 = "4ae47f9a4b1dc19897d3743ff13685925c5202ec" uuid = "e1450e63-4bb3-523b-b2a4-4ffa8c0fd77d" -version = "1.1.0" +version = "1.2.1" [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -188,19 +184,31 @@ uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" version = "0.4.2" [[deps.CPUSummary]] -deps = ["CpuId", "IfElse", "Static"] -git-tree-sha1 = "2c144ddb46b552f72d7eafe7cc2f50746e41ea21" +deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] +git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.2.2" +version = "0.2.4" [[deps.CRC32c]] uuid = "8bf52ea8-c179-5cab-976a-9e18b702a9bc" +[[deps.CRlibm]] +deps = ["CRlibm_jll"] +git-tree-sha1 = "32abd86e3c2025db5172aa182b982debed519834" +uuid = "96374032-68de-5a5b-8d9e-752f78720389" +version = "1.0.1" + +[[deps.CRlibm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e329286945d0cfc04456972ea732551869af1cfc" +uuid = "4e9b3aee-d8a1-5a3d-ad8b-7d824db253f0" +version = "1.0.1+0" + [[deps.CSV]] deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] -git-tree-sha1 = "ed28c86cbde3dc3f53cf76643c2e9bc11d56acc7" +git-tree-sha1 = "44dbf560808d49041989b8a96cae4cffbeb7966a" uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" -version = "0.10.10" +version = "0.10.11" [[deps.CSVFiles]] deps = ["CodecZlib", "DataValues", "FileIO", "HTTP", "IterableTables", "IteratorInterfaceExtensions", "TableShowUtils", "TableTraits", "TableTraitsUtils", "TextParse"] @@ -209,10 +217,39 @@ uuid = "5d742f6a-9f54-50ce-8119-2520741973ca" version = "1.0.2" [[deps.CUDA]] -deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CompilerSupportLibraries_jll", "ExprTools", "GPUArrays", "GPUCompiler", "LLVM", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "SpecialFunctions", "TimerOutputs"] -git-tree-sha1 = "6717cb9a3425ebb7b31ca4f832823615d175f64a" +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", "Statistics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "76582ae19006b1186e87dadd781747f76cead72c" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "3.13.1" +version = "5.1.1" +weakdeps = ["ChainRulesCore", "SpecialFunctions"] + + [deps.CUDA.extensions] + ChainRulesCoreExt = "ChainRulesCore" + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.CUDA_Driver_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] +git-tree-sha1 = "1e42ef1bdb45487ff28de16182c0df4920181dc3" +uuid = "4ee394cb-3365-5eb0-8335-949819d2adfc" +version = "0.7.0+0" + +[[deps.CUDA_Runtime_Discovery]] +deps = ["Libdl"] +git-tree-sha1 = "bcc4a23cbbd99c8535a5318455dcf0f2546ec536" +uuid = "1af6417a-86b4-443c-805f-a4643ffb695f" +version = "0.2.2" + +[[deps.CUDA_Runtime_jll]] +deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "92394521ec4582c11d089a3b15b76ef2cb850994" +uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" +version = "0.10.0+1" + +[[deps.CUDNN_jll]] +deps = ["Artifacts", "CUDA_Runtime_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "75923dce4275ead3799b238e10178a68c07dbd3b" +uuid = "62b44479-cb7b-5706-934f-f13b2eb2e645" +version = "8.9.4+0" [[deps.Cairo]] deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] @@ -221,10 +258,10 @@ uuid = "159f3aea-2a34-519c-b102-8c37f9878175" version = "1.0.5" [[deps.CairoMakie]] -deps = ["Base64", "Cairo", "Colors", "FFTW", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "SHA", "SnoopPrecompile"] -git-tree-sha1 = "5e2c8d04a4b98f73da6d314f673c8b7e7db2d76d" +deps = ["Base64", "Cairo", "Colors", "FFTW", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools", "SHA"] +git-tree-sha1 = "d63d8752ebae4534f0032b5b5b51787cbf9a59e8" uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" -version = "0.9.4" +version = "0.11.0" [[deps.Cairo_jll]] 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"] @@ -238,58 +275,33 @@ git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" version = "0.5.1" -[[deps.CatIndices]] -deps = ["CustomUnitRanges", "OffsetArrays"] -git-tree-sha1 = "a0f80a09780eed9b1d106a1bf62041c2efc995bc" -uuid = "aafaddc9-749c-510e-ac4f-586e18779b91" -version = "0.2.2" - -[[deps.CategoricalArrays]] -deps = ["DataAPI", "Future", "Missings", "Printf", "Requires", "Statistics", "Unicode"] -git-tree-sha1 = "1568b28f91293458345dabba6a5ea3f183250a61" -uuid = "324d7699-5711-5eae-9e2f-1d82baa6b597" -version = "0.10.8" -weakdeps = ["JSON", "RecipesBase", "SentinelArrays", "StructTypes"] - - [deps.CategoricalArrays.extensions] - CategoricalArraysJSONExt = "JSON" - CategoricalArraysRecipesBaseExt = "RecipesBase" - CategoricalArraysSentinelArraysExt = "SentinelArrays" - CategoricalArraysStructTypesExt = "StructTypes" - -[[deps.CategoricalDistributions]] -deps = ["CategoricalArrays", "Distributions", "Missings", "OrderedCollections", "Random", "ScientificTypes"] -git-tree-sha1 = "da68989f027dcefa74d44a452c9e36af9730a70d" -uuid = "af321ab8-2d2e-40a6-b165-3d674595d28e" -version = "0.1.10" -weakdeps = ["UnicodePlots"] - - [deps.CategoricalDistributions.extensions] - UnivariateFiniteDisplayExt = "UnicodePlots" - [[deps.ChainRules]] -deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "Statistics", "StructArrays"] -git-tree-sha1 = "8bae903893aeeb429cf732cf1888490b93ecf265" +deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] +git-tree-sha1 = "006cc7170be3e0fa02ccac6d4164a1eee1fc8c27" uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.49.0" +version = "1.58.0" [[deps.ChainRulesCore]] -deps = ["Compat", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "e30f2f4e20f7f186dc36529910beaedc60cfa644" +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "e0af648f0692ec1691b5d094b8724ba1346281cf" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.16.0" +version = "1.18.0" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" [[deps.Chemfiles]] -deps = ["Chemfiles_jll", "DocStringExtensions"] -git-tree-sha1 = "9126d0271c337ca5ed02ba92f2dec087c4260d4a" +deps = ["AtomsBase", "Chemfiles_jll", "DocStringExtensions", "PeriodicTable", "Unitful", "UnitfulAtomic"] +git-tree-sha1 = "82fe5e341c793cb51149d993307da9543824b206" uuid = "46823bd8-5fb3-5f92-9aa0-96921f3dd015" -version = "0.10.31" +version = "0.10.41" [[deps.Chemfiles_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "d4e54b053fc584e7a0f37e9d3a5c4500927b343a" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f3743181e30d87c23d9c8ebd493b77f43d8f1890" uuid = "78a364fa-1a3c-552a-b4bb-8fa0f9c1fcca" -version = "0.10.3+0" +version = "0.10.4+0" [[deps.CloseOpenIntervals]] deps = ["Static", "StaticArrayInterface"] @@ -297,29 +309,11 @@ git-tree-sha1 = "70232f82ffaab9dc52585e0dd043b5e0c6b714f1" uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" version = "0.1.12" -[[deps.Clustering]] -deps = ["Distances", "LinearAlgebra", "NearestNeighbors", "Printf", "Random", "SparseArrays", "Statistics", "StatsBase"] -git-tree-sha1 = "7ebbd653f74504447f1c33b91cd706a69a1b189f" -uuid = "aaaa29a8-35af-508c-8bc3-b662a17a0fe5" -version = "0.14.4" - -[[deps.CodeTracking]] -deps = ["InteractiveUtils", "UUIDs"] -git-tree-sha1 = "d730914ef30a06732bdd9f763f6cc32e92ffbff1" -uuid = "da1fd8a2-8d9e-5ec2-8556-3022fb5608a2" -version = "1.3.1" - [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] -git-tree-sha1 = "9c209fb7536406834aa938fb149964b985de6c83" +git-tree-sha1 = "cd67fc487743b2f0fd4380d4cbd3a24660d0eec8" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" -version = "0.7.1" - -[[deps.ColorBlendModes]] -deps = ["ColorTypes", "FixedPointNumbers"] -git-tree-sha1 = "9ec825436862d5ab02ad8f2cde72f2d860151fa6" -uuid = "60508b50-96e1-4007-9d6c-f475c410f16b" -version = "0.2.4" +version = "0.7.3" [[deps.ColorBrewer]] deps = ["Colors", "JSON", "Test"] @@ -329,9 +323,9 @@ version = "0.4.0" [[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] -git-tree-sha1 = "be6ab11021cd29f0344d5c4357b163af05a48cba" +git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" -version = "3.21.0" +version = "3.24.0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] @@ -356,11 +350,6 @@ git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" version = "1.0.2" -[[deps.CommonSolve]] -git-tree-sha1 = "9441451ee712d1aec22edad62db1a9af3dc8d852" -uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" -version = "0.2.3" - [[deps.CommonSubexpressions]] deps = ["MacroTools", "Test"] git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" @@ -369,9 +358,9 @@ version = "0.3.0" [[deps.Compat]] deps = ["UUIDs"] -git-tree-sha1 = "7a60c856b9fa189eb34f5f8a6f6b5529b7942957" +git-tree-sha1 = "8a62af3e248a8c4bad6b32cbbe663ae02275e32c" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.6.1" +version = "4.10.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -380,35 +369,41 @@ weakdeps = ["Dates", "LinearAlgebra"] [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.0.2+0" +version = "1.0.5+1" [[deps.CompositionsBase]] -git-tree-sha1 = "455419f7e328a1a2493cabc6428d79e951349769" +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" -version = "0.1.1" +version = "0.1.2" -[[deps.ComputationalResources]] -git-tree-sha1 = "52cb3ec90e8a8bea0e62e275ba577ad0f74821f7" -uuid = "ed09eef8-17a6-5b46-8889-db040fac31e3" -version = "0.3.2" + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + + [deps.CompositionsBase.weakdeps] + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.ConcreteStructs]] +git-tree-sha1 = "f749037478283d372048690eb3b5f92a79432b34" +uuid = "2569d6c7-a4a2-43d3-a901-331e8e4be471" +version = "0.2.3" [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] -git-tree-sha1 = "96d823b94ba8d187a6d8f0826e731195a74b90e9" +git-tree-sha1 = "8cfa272e8bdedfa88b6aefbbca7c19f1befac519" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" -version = "2.2.0" +version = "2.3.0" [[deps.CondaPkg]] -deps = ["JSON3", "Markdown", "MicroMamba", "Pidfile", "Pkg", "TOML"] -git-tree-sha1 = "741146cf2ced5859faae76a84b541aa9af1a78bb" +deps = ["JSON3", "Markdown", "MicroMamba", "Pidfile", "Pkg", "Preferences", "TOML"] +git-tree-sha1 = "e81c4263c7ef4eca4d645ef612814d72e9255b41" uuid = "992eb4ea-22a4-4c89-a5bb-47a3300528ab" -version = "0.2.18" +version = "0.2.22" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] -git-tree-sha1 = "738fec4d684a9a6ee9598a8bfee305b26831f28c" +git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.2" +version = "1.5.4" weakdeps = ["IntervalSets", "StaticArrays"] [deps.ConstructionBase.extensions] @@ -422,16 +417,15 @@ uuid = "6add18c4-b38d-439d-96f6-d6bc489c04c5" version = "0.1.3" [[deps.Contour]] -deps = ["StaticArrays"] -git-tree-sha1 = "9f02045d934dc030edad45944ea80dbd1f0ebea7" +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" -version = "0.5.7" +version = "0.6.2" [[deps.CoordinateTransformations]] deps = ["LinearAlgebra", "StaticArrays"] -git-tree-sha1 = "681ea870b918e7cff7111da58791d7f718067a19" +git-tree-sha1 = "f9d7112bfff8a19a3a4ea4e03a8e6a91fe8456bf" uuid = "150eb455-5306-5404-9cee-2592286d6298" -version = "0.6.2" +version = "0.6.3" [[deps.CpuId]] deps = ["Markdown"] @@ -444,39 +438,28 @@ git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" version = "4.1.1" -[[deps.CustomUnitRanges]] -git-tree-sha1 = "1a3f97f907e6dd8983b744d2642651bb162a3f7a" -uuid = "dc8bdbbb-1ca9-579f-8c36-e416f6a65cce" -version = "1.0.2" - [[deps.DataAPI]] -git-tree-sha1 = "e8119c1a33d267e16108be441a287a6981ba1630" +git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" -version = "1.14.0" - -[[deps.DataAugmentation]] -deps = ["ColorBlendModes", "CoordinateTransformations", "Distributions", "ImageCore", "ImageDraw", "ImageTransformations", "IndirectArrays", "Interpolations", "LinearAlgebra", "MosaicViews", "OffsetArrays", "Parameters", "Random", "Rotations", "Setfield", "StaticArrays", "Statistics", "Test"] -git-tree-sha1 = "9073179282095c1ce9590e19525ad864a7b83211" -uuid = "88a5189c-e7ff-4f85-ac6b-e6158070f02e" -version = "0.2.11" +version = "1.15.0" [[deps.DataDeps]] deps = ["HTTP", "Libdl", "Reexport", "SHA", "p7zip_jll"] -git-tree-sha1 = "bc0a264d3e7b3eeb0b6fc9f6481f970697f29805" +git-tree-sha1 = "6e8d74545d34528c30ccd3fa0f3c00f8ed49584c" uuid = "124859b0-ceae-595e-8997-d05f6a7a8dfe" -version = "0.7.10" +version = "0.7.11" [[deps.DataFrames]] -deps = ["Compat", "DataAPI", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SnoopPrecompile", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] -git-tree-sha1 = "aa51303df86f8626a962fccb878430cdb0a97eee" +deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] +git-tree-sha1 = "04c738083f29f86e62c8afc341f0967d8717bdb8" uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" -version = "1.5.0" +version = "1.6.1" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "d1fff3a548102f48987a52a2e0d114fa97d730f0" +git-tree-sha1 = "3dbd312d370723b6bb43ba9d02fc36abade4518d" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.13" +version = "0.18.15" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -493,16 +476,17 @@ version = "0.4.13" deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" -[[deps.DeepDiffs]] -git-tree-sha1 = "9824894295b62a6a4ab6adf1c7bf337b3a9ca34c" -uuid = "ab62b9b5-e342-54a8-a765-a90f495de1a6" -version = "1.2.0" - [[deps.DefineSingletons]] git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c" uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" version = "0.1.2" +[[deps.DelaunayTriangulation]] +deps = ["DataStructures", "EnumX", "ExactPredicates", "Random", "SimpleGraphs"] +git-tree-sha1 = "7cb0d72a53c1d93665eeadfa9d51af9df60bf6b2" +uuid = "927a84f5-c5f4-47a5-9785-b46e178433df" +version = "0.8.10" + [[deps.DelimitedFiles]] deps = ["Mmap"] git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" @@ -517,49 +501,43 @@ version = "1.1.0" [[deps.DiffRules]] deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] -git-tree-sha1 = "a4ad7ef19d2cdc2eff57abbbe68032b1cd0bd8f8" +git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" -version = "1.13.0" +version = "1.15.1" [[deps.DistanceTransforms]] -deps = ["CUDA", "FLoops", "FoldsCUDA", "FoldsThreads", "ImageMorphology", "InteractiveUtils", "LoopVectorization", "Markdown", "Pkg", "PlutoUI", "Revise", "Test", "TestSetExtensions"] -git-tree-sha1 = "0e84e9cef4987b62d30be7bfa17974679a6bea8a" -repo-rev = "master" -repo-url = "https://github.com/Dale-Black/DistanceTransforms.jl" +deps = ["GPUArraysCore", "KernelAbstractions", "LoopVectorization"] +git-tree-sha1 = "bdfc622fac116fbebcebbf0c7e00cf59d3ad92f3" uuid = "71182807-4d06-4237-8dd0-bdafe4d097e2" -version = "0.2.2" +version = "0.2.1" [[deps.DistanceTransformsPy]] -deps = ["CondaPkg", "ImageMorphology", "InteractiveUtils", "Markdown", "Pkg", "PythonCall"] -git-tree-sha1 = "c335e30ba2c6cb6ac58be2dfb17577e01de37f7c" +deps = ["CondaPkg", "PythonCall"] +git-tree-sha1 = "9895162cca3f65f8adfe79053beb8f1d0c50f5c3" repo-rev = "main" repo-url = "https://github.com/Dale-Black/DistanceTransformsPy.jl" uuid = "d85f584c-7717-483c-8218-10621e78a8b8" version = "0.1.0" -[[deps.Distances]] -deps = ["LinearAlgebra", "SparseArrays", "Statistics", "StatsAPI"] -git-tree-sha1 = "49eba9ad9f7ead780bfb7ee319f962c811c6d3b2" -uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" -version = "0.10.8" - [[deps.Distributed]] deps = ["Random", "Serialization", "Sockets"] uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" [[deps.Distributions]] -deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SparseArrays", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns", "Test"] -git-tree-sha1 = "eead66061583b6807652281c0fbf291d7a9dc497" +deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "a6c00f894f24460379cb7136633cef54ac9f6f4a" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.90" +version = "0.25.103" [deps.Distributions.extensions] DistributionsChainRulesCoreExt = "ChainRulesCore" DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" [deps.Distributions.weakdeps] ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [[deps.DocStringExtensions]] deps = ["LibGit2"] @@ -569,9 +547,9 @@ version = "0.9.3" [[deps.DoubleFloats]] deps = ["GenericLinearAlgebra", "LinearAlgebra", "Polynomials", "Printf", "Quadmath", "Random", "Requires", "SpecialFunctions"] -git-tree-sha1 = "ff64f5601c231a7bc730e1e4eba2c39035d6cc60" +git-tree-sha1 = "5a61c8b62471b2447c62481d4597dbad5e11d363" uuid = "497a8b3b-efae-58df-a0af-a86822472b78" -version = "1.2.4" +version = "1.2.6" [[deps.Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] @@ -580,9 +558,9 @@ version = "1.6.0" [[deps.DrWatson]] deps = ["Dates", "FileIO", "JLD2", "LibGit2", "MacroTools", "Pkg", "Random", "Requires", "Scratch", "UnPack"] -git-tree-sha1 = "83aab57e1f14b36d2f3c02fbc0f95173f09683e1" +git-tree-sha1 = "f83dbe0ef99f1cf32b815f0dad632cb25129604e" uuid = "634d3b9d-ee7a-5ddf-bec9-22491ea816e1" -version = "2.12.5" +version = "2.13.0" [[deps.DualNumbers]] deps = ["Calculus", "NaNMath", "SpecialFunctions"] @@ -596,51 +574,55 @@ git-tree-sha1 = "e3290f2d49e661fbd94046d7e3726ffcb2d41053" uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" version = "2.2.4+0" -[[deps.EarlyStopping]] -deps = ["Dates", "Statistics"] -git-tree-sha1 = "98fdf08b707aaf69f524a6cd0a67858cefe0cfb6" -uuid = "792122b4-ca99-40de-a6bc-6742525f08b6" -version = "0.3.0" +[[deps.EnumX]] +git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" +uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" +version = "1.0.4" + +[[deps.ErrorfreeArithmetic]] +git-tree-sha1 = "d6863c556f1142a061532e79f611aa46be201686" +uuid = "90fa49ef-747e-5e6f-a989-263ba693cf1a" +version = "0.5.2" + +[[deps.ExactPredicates]] +deps = ["IntervalArithmetic", "Random", "StaticArraysCore"] +git-tree-sha1 = "499b1ca78f6180c8f8bdf1cabde2d39120229e5c" +uuid = "429591f6-91af-11e9-00e2-59fbe8cec110" +version = "2.2.6" + +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "e90caa41f5a86296e014e148ee061bd6c3edec96" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.9" [[deps.Expat_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "bad72f730e9e91c08d9427d5e8db95478a3c323d" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" -version = "2.4.8+0" +version = "2.5.0+0" [[deps.ExprTools]] -git-tree-sha1 = "c1d06d129da9f55715c6c212866f5b1bddc5fa00" +git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" -version = "0.1.9" +version = "0.1.10" [[deps.Extents]] -git-tree-sha1 = "5e1e4c53fa39afe63a7d356e30452249365fba99" +git-tree-sha1 = "2140cd04483da90b2da7f99b2add0750504fc39c" uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" -version = "0.1.1" - -[[deps.FFMPEG]] -deps = ["FFMPEG_jll"] -git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" -uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" -version = "0.4.1" +version = "0.1.2" [[deps.FFMPEG_jll]] -deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Pkg", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] -git-tree-sha1 = "74faea50c1d007c85837327f6775bea60b5492dd" +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" -version = "4.4.2+2" - -[[deps.FFTViews]] -deps = ["CustomUnitRanges", "FFTW"] -git-tree-sha1 = "cbdf14d1e8c7c8aacbe8b19862e0179fd08321c2" -uuid = "4f61f5a4-77b1-5117-aa51-3ab5ef4ef0cd" -version = "0.3.2" +version = "4.4.4+1" [[deps.FFTW]] deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] -git-tree-sha1 = "f9818144ce7c8c41edf5c4c179c684d92aa4d9fe" +git-tree-sha1 = "b4fbdd20c889804969571cc589900803edda16b7" uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" -version = "1.6.0" +version = "1.7.1" [[deps.FFTW_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -660,23 +642,11 @@ git-tree-sha1 = "656f7a6859be8673bf1f35da5670246b923964f7" uuid = "b9860ae5-e623-471e-878b-f6a53c775ea6" version = "0.1.1" -[[deps.FastAI]] -deps = ["DataDeps", "FeatureRegistries", "FileIO", "FilePathsBase", "Flux", "FluxTraining", "InlineTest", "JLD2", "MLDatasets", "MLUtils", "Markdown", "Parameters", "PrettyTables", "Reexport", "Requires", "Setfield", "Statistics", "Test", "TextAnalysis", "UnicodePlots"] -git-tree-sha1 = "632a7f0b553fe25bd8009885ca483f510e50ca99" -uuid = "5d0beca9-ade8-49ae-ad0b-a3cf890e669f" -version = "0.5.1" - -[[deps.FastVision]] -deps = ["ColorVectorSpace", "Colors", "DataAugmentation", "DataDeps", "FastAI", "FixedPointNumbers", "Flux", "ImageIO", "ImageInTerminal", "IndirectArrays", "InlineTest", "MLUtils", "MakieCore", "ProgressMeter", "ShowCases", "StaticArrays", "Statistics", "UnicodePlots", "Zygote"] -git-tree-sha1 = "08b61f94a3a2235bc705fc7e04822a45ed94c0d4" -uuid = "7bf02486-ff4c-4e73-b158-40c00866b54f" -version = "0.1.1" - -[[deps.FeatureRegistries]] -deps = ["Base64", "ImageShow", "InlineTest", "Markdown", "PrettyTables", "Setfield", "StructArrays"] -git-tree-sha1 = "2bd758a1b3aa40bcce6b4c8ba53369781b9f21c7" -uuid = "c6aefb4f-3ac3-4095-8805-528476b02c02" -version = "0.1.3" +[[deps.FastRounding]] +deps = ["ErrorfreeArithmetic", "LinearAlgebra"] +git-tree-sha1 = "6344aa18f654196be82e62816935225b3b9abe44" +uuid = "fa42c844-2597-5d31-933b-ebd51ab2693f" +version = "0.3.1" [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] @@ -684,20 +654,47 @@ git-tree-sha1 = "299dc33549f68299137e51e6d49a13b5b1da9673" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" version = "1.16.1" +[[deps.FilePaths]] +deps = ["FilePathsBase", "MacroTools", "Reexport", "Requires"] +git-tree-sha1 = "919d9412dbf53a2e6fe74af62a73ceed0bce0629" +uuid = "8fc22ac5-c921-52a6-82fd-178b2807b824" +version = "0.8.3" + [[deps.FilePathsBase]] deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] -git-tree-sha1 = "e27c4ebe80e8699540f2d6c805cc12203b614f12" +git-tree-sha1 = "9f00e42f8d99fdde64d40c8ea5d14269a2e2c1aa" uuid = "48062228-2e41-5def-b9a4-89aafe57970f" -version = "0.9.20" +version = "0.9.21" [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[deps.FillArrays]] -deps = ["LinearAlgebra", "Random", "SparseArrays", "Statistics"] -git-tree-sha1 = "fc86b4fd3eff76c3ce4f5e96e2fdfa6282722885" +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "35f0c0f345bff2c6d636f95fdb136323b5a796ef" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.0.0" +version = "1.7.0" +weakdeps = ["SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FiniteDiff]] +deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] +git-tree-sha1 = "c6e4a1fbe73b31a3dea94b1da449503b8830c306" +uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" +version = "2.21.1" + + [deps.FiniteDiff.extensions] + FiniteDiffBandedMatricesExt = "BandedMatrices" + FiniteDiffBlockBandedMatricesExt = "BlockBandedMatrices" + FiniteDiffStaticArraysExt = "StaticArrays" + + [deps.FiniteDiff.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" [[deps.FixedPointNumbers]] deps = ["Statistics"] @@ -705,30 +702,6 @@ git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" version = "0.8.4" -[[deps.Flux]] -deps = ["Adapt", "CUDA", "ChainRulesCore", "Functors", "LinearAlgebra", "MLUtils", "MacroTools", "NNlib", "NNlibCUDA", "OneHotArrays", "Optimisers", "ProgressLogging", "Random", "Reexport", "SparseArrays", "SpecialFunctions", "Statistics", "StatsBase", "Zygote"] -git-tree-sha1 = "4ff3a1d7b0dd38f2fc38e813bc801f817639c1f2" -uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" -version = "0.13.13" - -[[deps.FluxTraining]] -deps = ["BSON", "ChainRulesCore", "DataStructures", "EarlyStopping", "Flux", "Glob", "Graphs", "ImageCore", "InlineTest", "OnlineStats", "Optimisers", "ParameterSchedulers", "Parameters", "PrettyTables", "ProgressMeter", "Reexport", "Setfield", "SnoopPrecompile", "Statistics", "TensorBoardLogger", "UUIDs", "ValueHistories", "Zygote"] -git-tree-sha1 = "6967d151ed20468d32e44709a55e734ecf1908ff" -uuid = "7bf95e4d-ca32-48da-9824-f0dc5310474f" -version = "0.3.7" - -[[deps.FoldsCUDA]] -deps = ["CUDA", "InitialValues", "Transducers", "UnionArrays"] -git-tree-sha1 = "d7f719f3c186e4a821fda1ab38e9cfeaf3b17b71" -uuid = "6cd66ae4-5932-4b96-926d-e73e578e42cc" -version = "0.1.9" - -[[deps.FoldsThreads]] -deps = ["Accessors", "FunctionWrappers", "InitialValues", "SplittablesBase", "Transducers"] -git-tree-sha1 = "eb8e1989b9028f7e0985b4268dabe94682249025" -uuid = "9c68100b-dfe1-47cf-94c8-95104e173443" -version = "0.1.1" - [[deps.Fontconfig_jll]] deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" @@ -743,9 +716,9 @@ version = "0.4.2" [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] -git-tree-sha1 = "00e252f4d706b3d55a8863432e742bf5717b498d" +git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" uuid = "f6369f11-7733-5829-9624-2563aa707210" -version = "0.10.35" +version = "0.10.36" weakdeps = ["StaticArrays"] [deps.ForwardDiff.extensions] @@ -753,15 +726,15 @@ weakdeps = ["StaticArrays"] [[deps.FreeType]] deps = ["CEnum", "FreeType2_jll"] -git-tree-sha1 = "cabd77ab6a6fdff49bfd24af2ebe76e6e018a2b4" +git-tree-sha1 = "50351f83f95282cf903e968d7c6e8d44a5f83d0b" uuid = "b38be410-82b0-50bf-ab77-7b57e271db43" -version = "4.0.0" +version = "4.1.0" [[deps.FreeType2_jll]] -deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] -git-tree-sha1 = "87eb71354d8ec1a96d4a7636bd57a7347dde3ef9" +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" -version = "2.10.4+0" +version = "2.13.1+0" [[deps.FreeTypeAbstraction]] deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"] @@ -775,68 +748,57 @@ git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" uuid = "559328eb-81f9-559d-9380-de523a88c83c" version = "1.0.10+0" -[[deps.FunctionWrappers]] -git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" -uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" -version = "1.1.3" - [[deps.Functors]] deps = ["LinearAlgebra"] -git-tree-sha1 = "478f8c3145bb91d82c2cf20433e8c1b30df454cc" +git-tree-sha1 = "9a68d75d466ccc1218d0552a8e1631151c569545" uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" -version = "0.4.4" +version = "0.4.5" [[deps.Future]] deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" -[[deps.GLM]] -deps = ["Distributions", "LinearAlgebra", "Printf", "Reexport", "SparseArrays", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns", "StatsModels"] -git-tree-sha1 = "97829cfda0df99ddaeaafb5b370d6cab87b7013e" -uuid = "38e38edf-8417-5370-95a0-9cbb8c7f171a" -version = "1.8.3" - [[deps.GPUArrays]] deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] -git-tree-sha1 = "9ade6983c3dbbd492cf5729f865fe030d1541463" +git-tree-sha1 = "85d7fb51afb3def5dcb85ad31c3707795c8bccc1" uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "8.6.6" +version = "9.1.0" [[deps.GPUArraysCore]] deps = ["Adapt"] -git-tree-sha1 = "1cd7f0af1aa58abc02ea1d872953a97359cb87fa" +git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" uuid = "46192b85-c4d5-4398-a991-12ede77f4527" -version = "0.1.4" +version = "0.1.5" [[deps.GPUCompiler]] -deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "19d693666a304e8c371798f4900f7435558c7cde" +deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "TimerOutputs", "UUIDs"] +git-tree-sha1 = "a846f297ce9d09ccba02ead0cae70690e072a119" uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.17.3" +version = "0.25.0" [[deps.GZip]] -deps = ["Libdl"] -git-tree-sha1 = "039be665faf0b8ae36e089cd694233f5dee3f7d6" +deps = ["Libdl", "Zlib_jll"] +git-tree-sha1 = "0085ccd5ec327c077ec5b91a5f937b759810ba62" uuid = "92fee26a-97fe-5a0c-ad85-20a5f3185b63" -version = "0.5.1" +version = "0.6.2" [[deps.GenericLinearAlgebra]] deps = ["LinearAlgebra", "Printf", "Random", "libblastrampoline_jll"] -git-tree-sha1 = "8f8ef82d63143f695debbb4a7aad5d5dfa4ed2e9" +git-tree-sha1 = "02be7066f936af6b04669f7c370a31af9036c440" uuid = "14197337-ba66-59df-a3e3-ca00e7dcff7a" -version = "0.3.10" +version = "0.3.11" [[deps.GeoInterface]] deps = ["Extents"] -git-tree-sha1 = "0eb6de0b312688f852f347171aba888658e29f20" +git-tree-sha1 = "d53480c0793b13341c40199190f92c611aa2e93c" uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" -version = "1.3.0" +version = "1.3.2" [[deps.GeometryBasics]] -deps = ["EarCut_jll", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] -git-tree-sha1 = "659140c9375afa2f685e37c1a0b9c9a60ef56b40" +deps = ["EarCut_jll", "Extents", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "424a5a6ce7c5d97cca7bcc4eac551b97294c54af" uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" -version = "0.4.7" +version = "0.4.9" [[deps.Gettext_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] @@ -844,17 +806,11 @@ git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" version = "0.21.0+0" -[[deps.Ghostscript_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "43ba3d3c82c18d88471cfd2924931658838c9d8f" -uuid = "61579ee1-b43e-5ca0-a5da-69d92c66a64b" -version = "9.55.0+4" - [[deps.Glib_jll]] -deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "d3b3624125c1474292d0d8ed0f65554ac37ddb23" +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.74.0+2" +version = "2.76.5+0" [[deps.Glob]] git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" @@ -873,17 +829,11 @@ git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" version = "1.3.14+0" -[[deps.Graphs]] -deps = ["ArnoldiMethod", "Compat", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] -git-tree-sha1 = "1cf1d7dcb4bc32d7b4a5add4232db3750c27ecb4" -uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" -version = "1.8.0" - [[deps.GridLayoutBase]] deps = ["GeometryBasics", "InteractiveUtils", "Observables"] -git-tree-sha1 = "678d136003ed5bceaab05cf64519e3f956ffa4ba" +git-tree-sha1 = "af13a277efd8a6e716d79ef635d5342ccb75be61" uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" -version = "0.9.1" +version = "0.10.0" [[deps.Grisu]] git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" @@ -891,28 +841,28 @@ uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" version = "1.0.2" [[deps.HDF5]] -deps = ["Compat", "HDF5_jll", "Libdl", "Mmap", "Random", "Requires", "UUIDs"] -git-tree-sha1 = "3dab31542b3da9f25a6a1d11159d4af8fdce7d67" +deps = ["Compat", "HDF5_jll", "Libdl", "MPIPreferences", "Mmap", "Preferences", "Printf", "Random", "Requires", "UUIDs"] +git-tree-sha1 = "26407bd1c60129062cec9da63dc7d08251544d53" uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" -version = "0.16.14" +version = "0.17.1" + + [deps.HDF5.extensions] + MPIExt = "MPI" + + [deps.HDF5.weakdeps] + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" [[deps.HDF5_jll]] -deps = ["Artifacts", "JLLWrappers", "LibCURL_jll", "Libdl", "OpenSSL_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "4cc2bb72df6ff40b055295fdef6d92955f9dede8" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] +git-tree-sha1 = "38c8874692d48d5440d5752d6c74b0c6b0b60739" uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" -version = "1.12.2+2" - -[[deps.HTML_Entities]] -deps = ["StrTables"] -git-tree-sha1 = "c4144ed3bc5f67f595622ad03c0e39fa6c70ccc7" -uuid = "7693890a-d069-55fe-a829-b4a6d304f0ee" -version = "1.0.1" +version = "1.14.2+1" [[deps.HTTP]] -deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "42c6b37c6a2242cb646a1dd5518631db0be9b967" +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "5eab648309e2e060198b45820af1a37182de3cce" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.8.1" +version = "1.10.0" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -922,15 +872,21 @@ version = "2.8.1+1" [[deps.HostCPUFeatures]] deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] -git-tree-sha1 = "734fd90dd2f920a2f1921d5388dcebe805b262dc" +git-tree-sha1 = "eb8fed28f4994600e29beef49744639d985a04b2" uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" -version = "0.1.14" +version = "0.1.16" + +[[deps.Hwloc_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "ca0f6bf568b4bfc807e7537f081c81e35ceca114" +uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" +version = "2.10.0+0" [[deps.HypergeometricFunctions]] deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] -git-tree-sha1 = "84204eae2dd237500835990bcade263e27674a93" +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" -version = "0.3.16" +version = "0.3.23" [[deps.Hyperscript]] deps = ["Test"] @@ -940,27 +896,21 @@ version = "0.0.4" [[deps.HypertextLiteral]] deps = ["Tricks"] -git-tree-sha1 = "c47c5fa4c5308f27ccaac35504858d8914e102f9" +git-tree-sha1 = "7134810b1afce04bbc1045ca1985fbe81ce17653" uuid = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2" -version = "0.9.4" - -[[deps.HypothesisTests]] -deps = ["Combinatorics", "Distributions", "LinearAlgebra", "Random", "Rmath", "Roots", "Statistics", "StatsBase"] -git-tree-sha1 = "fee0691e3336a71503dada09ed61bed786b0f59f" -uuid = "09f84164-cd44-5f33-b23f-e6b0d136a0d5" -version = "0.10.13" +version = "0.9.5" [[deps.IOCapture]] deps = ["Logging", "Random"] -git-tree-sha1 = "f7be53659ab06ddc986428d3a9dcc95f6fa6705a" +git-tree-sha1 = "d75853a0bdbfb1ac815478bacd89cd27b550ace6" uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" -version = "0.2.2" +version = "0.2.3" [[deps.IRTools]] deps = ["InteractiveUtils", "MacroTools", "Test"] -git-tree-sha1 = "eac00994ce3229a464c2847e956d77a2c64ad3a5" +git-tree-sha1 = "8aa91235360659ca7560db43a7d57541120aa31d" uuid = "7869d1d1-7146-5819-86e3-90919afe41df" -version = "0.4.10" +version = "0.4.11" [[deps.IfElse]] git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" @@ -969,9 +919,9 @@ version = "0.1.1" [[deps.ImageAxes]] deps = ["AxisArrays", "ImageBase", "ImageCore", "Reexport", "SimpleTraits"] -git-tree-sha1 = "c54b581a83008dc7f292e205f4c409ab5caa0f04" +git-tree-sha1 = "2e4520d67b0cef90865b3ef727594d2a58e0e1f8" uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac" -version = "0.6.10" +version = "0.6.11" [[deps.ImageBase]] deps = ["ImageCore", "Reexport"] @@ -979,101 +929,41 @@ git-tree-sha1 = "b51bb8cae22c66d0f6357e3bcb6363145ef20835" uuid = "c817782e-172a-44cc-b673-b171935fbb9e" version = "0.1.5" -[[deps.ImageContrastAdjustment]] -deps = ["ImageCore", "ImageTransformations", "Parameters"] -git-tree-sha1 = "0d75cafa80cf22026cea21a8e6cf965295003edc" -uuid = "f332f351-ec65-5f6a-b3d1-319c6670881a" -version = "0.3.10" - [[deps.ImageCore]] deps = ["AbstractFFTs", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Graphics", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "Reexport"] git-tree-sha1 = "acf614720ef026d38400b3817614c45882d75500" uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" version = "0.9.4" -[[deps.ImageDistances]] -deps = ["Distances", "ImageCore", "ImageMorphology", "LinearAlgebra", "Statistics"] -git-tree-sha1 = "b1798a4a6b9aafb530f8f0c4a7b2eb5501e2f2a3" -uuid = "51556ac3-7006-55f5-8cb3-34580c88182d" -version = "0.2.16" - -[[deps.ImageDraw]] -deps = ["Distances", "ImageCore", "LinearAlgebra"] -git-tree-sha1 = "6ed6e945d909f87c3013e391dcd3b2a56e48b331" -uuid = "4381153b-2b60-58ae-a1ba-fd683676385f" -version = "0.2.5" - -[[deps.ImageFiltering]] -deps = ["CatIndices", "ComputationalResources", "DataStructures", "FFTViews", "FFTW", "ImageBase", "ImageCore", "LinearAlgebra", "OffsetArrays", "Reexport", "SnoopPrecompile", "SparseArrays", "StaticArrays", "Statistics", "TiledIteration"] -git-tree-sha1 = "f265e53558fbbf23e0d54e4fab7106c0f2a9e576" -uuid = "6a3955dd-da59-5b1f-98d4-e7296123deb5" -version = "0.7.3" - [[deps.ImageIO]] deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] -git-tree-sha1 = "342f789fd041a55166764c351da1710db97ce0e0" +git-tree-sha1 = "bca20b2f5d00c4fbc192c3212da8fa79f4688009" uuid = "82e4d734-157c-48bb-816b-45c225c6df19" -version = "0.6.6" - -[[deps.ImageInTerminal]] -deps = ["Crayons", "ImageBase", "ImageCore", "Requires"] -git-tree-sha1 = "2bd30630d417699c925fa7f16d51282d7343e3eb" -uuid = "d8c32880-2388-543b-8c61-d9f865259254" -version = "0.4.8" - -[[deps.ImageMagick]] -deps = ["FileIO", "ImageCore", "ImageMagick_jll", "InteractiveUtils", "Libdl", "Pkg", "Random"] -git-tree-sha1 = "5bc1cb62e0c5f1005868358db0692c994c3a13c6" -uuid = "6218d12a-5da1-5696-b52f-db25d2ecc6d1" -version = "1.2.1" - -[[deps.ImageMagick_jll]] -deps = ["Artifacts", "Ghostscript_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pkg", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "124626988534986113cfd876e3093e4a03890f58" -uuid = "c73af94c-d91f-53ed-93a7-00f77d67a9d7" -version = "6.9.12+3" +version = "0.6.7" [[deps.ImageMetadata]] deps = ["AxisArrays", "ImageAxes", "ImageBase", "ImageCore"] -git-tree-sha1 = "36cbaebed194b292590cba2593da27b34763804a" +git-tree-sha1 = "355e2b974f2e3212a75dfb60519de21361ad3cb7" uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49" -version = "0.9.8" +version = "0.9.9" [[deps.ImageMorphology]] -deps = ["ImageCore", "LinearAlgebra", "Requires", "TiledIteration"] -git-tree-sha1 = "e7c68ab3df4a75511ba33fc5d8d9098007b579a8" +deps = ["DataStructures", "ImageCore", "LinearAlgebra", "LoopVectorization", "OffsetArrays", "Requires", "TiledIteration"] +git-tree-sha1 = "6f0a801136cb9c229aebea0df296cdcd471dbcd1" uuid = "787d08f9-d448-5407-9aad-5290dd7ab264" -version = "0.3.2" - -[[deps.ImageQualityIndexes]] -deps = ["ImageContrastAdjustment", "ImageCore", "ImageDistances", "ImageFiltering", "LazyModules", "OffsetArrays", "PrecompileTools", "Statistics"] -git-tree-sha1 = "bcc2f0db769e5d42a67f501ec6781401a4389e8f" -uuid = "2996bd0c-7a13-11e9-2da2-2f5ce47296a9" -version = "0.3.5" - -[[deps.ImageSegmentation]] -deps = ["Clustering", "DataStructures", "Distances", "Graphs", "ImageCore", "ImageFiltering", "ImageMorphology", "LinearAlgebra", "MetaGraphs", "RegionTrees", "SimpleWeightedGraphs", "StaticArrays", "Statistics"] -git-tree-sha1 = "fb0b597b4928e29fed0597724cfbb5940974f8ca" -uuid = "80713f31-8817-5129-9cf8-209ff8fb23e1" -version = "1.8.0" +version = "0.4.5" [[deps.ImageShow]] deps = ["Base64", "ColorSchemes", "FileIO", "ImageBase", "ImageCore", "OffsetArrays", "StackViews"] -git-tree-sha1 = "ce28c68c900eed3cdbfa418be66ed053e54d4f56" +git-tree-sha1 = "3b5344bcdbdc11ad58f3b1956709b5b9345355de" uuid = "4e3cecfd-b093-5904-9786-8bbb286a6a31" -version = "0.3.7" +version = "0.3.8" [[deps.ImageTransformations]] -deps = ["AxisAlgorithms", "ColorVectorSpace", "CoordinateTransformations", "ImageBase", "ImageCore", "Interpolations", "OffsetArrays", "Rotations", "StaticArrays"] -git-tree-sha1 = "8717482f4a2108c9358e5c3ca903d3a6113badc9" +deps = ["AxisAlgorithms", "CoordinateTransformations", "ImageBase", "ImageCore", "Interpolations", "OffsetArrays", "Rotations", "StaticArrays"] +git-tree-sha1 = "7ec124670cbce8f9f0267ba703396960337e54b5" uuid = "02fcd773-0e25-5acc-982a-7f6622650795" -version = "0.9.5" - -[[deps.Images]] -deps = ["Base64", "FileIO", "Graphics", "ImageAxes", "ImageBase", "ImageContrastAdjustment", "ImageCore", "ImageDistances", "ImageFiltering", "ImageIO", "ImageMagick", "ImageMetadata", "ImageMorphology", "ImageQualityIndexes", "ImageSegmentation", "ImageShow", "ImageTransformations", "IndirectArrays", "IntegralArrays", "Random", "Reexport", "SparseArrays", "StaticArrays", "Statistics", "StatsBase", "TiledIteration"] -git-tree-sha1 = "03d1301b7ec885b266c0f816f338368c6c0b81bd" -uuid = "916415d5-f1e6-5110-898d-aaa5f9f070e0" -version = "0.25.2" +version = "0.10.0" [[deps.Imath_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1086,21 +976,10 @@ git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f" uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" version = "1.0.0" -[[deps.InfiniteArrays]] -deps = ["ArrayLayouts", "FillArrays", "Infinities", "LazyArrays", "LinearAlgebra", "Statistics"] -git-tree-sha1 = "6eb47f8b5e497f7f436a2a07f77f011cf0ce9824" -uuid = "4858937d-0d70-526a-a4dd-2d5cb5dd786c" -version = "0.12.13" - -[[deps.Infinities]] -git-tree-sha1 = "7cafb0d59dabad36e451c80b03505ecd599ce924" -uuid = "e1ba4f0e-776d-440f-acd9-e1d2e9742647" -version = "0.1.6" - [[deps.Inflate]] -git-tree-sha1 = "5cd07aab533df5170988219191dfad0519391428" +git-tree-sha1 = "ea8031dea4aff6bd41f1df8f2fdfb25b33626381" uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" -version = "0.1.3" +version = "0.1.4" [[deps.InitialValues]] git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3" @@ -1113,23 +992,16 @@ git-tree-sha1 = "9cc2baf75c6d09f9da536ddf58eb2f29dedaf461" uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" version = "1.4.0" -[[deps.InlineTest]] -deps = ["Test"] -git-tree-sha1 = "daf0743879904f0ad645ca6594e1479685f158a2" -uuid = "bd334432-b1e7-49c7-a2dc-dd9149e4ebd6" -version = "0.2.0" - -[[deps.IntegralArrays]] -deps = ["ColorTypes", "FixedPointNumbers", "IntervalSets"] -git-tree-sha1 = "be8e690c3973443bec584db3346ddc904d4884eb" -uuid = "1d092043-8f09-5a30-832f-7509e371ab51" -version = "0.1.5" +[[deps.IntegerMathUtils]] +git-tree-sha1 = "b8ffb903da9f7b8cf695a8bead8e01814aa24b30" +uuid = "18e54dd8-cb9d-406c-a71d-865a43cbb235" +version = "0.1.2" [[deps.IntelOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "0cb9352ef2e01574eeebdb102948a58740dcaf83" +git-tree-sha1 = "ad37c091f7d7daf900963171600d7c1c5c3ede32" uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2023.1.0+0" +version = "2023.2.0+0" [[deps.InteractiveUtils]] deps = ["Markdown"] @@ -1142,22 +1014,26 @@ uuid = "7d512f48-7fb1-5a58-b986-67e6dc259f01" version = "0.7.0" [[deps.Interpolations]] -deps = ["AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] -git-tree-sha1 = "b7bc05649af456efc75d178846f47006c2c4c3c7" +deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] +git-tree-sha1 = "721ec2cf720536ad005cb38f50dbba7b02419a15" uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" -version = "0.13.6" +version = "0.14.7" + +[[deps.IntervalArithmetic]] +deps = ["CRlibm", "EnumX", "FastRounding", "LinearAlgebra", "Markdown", "Random", "RecipesBase", "RoundingEmulator", "SetRounding", "StaticArrays"] +git-tree-sha1 = "f59e639916283c1d2e106d2b00910b50f4dab76c" +uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" +version = "0.21.2" [[deps.IntervalSets]] -deps = ["Dates", "Random", "Statistics"] -git-tree-sha1 = "16c0cc91853084cb5f58a78bd209513900206ce6" +deps = ["Dates", "Random"] +git-tree-sha1 = "3d8866c029dd6b16e69e0d4a939c4dfcb98fac47" uuid = "8197267c-284f-5f27-9208-e0e47529a953" -version = "0.7.4" +version = "0.7.8" +weakdeps = ["Statistics"] -[[deps.InverseFunctions]] -deps = ["Test"] -git-tree-sha1 = "6667aadd1cdee2c6cd068128b3d226ebc4fb0c67" -uuid = "3587e190-3f89-42d0-90ee-14403ec27112" -version = "0.1.9" + [deps.IntervalSets.extensions] + IntervalSetsStatisticsExt = "Statistics" [[deps.InvertedIndices]] git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" @@ -1176,9 +1052,9 @@ uuid = "f1662d9f-8043-43de-a69a-05efc1cc6ff4" version = "0.1.1" [[deps.IterTools]] -git-tree-sha1 = "fa6287a4469f5e048d763df38279ee729fbd44e5" +git-tree-sha1 = "4ced6667f9974fc5c5943fa5e2ef1ca43ea9e450" uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" -version = "1.4.0" +version = "1.8.0" [[deps.IterableTables]] deps = ["DataValues", "IteratorInterfaceExtensions", "Requires", "TableTraits", "TableTraitsUtils"] @@ -1192,16 +1068,16 @@ uuid = "82899510-4779-5014-852e-03e436cf321d" version = "1.0.0" [[deps.JLD2]] -deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] -git-tree-sha1 = "42c17b18ced77ff0be65957a591d34f4ed57c631" +deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "PrecompileTools", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] +git-tree-sha1 = "9bbb5130d3b4fa52846546bca4791ecbdfb52730" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.4.31" +version = "0.4.38" [[deps.JLLWrappers]] -deps = ["Preferences"] -git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1" +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.4.1" +version = "1.5.0" [[deps.JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] @@ -1210,16 +1086,16 @@ uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" version = "0.21.4" [[deps.JSON3]] -deps = ["Dates", "Mmap", "Parsers", "SnoopPrecompile", "StructTypes", "UUIDs"] -git-tree-sha1 = "84b10656a41ef564c39d2d477d7236966d2b5683" +deps = ["Dates", "Mmap", "Parsers", "PrecompileTools", "StructTypes", "UUIDs"] +git-tree-sha1 = "95220473901735a0f4df9d1ca5b171b568b2daa3" uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" -version = "1.12.0" +version = "1.13.2" [[deps.JpegTurbo]] deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] -git-tree-sha1 = "106b6aa272f294ba47e96bd3acbabdc0407b5c60" +git-tree-sha1 = "d65930fa2bc96b07d7691c652d701dcbe7d9cf0b" uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" -version = "0.1.2" +version = "0.1.4" [[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1227,11 +1103,11 @@ git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" version = "2.1.91+0" -[[deps.JuliaInterpreter]] -deps = ["CodeTracking", "InteractiveUtils", "Random", "UUIDs"] -git-tree-sha1 = "6a125e6a4cb391e0b9adbd1afa9e771c2179f8ef" -uuid = "aa1ae85d-cabe-5617-a682-6adf51b2e16a" -version = "0.9.23" +[[deps.JuliaNVTXCallbacks_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "af433a10f3942e882d3c671aacb203e006a5808f" +uuid = "9c1d0b0a-7046-5b2e-a33f-ea22f176ac7e" +version = "0.2.1+0" [[deps.JuliaVariables]] deps = ["MLStyle", "NameResolution"] @@ -1240,10 +1116,16 @@ uuid = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec" version = "0.2.4" [[deps.KernelAbstractions]] -deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "47be64f040a7ece575c2b5f53ca6da7b548d69f4" +deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "b0737cbbe1c8da6f1139d1c23e35e7cea129c0af" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.4" +version = "0.9.13" + + [deps.KernelAbstractions.extensions] + EnzymeExt = "EnzymeCore" + + [deps.KernelAbstractions.weakdeps] + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" [[deps.KernelDensity]] deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] @@ -1257,23 +1139,32 @@ git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" version = "3.100.1+0" -[[deps.LERC_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" -uuid = "88015f11-f218-50d7-93a8-a6af411a945d" -version = "3.0.0+1" - [[deps.LLVM]] -deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Printf", "Unicode"] -git-tree-sha1 = "f044a2796a9e18e0531b9b3072b0019a61f264bc" +deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] +git-tree-sha1 = "c879e47398a7ab671c782e02b51a4456794a7fa3" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "4.17.1" +version = "6.4.0" +weakdeps = ["BFloat16s"] + + [deps.LLVM.extensions] + BFloat16sExt = "BFloat16s" [[deps.LLVMExtra_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "070e4b5b65827f82c16ae0916376cb47377aa1b5" +git-tree-sha1 = "98eaee04d96d973e79c25d49167668c5c8fb50e2" uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.18+0" +version = "0.0.27+1" + +[[deps.LLVMLoopInfo]] +git-tree-sha1 = "2e5c102cfc41f48ae4740c7eca7743cc7e7b75ea" +uuid = "8b046642-f1f6-4319-8d3c-209ddc03c586" +version = "1.0.0" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f689897ccbe049adb19a065c495e75f372ecd42b" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.4+0" [[deps.LZO_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1282,27 +1173,15 @@ uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" version = "2.10.1+0" [[deps.LaTeXStrings]] -git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" -version = "1.3.0" - -[[deps.Languages]] -deps = ["InteractiveUtils", "JSON"] -git-tree-sha1 = "b1a564061268ccc3f3397ac0982983a657d4dcb8" -uuid = "8ef0a80b-9436-5d2c-a485-80b904378c43" -version = "0.4.3" +version = "1.3.1" [[deps.LayoutPointers]] deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] -git-tree-sha1 = "88b8f66b604da079a627b6fb2860d3704a6729a1" +git-tree-sha1 = "62edfee3211981241b57ff1cedf4d74d79519277" uuid = "10f19ff3-798f-405d-979b-55457f8fc047" -version = "0.1.14" - -[[deps.LazyArrays]] -deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "MacroTools", "MatrixFactorizations", "SparseArrays", "StaticArrays"] -git-tree-sha1 = "d09ea41ff3edd22436cfda281e6af68f5351aaeb" -uuid = "5078a376-72f3-5289-bfd5-ec5146d43c02" -version = "1.1.1" +version = "0.1.15" [[deps.LazyArtifacts]] deps = ["Artifacts", "Pkg"] @@ -1313,29 +1192,29 @@ git-tree-sha1 = "a560dd966b386ac9ae60bdd3a3d3a326062d3c3e" uuid = "8cdb02fc-e678-4876-92c5-9defec4f444e" version = "0.3.1" -[[deps.LearnBase]] -git-tree-sha1 = "a0d90569edd490b82fdc4dc078ea54a5a800d30a" -uuid = "7f8f8fb0-2700-5f03-b4bd-41f8cfc144b6" -version = "0.4.1" - [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" -version = "0.6.3" +version = "0.6.4" [[deps.LibCURL_jll]] deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" -version = "7.84.0+0" +version = "8.4.0+0" [[deps.LibGit2]] -deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" +[[deps.LibGit2_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" +version = "1.6.4+0" + [[deps.LibSSH2_jll]] deps = ["Artifacts", "Libdl", "MbedTLS_jll"] uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" -version = "1.10.2+0" +version = "1.11.0+1" [[deps.Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" @@ -1359,10 +1238,10 @@ uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" version = "1.42.0+0" [[deps.Libiconv_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c7cb1f5d892775ba13767a87c7ada0b980ea0a71" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" -version = "1.16.1+2" +version = "1.17.0+0" [[deps.Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1370,27 +1249,39 @@ git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" version = "2.35.0+0" -[[deps.Libtiff_jll]] -deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "Pkg", "Zlib_jll", "Zstd_jll"] -git-tree-sha1 = "3eb79b0ca5764d4799c06699573fd8f533259713" -uuid = "89763e89-9b03-5906-acba-b20f662cd828" -version = "4.4.0+0" - [[deps.Libuuid_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" version = "2.36.0+0" +[[deps.LightXML]] +deps = ["Libdl", "XML2_jll"] +git-tree-sha1 = "e129d9391168c677cd4800f5c0abb1ed8cb3794f" +uuid = "9c8b4983-aa76-5018-a973-4c85ecc9e179" +version = "0.9.0" + +[[deps.LineSearches]] +deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] +git-tree-sha1 = "7bbea35cec17305fc70a0e5b4641477dc0789d9d" +uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" +version = "7.2.0" + [[deps.LinearAlgebra]] deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +[[deps.LinearAlgebraX]] +deps = ["LinearAlgebra", "Mods", "Permutations", "Primes", "SimplePolynomials"] +git-tree-sha1 = "4ef47ebed04355b50836d4844eabb9d357c1cc8f" +uuid = "9b3f67b0-2d00-526e-9884-9e4938f8fb88" +version = "0.1.13" + [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "0a1b7c2863e44523180fdb3146534e265a91870b" +git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.23" +version = "0.3.26" [deps.LogExpFunctions.extensions] LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" @@ -1407,15 +1298,15 @@ uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" [[deps.LoggingExtras]] deps = ["Dates", "Logging"] -git-tree-sha1 = "cedb76b37bc5a6c702ade66be44f831fa23c681e" +git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" -version = "1.0.0" +version = "1.0.3" [[deps.LoopVectorization]] -deps = ["ArrayInterface", "ArrayInterfaceCore", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] -git-tree-sha1 = "3bb62b5003bc7d2d49f26663484267dc49fa1bf5" +deps = ["ArrayInterface", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] +git-tree-sha1 = "0f5648fbae0d015e3abe5867bca2b362f67a5894" uuid = "bdcacae8-1622-11e9-2a5c-532679323890" -version = "0.12.159" +version = "0.12.166" weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] [deps.LoopVectorization.extensions] @@ -1423,30 +1314,94 @@ weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] SpecialFunctionsExt = "SpecialFunctions" [[deps.Losers]] -deps = ["CUDA", "InteractiveUtils", "Markdown", "Pkg", "PlutoTest", "PlutoUI", "Revise", "Statistics", "TestSetExtensions", "Tullio"] -git-tree-sha1 = "fa6ecb408c2fa8b364092327ecac4c9f2a047c23" -repo-rev = "master" -repo-url = "https://github.com/Dale-Black/Losers.jl" +deps = ["Statistics"] +git-tree-sha1 = "7d85766280061a4c145cf4f3478c802423c0540d" uuid = "1785af8d-d312-496e-9b53-daf6ddaba92c" version = "0.1.0" -[[deps.LossFunctions]] -deps = ["CategoricalArrays", "Markdown", "Statistics"] -git-tree-sha1 = "44a7bfeb7b5eb9386a62b9cccc6e21f406c15bea" -uuid = "30fc2ffe-d236-52d8-8643-a9d8f7c094a7" -version = "0.10.0" +[[deps.Lux]] +deps = ["ADTypes", "Adapt", "ChainRulesCore", "ConcreteStructs", "Functors", "LinearAlgebra", "LuxCore", "LuxDeviceUtils", "LuxLib", "MacroTools", "Markdown", "Optimisers", "PackageExtensionCompat", "Random", "Reexport", "Setfield", "SparseArrays", "Statistics", "TruncatedStacktraces", "WeightInitializers"] +git-tree-sha1 = "a8e84d2dec289f03ca054be3814de50f2312f0e1" +uuid = "b2108857-7c20-44ae-9111-449ecde12c47" +version = "0.5.10" -[[deps.LoweredCodeUtils]] -deps = ["JuliaInterpreter"] -git-tree-sha1 = "60168780555f3e663c536500aa790b6368adc02a" -uuid = "6f1432cf-f94c-5a45-995e-cdbf5db27b0b" -version = "2.3.0" + [deps.Lux.extensions] + LuxChainRulesExt = "ChainRules" + LuxComponentArraysExt = "ComponentArrays" + LuxComponentArraysReverseDiffExt = ["ComponentArrays", "ReverseDiff"] + LuxFluxTransformExt = "Flux" + LuxLuxAMDGPUExt = "LuxAMDGPU" + LuxLuxCUDAExt = "LuxCUDA" + LuxTrackerExt = "Tracker" + LuxZygoteExt = "Zygote" + + [deps.Lux.weakdeps] + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" + ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" + FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" + Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" + LuxAMDGPU = "83120cb1-ca15-4f04-bf3b-6967d2e6b60b" + LuxCUDA = "d0bbae9a-e099-4d5b-a835-1c6931763bda" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.LuxCUDA]] +deps = ["CUDA", "Reexport", "cuDNN"] +git-tree-sha1 = "69ac44bde022228c11fc8edde18c589f42643e27" +uuid = "d0bbae9a-e099-4d5b-a835-1c6931763bda" +version = "0.3.1" + +[[deps.LuxCore]] +deps = ["Functors", "Random", "Setfield"] +git-tree-sha1 = "6feb02e23f6d70f407af97ca270b3a337af5ae0f" +uuid = "bb33d45b-7691-41d6-9220-0943567d0623" +version = "0.1.6" + +[[deps.LuxDeviceUtils]] +deps = ["Adapt", "ChainRulesCore", "Functors", "LuxCore", "PackageExtensionCompat", "Preferences", "Random", "SparseArrays"] +git-tree-sha1 = "2d5e75ccdcb9c7a7e7da2e1d3fe979b1b62b76db" +uuid = "34f89e08-e1d5-43b4-8944-0b49ac560553" +version = "0.1.10" + + [deps.LuxDeviceUtils.extensions] + LuxDeviceUtilsFillArraysExt = "FillArrays" + LuxDeviceUtilsLuxAMDGPUExt = "LuxAMDGPU" + LuxDeviceUtilsLuxCUDAExt = "LuxCUDA" + LuxDeviceUtilsMetalExt = "Metal" + LuxDeviceUtilsZygoteExt = "Zygote" + + [deps.LuxDeviceUtils.weakdeps] + FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" + LuxAMDGPU = "83120cb1-ca15-4f04-bf3b-6967d2e6b60b" + LuxCUDA = "d0bbae9a-e099-4d5b-a835-1c6931763bda" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.LuxLib]] +deps = ["ChainRulesCore", "KernelAbstractions", "Markdown", "NNlib", "PackageExtensionCompat", "PrecompileTools", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "7dc09243c8b6b4b71d1bac27c8e4593b42379d2e" +uuid = "82251201-b29d-42c6-8e01-566dec8acb11" +version = "0.3.8" + + [deps.LuxLib.extensions] + LuxLibForwardDiffExt = "ForwardDiff" + LuxLibLuxCUDAExt = "LuxCUDA" + LuxLibLuxCUDATrackerExt = ["LuxCUDA", "Tracker"] + LuxLibReverseDiffExt = "ReverseDiff" + LuxLibTrackerExt = "Tracker" + + [deps.LuxLib.weakdeps] + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + LuxCUDA = "d0bbae9a-e099-4d5b-a835-1c6931763bda" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" [[deps.MAT]] deps = ["BufferedStreams", "CodecZlib", "HDF5", "SparseArrays"] -git-tree-sha1 = "6eff5740c8ab02c90065719579c7aa0eb40c9f69" +git-tree-sha1 = "ed1cf0a322d78cee07718bed5fd945e2218c35a1" uuid = "23992714-dd62-5051-b70f-ba57cb901cac" -version = "0.10.4" +version = "0.10.6" [[deps.MIMEs]] git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" @@ -1455,39 +1410,15 @@ version = "0.1.4" [[deps.MKL_jll]] deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] -git-tree-sha1 = "2ce8695e1e699b68702c03402672a69f54b8aca9" +git-tree-sha1 = "eb006abbd7041c28e0d16260e50a24f8f9104913" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2022.2.0+0" - -[[deps.MLDataPattern]] -deps = ["LearnBase", "MLLabelUtils", "Random", "SparseArrays", "StatsBase"] -git-tree-sha1 = "2741aabe5ec93c63cc0a5277bb1c2cb819b01bb1" -uuid = "9920b226-0b2a-5f5f-9153-9aa70a013f8b" -version = "0.5.5" +version = "2023.2.0+0" [[deps.MLDatasets]] -deps = ["CSV", "Chemfiles", "DataDeps", "DataFrames", "DelimitedFiles", "FileIO", "FixedPointNumbers", "GZip", "Glob", "HDF5", "ImageShow", "JLD2", "JSON3", "LazyModules", "MAT", "MLUtils", "NPZ", "Pickle", "Printf", "Requires", "SparseArrays", "Tables"] -git-tree-sha1 = "498b37aa3ebb4407adea36df1b244fa4e397de5e" +deps = ["CSV", "Chemfiles", "DataDeps", "DataFrames", "DelimitedFiles", "FileIO", "FixedPointNumbers", "GZip", "Glob", "HDF5", "ImageShow", "JLD2", "JSON3", "LazyModules", "MAT", "MLUtils", "NPZ", "Pickle", "Printf", "Requires", "SparseArrays", "Statistics", "Tables"] +git-tree-sha1 = "aab72207b3c687086a400be710650a57494992bd" uuid = "eb30cadb-4394-5ae3-aed4-317e484a6458" -version = "0.7.9" - -[[deps.MLJBase]] -deps = ["CategoricalArrays", "CategoricalDistributions", "ComputationalResources", "Dates", "DelimitedFiles", "Distributed", "Distributions", "InteractiveUtils", "InvertedIndices", "LinearAlgebra", "LossFunctions", "MLJModelInterface", "Missings", "OrderedCollections", "Parameters", "PrettyTables", "ProgressMeter", "Random", "ScientificTypes", "Serialization", "StatisticalTraits", "Statistics", "StatsBase", "Tables"] -git-tree-sha1 = "4cc167b6c0a3ab25d7050e4ac38fe119e97cd1ab" -uuid = "a7f614a8-145f-11e9-1d2a-a57a1082229d" -version = "0.21.11" - -[[deps.MLJModelInterface]] -deps = ["Random", "ScientificTypesBase", "StatisticalTraits"] -git-tree-sha1 = "c8b7e632d6754a5e36c0d94a4b466a5ba3a30128" -uuid = "e80e1ace-859a-464e-9ed9-23947d8ae3ea" -version = "1.8.0" - -[[deps.MLLabelUtils]] -deps = ["LearnBase", "MappedArrays", "StatsBase"] -git-tree-sha1 = "fd75d4b0c4016e047bbb6263eecf7ae3891af522" -uuid = "66a33bbf-0c2b-5fc8-a008-9da813334f0a" -version = "0.5.7" +version = "0.7.14" [[deps.MLStyle]] git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" @@ -1495,28 +1426,46 @@ uuid = "d8e11817-5142-5d16-987a-aa16d5891078" version = "0.4.17" [[deps.MLUtils]] -deps = ["ChainRulesCore", "Compat", "DataAPI", "DelimitedFiles", "FLoops", "FoldsThreads", "NNlib", "Random", "ShowCases", "SimpleTraits", "Statistics", "StatsBase", "Tables", "Transducers"] -git-tree-sha1 = "ca31739905ddb08c59758726e22b9e25d0d1521b" +deps = ["ChainRulesCore", "Compat", "DataAPI", "DelimitedFiles", "FLoops", "NNlib", "Random", "ShowCases", "SimpleTraits", "Statistics", "StatsBase", "Tables", "Transducers"] +git-tree-sha1 = "3504cdb8c2bc05bde4d4b09a81b01df88fcbbba0" uuid = "f1d291b0-491e-4a28-83b9-f70985020b54" -version = "0.4.2" +version = "0.4.3" + +[[deps.MPICH_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "2ee75365ca243c1a39d467e35ffd3d4d32eef11e" +uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" +version = "4.1.2+1" + +[[deps.MPIPreferences]] +deps = ["Libdl", "Preferences"] +git-tree-sha1 = "8f6af051b9e8ec597fa09d8885ed79fd582f33c9" +uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" +version = "0.1.10" + +[[deps.MPItrampoline_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "6979eccb6a9edbbb62681e158443e79ecc0d056a" +uuid = "f1f71cc9-e9ae-5b93-9b94-4fe0e1ad3748" +version = "5.3.1+0" [[deps.MacroTools]] deps = ["Markdown", "Random"] -git-tree-sha1 = "42324d08725e200c23d4dfb549e0d5d89dede2d2" +git-tree-sha1 = "9ee1618cbf5240e6d4e0371d6f24065083f60c48" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" -version = "0.5.10" +version = "0.5.11" [[deps.Makie]] -deps = ["Animations", "Base64", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "Distributions", "DocStringExtensions", "FFMPEG", "FileIO", "FixedPointNumbers", "Formatting", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageIO", "InteractiveUtils", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MakieCore", "Markdown", "Match", "MathTeXEngine", "MiniQhull", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "Printf", "Random", "RelocatableFolders", "Serialization", "Showoff", "SignedDistanceFields", "SnoopPrecompile", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun"] -git-tree-sha1 = "bdbc2178494c5328defb095a04d553278705b448" +deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Formatting", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageIO", "InteractiveUtils", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Setfield", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "StableHashTraits", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun"] +git-tree-sha1 = "3f3d992254bb34c77e095a2fa8a21ba16e4bec96" uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" -version = "0.18.4" +version = "0.20.0" [[deps.MakieCore]] -deps = ["Observables"] -git-tree-sha1 = "c1885d865632e7f37e5a1489a164f44c54fb80c9" +deps = ["Observables", "REPL"] +git-tree-sha1 = "b70f8240369fe7fcbcb2aaff302352025d2b9725" uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" -version = "0.5.2" +version = "0.7.0" [[deps.ManualMemory]] git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" @@ -1524,53 +1473,30 @@ uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" version = "0.1.8" [[deps.MappedArrays]] -git-tree-sha1 = "e8b359ef06ec72e8c030463fe02efe5527ee5142" +git-tree-sha1 = "2dab0221fe2b0f2cb6754eaa743cc266339f527e" uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" -version = "0.4.1" - -[[deps.MarchingCubes]] -deps = ["PrecompileTools", "StaticArrays"] -git-tree-sha1 = "c8e29e2bacb98c9b6f10445227a8b0402f2f173a" -uuid = "299715c1-40a9-479a-aaf9-4a633d36f717" -version = "0.1.8" +version = "0.4.2" [[deps.Markdown]] deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" -[[deps.Match]] -git-tree-sha1 = "1d9bc5c1a6e7ee24effb93f175c9342f9154d97f" -uuid = "7eb4fadd-790c-5f42-8a69-bfa0b872bfbf" -version = "1.2.0" - [[deps.MathTeXEngine]] deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "Test", "UnicodeFun"] git-tree-sha1 = "8f52dbaa1351ce4cb847d95568cb29e62a307d93" uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" version = "0.5.6" -[[deps.MatrixFactorizations]] -deps = ["ArrayLayouts", "LinearAlgebra", "Printf", "Random"] -git-tree-sha1 = "e721126cb2e08226cba1324f78cd34aaf1f31581" -uuid = "a3b82374-2e81-5b9e-98ce-41277c0e4c87" -version = "1.0.0" - [[deps.MbedTLS]] -deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "Random", "Sockets"] -git-tree-sha1 = "03a9b9718f5682ecb107ac9f7308991db4ce395b" +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf" uuid = "739be429-bea8-5141-9913-cc70e7f3736d" -version = "1.1.7" +version = "1.1.9" [[deps.MbedTLS_jll]] deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" -version = "2.28.2+0" - -[[deps.MetaGraphs]] -deps = ["Graphs", "JLD2", "Random"] -git-tree-sha1 = "1130dbe1d5276cb656f6e1094ce97466ed700e5a" -uuid = "626554b9-1ddb-594c-aa3c-2596fe9399a5" -version = "0.7.2" +version = "2.28.2+1" [[deps.MicroCollections]] deps = ["BangBang", "InitialValues", "Setfield"] @@ -1580,15 +1506,15 @@ version = "0.1.4" [[deps.MicroMamba]] deps = ["Pkg", "Scratch", "micromamba_jll"] -git-tree-sha1 = "a6a4771aba1dc8942bc0f44ff9f8ee0f893ef888" +git-tree-sha1 = "011cab361eae7bcd7d278f0a7a00ff9c69000c51" uuid = "0b3b1443-0f03-428d-bdfb-f27f9c1191ea" -version = "0.1.12" +version = "0.1.14" -[[deps.MiniQhull]] -deps = ["QhullMiniWrapper_jll"] -git-tree-sha1 = "9dc837d180ee49eeb7c8b77bb1c860452634b0d1" -uuid = "978d7f02-9e05-4691-894f-ae31a51d76ca" -version = "0.4.0" +[[deps.MicrosoftMPI_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "b01beb91d20b0d1312a9471a36017b5b339d26de" +uuid = "9237b28f-5490-5468-be7b-bb81f5f5e6cf" +version = "10.1.4+1" [[deps.Missings]] deps = ["DataAPI"] @@ -1599,6 +1525,11 @@ version = "1.1.0" [[deps.Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" +[[deps.Mods]] +git-tree-sha1 = "61be59e4daffff43a8cec04b5e0dc773cbb5db3a" +uuid = "7475f97c-0381-53b1-977b-4c60186c8d62" +version = "1.3.3" + [[deps.MosaicViews]] deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] git-tree-sha1 = "7b86a5d4d70a9f5cdf2dacb3cbe6d251d1a61dbe" @@ -1607,31 +1538,42 @@ version = "0.3.4" [[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" -version = "2022.10.11" +version = "2023.1.10" + +[[deps.Multisets]] +git-tree-sha1 = "8d852646862c96e226367ad10c8af56099b4047e" +uuid = "3b2b4ff1-bcff-5658-a3ee-dbcf1ce5ac09" +version = "0.4.4" [[deps.NIfTI]] deps = ["Base64", "CodecZlib", "MappedArrays", "Mmap", "TranscodingStreams"] -git-tree-sha1 = "8cc568873b6b27594f12eeb9748dec566818f352" +git-tree-sha1 = "21e5b879564607ea98fb680c98a1b7838b7d7f1c" uuid = "a3a9e032-41b5-5fc4-967a-a6b7a19844d3" -version = "0.5.9" +version = "0.6.0" + +[[deps.NLSolversBase]] +deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] +git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" +uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" +version = "7.8.3" [[deps.NNlib]] deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] -git-tree-sha1 = "99e6dbb50d8a96702dc60954569e9fe7291cc55d" +git-tree-sha1 = "ac86d2944bf7a670ac8bf0f7ec099b5898abcc09" uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -version = "0.8.20" +version = "0.9.8" [deps.NNlib.extensions] NNlibAMDGPUExt = "AMDGPU" + NNlibCUDACUDNNExt = ["CUDA", "cuDNN"] + NNlibCUDAExt = "CUDA" + NNlibEnzymeCoreExt = "EnzymeCore" [deps.NNlib.weakdeps] AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" - -[[deps.NNlibCUDA]] -deps = ["Adapt", "CUDA", "LinearAlgebra", "NNlib", "Random", "Statistics"] -git-tree-sha1 = "b05a082b08a3af0e5c576883bc6dfb6513e7e478" -uuid = "a00861dc-f156-4864-bf3c-e6376f28a68d" -version = "0.2.6" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" [[deps.NPZ]] deps = ["FileIO", "ZipFile"] @@ -1639,6 +1581,18 @@ git-tree-sha1 = "60a8e272fe0c5079363b28b0953831e2dd7b7e6f" uuid = "15e1cf62-19b3-5cfa-8e77-841668bca605" version = "0.4.3" +[[deps.NVTX]] +deps = ["Colors", "JuliaNVTXCallbacks_jll", "Libdl", "NVTX_jll"] +git-tree-sha1 = "8bc9ce4233be3c63f8dcd78ccaf1b63a9c0baa34" +uuid = "5da4648a-3479-48b8-97b9-01cb529c0a1f" +version = "0.3.3" + +[[deps.NVTX_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ce3269ed42816bf18d500c9f63418d4b0d9f5a3b" +uuid = "e98f9f5b-d649-5603-91fd-7774390e6439" +version = "3.1.0+2" + [[deps.NaNMath]] deps = ["OpenLibm_jll"] git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" @@ -1651,17 +1605,11 @@ git-tree-sha1 = "1a0fa0e9613f46c9b8c11eee38ebb4f590013c5e" uuid = "71a1bf82-56d0-4bbc-8a3c-48b961074391" version = "0.1.5" -[[deps.NearestNeighbors]] -deps = ["Distances", "StaticArrays"] -git-tree-sha1 = "2c3726ceb3388917602169bed973dbc97f1b51a8" -uuid = "b8a86587-4115-5ab1-83bc-aa920d37bbce" -version = "0.4.13" - [[deps.Netpbm]] deps = ["FileIO", "ImageCore", "ImageMetadata"] -git-tree-sha1 = "5ae7ca23e13855b3aba94550f26146c01d259267" +git-tree-sha1 = "d92b107dbb887293622df7697a2223f9f8176fcd" uuid = "f09324ee-3d7c-5217-9330-fc30815ba969" -version = "1.1.0" +version = "1.1.1" [[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" @@ -1673,15 +1621,15 @@ uuid = "4d1e1d77-625e-5b40-9113-a560ec7a8ecd" version = "1.0.0" [[deps.Observables]] -git-tree-sha1 = "6862738f9796b3edc1c09d0890afce4eca9e7e93" +git-tree-sha1 = "7438a59546cf62428fc9d1bc94729146d37a7225" uuid = "510215fc-4207-5dde-b226-833fc4488ee2" -version = "0.5.4" +version = "0.5.5" [[deps.OffsetArrays]] deps = ["Adapt"] -git-tree-sha1 = "82d7c9e310fe55aa54996e6f7f94674e2a38fcb4" +git-tree-sha1 = "2ac17d29c523ce1cd38e27785a7d23024853a4bb" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.12.9" +version = "1.12.10" [[deps.Ogg_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1689,28 +1637,10 @@ git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" version = "1.3.5+1" -[[deps.OneHotArrays]] -deps = ["Adapt", "ChainRulesCore", "Compat", "GPUArraysCore", "LinearAlgebra", "NNlib"] -git-tree-sha1 = "f511fca956ed9e70b80cd3417bb8c2dde4b68644" -uuid = "0b1bfda6-eb8a-41d2-88d8-f5af5cad476f" -version = "0.2.3" - -[[deps.OnlineStats]] -deps = ["AbstractTrees", "Dates", "Distributions", "LinearAlgebra", "OnlineStatsBase", "OrderedCollections", "Random", "RecipesBase", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns"] -git-tree-sha1 = "ad415596752eff23b0b70b453c9805e560b209d3" -uuid = "a15396b6-48d5-5d58-9928-6d29437db91e" -version = "1.6.1" - -[[deps.OnlineStatsBase]] -deps = ["AbstractTrees", "Dates", "LinearAlgebra", "OrderedCollections", "Statistics", "StatsBase"] -git-tree-sha1 = "7033456984dabcf39ec1d7f2c525344ef7bc12ec" -uuid = "925886fa-5bf2-5e8e-b522-a9147a512338" -version = "1.6.0" - [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.21+4" +version = "0.3.23+2" [[deps.OpenEXR]] deps = ["Colors", "FileIO", "OpenEXR_jll"] @@ -1727,7 +1657,13 @@ version = "3.1.4+0" [[deps.OpenLibm_jll]] deps = ["Artifacts", "Libdl"] uuid = "05823500-19ac-5b8b-9628-191a04bc5112" -version = "0.8.1+0" +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 = "694458ae803b684f09c07f90459cb79655fb377d" +uuid = "fe0851c0-eecd-5654-98d4-656369965a5c" +version = "5.0.0+0" [[deps.OpenSSL]] deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] @@ -1736,10 +1672,10 @@ uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" version = "1.4.1" [[deps.OpenSSL_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "9ff31d101d987eb9d66bd8b176ac7c277beccd09" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "cc6e1927ac521b659af340e0ca45828a3ffc748f" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "1.1.20+0" +version = "3.0.12+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -1747,11 +1683,17 @@ git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" version = "0.5.5+0" +[[deps.Optim]] +deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] +git-tree-sha1 = "01f85d9269b13fedc61e63cc72ee2213565f7a72" +uuid = "429524aa-4258-5aef-a3af-852621145aeb" +version = "1.7.8" + [[deps.Optimisers]] deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] -git-tree-sha1 = "6a01f65dd8583dee82eecc2a19b0ff21521aa749" +git-tree-sha1 = "34205b1204cc83c43cd9cfe53ffbd3b310f6e8c5" uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" -version = "0.2.18" +version = "0.3.1" [[deps.Opus_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1760,32 +1702,44 @@ uuid = "91d4177d-7536-5919-b921-800302f37372" version = "1.3.2+0" [[deps.OrderedCollections]] -git-tree-sha1 = "d321bf2de576bf25ec4d3e4360faca399afca282" +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.6.0" +version = "1.6.3" [[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" -version = "10.42.0+0" +version = "10.42.0+1" [[deps.PDMats]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "67eae2738d63117a196f497d7db789821bce61d1" +git-tree-sha1 = "4e5be6bb265d33669f98eb55d2a57addd1eeb72c" uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" -version = "0.11.17" +version = "0.11.30" + +[[deps.PMIx_jll]] +deps = ["Artifacts", "Hwloc_jll", "JLLWrappers", "Libdl", "Zlib_jll", "libevent_jll"] +git-tree-sha1 = "8b3b19351fa24791f94d7ae85faf845ca1362541" +uuid = "32165bc3-0280-59bc-8c0b-c33b6203efab" +version = "4.2.7+0" [[deps.PNGFiles]] deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] -git-tree-sha1 = "f809158b27eba0c18c269cf2a2be6ed751d3e81d" +git-tree-sha1 = "5ded86ccaf0647349231ed6c0822c10886d4a1ee" uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" -version = "0.3.17" +version = "0.4.1" + +[[deps.PackageExtensionCompat]] +git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" +uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" +version = "1.0.2" +weakdeps = ["Requires", "TOML"] [[deps.Packing]] deps = ["GeometryBasics"] -git-tree-sha1 = "1155f6f937fa2b94104162f01fa400e192e4272f" +git-tree-sha1 = "ec3edfe723df33528e085e632414499f26650501" uuid = "19eb6ba3-879d-56ad-ad62-d5c202156566" -version = "0.4.2" +version = "0.5.0" [[deps.PaddedViews]] deps = ["OffsetArrays"] @@ -1794,16 +1748,10 @@ uuid = "5432bcbf-9aad-5242-b902-cca2824c8663" version = "0.5.12" [[deps.Pango_jll]] -deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "84a314e3926ba9ec66ac097e3635e270986b0f10" +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4745216e94f71cb768d58330b059c9b76f32cb66" uuid = "36c8627f-9965-5494-a995-c6b170f724f3" -version = "1.50.9+0" - -[[deps.ParameterSchedulers]] -deps = ["Flux", "InfiniteArrays"] -git-tree-sha1 = "1da1eb2d33a0588b1c9c5df744f3a353d3b14ec2" -uuid = "d7d3b36b-41b8-4d0d-a2bf-768c6151755e" -version = "0.3.5" +version = "1.50.14+0" [[deps.Parameters]] deps = ["OrderedCollections", "UnPack"] @@ -1812,16 +1760,34 @@ uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" version = "0.12.3" [[deps.Parsers]] -deps = ["Dates", "SnoopPrecompile"] -git-tree-sha1 = "478ac6c952fddd4399e71d4779797c538d0ff2bf" +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "a935806434c9d4c506ba941871b327b96d41f2bf" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.5.8" +version = "2.8.0" + +[[deps.PartialFunctions]] +deps = ["MacroTools"] +git-tree-sha1 = "47b49a4dbc23b76682205c646252c0f9e1eb75af" +uuid = "570af359-4316-4cb7-8c74-252c00c2016b" +version = "1.2.0" + +[[deps.PeriodicTable]] +deps = ["Base64", "Test", "Unitful"] +git-tree-sha1 = "9a9731f346797126271405971dfdf4709947718b" +uuid = "7b2266bf-644c-5ea3-82d8-af4bbd25a884" +version = "1.1.4" + +[[deps.Permutations]] +deps = ["Combinatorics", "LinearAlgebra", "Random"] +git-tree-sha1 = "4f69b02cf40a0f494d0438ab29de32e14ef96e7b" +uuid = "2ae35dd2-176d-5d53-8349-f30d82d94d4f" +version = "0.4.18" [[deps.Pickle]] -deps = ["DataStructures", "InternedStrings", "Serialization", "SparseArrays", "Strided", "StringEncodings", "ZipFile"] -git-tree-sha1 = "e6a34eb1dc0c498f0774bbfbbbeff2de101f4235" +deps = ["BFloat16s", "DataStructures", "InternedStrings", "Serialization", "SparseArrays", "Strided", "StringEncodings", "ZipFile"] +git-tree-sha1 = "2e71d7dbcab8dc47306c0ed6ac6018fbc1a7070f" uuid = "fbb45041-c46e-462f-888f-7c521cafbc2c" -version = "0.3.2" +version = "0.3.3" [[deps.Pidfile]] deps = ["FileWatching", "Test"] @@ -1830,21 +1796,21 @@ uuid = "fa939f87-e72e-5be4-a000-7fc836dbe307" version = "1.3.0" [[deps.Pixman_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "b4f5d02549a10e20780a24fce72bea96b6329e29" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" uuid = "30392449-352a-5448-841d-b1acce4e97dc" -version = "0.40.1+0" +version = "0.42.2+0" [[deps.Pkg]] deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" -version = "1.9.0" +version = "1.10.0" [[deps.PkgVersion]] deps = ["Pkg"] -git-tree-sha1 = "f6cf8e7944e50901594838951729a1861e668cb8" +git-tree-sha1 = "f9501cc0430a26bc3d156ae1b5b0c1b47af4d6da" uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" -version = "0.3.2" +version = "0.3.3" [[deps.PlotUtils]] deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] @@ -1852,17 +1818,11 @@ git-tree-sha1 = "f92e1315dadf8c46561fb9396e525f7200cdc227" uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" version = "1.3.5" -[[deps.PlutoTest]] -deps = ["HypertextLiteral", "InteractiveUtils", "Markdown", "Test"] -git-tree-sha1 = "17aa9b81106e661cffa1c4c36c17ee1c50a86eda" -uuid = "cb4044da-4d16-4ffa-a6a3-8cad7f73ebdc" -version = "0.2.2" - [[deps.PlutoUI]] deps = ["AbstractPlutoDingetjes", "Base64", "ColorTypes", "Dates", "FixedPointNumbers", "Hyperscript", "HypertextLiteral", "IOCapture", "InteractiveUtils", "JSON", "Logging", "MIMEs", "Markdown", "Random", "Reexport", "URIs", "UUIDs"] -git-tree-sha1 = "b478a748be27bd2f2c73a7690da219d0844db305" +git-tree-sha1 = "bd7c69c7f7173097e7b5e1be07cee2b8b7447f51" uuid = "7f904dfe-b85e-4ff6-b463-dae2292396a8" -version = "0.7.51" +version = "0.7.54" [[deps.PolyesterWeave]] deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] @@ -1883,21 +1843,27 @@ version = "3.2.4" [[deps.PooledArrays]] deps = ["DataAPI", "Future"] -git-tree-sha1 = "a6062fe4063cdafe78f4a0a81cfffb89721b30e7" +git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" -version = "1.4.2" +version = "1.4.3" + +[[deps.PositiveFactorizations]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" +uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" +version = "0.2.4" [[deps.PrecompileTools]] deps = ["Preferences"] -git-tree-sha1 = "259e206946c293698122f63e2b513a7c99a244e8" +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -version = "1.1.1" +version = "1.2.0" [[deps.Preferences]] deps = ["TOML"] -git-tree-sha1 = "7eb1686b4f04b82f96ed7a4ea5890a4f0c7a09f1" +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.4.0" +version = "1.4.1" [[deps.PrettyPrint]] git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" @@ -1905,38 +1871,36 @@ uuid = "8162dcfd-2161-5ef2-ae6c-7681170c5f98" version = "0.2.0" [[deps.PrettyTables]] -deps = ["Crayons", "Formatting", "LaTeXStrings", "Markdown", "Reexport", "StringManipulation", "Tables"] -git-tree-sha1 = "213579618ec1f42dea7dd637a42785a608b1ea9c" +deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] +git-tree-sha1 = "3f43c2aae6aa4a2503b05587ab74f4f6aeff9fd0" uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" -version = "2.2.4" +version = "2.3.0" + +[[deps.Primes]] +deps = ["IntegerMathUtils"] +git-tree-sha1 = "1d05623b5952aed1307bf8b43bec8b8d1ef94b6e" +uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" +version = "0.5.5" [[deps.Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" -[[deps.ProgressLogging]] -deps = ["Logging", "SHA", "UUIDs"] -git-tree-sha1 = "80d919dee55b9c50e8d9e2da5eeafff3fe58b539" -uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" -version = "0.1.4" +[[deps.Profile]] +deps = ["Printf"] +uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" [[deps.ProgressMeter]] deps = ["Distributed", "Printf"] -git-tree-sha1 = "d7a7aef8f8f2d537104f170139553b14dfe39fe9" +git-tree-sha1 = "00099623ffee15972c16111bcf84c58a0051257c" uuid = "92933f4c-e287-5a05-a399-4b506db050ca" -version = "1.7.2" - -[[deps.ProtoBuf]] -deps = ["Logging", "protoc_jll"] -git-tree-sha1 = "5bb5eb83db702376abe5fb2ef0739b08da3ab461" -uuid = "3349acd9-ac6a-5e09-bcdb-63829b23a429" -version = "0.11.5" +version = "1.9.0" [[deps.PythonCall]] deps = ["CondaPkg", "Dates", "Libdl", "MacroTools", "Markdown", "Pkg", "REPL", "Requires", "Serialization", "Tables", "UnsafePointers"] -git-tree-sha1 = "f27dabb05ec811675a9eefe49325a14ae7266b0b" +git-tree-sha1 = "4999b3e4e9bdeba0b61ede19cc45a2128db21cdc" uuid = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" -version = "0.9.12" +version = "0.9.15" [[deps.QOI]] deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] @@ -1944,42 +1908,30 @@ git-tree-sha1 = "18e8f4d1426e965c7b532ddd260599e1510d26ce" uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65" version = "1.0.0" -[[deps.QhullMiniWrapper_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Qhull_jll"] -git-tree-sha1 = "607cf73c03f8a9f83b36db0b86a3a9c14179621f" -uuid = "460c41e3-6112-5d7f-b78c-b6823adb3f2d" -version = "1.0.0+1" - -[[deps.Qhull_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "be2449911f4d6cfddacdf7efc895eceda3eee5c1" -uuid = "784f63db-0788-585a-bace-daefebcd302b" -version = "8.0.1003+0" - [[deps.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] -git-tree-sha1 = "6ec7ac8412e83d57e313393220879ede1740f9ee" +git-tree-sha1 = "9ebcd48c498668c7fa0e97a9cae873fbee7bfee1" uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" -version = "2.8.2" +version = "2.9.1" [[deps.Quadmath]] deps = ["Compat", "Printf", "Random", "Requires"] -git-tree-sha1 = "2e368407cf5879f7ad63027b26e01988acd0e8da" +git-tree-sha1 = "15c8465e3cb37b6bf3abcc0a4c9440799f2ba3fb" uuid = "be4d8f0f-7fa4-5f49-b795-2f01399ab2dd" -version = "0.5.8" +version = "0.5.9" [[deps.Quaternions]] deps = ["LinearAlgebra", "Random", "RealDot"] -git-tree-sha1 = "da095158bdc8eaccb7890f9884048555ab771019" +git-tree-sha1 = "9a46862d248ea548e340e30e2894118749dc7f51" uuid = "94ee1d12-ae83-5a48-8b1c-48b8ff168ae0" -version = "0.7.4" +version = "0.7.5" [[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[deps.Random]] -deps = ["SHA", "Serialization"] +deps = ["SHA"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [[deps.Random123]] @@ -2001,9 +1953,9 @@ version = "0.3.2" [[deps.Ratios]] deps = ["Requires"] -git-tree-sha1 = "6d7bb727e76147ba18eed998700998e17b8e4911" +git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b" uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" -version = "0.4.4" +version = "0.4.5" weakdeps = ["FixedPointNumbers"] [deps.Ratios.extensions] @@ -2026,17 +1978,11 @@ git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" uuid = "189a3867-3050-52da-a836-e630ba90ab69" version = "1.2.2" -[[deps.RegionTrees]] -deps = ["IterTools", "LinearAlgebra", "StaticArrays"] -git-tree-sha1 = "4618ed0da7a251c7f92e869ae1a19c74a7d2a7f9" -uuid = "dee08c22-ab7f-5625-9660-a9af2021b33f" -version = "0.3.2" - [[deps.RelocatableFolders]] deps = ["SHA", "Scratch"] -git-tree-sha1 = "90bc7a7c96410424509e4263e277e43250c05691" +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" -version = "1.0.0" +version = "1.0.1" [[deps.Requires]] deps = ["UUIDs"] @@ -2044,11 +1990,11 @@ git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" uuid = "ae029012-a4dd-5104-9daa-d747884805df" version = "1.3.0" -[[deps.Revise]] -deps = ["CodeTracking", "Distributed", "FileWatching", "JuliaInterpreter", "LibGit2", "LoweredCodeUtils", "OrderedCollections", "Pkg", "REPL", "Requires", "UUIDs", "Unicode"] -git-tree-sha1 = "feafdc70b2e6684314e188d95fe66d116de834a7" -uuid = "295af30f-e4ad-537b-8983-00126c2a3abe" -version = "3.5.2" +[[deps.RingLists]] +deps = ["Random"] +git-tree-sha1 = "f39da63aa6d2d88e0c1bd20ed6a3ff9ea7171ada" +uuid = "286e9d63-9694-5540-9e3c-4e6708fa07b2" +version = "0.2.8" [[deps.Rmath]] deps = ["Random", "Rmath_jll"] @@ -2062,36 +2008,21 @@ git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" version = "0.4.0+0" -[[deps.Roots]] -deps = ["ChainRulesCore", "CommonSolve", "Printf", "Setfield"] -git-tree-sha1 = "e19c09f5cc868785766f86435ba40576cf751257" -uuid = "f2b01f46-fcfa-551c-844a-d8ac1e96c665" -version = "2.0.14" - - [deps.Roots.extensions] - RootsForwardDiffExt = "ForwardDiff" - RootsIntervalRootFindingExt = "IntervalRootFinding" - - [deps.Roots.weakdeps] - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - IntervalRootFinding = "d2bf35a9-74e0-55ec-b149-d360ff49b807" - [[deps.Rotations]] -deps = ["LinearAlgebra", "Quaternions", "Random", "StaticArrays", "Statistics"] -git-tree-sha1 = "72a6abdcd088764878b473102df7c09bbc0548de" +deps = ["LinearAlgebra", "Quaternions", "Random", "StaticArrays"] +git-tree-sha1 = "792d8fd4ad770b6d517a13ebb8dadfcac79405b8" uuid = "6038ab10-8711-5258-84ad-4b1120ba62dc" -version = "1.4.0" +version = "1.6.1" + +[[deps.RoundingEmulator]] +git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" +uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" +version = "0.2.1" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" version = "0.7.0" -[[deps.SIMD]] -deps = ["SnoopPrecompile"] -git-tree-sha1 = "8b20084a97b004588125caebf418d8cab9e393d1" -uuid = "fdea26ae-647d-5447-a871-4b548cad5224" -version = "3.4.4" - [[deps.SIMDTypes]] git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" uuid = "94e857df-77ce-4151-89e5-788b33177be4" @@ -2099,57 +2030,46 @@ version = "0.1.0" [[deps.SLEEFPirates]] deps = ["IfElse", "Static", "VectorizationBase"] -git-tree-sha1 = "cda0aece8080e992f6370491b08ef3909d1c04e7" +git-tree-sha1 = "3aac6d68c5e57449f5b9b865c9ba50ac2970c4cf" uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" -version = "0.6.38" - -[[deps.ScanByte]] -deps = ["Libdl", "SIMD"] -git-tree-sha1 = "2436b15f376005e8790e318329560dcc67188e84" -uuid = "7b38b023-a4d7-4c5e-8d43-3f3097f304eb" -version = "0.3.3" - -[[deps.ScientificTypes]] -deps = ["CategoricalArrays", "ColorTypes", "Dates", "Distributions", "PrettyTables", "Reexport", "ScientificTypesBase", "StatisticalTraits", "Tables"] -git-tree-sha1 = "75ccd10ca65b939dab03b812994e571bf1e3e1da" -uuid = "321657f4-b219-11e9-178b-2701a2544e81" -version = "3.0.2" - -[[deps.ScientificTypesBase]] -git-tree-sha1 = "a8e18eb383b5ecf1b5e6fc237eb39255044fd92b" -uuid = "30f210dd-8aff-4c5f-94ba-8e64358c1161" -version = "3.0.0" +version = "0.6.42" [[deps.Scratch]] deps = ["Dates"] -git-tree-sha1 = "30449ee12237627992a99d5e30ae63e4d78cd24a" +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" uuid = "6c6a2e73-6563-6170-7368-637461726353" -version = "1.2.0" +version = "1.2.1" [[deps.SentinelArrays]] deps = ["Dates", "Random"] -git-tree-sha1 = "77d3c4726515dca71f6d80fbb5e251088defe305" +git-tree-sha1 = "0e7508ff27ba32f26cd459474ca2ede1bc10991f" uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" -version = "1.3.18" +version = "1.4.1" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" +[[deps.SetRounding]] +git-tree-sha1 = "d7a25e439d07a17b7cdf97eecee504c50fedf5f6" +uuid = "3cc68bcd-71a2-5612-b932-767ffbe40ab0" +version = "0.2.1" + [[deps.Setfield]] -deps = ["ConstructionBase", "Future", "MacroTools", "Requires"] -git-tree-sha1 = "38d88503f695eb0301479bc9b0d4320b378bafe5" +deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] +git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" -version = "0.8.2" +version = "1.1.1" + +[[deps.ShaderAbstractions]] +deps = ["ColorTypes", "FixedPointNumbers", "GeometryBasics", "LinearAlgebra", "Observables", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "db0219befe4507878b1a90e07820fed3e62c289d" +uuid = "65257c39-d410-5151-9873-9b3e5be5013e" +version = "0.4.0" [[deps.SharedArrays]] deps = ["Distributed", "Mmap", "Random", "Serialization"] uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" -[[deps.ShiftedArrays]] -git-tree-sha1 = "503688b59397b3307443af35cd953a13e8005c16" -uuid = "1277b4bf-5013-50f5-be3d-901d8477a67a" -version = "2.0.0" - [[deps.ShowCases]] git-tree-sha1 = "7f534ad62ab2bd48591bdeac81994ea8c445e4a5" uuid = "605ecd9f-84a6-4c9e-81e2-4798472b76a3" @@ -2172,60 +2092,67 @@ git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" version = "1.1.0" +[[deps.SimpleGraphs]] +deps = ["AbstractLattices", "Combinatorics", "DataStructures", "IterTools", "LightXML", "LinearAlgebra", "LinearAlgebraX", "Optim", "Primes", "Random", "RingLists", "SimplePartitions", "SimplePolynomials", "SimpleRandom", "SparseArrays", "Statistics"] +git-tree-sha1 = "c5538efb4e308548fd2623e2778c0b6559b1aaa6" +uuid = "55797a34-41de-5266-9ec1-32ac4eb504d3" +version = "0.8.5" + +[[deps.SimplePartitions]] +deps = ["AbstractLattices", "DataStructures", "Permutations"] +git-tree-sha1 = "e9330391d04241eafdc358713b48396619c83bcb" +uuid = "ec83eff0-a5b5-5643-ae32-5cbf6eedec9d" +version = "0.3.1" + +[[deps.SimplePolynomials]] +deps = ["Mods", "Multisets", "Polynomials", "Primes"] +git-tree-sha1 = "d537c31cf9995236166e3e9afc424a5a1c59ff9d" +uuid = "cc47b68c-3164-5771-a705-2bc0097375a0" +version = "0.2.14" + +[[deps.SimpleRandom]] +deps = ["Distributions", "LinearAlgebra", "Random"] +git-tree-sha1 = "3a6fb395e37afab81aeea85bae48a4db5cd7244a" +uuid = "a6525b86-64cd-54fa-8f65-62fc48bdc0e8" +version = "0.3.1" + [[deps.SimpleTraits]] deps = ["InteractiveUtils", "MacroTools"] git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" version = "0.9.4" -[[deps.SimpleWeightedGraphs]] -deps = ["Graphs", "LinearAlgebra", "Markdown", "SparseArrays"] -git-tree-sha1 = "4b33e0e081a825dbfaf314decf58fa47e53d6acb" -uuid = "47aef6b3-ad0c-573a-a1e2-d07658019622" -version = "1.4.0" - [[deps.Sixel]] deps = ["Dates", "FileIO", "ImageCore", "IndirectArrays", "OffsetArrays", "REPL", "libsixel_jll"] -git-tree-sha1 = "8fb59825be681d451c246a795117f317ecbcaa28" +git-tree-sha1 = "2da10356e31327c7096832eb9cd86307a50b1eb6" uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47" -version = "0.1.2" - -[[deps.SnoopPrecompile]] -deps = ["Preferences"] -git-tree-sha1 = "e760a70afdcd461cf01a575947738d359234665c" -uuid = "66db9d55-30c0-4569-8b51-7e840670fc0c" -version = "1.0.3" - -[[deps.Snowball]] -deps = ["Languages", "Snowball_jll", "WordTokenizers"] -git-tree-sha1 = "d38c1ff8a2fca7b1c65a51457dabebef28052399" -uuid = "fb8f903a-0164-4e73-9ffe-431110250c3b" -version = "0.1.0" - -[[deps.Snowball_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "6ff3a185a583dca7265cbfcaae1da16aa3b6a962" -uuid = "88f46535-a3c0-54f4-998e-4320a1339f51" -version = "2.2.0+0" +version = "0.1.3" [[deps.Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" [[deps.SortingAlgorithms]] deps = ["DataStructures"] -git-tree-sha1 = "a4ada03f999bd01b3a25dcaa30b2d929fe537e00" +git-tree-sha1 = "5165dfb9fd131cf0c6957a3a7605dede376e7b63" uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" -version = "1.1.0" +version = "1.2.0" [[deps.SparseArrays]] deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.10.0" + +[[deps.SparseInverseSubset]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "91402087fd5d13b2d97e3ef29bbdf9d7859e678a" +uuid = "dc90abb0-5640-4711-901d-7e5b23a2fada" +version = "0.1.1" [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "ef28127915f4229c971eb43f3fc075dd3fe91880" +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.2.0" +version = "2.3.1" weakdeps = ["ChainRulesCore"] [deps.SpecialFunctions.extensions] @@ -2237,6 +2164,12 @@ git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" uuid = "171d559e-b47b-412a-8079-5efa626c420e" version = "0.1.15" +[[deps.StableHashTraits]] +deps = ["Compat", "SHA", "Tables", "TupleTools"] +git-tree-sha1 = "d29023a76780bb8a3f2273b29153fd00828cb73f" +uuid = "c5dd0088-6c3f-4803-b00e-f31a60c170fa" +version = "1.1.1" + [[deps.StackViews]] deps = ["OffsetArrays"] git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c" @@ -2245,15 +2178,15 @@ version = "0.1.1" [[deps.Static]] deps = ["IfElse"] -git-tree-sha1 = "08be5ee09a7632c32695d954a602df96a877bf0d" +git-tree-sha1 = "f295e0a1da4ca425659c57441bcb59abb035a4bc" uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" -version = "0.8.6" +version = "0.8.8" [[deps.StaticArrayInterface]] -deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "Requires", "SnoopPrecompile", "SparseArrays", "Static", "SuiteSparse"] -git-tree-sha1 = "33040351d2403b84afce74dae2e22d3f5b18edcb" +deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] +git-tree-sha1 = "03fec6800a986d191f64f5c0996b59ed526eda25" uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.4.0" +version = "1.4.1" weakdeps = ["OffsetArrays", "StaticArrays"] [deps.StaticArrayInterface.extensions] @@ -2261,61 +2194,50 @@ weakdeps = ["OffsetArrays", "StaticArrays"] StaticArrayInterfaceStaticArraysExt = "StaticArrays" [[deps.StaticArrays]] -deps = ["LinearAlgebra", "Random", "StaticArraysCore", "Statistics"] -git-tree-sha1 = "c262c8e978048c2b095be1672c9bee55b4619521" +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "5ef59aea6f18c25168842bded46b16662141ab87" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.5.24" +version = "1.7.0" +weakdeps = ["Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysStatisticsExt = "Statistics" [[deps.StaticArraysCore]] -git-tree-sha1 = "6b7ba252635a5eff6a0b0664a41ee140a1c9e72a" +git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" -version = "1.4.0" - -[[deps.StatisticalTraits]] -deps = ["ScientificTypesBase"] -git-tree-sha1 = "30b9236691858e13f167ce829490a68e1a597782" -uuid = "64bff920-2084-43da-a3e6-9bb72801c0c9" -version = "3.2.0" +version = "1.4.2" [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" -version = "1.9.0" +version = "1.10.0" [[deps.StatsAPI]] deps = ["LinearAlgebra"] -git-tree-sha1 = "45a7769a04a3cf80da1c1c7c60caf932e6f4c9f7" +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" -version = "1.6.0" +version = "1.7.0" [[deps.StatsBase]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] -git-tree-sha1 = "d1bf48bfcc554a3761a133fe3a9bb01488e06916" +git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -version = "0.33.21" +version = "0.34.2" [[deps.StatsFuns]] deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] git-tree-sha1 = "f625d686d5a88bcd2b15cd81f18f98186fdc0c9a" uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" version = "1.3.0" -weakdeps = ["ChainRulesCore", "InverseFunctions"] [deps.StatsFuns.extensions] StatsFunsChainRulesCoreExt = "ChainRulesCore" StatsFunsInverseFunctionsExt = "InverseFunctions" -[[deps.StatsModels]] -deps = ["DataAPI", "DataStructures", "LinearAlgebra", "Printf", "REPL", "ShiftedArrays", "SparseArrays", "StatsBase", "StatsFuns", "Tables"] -git-tree-sha1 = "8cc7a5385ecaa420f0b3426f9b0135d0df0638ed" -uuid = "3eaba693-59b7-5ba5-a881-562e759f1c8d" -version = "0.7.2" - -[[deps.StrTables]] -deps = ["Dates"] -git-tree-sha1 = "5998faae8c6308acc25c25896562a1e66a3bb038" -uuid = "9700d1a9-a7c8-5760-9816-a99fda30bb8f" -version = "1.0.1" + [deps.StatsFuns.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" [[deps.Strided]] deps = ["LinearAlgebra", "TupleTools"] @@ -2325,20 +2247,21 @@ version = "1.2.3" [[deps.StringEncodings]] deps = ["Libiconv_jll"] -git-tree-sha1 = "33c0da881af3248dafefb939a21694b97cfece76" +git-tree-sha1 = "b765e46ba27ecf6b44faf70df40c57aa3a547dcb" uuid = "69024149-9ee7-55f6-a4c4-859efe599b68" -version = "0.3.6" +version = "0.3.7" [[deps.StringManipulation]] -git-tree-sha1 = "46da2434b41f41ac3594ee9816ce5541c6096123" +deps = ["PrecompileTools"] +git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" -version = "0.3.0" +version = "0.3.4" [[deps.StructArrays]] -deps = ["Adapt", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] -git-tree-sha1 = "521a0e828e98bb69042fec1809c1b5a680eb7389" +deps = ["Adapt", "ConstructionBase", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] +git-tree-sha1 = "0a3db38e4cce3c54fe7a71f831cd7b6194a54213" uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" -version = "0.6.15" +version = "0.6.16" [[deps.StructTypes]] deps = ["Dates", "UUIDs"] @@ -2351,9 +2274,9 @@ deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" [[deps.SuiteSparse_jll]] -deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] +deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" -version = "5.10.1+6" +version = "7.2.1+1" [[deps.TOML]] deps = ["Dates"] @@ -2361,10 +2284,10 @@ uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" version = "1.0.3" [[deps.TableShowUtils]] -deps = ["DataValues", "Dates", "JSON", "Markdown", "Test"] -git-tree-sha1 = "14c54e1e96431fb87f0d2f5983f090f1b9d06457" +deps = ["DataValues", "Dates", "JSON", "Markdown", "Unicode"] +git-tree-sha1 = "2a41a3dedda21ed1184a47caab56ed9304e9a038" uuid = "5e66a065-1f0a-5976-b372-e0b8c017ca10" -version = "0.2.5" +version = "0.2.6" [[deps.TableTraits]] deps = ["IteratorInterfaceExtensions"] @@ -2379,22 +2302,16 @@ uuid = "382cd787-c1b6-5bf2-a167-d5b971a19bda" version = "1.0.2" [[deps.Tables]] -deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits", "Test"] -git-tree-sha1 = "1544b926975372da01227b382066ab70e574a3ec" +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.10.1" +version = "1.11.1" [[deps.Tar]] deps = ["ArgTools", "SHA"] uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" version = "1.10.0" -[[deps.TensorBoardLogger]] -deps = ["CRC32c", "FileIO", "ImageCore", "ProtoBuf", "Requires", "StatsBase"] -git-tree-sha1 = "70205612422b8b8f2e1525d0eb0e9a9df4d260f4" -uuid = "899adc3e-224a-11e9-021f-63837185c80f" -version = "0.1.19" - [[deps.TensorCore]] deps = ["LinearAlgebra"] git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" @@ -2405,18 +2322,6 @@ version = "0.1.1" deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" -[[deps.TestSetExtensions]] -deps = ["DeepDiffs", "Distributed", "Test"] -git-tree-sha1 = "3a2919a78b04c29a1a57b05e1618e473162b15d0" -uuid = "98d24dd4-01ad-11ea-1b02-c9a08f80db04" -version = "2.0.0" - -[[deps.TextAnalysis]] -deps = ["DataStructures", "DelimitedFiles", "JSON", "Languages", "LinearAlgebra", "Printf", "ProgressMeter", "Random", "Serialization", "Snowball", "SparseArrays", "Statistics", "StatsBase", "Tables", "WordTokenizers"] -git-tree-sha1 = "bc85e54209c30e69e1925460ec0257a916683f59" -uuid = "a2db99b7-8b79-58f8-94bf-bbc811eef33d" -version = "0.7.3" - [[deps.TextParse]] deps = ["CodecZlib", "DataStructures", "Dates", "DoubleFloats", "Mmap", "Nullables", "WeakRefStrings"] git-tree-sha1 = "eb1f4fb185c8644faa2d18d14c72f2c24412415f" @@ -2425,15 +2330,15 @@ version = "1.0.2" [[deps.ThreadingUtilities]] deps = ["ManualMemory"] -git-tree-sha1 = "c97f60dd4f2331e1a495527f80d242501d2f9865" +git-tree-sha1 = "eda08f7e9818eb53661b3deb74e3159460dfbc27" uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" -version = "0.5.1" +version = "0.5.2" [[deps.TiffImages]] deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"] -git-tree-sha1 = "8621f5c499a8aa4aa970b1ae381aae0ef1576966" +git-tree-sha1 = "34cc045dd0aaa59b8bbe86c644679bc57f1d5bd0" uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" -version = "0.6.4" +version = "0.6.8" [[deps.TiledIteration]] deps = ["OffsetArrays"] @@ -2454,36 +2359,50 @@ uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" version = "0.9.13" [[deps.Transducers]] -deps = ["Adapt", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] -git-tree-sha1 = "25358a5f2384c490e98abd565ed321ffae2cbb37" +deps = ["Adapt", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "ConstructionBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] +git-tree-sha1 = "e579d3c991938fecbb225699e8f611fa3fbf2141" uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" -version = "0.4.76" +version = "0.4.79" + + [deps.Transducers.extensions] + TransducersBlockArraysExt = "BlockArrays" + TransducersDataFramesExt = "DataFrames" + TransducersLazyArraysExt = "LazyArrays" + TransducersOnlineStatsBaseExt = "OnlineStatsBase" + TransducersReferenceablesExt = "Referenceables" + + [deps.Transducers.weakdeps] + BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" + OnlineStatsBase = "925886fa-5bf2-5e8e-b522-a9147a512338" + Referenceables = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" [[deps.Tricks]] -git-tree-sha1 = "aadb748be58b492045b4f56166b5188aa63ce549" +git-tree-sha1 = "eae1bb484cd63b36999ee58be2de6c178105112f" uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" -version = "0.1.7" +version = "0.1.8" [[deps.TriplotBase]] git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" uuid = "981d1d27-644d-49a2-9326-4793e63143c3" version = "0.1.0" -[[deps.Tullio]] -deps = ["ChainRulesCore", "DiffRules", "LinearAlgebra", "Requires"] -git-tree-sha1 = "7871a39eac745697ee512a87eeff06a048a7905b" -uuid = "bc48ee85-29a4-5162-ae0b-a64e1601d4bc" -version = "0.3.5" +[[deps.TruncatedStacktraces]] +deps = ["InteractiveUtils", "MacroTools", "Preferences"] +git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" +uuid = "781d530d-4396-4725-bb49-402e4bee1e77" +version = "1.4.0" [[deps.TupleTools]] -git-tree-sha1 = "3c712976c47707ff893cf6ba4354aa14db1d8938" +git-tree-sha1 = "155515ed4c4236db30049ac1495e2969cc06be9d" uuid = "9d95972d-f1c8-5527-a6e0-b4b365fa01f6" -version = "1.3.0" +version = "1.4.3" [[deps.URIs]] -git-tree-sha1 = "074f993b0ca030848b897beff716d93aca60f06a" +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" -version = "1.4.2" +version = "1.5.1" [[deps.UUIDs]] deps = ["Random", "SHA"] @@ -2503,23 +2422,25 @@ git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" version = "0.4.1" -[[deps.UnicodePlots]] -deps = ["Contour", "Crayons", "Dates", "LinearAlgebra", "MarchingCubes", "NaNMath", "SparseArrays", "StaticArrays", "StatsBase", "Unitful"] -git-tree-sha1 = "1785494cb9484f9ab05bbc9d81a2d4de4341eb39" -uuid = "b8865327-cd53-5732-bb35-84acbb429228" -version = "2.9.0" - -[[deps.UnionArrays]] -deps = ["Adapt", "Setfield", "Transducers"] -git-tree-sha1 = "9986eabab3dcfd90cf3a041b7ec5a64fca4aa508" -uuid = "d6dd79e4-993b-11e9-1366-0de1c9fe1122" -version = "0.1.3" - [[deps.Unitful]] -deps = ["ConstructionBase", "Dates", "LinearAlgebra", "Random"] -git-tree-sha1 = "dba3eba51b9512695b59e0bd8263ac074c5ed2d9" +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "3c793be6df9dd77a0cf49d80984ef9ff996948fa" uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" -version = "1.13.1" +version = "1.19.0" + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" + + [deps.Unitful.weakdeps] + ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.UnitfulAtomic]] +deps = ["Unitful"] +git-tree-sha1 = "903be579194534af1c4b4778d1ace676ca042238" +uuid = "a7773ee8-282e-5fa2-be4e-bd808c38a91a" +version = "1.0.0" [[deps.UnsafeAtomics]] git-tree-sha1 = "6331ac3440856ea1988316b46045303bef658278" @@ -2528,21 +2449,15 @@ version = "0.2.1" [[deps.UnsafeAtomicsLLVM]] deps = ["LLVM", "UnsafeAtomics"] -git-tree-sha1 = "ead6292c02aab389cb29fe64cc9375765ab1e219" +git-tree-sha1 = "323e3d0acf5e78a56dfae7bd8928c989b4f3083e" uuid = "d80eeb9a-aca5-4d75-85e5-170c8b632249" -version = "0.1.1" +version = "0.1.3" [[deps.UnsafePointers]] git-tree-sha1 = "c81331b3b2e60a982be57c046ec91f599ede674a" uuid = "e17b2a0c-0bdf-430a-bd0c-3a23cae4ff39" version = "1.0.0" -[[deps.ValueHistories]] -deps = ["DataStructures", "RecipesBase"] -git-tree-sha1 = "9cc583107e0c09b8986ac10660653fa2e37c0f62" -uuid = "98cad3c8-aec3-5f06-8e41-884608649ab7" -version = "0.5.4" - [[deps.VectorizationBase]] deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"] git-tree-sha1 = "b182207d4af54ac64cbc71797765068fdeff475d" @@ -2555,16 +2470,16 @@ git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23" uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5" version = "1.4.2" +[[deps.WeightInitializers]] +deps = ["PartialFunctions", "Random", "SpecialFunctions", "Statistics"] +git-tree-sha1 = "214ad59a8ece2118a1e70a07a32cef784a5c0704" +uuid = "d49dbf32-c5c2-4618-8acc-27bb2598ef2d" +version = "0.1.1" + [[deps.WoodburyMatrices]] deps = ["LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "de67fa59e33ad156a590055375a30b23c40299d3" +git-tree-sha1 = "5f24e158cf4cee437052371455fe361f526da062" uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" -version = "0.5.5" - -[[deps.WordTokenizers]] -deps = ["DataDeps", "HTML_Entities", "StrTables", "Unicode"] -git-tree-sha1 = "01dd4068c638da2431269f49a5964bf42ff6c9d2" -uuid = "796a5d58-b03d-544a-977e-18100b691f6e" version = "0.5.6" [[deps.WorkerUtilities]] @@ -2573,10 +2488,10 @@ uuid = "76eceee3-57b5-4d4a-8e66-0e911cebbf60" version = "1.6.1" [[deps.XML2_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "93c41695bc1c08c46c5899f4fe06d6ead504bb73" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "da69178aacc095066bad1f69d2f59a60a1dd8ad1" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.10.3+0" +version = "2.12.0+0" [[deps.XSLT_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] @@ -2585,22 +2500,22 @@ uuid = "aed1982a-8fda-507f-9586-7b0439959a61" version = "1.1.34+0" [[deps.Xorg_libX11_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] -git-tree-sha1 = "5be649d550f3f4b95308bf0183b82e2582876527" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" -version = "1.6.9+4" +version = "1.8.6+0" [[deps.Xorg_libXau_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "4e490d5c960c314f33885790ed410ff3a94ce67e" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" -version = "1.0.9+4" +version = "1.0.11+0" [[deps.Xorg_libXdmcp_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "4fe47bd2247248125c428978740e18a681372dd4" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" -version = "1.1.3+4" +version = "1.1.4+0" [[deps.Xorg_libXext_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] @@ -2615,22 +2530,22 @@ uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" version = "0.9.10+4" [[deps.Xorg_libpthread_stubs_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "6783737e45d3c59a4a4c4091f5f88cdcf0908cbb" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" -version = "0.1.0+3" +version = "0.1.1+0" [[deps.Xorg_libxcb_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] -git-tree-sha1 = "daf17f441228e7a3833846cd048892861cff16d6" +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" -version = "1.13.0+3" +version = "1.15.0+0" [[deps.Xorg_xtrans_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "79c31e7844f6ecf779705fbc12146eb190b7d845" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" -version = "1.4.0+3" +version = "1.5.0+0" [[deps.ZipFile]] deps = ["Libdl", "Printf", "Zlib_jll"] @@ -2641,19 +2556,13 @@ version = "0.10.1" [[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" -version = "1.2.13+0" - -[[deps.Zstd_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" -uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" -version = "1.5.5+0" +version = "1.2.13+1" [[deps.Zygote]] -deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArrays", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "Random", "Requires", "SnoopPrecompile", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] -git-tree-sha1 = "987ae5554ca90e837594a0f30325eeb5e7303d1e" +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 = "5ded212acd815612df112bb895ef3910c5a03f57" uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" -version = "0.6.60" +version = "0.6.67" [deps.Zygote.extensions] ZygoteColorsExt = "Colors" @@ -2667,9 +2576,15 @@ version = "0.6.60" [[deps.ZygoteRules]] deps = ["ChainRulesCore", "MacroTools"] -git-tree-sha1 = "977aed5d006b840e2e40c0b48984f7463109046d" +git-tree-sha1 = "9d749cd449fb448aeca4feee9a2f4186dbb5d184" uuid = "700de1a5-db45-46bc-99cf-38207098b444" -version = "0.2.3" +version = "0.2.4" + +[[deps.cuDNN]] +deps = ["CEnum", "CUDA", "CUDA_Runtime_Discovery", "CUDNN_jll"] +git-tree-sha1 = "c092c26591a851083ed3358890d0d916c58dde62" +uuid = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" +version = "1.2.1" [[deps.isoband_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -2677,6 +2592,12 @@ git-tree-sha1 = "51b5eeb3f98367157a7a12a1fb0aa5328946c03c" uuid = "9a68df92-36a6-505f-a73e-abb412b6bfb4" version = "0.2.3+0" +[[deps.libaec_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "eddd19a8dea6b139ea97bdc8a0e2667d4b661720" +uuid = "477f73a3-ac25-53e9-8cc3-50b2fa2566f0" +version = "1.0.6+1" + [[deps.libaom_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" @@ -2692,7 +2613,13 @@ version = "0.15.1+0" [[deps.libblastrampoline_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" -version = "5.7.0+0" +version = "5.8.0+1" + +[[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"] @@ -2720,25 +2647,25 @@ version = "1.3.7+1" [[deps.micromamba_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] -git-tree-sha1 = "087555b0405ed6adf526cef22b6931606b5af8ac" +git-tree-sha1 = "66d07957bcf7e4930d933195aed484078dd8cbb5" uuid = "f8abcde7-e9b7-5caa-b8af-a437887ae8e4" -version = "1.4.1+0" +version = "1.4.9+0" [[deps.nghttp2_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" -version = "1.48.0+0" +version = "1.52.0+1" [[deps.p7zip_jll]] deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" -version = "17.4.0+0" +version = "17.4.0+2" -[[deps.protoc_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "e18ac87b6080d3fa40253cb898f4b8c075d866be" -uuid = "c7845625-083e-5bbe-8504-b32d602b7110" -version = "3.21.12+1" +[[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"] diff --git a/Project.toml b/Project.toml index 0c3c58d..64ced0d 100644 --- a/Project.toml +++ b/Project.toml @@ -1,32 +1,34 @@ name = "hd-loss" [deps] +BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" CSVFiles = "5d742f6a-9f54-50ce-8119-2520741973ca" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" -Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" +ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" DistanceTransforms = "71182807-4d06-4237-8dd0-bdafe4d097e2" DistanceTransformsPy = "d85f584c-7717-483c-8218-10621e78a8b8" DrWatson = "634d3b9d-ee7a-5ddf-bec9-22491ea816e1" -FastAI = "5d0beca9-ade8-49ae-ad0b-a3cf890e669f" -FastVision = "7bf02486-ff4c-4e73-b158-40c00866b54f" -Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" -GLM = "38e38edf-8417-5370-95a0-9cbb8c7f171a" +FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" Glob = "c27321d9-0574-5035-807b-f59d2c89b15c" -HypothesisTests = "09f84164-cd44-5f33-b23f-e6b0d136a0d5" ImageMorphology = "787d08f9-d448-5407-9aad-5290dd7ab264" -Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0" +ImageTransformations = "02fcd773-0e25-5acc-982a-7f6622650795" Losers = "1785af8d-d312-496e-9b53-daf6ddaba92c" -MLDataPattern = "9920b226-0b2a-5f5f-9153-9aa70a013f8b" -MLJBase = "a7f614a8-145f-11e9-1d2a-a57a1082229d" +Lux = "b2108857-7c20-44ae-9111-449ecde12c47" +LuxCUDA = "d0bbae9a-e099-4d5b-a835-1c6931763bda" +MLDatasets = "eb30cadb-4394-5ae3-aed4-317e484a6458" +MLUtils = "f1d291b0-491e-4a28-83b9-f70985020b54" NIfTI = "a3a9e032-41b5-5fc4-967a-a6b7a19844d3" +Optimisers = "3bd65402-5787-11e9-1adc-39752487f4e2" PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8" -StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" +Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" -StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [compat] -DrWatson = "2.12.1" -julia = "1.8.5" +julia = "1.9.4" + +[extras] +CUDA_Runtime_jll = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" diff --git a/notebooks/#3_benchmark_training_loops.jl b/_research/#3_benchmark_training_loops.jl similarity index 100% rename from notebooks/#3_benchmark_training_loops.jl rename to _research/#3_benchmark_training_loops.jl diff --git a/notebooks/#4_load_model_and_get_metrics_Task02_Heart.ipynb b/_research/#4_load_model_and_get_metrics_Task02_Heart.ipynb similarity index 100% rename from notebooks/#4_load_model_and_get_metrics_Task02_Heart.ipynb rename to _research/#4_load_model_and_get_metrics_Task02_Heart.ipynb diff --git a/notebooks/#5_load_model_and_get_metrics_RSNA.ipynb b/_research/#5_load_model_and_get_metrics_RSNA.ipynb similarity index 100% rename from notebooks/#5_load_model_and_get_metrics_RSNA.ipynb rename to _research/#5_load_model_and_get_metrics_RSNA.ipynb diff --git a/notebooks/_benchmark_training_loops.jl b/_research/_benchmark_training_loops.jl similarity index 100% rename from notebooks/_benchmark_training_loops.jl rename to _research/_benchmark_training_loops.jl diff --git a/notebooks/_benchmarks_dt_and_loss.jl b/_research/_benchmarks_dt_and_loss.jl similarity index 99% rename from notebooks/_benchmarks_dt_and_loss.jl rename to _research/_benchmarks_dt_and_loss.jl index a7c6f97..951ec4d 100644 --- a/notebooks/_benchmarks_dt_and_loss.jl +++ b/_research/_benchmarks_dt_and_loss.jl @@ -1,5 +1,5 @@ ### A Pluto.jl notebook ### -# v0.19.14 +# v0.19.32 using Markdown using InteractiveUtils diff --git a/notebooks/_metrics_rsna.jl b/_research/_metrics_rsna.jl similarity index 100% rename from notebooks/_metrics_rsna.jl rename to _research/_metrics_rsna.jl diff --git a/data/results/dts.csv b/data/results/dts.csv index 1e523e3..259a474 100644 --- a/data/results/dts.csv +++ b/data/results/dts.csv @@ -1,21 +1,21 @@ -sizes,dt_scipy,dt_scipy_std,dt_fenz,dt_fenz_std,dt_fenz_gpu,dt_fenz_gpu_std,sizes_3D,dt_scipy_3D,dt_scipy_std_3D,dt_fenz_3D,dt_fenz_std_3D,dt_fenz_gpu_3D,dt_fenz_gpu_std_3D -16,29527.25,14049.75366,14107.25,10091.7098,214849.9,934656.3468,64,33021.63,8768.076931,19599.69,8101.337178,276859.7,886219.8462 -47961,3.33E+06,1.59E+06,702468.2558,1.11E+06,605231.9,2.05E+06,4913,551421.0246,49441.08875,125711.79,1.88E+06,355535.7,977117.3104 -189225,1.54E+07,1.47E+06,2.68E+06,2.12E+06,1.42E+06,4.15E+06,29791,3.51E+06,291534.1776,473827.89,816687.3961,423176.9,1.37E+06 -422500,3.31E+07,975176.9058,5.41E+06,3.05E+06,2.61E+06,6.50E+06,85184,9.39E+06,426441.7377,1.53E+06,1.42E+06,585725.6,1.71E+06 -748225,5.96E+07,2.08E+06,1.02E+07,3.71E+06,3.48E+06,8.17E+06,185193,2.22E+07,1.34E+06,2.97E+06,2.00E+06,676867.2,1.95E+06 -1168561,9.83E+07,4.38E+06,1.66E+07,4.32E+06,9.31E+06,1.79E+08,343000,4.11E+07,1.53E+06,5.45E+06,3.25E+06,867794.3,2.98E+06 -1679616,1.43E+08,3.46E+06,2.55E+07,5.68E+06,1.06E+07,2.31E+08,592704,7.20E+07,2.39E+06,8.53E+06,3.64E+06,1.05E+06,3.01E+06 -2286144,1.99E+08,3.55E+06,3.10E+07,6.02E+06,1.36E+07,2.42E+08,912673,1.14E+08,2.94E+06,1.28E+07,4.01E+06,1.52E+06,3.63E+06 -2982529,2.68E+08,4.74E+06,3.87E+07,6.79E+06,1.22E+07,2.18E+08,1331000,1.67E+08,4.23E+06,2.44E+07,4.98E+06,2.79E+06,5.00E+07 -3771364,3.39E+08,5.44E+06,4.99E+07,6.94E+06,1.78E+07,2.48E+08,1860867,2.45E+08,1.20E+07,2.77E+07,5.58E+06,4.82E+06,1.02E+08 -4656964,4.32E+08,1.03E+07,6.10E+07,8.57E+06,1.93E+07,2.45E+08,2571353,3.55E+08,3.86E+07,3.34E+07,6.19E+06,7.73E+06,1.36E+08 -5631129,5.40E+08,1.43E+07,7.53E+07,9.39E+06,2.08E+07,2.45E+08,3375000,4.04E+08,8.99E+06,3.93E+07,6.61E+06,1.15E+07,1.77E+08 -6697744,6.30E+08,7.70E+06,9.20E+07,1.11E+07,2.15E+07,2.37E+08,4330747,5.29E+08,1.20E+07,4.92E+07,6.39E+06,1.62E+07,2.24E+08 -7862416,7.46E+08,9.81E+06,1.11E+08,1.29E+07,2.55E+07,2.52E+08,5451776,7.02E+08,3.32E+07,6.39E+07,6.86E+06,2.27E+07,2.67E+08 -9114361,8.76E+08,1.11E+07,1.52E+08,1.75E+07,2.92E+07,2.63E+08,6859000,8.50E+08,2.13E+07,7.82E+07,8.73E+06,3.23E+07,3.37E+08 -10465225,1.02E+09,1.63E+07,1.66E+08,2.02E+07,3.22E+07,2.69E+08,8365427,1.06E+09,1.07E+07,9.85E+07,8.57E+06,4.08E+07,3.84E+08 -11902500,1.16E+09,6.76E+06,1.74E+08,1.47E+07,3.33E+07,2.68E+08,10077696,1.32E+09,2.11E+07,1.20E+08,1.05E+07,5.17E+07,4.48E+08 -13432225,1.31E+09,1.60E+07,1.97E+08,1.71E+07,3.82E+07,2.81E+08,12008989,1.59E+09,3.33E+07,1.45E+08,1.33E+07,6.96E+07,5.44E+08 -15062161,1.49E+09,1.54E+07,2.28E+08,1.83E+07,4.10E+07,2.85E+08,14348907,1.99E+09,5.53E+07,1.77E+08,1.23E+07,8.57E+07,6.14E+08 -16777216,2.30E+09,1.45E+08,4.86E+08,2.08E+07,4.26E+07,2.83E+08,16777216,3.19E+09,4.67E+06,3.45E+08,3.56E+07,1.01E+08,6.70E+08 +"sizes","dt_scipy","dt_scipy_std","dt_maurer","dt_maurer_std","dt_fenz","dt_fenz_std","dt_proposed","dt_proposed_std","sizes_3D","dt_scipy_3D","dt_scipy_std_3D","dt_maurer_3D","dt_maurer_std_3D","dt_fenz_3D","dt_fenz_std_3D","dt_proposed_3D","dt_proposed_std_3D" +16.0,29624.0,6443.80801311901,471.6683673469388,611.4707741078719,32573.0,3.6190445817775317e6,38291.0,388553.0492084572,64.0,36861.0,8893.399857190863,3255.625,119895.06077840649,111777.0,2.338554483543656e7,51694.0,293390.81912511017 +47961.0,3.339432e6,251313.3866173913,1.289333e6,593995.3968175885,1.248658e6,1.388602963983478e6,40779.0,390539.79795538576,4913.0,562098.0,83167.37582953434,208587.0,814701.6108061984,691636.0,1.0437508203876746e8,53622.0,302563.70296429587 +189225.0,1.3749267e7,568336.1883303665,4.698438e6,831593.5156308173,4.151129e6,2.861939047256897e6,48722.0,547071.4029968395,29791.0,3.523531e6,185004.77556328004,1.128409e6,587401.6828427798,2.848652e6,8.850209506986743e7,54051.0,296616.62282641075 +422500.0,3.1080666e7,1.4424110850007872e6,9.820711e6,2.7974305043626133e7,9.050999e6,4.352045839259439e6,64105.0,9042.815714121076,85184.0,9.947161e6,283406.60395669163,3.206293e6,728329.7345999798,6.795623e6,1.3104725179919036e8,58251.0,363014.57056449447 +748225.0,5.6276779e7,1.5260465864932456e6,1.6628406e7,4.110427719329072e7,1.6436815e7,5.024866634494553e6,83322.0,8295.38317947454,185193.0,2.207057e7,853531.514958225,7.480871e6,1.2431257407261287e6,1.5215946e7,1.3449784267653123e8,71490.0,308670.87472519657 +1.168561e6,9.1839534e7,3.30209980025493e6,2.7408934e7,4.778249024090465e7,2.5752768e7,2.9522947497039802e7,134002.0,686988.4847193918,343000.0,4.1738112e7,1.1401656108759004e6,1.3690573e7,6.29956689317053e6,2.6003722e7,2.618275590616472e8,93268.0,372350.93186985486 +1.679616e6,1.29276323e8,4.954089702539523e6,3.7131756e7,3.319497773022691e7,3.7873479e7,3.2799960740643777e7,159914.0,418167.13131416263,592704.0,7.5794358e7,1.0023528934397685e6,2.3019286e7,3.304257976500277e7,4.3437493e7,2.9510864758894515e8,120371.0,339579.5924970532 +2.286144e6,1.84251806e8,2.6033186538203503e6,5.0488374e7,6.1402609221947566e7,5.014221e7,3.554175096407447e7,187711.0,438418.6657946492,912673.0,1.25908374e8,2.4765484040086875e6,3.8604038e7,4.7219843040736996e7,6.7510068e7,2.9728838257599175e8,155824.0,354724.52555175166 +2.982529e6,2.40707108e8,4.616028721983688e6,6.8457123e7,5.010845132942271e7,6.5511304e7,7.152109463165413e6,227871.0,432158.3850796123,1.331e6,1.83047452e8,4.247017379225881e6,5.4995238e7,3.146179901953406e7,9.5310055e7,5.568528045865078e8,205483.0,423087.45777043875 +3.771364e6,2.98271937e8,5.749926184707315e6,8.9328159e7,7.217917242687443e7,8.2340352e7,6.922367965501195e7,284316.0,366724.5612145741,1.860867e6,2.66971726e8,3.5503493556198888e6,7.8489782e7,7.064134711086649e7,1.30959375e8,5.157248410345477e8,273235.0,395290.33537282114 +4.656964e6,3.83433465e8,4.310249361586851e6,1.03985153e8,8.032756808246483e7,1.00664494e8,5.940428346330006e6,406110.0,449891.2878065234,2.571353e6,3.71475592e8,6.194822998868831e6,1.11236862e8,7.754963851168175e6,1.774621e8,1.7196035412419063e8,350541.0,442009.71506825846 +5.631129e6,4.67285338e8,9.895587268914416e6,1.28401096e8,9.856824970263857e7,1.19928645e8,5.073429376246149e7,458875.0,435472.609122377,3.375e6,4.69818367e8,4.891350921310195e6,1.42018097e8,3.2578536462969575e6,2.60208836e8,2.717507385459961e8,438736.0,439706.38113666215 +6.697744e6,5.33957706e8,1.0016937564303752e7,1.49797248e8,6.443601665826202e6,1.43847426e8,8.102908913549097e6,513136.0,396241.96317664685,4.330747e6,6.20902611e8,5.475278371663162e6,1.94701414e8,4.786464119045536e6,3.12673e8,1.662504091319589e8,691847.0,348047.7870148402 +7.862416e6,6.3546134e8,7.724888841548103e6,1.71408142e8,9.271006358222747e6,1.71610306e8,8.245127317925343e7,569850.0,481311.56713156245,5.451776e6,7.76338619e8,6.24912504644334e6,2.12705691e8,1.0429669948245057e8,1.05561877e9,6.046111322854139e8,735920.0,376729.4238248693 +9.114361e6,7.95299056e8,6.336177779834134e6,2.07672611e8,1.234052051426809e8,2.00447772e8,7.513628695558031e7,629712.0,367249.4602536164,6.859e6,9.77051522e8,6.473741998344587e6,2.94208574e8,7.132732181625392e6,6.09785889e8,1.240440570200239e9,898440.0,399742.7212153331 +1.0465225e7,9.51143208e8,1.6011588169750178e7,2.36840261e8,5.766308776039863e6,2.33419456e8,7.550246553150742e7,797178.0,328887.83791814145,8.365427e6,1.26699545e9,7.310068528695382e6,3.79712938e8,1.2192960984887338e8,7.37028123e8,3.427504627830568e8,1.130542e6,443355.1947779813 +1.19025e7,9.99288765e8,1.01214051202842e7,2.70796508e8,6.319660414715178e6,2.66146287e8,2.1617125640336197e7,868111.0,390195.55307813274,1.0077696e7,1.49001908e9,1.5209333248096928e6,4.12947953e8,1.207925617116068e8,1.14555892e9,2.021394225001665e8,1.440024e6,402409.6240211149 +1.3432225e7,1.147734914e9,1.132248428685684e6,3.08316987e8,9.361822112648174e7,2.84902866e8,1.3573132378840446e7,952244.0,334344.7737419989,1.2008989e7,1.783872001e9,3.0366043105457453e6,5.69498333e8,1.6507515049731353e7,2.141210298e9,7.359173866594789e8,1.636468e6,353106.5106807205 +1.5062161e7,1.303748389e9,3.2763854288866743e6,3.435833e8,1.1726722865297705e7,3.30448423e8,1.4412452489330105e7,1.022518e6,332061.68816737353,1.4348907e7,2.148525322e9,1.2547851192916878e8,7.27288768e8,1.3747053462581255e7,1.98429722e9,7.991492452714114e8,1.871828e6,404072.0850324415 +1.6777216e7,2.256321166e9,2.2242181773050804e7,7.48573977e8,1.4057092685499428e7,6.01454073e8,4.3556444846240975e7,1.107414e6,393158.4420991884,1.6777216e7,4.690076404e9,2.423397774696098e7,1.007634287e9,2.392454113931944e7,3.253201178e9,1.0221860357315874e9,2.08093e6,438687.8566163226 diff --git a/data/results/epochs.csv b/data/results/epochs.csv new file mode 100644 index 0000000..d9b4f25 --- /dev/null +++ b/data/results/epochs.csv @@ -0,0 +1,4 @@ +"batch_size","sizes","ep_dice","ep_dice_std","ep_scipy","ep_scipy_std","ep_maurer","ep_maurer_std","ep_fenz","ep_fenz_std","ep_proposed","ep_proposed_std" +4,262144.0,1.51727575e8,2.8052156167289495e7,1.412696587e9,1.0028217790732522e7,6.50291314e8,5.787219986244892e7,1.829124469e9,5.3474320972594875e8,1.58895311e8,3.28195318179778e7 +4,884736.0,4.62405349e8,2.7699799456963707e7,4.95947915e9,2.721086406173763e7,2.058625177e9,1.1757411179788628e8,1.0755597801e10,NaN,4.71224034e8,3.529901432216572e7 +4,2.097152e6,1.052736302e9,6.801991671355708e7,1.2514997499e10,NaN,8.112979688e9,NaN,1.1158039615e10,NaN,1.06703274e9,4.857393780874686e7 diff --git a/data/results/losses.csv b/data/results/losses.csv index 6ebe720..f0bf65c 100644 --- a/data/results/losses.csv +++ b/data/results/losses.csv @@ -1,21 +1,21 @@ -"sizes_hd","hd_scipy","hd_scipy_std","hd_fenz","hd_fenz_std","hd_fenz_gpu","hd_fenz_gpu_std","sizes_hd_3D","hd_scipy_3D","hd_scipy_std_3D","hd_fenz_3D","hd_fenz_std_3D","hd_fenz_gpu_3D","hd_fenz_gpu_std_3D" -16,46693.74,10538.877435768985,20656.68,8781.834628341849,1.0056919e6,328205.419641223,64,59939.06,12413.337077923123,41514.67,363743.6342493665,1.7014056e6,430712.5444709213 -47961,5.913043786982249e6,1.4076708012584122e6,1.0980903931095407e6,1.253280823147085e6,3.3883041e6,1.608896223281871e6,4913,1.0824699261190786e6,104589.85618757966,233060.41,1.967981046046783e6,2.0794972e6,952846.9996368296 -189225,2.5826090206185568e7,2.1017672532160045e6,4.329671478260869e6,2.475400612007191e6,8.1052411e6,3.4212098506118413e6,29791,6.767041192411924e6,525297.7594428187,1.0070523538961039e6,1.546618236614989e6,2.2724816e6,1.482536575366247e6 -422500,5.809405977011494e7,3.3089956954739396e6,8.320721333333333e6,3.6002241883187145e6,1.4665012e7,4.616540055058112e6,85184,1.8958102651515152e7,1.0173894084725033e6,2.793385762144054e6,1.9192655823114254e6,2.5218768e6,1.7425837382479906e6 -748225,1.0629777708333333e8,6.372487898646795e6,1.8039763898916967e7,4.878185946283523e6,1.80134713e7,4.1098306006808737e6,185193,4.1857889166666664e7,1.1632748382808988e6,7.720049535603715e6,3.4902885650931406e6,2.6749432e6,1.5987603115186503e6 -1168561,1.7117296333333334e8,7.125585722639098e6,2.4615276354679804e7,5.212040530342525e6,2.30786086e7,4.944416762863845e6,343000,8.168563870967741e7,4.0447561644213535e6,9.866847826086957e6,4.660264002533772e6,3.5562929e6,2.1033380380295278e6 -1679616,2.52374835e8,8.742123060114413e6,3.622603669064748e7,6.070013523862689e6,2.6736085e7,1.7250778844163246e6,592704,1.3752726216216215e8,4.599948278112082e6,1.6640718333333334e7,5.073429127675123e6,4.8211205e6,2.4203675209326963e6 -2286144,3.6378670714285713e8,2.1442995849585235e7,5.114834387755102e7,6.821533905261501e6,3.0870376e7,4.8683669061562065e6,912673,2.1626859166666666e8,9.513395695266236e6,2.520354623115578e7,6.088462739259134e6,6.8427653e6,3.835752010003784e6 -2982529,4.8284009090909094e8,8.748778518908173e6,6.877694109589042e7,8.066201961938944e6,3.43894769e7,2.191337487901446e6,1331000,3.1210231764705884e8,8.578431613808792e6,3.635277173913044e7,7.1209114771495275e6,1.01883092e7,4.817296594769383e6 -3771364,6.316134125e8,8.088840589255846e6,9.171866e7,9.986571283044713e6,3.93514208e7,1.999744643574959e6,1860867,4.3889845e8,6.534731211624685e6,4.463676814159292e7,7.347534455276544e6,1.46817614e7,5.586780531115477e6 -4656964,7.783684e8,1.0525992100193374e7,1.1749623488372093e8,1.173418564684855e7,4.35943076e7,2.128676309515645e6,2571353,6.199957222222222e8,1.1432165946658773e7,6.0830290361445785e7,7.198733997040721e6,2.09726139e7,5.912456832360817e6 -5631129,9.55155e8,1.6495887529441997e7,1.4140268055555555e8,9.830788660117602e6,4.82840734e7,2.0211446304135262e6,3375000,8.28987e8,3.975854507264235e7,8.465127666666667e7,1.0385335785687443e7,2.93273216e7,1.446461258072435e6 -6697744,1.1604948e9,2.4965276896021e7,1.7136913e8,1.2710450913273066e7,5.25839102e7,2.2303410546541973e6,4330747,1.07954562e9,3.6239246594224334e7,1.0449964166666667e8,9.565207955449421e6,4.09456906e7,1.5961062468967978e6 -7862416,1.36744095e9,1.9173559401164927e7,2.03844156e8,1.4238371394845923e7,5.76014347e7,2.3157093538389653e6,5451776,1.377062e9,1.185927961977455e7,1.357037216216216e8,1.0723837721199935e7,5.14270707e7,1.61386627994424e6 -9114361,1.617378425e9,3.3648533966120526e7,2.3954005e8,1.532746222621189e7,6.41332023e7,2.4080547453746116e6,6859000,1.7024212333333333e9,2.054541663348138e7,1.6749704666666666e8,1.191965660485851e7,7.02814798e7,1.859463883894342e6 -10465225,1.8302538e9,1.2120704598330908e7,2.7073892105263156e8,1.5871597243209118e7,6.98544906e7,2.4165599812075985e6,8365427,2.1538197e9,2.683637442334564e7,2.1184520416666666e8,1.4053044341830712e7,8.71701011e7,1.997275812655939e6 -11902500,2.67626525e9,1.6323913597082043e7,3.26103525e8,1.6343776724184653e7,7.56025366e7,2.3778441902475245e6,10077696,2.6410692e9,2.4895815552015966e6,2.5872202e8,1.3700473209407192e7,1.122386297e8,2.0928993340412367e6 -13432225,2.3850825333333335e9,1.8948656048473023e7,3.551749466666667e8,1.7041197624658506e7,8.26132646e7,2.313429785781369e6,12008989,3.25905415e9,4.882862237873397e7,3.0682659411764705e8,1.3169317459319532e7,1.447650408e8,2.3704877773779267e6 -15062161,2.67390355e9,1.0567074448729886e7,4.062349923076923e8,9.24718056386752e6,8.94232768e7,2.483638812071989e6,14348907,4.035085e9,3.757381587462205e7,3.9603088461538464e8,1.5291093334947536e7,1.774383175e8,2.266258601654515e6 -16777216,3.63257315e9,1.690798379834213e7,8.210350285714285e8,2.0404270754976295e7,9.37598674e7,2.3123119027053555e6,16777216,6.6488088e9,NaN,6.90831425e8,3.396682850381909e7,2.124742924e8,2.610862373840797e6 +"sizes_hd","dice","dice_std","hd_scipy","hd_scipy_std","hd_maurer","hd_maurer_std","hd_fenz","hd_fenz_std","hd_proposed","hd_proposed_std","sizes_hd_3D","dice_3D","dice_std_3D","hd_scipy_3D","hd_scipy_std_3D","hd_maurer_3D","hd_maurer_std_3D","hd_fenz_3D","hd_fenz_std_3D","hd_proposed_3D","hd_proposed_std_3D" +16.0,183.52554744525548,186.36316766162622,59200.0,8127.006803288309,1188.4,4044.372868750349,76333.0,4.444743345818792e6,116256.0,787901.1481237711,16.0,599.1787709497206,3005.7668993030516,75250.0,32273.322993760583,6890.0,48294.15872428214,224964.0,5.532357516938924e7,148726.0,804568.222624196 +47961.0,58297.0,79325.95242874179,6.859696e6,414675.05773290916,2.819735e6,903995.6376683787,2.69824e6,6.004904935394408e6,132015.0,958626.0259073047,289.0,12299.0,51197.061727702116,1.181967e6,325042.46330491215,505852.0,1.2115692858912663e6,1.857882e6,8.482228888439277e7,167717.0,1.0580974538787748e6 +189225.0,346475.0,147534.1956279117,2.759301e7,966746.7052492046,1.0617521e7,1.5840814320573478e6,1.1461842e7,4.198374568457611e6,148642.0,1.0795720072025838e6,961.0,60924.0,87688.42111395836,7.101199e6,482771.6394298074,3.5039e6,1.2575077385056745e6,5.286341e6,4.197594424241135e8,174299.0,1.0876814775607728e6 +422500.0,986898.0,246907.2464179739,6.3625331e7,1.8861636362805676e6,2.1817133e7,3.871494729977953e7,1.96685e7,6.33741918488623e6,180437.0,1.1775127037030046e6,1936.0,145974.0,137049.12021257466,2.0154305e7,915238.208761736,7.582357e6,1.2922505175113059e6,1.5663038e7,1.5544445600918275e8,179091.0,1.2589686152513386e6 +748225.0,1.727818e6,302026.3343544147,1.17975475e8,3.0192817603083416e6,3.8856712e7,5.81456837423729e7,3.5780546e7,4.02483927293779e7,225297.0,1.407808805376616e6,3249.0,394019.0,257410.27283467833,4.4578026e7,1.3439810549075291e6,1.674102e7,1.7009172223230337e6,3.2087909e7,3.978306537617919e8,199291.0,1.0667489132316152e6 +1.168561e6,2.673573e6,303573.1037095024,1.86582749e8,2.419166287686291e6,5.9953841e7,5.557263317018373e7,5.3918737e7,1.3027252421358222e7,331514.0,1.2166250853305326e6,4900.0,726635.0,285520.3304082867,8.4300522e7,1.1007731072091926e6,3.0144673e7,1.6354976123063266e6,5.4403489e7,4.016018515211672e8,241301.0,1.0818218669598254e6 +1.679616e6,3.846425e6,468987.1461368332,2.62509667e8,1.1303478013307668e7,8.0966448e7,7.084938030371636e7,8.1090017e7,6.746925975498667e7,396482.0,1.1126778486369755e6,7056.0,1.297962e6,363371.9874529666,1.5714395e8,2.745311762166169e6,5.0279705e7,2.1061469853789774e6,9.4716058e7,3.495155296201918e8,301904.0,931690.7762220061 +2.286144e6,5.568367e6,715290.4425944776,3.57740969e8,1.5825530793744877e7,1.14130308e8,7.960967147572978e7,1.11053785e8,6.106931029188933e7,468115.0,1.0017791221642854e6,9409.0,2.04879e6,495645.23120009655,2.53751266e8,3.6006910569488565e6,8.3140068e7,5.056931113213369e6,1.41048464e8,7.952263236671793e8,380175.0,714982.2805518802 +2.982529e6,7.393248e6,587854.2862551636,4.99715993e8,1.9832572925244503e7,1.52430893e8,8.786996681423108e7,1.53766826e8,7.593371144138119e7,556151.0,1.0087711512398935e6,12100.0,2.984956e6,580628.5868309535,3.75514071e8,3.9546277523883283e6,1.14105947e8,2.879986229839339e6,1.92099637e8,6.92154003348148e8,492286.0,1.4312259524168354e6 +3.771364e6,1.0166185e7,829837.8184564846,6.09086832e8,1.4297267660233561e7,1.89462631e8,8.76538393167087e7,1.83085769e8,8.357161791171335e6,782851.0,792505.199133678,15129.0,4.521666e6,613324.9651390278,5.32591358e8,9.176527438404081e6,1.71114471e8,4.477224472968248e6,2.91341539e8,7.308593714171886e8,737856.0,966862.7481576101 +4.656964e6,1.1622781e7,1.9872059752586598e6,7.59266658e8,1.0751973381986842e7,2.28769032e8,1.0381626618620913e8,2.27474735e8,1.1801457544643736e8,1.136582e6,725061.2019657578,18769.0,6.878517e6,1.047247187225185e6,7.3056532e8,9.521956228142561e6,2.33354823e8,5.8869819925753735e6,3.77079351e8,3.228956939961652e8,827950.0,893630.3091395932 +5.631129e6,1.4339798e7,1.2613305392020156e6,9.38966109e8,1.563722592581999e7,2.85187672e8,1.0654154217564644e7,2.61177739e8,1.6447673157725785e7,1.177399e6,803829.6235099393,22500.0,9.078167e6,931603.035919399,9.51555469e8,1.1947436571109949e7,3.02418239e8,7.930868734268153e6,1.7979606e9,9.057684645251263e8,1.027613e6,947200.983756755 +6.697744e6,1.8656271e7,1.4649770688179047e6,1.116765044e9,1.8768044026801426e7,3.36032363e8,1.320834441026933e8,3.20269319e8,1.4257048959588552e7,1.214342e6,1.3227872992672608e6,26569.0,1.0960119e7,822515.0529826279,1.317630118e9,1.9059902058651112e7,4.248044e8,4.931044592055415e7,6.46832477e8,5.882584366724645e8,1.371582e6,846864.499240574 +7.862416e6,2.0205682e7,3.491044039272143e6,1.318083136e9,1.074593488059987e7,3.94037119e8,1.1869664079792602e8,3.55862895e8,9.687945313271911e7,1.348962e6,796541.3895264391,30976.0,1.4201874e7,1.2337436430504497e6,1.580769797e9,2.7036331429372184e7,4.76294947e8,3.4077909944886314e6,9.92081404e8,5.486868692561466e8,1.680578e6,839690.2154025375 +9.114361e6,2.329797e7,1.780937138913111e6,1.528267484e9,1.824500927090879e7,4.73019127e8,7.6742177734647365e6,4.34062008e8,1.1093335278455073e7,1.50844e6,699026.922433331,36100.0,2.2467944e7,1.5816843679752657e6,2.094540435e9,8.48111007178732e6,6.47345388e8,2.1592733803565476e7,1.260462313e9,5.0903574805952305e8,2.129473e6,721604.1189988522 +1.0465225e7,2.7812367e7,2.641578459807701e6,1.83578062e9,7.83654357352298e6,5.20978925e8,6.92337964256473e6,4.98706438e8,1.7152918631871242e7,1.86868e6,643932.8824758776,41209.0,2.2610861e7,3.8494924136575195e6,2.501198194e9,1.058869777409857e7,8.09773723e8,1.4368045707042377e7,2.969358811e9,9.393329871415414e7,2.653614e6,762838.9170630686 +1.19025e7,3.4009545e7,2.719938496971341e6,2.036038874e9,9.179782435041549e6,6.03299289e8,5.596599777420567e6,5.5564164e8,2.083856824635162e7,2.041877e6,675916.9509054383,46656.0,2.7448799e7,5.344367099330201e6,3.022192785e9,1.3510929684436966e6,8.89627053e8,1.135047741459382e7,2.527859759e9,5.888842068538233e8,3.040972e6,623993.5898803531 +1.3432225e7,4.1757945e7,2.900478935783559e6,2.350373164e9,1.4865443011478411e7,6.94663285e8,3.028292418670954e7,6.31767916e8,1.3548783540634236e8,2.216091e6,576566.2317882711,52441.0,3.506497e7,4.978542433633814e6,3.663394882e9,3.504801631008808e6,1.248090269e9,2.7847779451125007e7,3.596691551e9,2.998983635033967e8,3.742375e6,605030.3433823921 +1.5062161e7,4.1787044e7,4.730586934125844e6,2.646880671e9,8.939820219787002e6,7.84883762e8,2.966136816291335e7,7.19698448e8,1.4064979225027148e7,2.409547e6,560135.8282737653,59049.0,4.2023287e7,3.3706050222012787e6,4.388848799e9,2.287478274901845e7,1.561590481e9,7.869627939053551e6,4.584534107e9,4.7328408014759237e8,4.132768e6,664187.2330032378 +1.6777216e7,5.0353568e7,4.019774577347384e6,4.693929527e9,4.332086654380225e7,1.632698775e9,2.275999555465468e7,1.414358977e9,2.366244867709565e7,2.717061e6,653870.0802724593,65536.0,4.772304e7,5.9078231683098115e6,9.957476138e9,NaN,2.180775269e9,2.21256469047286e7,5.738245465e9,NaN,4.682541e6,645072.8749020185 diff --git a/notebooks/Manifest.toml b/notebooks/Manifest.toml deleted file mode 100644 index 9766ac4..0000000 --- a/notebooks/Manifest.toml +++ /dev/null @@ -1,2526 +0,0 @@ -# This file is machine-generated - editing it directly is not advised - -julia_version = "1.8.4" -manifest_format = "2.0" -project_hash = "259f8e1461574b87cc26af6313035cd4b4430351" - -[[deps.AbstractFFTs]] -deps = ["ChainRulesCore", "LinearAlgebra"] -git-tree-sha1 = "16b6dbc4cf7caee4e1e75c49485ec67b667098a0" -uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" -version = "1.3.1" - -[[deps.AbstractPlutoDingetjes]] -deps = ["Pkg"] -git-tree-sha1 = "8eaf9f1b4921132a4cff3f36a1d9ba923b14a481" -uuid = "6e696c72-6542-2067-7265-42206c756150" -version = "1.1.4" - -[[deps.AbstractTrees]] -git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c" -uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" -version = "0.4.4" - -[[deps.Accessors]] -deps = ["Compat", "CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "MacroTools", "Requires", "StaticArrays", "Test"] -git-tree-sha1 = "beabc31fa319f9de4d16372bff31b4801e43d32c" -uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" -version = "0.1.28" - -[[deps.Adapt]] -deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "cc37d689f599e8df4f464b2fa3870ff7db7492ef" -uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.6.1" - -[[deps.Animations]] -deps = ["Colors"] -git-tree-sha1 = "e81c509d2c8e49592413bfb0bb3b08150056c79d" -uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340" -version = "0.4.1" - -[[deps.ArgCheck]] -git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" -uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" -version = "2.3.0" - -[[deps.ArgTools]] -uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" -version = "1.1.1" - -[[deps.ArnoldiMethod]] -deps = ["LinearAlgebra", "Random", "StaticArrays"] -git-tree-sha1 = "62e51b39331de8911e4a7ff6f5aaf38a5f4cc0ae" -uuid = "ec485272-7323-5ecc-a04f-4719b315124d" -version = "0.2.0" - -[[deps.ArrayInterface]] -deps = ["Adapt", "LinearAlgebra", "Requires", "SnoopPrecompile", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "38911c7737e123b28182d89027f4216cfc8a9da7" -uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.4.3" - -[[deps.ArrayInterfaceCore]] -deps = ["LinearAlgebra", "SnoopPrecompile", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "e5f08b5689b1aad068e01751889f2f615c7db36d" -uuid = "30b0a656-2188-435a-8636-2ec0e6a096e2" -version = "0.1.29" - -[[deps.ArrayLayouts]] -deps = ["FillArrays", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "53167edb91608f7dbceaa86d6db5b606b2f051a7" -uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.0.0" - -[[deps.Artifacts]] -uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" - -[[deps.Automa]] -deps = ["Printf", "ScanByte", "TranscodingStreams"] -git-tree-sha1 = "d50976f217489ce799e366d9561d56a98a30d7fe" -uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" -version = "0.8.2" - -[[deps.AxisAlgorithms]] -deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] -git-tree-sha1 = "66771c8d21c8ff5e3a93379480a2307ac36863f7" -uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" -version = "1.0.1" - -[[deps.AxisArrays]] -deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"] -git-tree-sha1 = "1dd4d9f5beebac0c03446918741b1a03dc5e5788" -uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" -version = "0.4.6" - -[[deps.BFloat16s]] -deps = ["LinearAlgebra", "Printf", "Random", "Test"] -git-tree-sha1 = "a598ecb0d717092b5539dbbe890c98bac842b072" -uuid = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" -version = "0.2.0" - -[[deps.BSON]] -git-tree-sha1 = "2208958832d6e1b59e49f53697483a84ca8d664e" -uuid = "fbb218c0-5317-5bc6-957e-2ee96dd4b1f0" -version = "0.3.7" - -[[deps.BangBang]] -deps = ["Compat", "ConstructionBase", "Future", "InitialValues", "LinearAlgebra", "Requires", "Setfield", "Tables", "ZygoteRules"] -git-tree-sha1 = "7fe6d92c4f281cf4ca6f2fba0ce7b299742da7ca" -uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" -version = "0.3.37" - -[[deps.Base64]] -uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" - -[[deps.Baselet]] -git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e" -uuid = "9718e550-a3fa-408a-8086-8db961cd8217" -version = "0.1.1" - -[[deps.BenchmarkTools]] -deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] -git-tree-sha1 = "d9a9701b899b30332bbcb3e1679c41cce81fb0e8" -uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" -version = "1.3.2" - -[[deps.BitFlags]] -git-tree-sha1 = "43b1a4a8f797c1cddadf60499a8a077d4af2cd2d" -uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" -version = "0.1.7" - -[[deps.BitTwiddlingConvenienceFunctions]] -deps = ["Static"] -git-tree-sha1 = "0c5f81f47bbbcf4aea7b2959135713459170798b" -uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" -version = "0.1.5" - -[[deps.BufferedStreams]] -git-tree-sha1 = "bb065b14d7f941b8617bc323063dbe79f55d16ea" -uuid = "e1450e63-4bb3-523b-b2a4-4ffa8c0fd77d" -version = "1.1.0" - -[[deps.Bzip2_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" -uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" -version = "1.0.8+0" - -[[deps.CEnum]] -git-tree-sha1 = "eb4cb44a499229b3b8426dcfb5dd85333951ff90" -uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" -version = "0.4.2" - -[[deps.CPUSummary]] -deps = ["CpuId", "IfElse", "Static"] -git-tree-sha1 = "2c144ddb46b552f72d7eafe7cc2f50746e41ea21" -uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.2.2" - -[[deps.CRC32c]] -uuid = "8bf52ea8-c179-5cab-976a-9e18b702a9bc" - -[[deps.CSV]] -deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "SentinelArrays", "SnoopPrecompile", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] -git-tree-sha1 = "c700cce799b51c9045473de751e9319bdd1c6e94" -uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" -version = "0.10.9" - -[[deps.CSVFiles]] -deps = ["CodecZlib", "DataValues", "FileIO", "HTTP", "IterableTables", "IteratorInterfaceExtensions", "TableShowUtils", "TableTraits", "TableTraitsUtils", "TextParse"] -git-tree-sha1 = "2057fc0f258c2d67b31601d1a03319482a6f8b4c" -uuid = "5d742f6a-9f54-50ce-8119-2520741973ca" -version = "1.0.2" - -[[deps.CUDA]] -deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CompilerSupportLibraries_jll", "ExprTools", "GPUArrays", "GPUCompiler", "LLVM", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "SpecialFunctions", "TimerOutputs"] -git-tree-sha1 = "6717cb9a3425ebb7b31ca4f832823615d175f64a" -uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "3.13.1" - -[[deps.Cairo]] -deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] -git-tree-sha1 = "d0b3f8b4ad16cb0a2988c6788646a5e6a17b6b1b" -uuid = "159f3aea-2a34-519c-b102-8c37f9878175" -version = "1.0.5" - -[[deps.CairoMakie]] -deps = ["Base64", "Cairo", "Colors", "FFTW", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "SHA", "SnoopPrecompile"] -git-tree-sha1 = "5e2c8d04a4b98f73da6d314f673c8b7e7db2d76d" -uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" -version = "0.9.4" - -[[deps.Cairo_jll]] -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"] -git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" -uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" -version = "1.16.1+1" - -[[deps.Calculus]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" -uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" -version = "0.5.1" - -[[deps.CatIndices]] -deps = ["CustomUnitRanges", "OffsetArrays"] -git-tree-sha1 = "a0f80a09780eed9b1d106a1bf62041c2efc995bc" -uuid = "aafaddc9-749c-510e-ac4f-586e18779b91" -version = "0.2.2" - -[[deps.ChainRules]] -deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "Statistics", "StructArrays"] -git-tree-sha1 = "7d20c2fb8ab838e41069398685e7b6b5f89ed85b" -uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.48.0" - -[[deps.ChainRulesCore]] -deps = ["Compat", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "c6d890a52d2c4d55d326439580c3b8d0875a77d9" -uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.15.7" - -[[deps.ChangesOfVariables]] -deps = ["ChainRulesCore", "LinearAlgebra", "Test"] -git-tree-sha1 = "485193efd2176b88e6622a39a246f8c5b600e74e" -uuid = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" -version = "0.1.6" - -[[deps.Chemfiles]] -deps = ["Chemfiles_jll", "DocStringExtensions"] -git-tree-sha1 = "9126d0271c337ca5ed02ba92f2dec087c4260d4a" -uuid = "46823bd8-5fb3-5f92-9aa0-96921f3dd015" -version = "0.10.31" - -[[deps.Chemfiles_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "d4e54b053fc584e7a0f37e9d3a5c4500927b343a" -uuid = "78a364fa-1a3c-552a-b4bb-8fa0f9c1fcca" -version = "0.10.3+0" - -[[deps.CloseOpenIntervals]] -deps = ["Static", "StaticArrayInterface"] -git-tree-sha1 = "70232f82ffaab9dc52585e0dd043b5e0c6b714f1" -uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" -version = "0.1.12" - -[[deps.Clustering]] -deps = ["Distances", "LinearAlgebra", "NearestNeighbors", "Printf", "Random", "SparseArrays", "Statistics", "StatsBase"] -git-tree-sha1 = "7ebbd653f74504447f1c33b91cd706a69a1b189f" -uuid = "aaaa29a8-35af-508c-8bc3-b662a17a0fe5" -version = "0.14.4" - -[[deps.CodeTracking]] -deps = ["InteractiveUtils", "UUIDs"] -git-tree-sha1 = "d730914ef30a06732bdd9f763f6cc32e92ffbff1" -uuid = "da1fd8a2-8d9e-5ec2-8556-3022fb5608a2" -version = "1.3.1" - -[[deps.CodecZlib]] -deps = ["TranscodingStreams", "Zlib_jll"] -git-tree-sha1 = "9c209fb7536406834aa938fb149964b985de6c83" -uuid = "944b1d66-785c-5afd-91f1-9de20f533193" -version = "0.7.1" - -[[deps.ColorBlendModes]] -deps = ["ColorTypes", "FixedPointNumbers"] -git-tree-sha1 = "9ec825436862d5ab02ad8f2cde72f2d860151fa6" -uuid = "60508b50-96e1-4007-9d6c-f475c410f16b" -version = "0.2.4" - -[[deps.ColorBrewer]] -deps = ["Colors", "JSON", "Test"] -git-tree-sha1 = "61c5334f33d91e570e1d0c3eb5465835242582c4" -uuid = "a2cac450-b92f-5266-8821-25eda20663c8" -version = "0.4.0" - -[[deps.ColorSchemes]] -deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Random", "SnoopPrecompile"] -git-tree-sha1 = "aa3edc8f8dea6cbfa176ee12f7c2fc82f0608ed3" -uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" -version = "3.20.0" - -[[deps.ColorTypes]] -deps = ["FixedPointNumbers", "Random"] -git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" -uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" -version = "0.11.4" - -[[deps.ColorVectorSpace]] -deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "TensorCore"] -git-tree-sha1 = "600cc5508d66b78aae350f7accdb58763ac18589" -uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" -version = "0.9.10" - -[[deps.Colors]] -deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] -git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" -uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" -version = "0.12.10" - -[[deps.CommonSubexpressions]] -deps = ["MacroTools", "Test"] -git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" -uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" -version = "0.3.0" - -[[deps.Compat]] -deps = ["Dates", "LinearAlgebra", "UUIDs"] -git-tree-sha1 = "7a60c856b9fa189eb34f5f8a6f6b5529b7942957" -uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.6.1" - -[[deps.CompilerSupportLibraries_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.0.1+0" - -[[deps.CompositionsBase]] -git-tree-sha1 = "455419f7e328a1a2493cabc6428d79e951349769" -uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" -version = "0.1.1" - -[[deps.ComputationalResources]] -git-tree-sha1 = "52cb3ec90e8a8bea0e62e275ba577ad0f74821f7" -uuid = "ed09eef8-17a6-5b46-8889-db040fac31e3" -version = "0.3.2" - -[[deps.ComputerVisionMetrics]] -deps = ["ImageMorphology", "InteractiveUtils", "Markdown", "Pkg", "PlutoTest", "PlutoUI", "StatsBase"] -git-tree-sha1 = "4482eab7c49bdf9415a861171b180a1019c445c9" -repo-rev = "master" -repo-url = "https://github.com/Dale-Black/ComputerVisionMetrics.jl" -uuid = "56beca70-ca20-45da-83c4-a042539b6c19" -version = "0.1.0" - -[[deps.CondaPkg]] -deps = ["JSON3", "Markdown", "MicroMamba", "Pidfile", "Pkg", "TOML"] -git-tree-sha1 = "741146cf2ced5859faae76a84b541aa9af1a78bb" -uuid = "992eb4ea-22a4-4c89-a5bb-47a3300528ab" -version = "0.2.18" - -[[deps.ConstructionBase]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "89a9db8d28102b094992472d333674bd1a83ce2a" -uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.1" - -[[deps.ContextVariablesX]] -deps = ["Compat", "Logging", "UUIDs"] -git-tree-sha1 = "25cc3803f1030ab855e383129dcd3dc294e322cc" -uuid = "6add18c4-b38d-439d-96f6-d6bc489c04c5" -version = "0.1.3" - -[[deps.Contour]] -deps = ["StaticArrays"] -git-tree-sha1 = "9f02045d934dc030edad45944ea80dbd1f0ebea7" -uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" -version = "0.5.7" - -[[deps.CoordinateTransformations]] -deps = ["LinearAlgebra", "StaticArrays"] -git-tree-sha1 = "681ea870b918e7cff7111da58791d7f718067a19" -uuid = "150eb455-5306-5404-9cee-2592286d6298" -version = "0.6.2" - -[[deps.CpuId]] -deps = ["Markdown"] -git-tree-sha1 = "fcbb72b032692610bfbdb15018ac16a36cf2e406" -uuid = "adafc99b-e345-5852-983c-f28acb93d879" -version = "0.3.1" - -[[deps.Crayons]] -git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" -uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" -version = "4.1.1" - -[[deps.CustomUnitRanges]] -git-tree-sha1 = "1a3f97f907e6dd8983b744d2642651bb162a3f7a" -uuid = "dc8bdbbb-1ca9-579f-8c36-e416f6a65cce" -version = "1.0.2" - -[[deps.DataAPI]] -git-tree-sha1 = "e8119c1a33d267e16108be441a287a6981ba1630" -uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" -version = "1.14.0" - -[[deps.DataAugmentation]] -deps = ["ColorBlendModes", "CoordinateTransformations", "Distributions", "ImageCore", "ImageDraw", "ImageTransformations", "IndirectArrays", "Interpolations", "LinearAlgebra", "MosaicViews", "OffsetArrays", "Parameters", "Random", "Rotations", "Setfield", "StaticArrays", "Statistics", "Test"] -git-tree-sha1 = "9073179282095c1ce9590e19525ad864a7b83211" -uuid = "88a5189c-e7ff-4f85-ac6b-e6158070f02e" -version = "0.2.11" - -[[deps.DataDeps]] -deps = ["HTTP", "Libdl", "Reexport", "SHA", "p7zip_jll"] -git-tree-sha1 = "bc0a264d3e7b3eeb0b6fc9f6481f970697f29805" -uuid = "124859b0-ceae-595e-8997-d05f6a7a8dfe" -version = "0.7.10" - -[[deps.DataFrames]] -deps = ["Compat", "DataAPI", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SnoopPrecompile", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] -git-tree-sha1 = "aa51303df86f8626a962fccb878430cdb0a97eee" -uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" -version = "1.5.0" - -[[deps.DataStructures]] -deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "d1fff3a548102f48987a52a2e0d114fa97d730f0" -uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.13" - -[[deps.DataValueInterfaces]] -git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" -uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" -version = "1.0.0" - -[[deps.DataValues]] -deps = ["DataValueInterfaces", "Dates"] -git-tree-sha1 = "d88a19299eba280a6d062e135a43f00323ae70bf" -uuid = "e7dc6d0d-1eca-5fa6-8ad6-5aecde8b7ea5" -version = "0.4.13" - -[[deps.Dates]] -deps = ["Printf"] -uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" - -[[deps.DeepDiffs]] -git-tree-sha1 = "9824894295b62a6a4ab6adf1c7bf337b3a9ca34c" -uuid = "ab62b9b5-e342-54a8-a765-a90f495de1a6" -version = "1.2.0" - -[[deps.DefineSingletons]] -git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c" -uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" -version = "0.1.2" - -[[deps.DelimitedFiles]] -deps = ["Mmap"] -uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" - -[[deps.DensityInterface]] -deps = ["InverseFunctions", "Test"] -git-tree-sha1 = "80c3e8639e3353e5d2912fb3a1916b8455e2494b" -uuid = "b429d917-457f-4dbc-8f4c-0cc954292b1d" -version = "0.4.0" - -[[deps.DiffResults]] -deps = ["StaticArraysCore"] -git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" -uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" -version = "1.1.0" - -[[deps.DiffRules]] -deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] -git-tree-sha1 = "a4ad7ef19d2cdc2eff57abbbe68032b1cd0bd8f8" -uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" -version = "1.13.0" - -[[deps.DistanceTransforms]] -deps = ["CUDA", "FLoops", "FoldsCUDA", "FoldsThreads", "ImageMorphology", "InteractiveUtils", "LoopVectorization", "Markdown", "Pkg", "PlutoUI", "Revise", "Test", "TestSetExtensions"] -git-tree-sha1 = "0e84e9cef4987b62d30be7bfa17974679a6bea8a" -repo-rev = "master" -repo-url = "https://github.com/Dale-Black/DistanceTransforms.jl" -uuid = "71182807-4d06-4237-8dd0-bdafe4d097e2" -version = "0.2.2" - -[[deps.DistanceTransformsPy]] -deps = ["CondaPkg", "ImageMorphology", "InteractiveUtils", "Markdown", "Pkg", "PythonCall"] -git-tree-sha1 = "c335e30ba2c6cb6ac58be2dfb17577e01de37f7c" -repo-rev = "main" -repo-url = "https://github.com/Dale-Black/DistanceTransformsPy.jl" -uuid = "d85f584c-7717-483c-8218-10621e78a8b8" -version = "0.1.0" - -[[deps.Distances]] -deps = ["LinearAlgebra", "SparseArrays", "Statistics", "StatsAPI"] -git-tree-sha1 = "49eba9ad9f7ead780bfb7ee319f962c811c6d3b2" -uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" -version = "0.10.8" - -[[deps.Distributed]] -deps = ["Random", "Serialization", "Sockets"] -uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" - -[[deps.Distributions]] -deps = ["ChainRulesCore", "DensityInterface", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SparseArrays", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "Test"] -git-tree-sha1 = "13027f188d26206b9e7b863036f87d2f2e7d013a" -uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.87" - -[[deps.DocStringExtensions]] -deps = ["LibGit2"] -git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" -uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" -version = "0.9.3" - -[[deps.DoubleFloats]] -deps = ["GenericLinearAlgebra", "LinearAlgebra", "Polynomials", "Printf", "Quadmath", "Random", "Requires", "SpecialFunctions"] -git-tree-sha1 = "ff64f5601c231a7bc730e1e4eba2c39035d6cc60" -uuid = "497a8b3b-efae-58df-a0af-a86822472b78" -version = "1.2.4" - -[[deps.Downloads]] -deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] -uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" -version = "1.6.0" - -[[deps.DrWatson]] -deps = ["Dates", "FileIO", "JLD2", "LibGit2", "MacroTools", "Pkg", "Random", "Requires", "Scratch", "UnPack"] -git-tree-sha1 = "856bd680393b74b05517f8b7b9283fe8c8fd3284" -uuid = "634d3b9d-ee7a-5ddf-bec9-22491ea816e1" -version = "2.12.4" - -[[deps.DualNumbers]] -deps = ["Calculus", "NaNMath", "SpecialFunctions"] -git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" -uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" -version = "0.6.8" - -[[deps.EarCut_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "e3290f2d49e661fbd94046d7e3726ffcb2d41053" -uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" -version = "2.2.4+0" - -[[deps.EarlyStopping]] -deps = ["Dates", "Statistics"] -git-tree-sha1 = "98fdf08b707aaf69f524a6cd0a67858cefe0cfb6" -uuid = "792122b4-ca99-40de-a6bc-6742525f08b6" -version = "0.3.0" - -[[deps.Expat_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "bad72f730e9e91c08d9427d5e8db95478a3c323d" -uuid = "2e619515-83b5-522b-bb60-26c02a35a201" -version = "2.4.8+0" - -[[deps.ExprTools]] -git-tree-sha1 = "c1d06d129da9f55715c6c212866f5b1bddc5fa00" -uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" -version = "0.1.9" - -[[deps.Extents]] -git-tree-sha1 = "5e1e4c53fa39afe63a7d356e30452249365fba99" -uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" -version = "0.1.1" - -[[deps.FFMPEG]] -deps = ["FFMPEG_jll"] -git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" -uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" -version = "0.4.1" - -[[deps.FFMPEG_jll]] -deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Pkg", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] -git-tree-sha1 = "74faea50c1d007c85837327f6775bea60b5492dd" -uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" -version = "4.4.2+2" - -[[deps.FFTViews]] -deps = ["CustomUnitRanges", "FFTW"] -git-tree-sha1 = "cbdf14d1e8c7c8aacbe8b19862e0179fd08321c2" -uuid = "4f61f5a4-77b1-5117-aa51-3ab5ef4ef0cd" -version = "0.3.2" - -[[deps.FFTW]] -deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] -git-tree-sha1 = "f9818144ce7c8c41edf5c4c179c684d92aa4d9fe" -uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" -version = "1.6.0" - -[[deps.FFTW_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" -uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" -version = "3.3.10+0" - -[[deps.FLoops]] -deps = ["BangBang", "Compat", "FLoopsBase", "InitialValues", "JuliaVariables", "MLStyle", "Serialization", "Setfield", "Transducers"] -git-tree-sha1 = "ffb97765602e3cbe59a0589d237bf07f245a8576" -uuid = "cc61a311-1640-44b5-9fba-1b764f453329" -version = "0.2.1" - -[[deps.FLoopsBase]] -deps = ["ContextVariablesX"] -git-tree-sha1 = "656f7a6859be8673bf1f35da5670246b923964f7" -uuid = "b9860ae5-e623-471e-878b-f6a53c775ea6" -version = "0.1.1" - -[[deps.FastAI]] -deps = ["DataDeps", "FeatureRegistries", "FileIO", "FilePathsBase", "Flux", "FluxTraining", "InlineTest", "JLD2", "MLDatasets", "MLUtils", "Markdown", "Parameters", "PrettyTables", "Reexport", "Requires", "Setfield", "Statistics", "Test", "TextAnalysis", "UnicodePlots"] -git-tree-sha1 = "632a7f0b553fe25bd8009885ca483f510e50ca99" -uuid = "5d0beca9-ade8-49ae-ad0b-a3cf890e669f" -version = "0.5.1" - -[[deps.FastVision]] -deps = ["ColorVectorSpace", "Colors", "DataAugmentation", "DataDeps", "FastAI", "FixedPointNumbers", "Flux", "ImageIO", "ImageInTerminal", "IndirectArrays", "InlineTest", "MLUtils", "MakieCore", "ProgressMeter", "ShowCases", "StaticArrays", "Statistics", "UnicodePlots", "Zygote"] -git-tree-sha1 = "08b61f94a3a2235bc705fc7e04822a45ed94c0d4" -uuid = "7bf02486-ff4c-4e73-b158-40c00866b54f" -version = "0.1.1" - -[[deps.FeatureRegistries]] -deps = ["Base64", "ImageShow", "InlineTest", "Markdown", "PrettyTables", "Setfield", "StructArrays"] -git-tree-sha1 = "2bd758a1b3aa40bcce6b4c8ba53369781b9f21c7" -uuid = "c6aefb4f-3ac3-4095-8805-528476b02c02" -version = "0.1.3" - -[[deps.FileIO]] -deps = ["Pkg", "Requires", "UUIDs"] -git-tree-sha1 = "7be5f99f7d15578798f338f5433b6c432ea8037b" -uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" -version = "1.16.0" - -[[deps.FilePathsBase]] -deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] -git-tree-sha1 = "e27c4ebe80e8699540f2d6c805cc12203b614f12" -uuid = "48062228-2e41-5def-b9a4-89aafe57970f" -version = "0.9.20" - -[[deps.FileWatching]] -uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" - -[[deps.FillArrays]] -deps = ["LinearAlgebra", "Random", "SparseArrays", "Statistics"] -git-tree-sha1 = "fc86b4fd3eff76c3ce4f5e96e2fdfa6282722885" -uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.0.0" - -[[deps.FixedPointNumbers]] -deps = ["Statistics"] -git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" -uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" -version = "0.8.4" - -[[deps.Flux]] -deps = ["Adapt", "CUDA", "ChainRulesCore", "Functors", "LinearAlgebra", "MLUtils", "MacroTools", "NNlib", "NNlibCUDA", "OneHotArrays", "Optimisers", "ProgressLogging", "Random", "Reexport", "SparseArrays", "SpecialFunctions", "Statistics", "StatsBase", "Zygote"] -git-tree-sha1 = "4ff3a1d7b0dd38f2fc38e813bc801f817639c1f2" -uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" -version = "0.13.13" - -[[deps.FluxTraining]] -deps = ["BSON", "ChainRulesCore", "DataStructures", "EarlyStopping", "Flux", "Glob", "Graphs", "ImageCore", "InlineTest", "OnlineStats", "Optimisers", "ParameterSchedulers", "Parameters", "PrettyTables", "ProgressMeter", "Reexport", "Setfield", "SnoopPrecompile", "Statistics", "TensorBoardLogger", "UUIDs", "ValueHistories", "Zygote"] -git-tree-sha1 = "6967d151ed20468d32e44709a55e734ecf1908ff" -uuid = "7bf95e4d-ca32-48da-9824-f0dc5310474f" -version = "0.3.7" - -[[deps.FoldsCUDA]] -deps = ["CUDA", "InitialValues", "Transducers", "UnionArrays"] -git-tree-sha1 = "d7f719f3c186e4a821fda1ab38e9cfeaf3b17b71" -uuid = "6cd66ae4-5932-4b96-926d-e73e578e42cc" -version = "0.1.9" - -[[deps.FoldsThreads]] -deps = ["Accessors", "FunctionWrappers", "InitialValues", "SplittablesBase", "Transducers"] -git-tree-sha1 = "eb8e1989b9028f7e0985b4268dabe94682249025" -uuid = "9c68100b-dfe1-47cf-94c8-95104e173443" -version = "0.1.1" - -[[deps.Fontconfig_jll]] -deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" -uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" -version = "2.13.93+0" - -[[deps.Formatting]] -deps = ["Printf"] -git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" -uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" -version = "0.4.2" - -[[deps.ForwardDiff]] -deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions", "StaticArrays"] -git-tree-sha1 = "00e252f4d706b3d55a8863432e742bf5717b498d" -uuid = "f6369f11-7733-5829-9624-2563aa707210" -version = "0.10.35" - -[[deps.FreeType]] -deps = ["CEnum", "FreeType2_jll"] -git-tree-sha1 = "cabd77ab6a6fdff49bfd24af2ebe76e6e018a2b4" -uuid = "b38be410-82b0-50bf-ab77-7b57e271db43" -version = "4.0.0" - -[[deps.FreeType2_jll]] -deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] -git-tree-sha1 = "87eb71354d8ec1a96d4a7636bd57a7347dde3ef9" -uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" -version = "2.10.4+0" - -[[deps.FreeTypeAbstraction]] -deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"] -git-tree-sha1 = "38a92e40157100e796690421e34a11c107205c86" -uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" -version = "0.10.0" - -[[deps.FriBidi_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" -uuid = "559328eb-81f9-559d-9380-de523a88c83c" -version = "1.0.10+0" - -[[deps.FunctionWrappers]] -git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" -uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" -version = "1.1.3" - -[[deps.Functors]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "478f8c3145bb91d82c2cf20433e8c1b30df454cc" -uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" -version = "0.4.4" - -[[deps.Future]] -deps = ["Random"] -uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" - -[[deps.GPUArrays]] -deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] -git-tree-sha1 = "9ade6983c3dbbd492cf5729f865fe030d1541463" -uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "8.6.6" - -[[deps.GPUArraysCore]] -deps = ["Adapt"] -git-tree-sha1 = "1cd7f0af1aa58abc02ea1d872953a97359cb87fa" -uuid = "46192b85-c4d5-4398-a991-12ede77f4527" -version = "0.1.4" - -[[deps.GPUCompiler]] -deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "19d693666a304e8c371798f4900f7435558c7cde" -uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.17.3" - -[[deps.GZip]] -deps = ["Libdl"] -git-tree-sha1 = "039be665faf0b8ae36e089cd694233f5dee3f7d6" -uuid = "92fee26a-97fe-5a0c-ad85-20a5f3185b63" -version = "0.5.1" - -[[deps.GenericLinearAlgebra]] -deps = ["LinearAlgebra", "Printf", "Random", "libblastrampoline_jll"] -git-tree-sha1 = "e8ec3260d28f3493a29cceeea572b629e87c6701" -uuid = "14197337-ba66-59df-a3e3-ca00e7dcff7a" -version = "0.3.9" - -[[deps.GeoInterface]] -deps = ["Extents"] -git-tree-sha1 = "0eb6de0b312688f852f347171aba888658e29f20" -uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" -version = "1.3.0" - -[[deps.GeometryBasics]] -deps = ["EarCut_jll", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] -git-tree-sha1 = "303202358e38d2b01ba46844b92e48a3c238fd9e" -uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" -version = "0.4.6" - -[[deps.Gettext_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] -git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" -uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" -version = "0.21.0+0" - -[[deps.Ghostscript_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "43ba3d3c82c18d88471cfd2924931658838c9d8f" -uuid = "61579ee1-b43e-5ca0-a5da-69d92c66a64b" -version = "9.55.0+4" - -[[deps.Glib_jll]] -deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "d3b3624125c1474292d0d8ed0f65554ac37ddb23" -uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.74.0+2" - -[[deps.Glob]] -git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" -uuid = "c27321d9-0574-5035-807b-f59d2c89b15c" -version = "1.3.1" - -[[deps.Graphics]] -deps = ["Colors", "LinearAlgebra", "NaNMath"] -git-tree-sha1 = "d61890399bc535850c4bf08e4e0d3a7ad0f21cbd" -uuid = "a2bd30eb-e257-5431-a919-1863eab51364" -version = "1.1.2" - -[[deps.Graphite2_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" -uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" -version = "1.3.14+0" - -[[deps.Graphs]] -deps = ["ArnoldiMethod", "Compat", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] -git-tree-sha1 = "1cf1d7dcb4bc32d7b4a5add4232db3750c27ecb4" -uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" -version = "1.8.0" - -[[deps.GridLayoutBase]] -deps = ["GeometryBasics", "InteractiveUtils", "Observables"] -git-tree-sha1 = "678d136003ed5bceaab05cf64519e3f956ffa4ba" -uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" -version = "0.9.1" - -[[deps.Grisu]] -git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" -uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" -version = "1.0.2" - -[[deps.HDF5]] -deps = ["Compat", "HDF5_jll", "Libdl", "Mmap", "Random", "Requires", "UUIDs"] -git-tree-sha1 = "3dab31542b3da9f25a6a1d11159d4af8fdce7d67" -uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" -version = "0.16.14" - -[[deps.HDF5_jll]] -deps = ["Artifacts", "JLLWrappers", "LibCURL_jll", "Libdl", "OpenSSL_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "4cc2bb72df6ff40b055295fdef6d92955f9dede8" -uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" -version = "1.12.2+2" - -[[deps.HTML_Entities]] -deps = ["StrTables"] -git-tree-sha1 = "c4144ed3bc5f67f595622ad03c0e39fa6c70ccc7" -uuid = "7693890a-d069-55fe-a829-b4a6d304f0ee" -version = "1.0.1" - -[[deps.HTTP]] -deps = ["Base64", "CodecZlib", "Dates", "IniFile", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "37e4657cd56b11abe3d10cd4a1ec5fbdb4180263" -uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.7.4" - -[[deps.HarfBuzz_jll]] -deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] -git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" -uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" -version = "2.8.1+1" - -[[deps.HostCPUFeatures]] -deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] -git-tree-sha1 = "734fd90dd2f920a2f1921d5388dcebe805b262dc" -uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" -version = "0.1.14" - -[[deps.HypergeometricFunctions]] -deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] -git-tree-sha1 = "432b5b03176f8182bd6841fbfc42c718506a2d5f" -uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" -version = "0.3.15" - -[[deps.Hyperscript]] -deps = ["Test"] -git-tree-sha1 = "8d511d5b81240fc8e6802386302675bdf47737b9" -uuid = "47d2ed2b-36de-50cf-bf87-49c2cf4b8b91" -version = "0.0.4" - -[[deps.HypertextLiteral]] -deps = ["Tricks"] -git-tree-sha1 = "c47c5fa4c5308f27ccaac35504858d8914e102f9" -uuid = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2" -version = "0.9.4" - -[[deps.IOCapture]] -deps = ["Logging", "Random"] -git-tree-sha1 = "f7be53659ab06ddc986428d3a9dcc95f6fa6705a" -uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" -version = "0.2.2" - -[[deps.IRTools]] -deps = ["InteractiveUtils", "MacroTools", "Test"] -git-tree-sha1 = "0ade27f0c49cebd8db2523c4eeccf779407cf12c" -uuid = "7869d1d1-7146-5819-86e3-90919afe41df" -version = "0.4.9" - -[[deps.IfElse]] -git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" -uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" -version = "0.1.1" - -[[deps.ImageAxes]] -deps = ["AxisArrays", "ImageBase", "ImageCore", "Reexport", "SimpleTraits"] -git-tree-sha1 = "c54b581a83008dc7f292e205f4c409ab5caa0f04" -uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac" -version = "0.6.10" - -[[deps.ImageBase]] -deps = ["ImageCore", "Reexport"] -git-tree-sha1 = "b51bb8cae22c66d0f6357e3bcb6363145ef20835" -uuid = "c817782e-172a-44cc-b673-b171935fbb9e" -version = "0.1.5" - -[[deps.ImageContrastAdjustment]] -deps = ["ImageCore", "ImageTransformations", "Parameters"] -git-tree-sha1 = "0d75cafa80cf22026cea21a8e6cf965295003edc" -uuid = "f332f351-ec65-5f6a-b3d1-319c6670881a" -version = "0.3.10" - -[[deps.ImageCore]] -deps = ["AbstractFFTs", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Graphics", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "Reexport"] -git-tree-sha1 = "acf614720ef026d38400b3817614c45882d75500" -uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" -version = "0.9.4" - -[[deps.ImageDistances]] -deps = ["Distances", "ImageCore", "ImageMorphology", "LinearAlgebra", "Statistics"] -git-tree-sha1 = "b1798a4a6b9aafb530f8f0c4a7b2eb5501e2f2a3" -uuid = "51556ac3-7006-55f5-8cb3-34580c88182d" -version = "0.2.16" - -[[deps.ImageDraw]] -deps = ["Distances", "ImageCore", "LinearAlgebra"] -git-tree-sha1 = "6ed6e945d909f87c3013e391dcd3b2a56e48b331" -uuid = "4381153b-2b60-58ae-a1ba-fd683676385f" -version = "0.2.5" - -[[deps.ImageFiltering]] -deps = ["CatIndices", "ComputationalResources", "DataStructures", "FFTViews", "FFTW", "ImageBase", "ImageCore", "LinearAlgebra", "OffsetArrays", "Reexport", "SnoopPrecompile", "SparseArrays", "StaticArrays", "Statistics", "TiledIteration"] -git-tree-sha1 = "f265e53558fbbf23e0d54e4fab7106c0f2a9e576" -uuid = "6a3955dd-da59-5b1f-98d4-e7296123deb5" -version = "0.7.3" - -[[deps.ImageIO]] -deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] -git-tree-sha1 = "342f789fd041a55166764c351da1710db97ce0e0" -uuid = "82e4d734-157c-48bb-816b-45c225c6df19" -version = "0.6.6" - -[[deps.ImageInTerminal]] -deps = ["Crayons", "ImageBase", "ImageCore", "Requires"] -git-tree-sha1 = "2bd30630d417699c925fa7f16d51282d7343e3eb" -uuid = "d8c32880-2388-543b-8c61-d9f865259254" -version = "0.4.8" - -[[deps.ImageMagick]] -deps = ["FileIO", "ImageCore", "ImageMagick_jll", "InteractiveUtils", "Libdl", "Pkg", "Random"] -git-tree-sha1 = "5bc1cb62e0c5f1005868358db0692c994c3a13c6" -uuid = "6218d12a-5da1-5696-b52f-db25d2ecc6d1" -version = "1.2.1" - -[[deps.ImageMagick_jll]] -deps = ["Artifacts", "Ghostscript_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pkg", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "124626988534986113cfd876e3093e4a03890f58" -uuid = "c73af94c-d91f-53ed-93a7-00f77d67a9d7" -version = "6.9.12+3" - -[[deps.ImageMetadata]] -deps = ["AxisArrays", "ImageAxes", "ImageBase", "ImageCore"] -git-tree-sha1 = "36cbaebed194b292590cba2593da27b34763804a" -uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49" -version = "0.9.8" - -[[deps.ImageMorphology]] -deps = ["ImageCore", "LinearAlgebra", "Requires", "TiledIteration"] -git-tree-sha1 = "e7c68ab3df4a75511ba33fc5d8d9098007b579a8" -uuid = "787d08f9-d448-5407-9aad-5290dd7ab264" -version = "0.3.2" - -[[deps.ImageQualityIndexes]] -deps = ["ImageContrastAdjustment", "ImageCore", "ImageDistances", "ImageFiltering", "LazyModules", "OffsetArrays", "SnoopPrecompile", "Statistics"] -git-tree-sha1 = "5985d467623f106523ed8351f255642b5141e7be" -uuid = "2996bd0c-7a13-11e9-2da2-2f5ce47296a9" -version = "0.3.4" - -[[deps.ImageSegmentation]] -deps = ["Clustering", "DataStructures", "Distances", "Graphs", "ImageCore", "ImageFiltering", "ImageMorphology", "LinearAlgebra", "MetaGraphs", "RegionTrees", "SimpleWeightedGraphs", "StaticArrays", "Statistics"] -git-tree-sha1 = "fb0b597b4928e29fed0597724cfbb5940974f8ca" -uuid = "80713f31-8817-5129-9cf8-209ff8fb23e1" -version = "1.8.0" - -[[deps.ImageShow]] -deps = ["Base64", "ColorSchemes", "FileIO", "ImageBase", "ImageCore", "OffsetArrays", "StackViews"] -git-tree-sha1 = "ce28c68c900eed3cdbfa418be66ed053e54d4f56" -uuid = "4e3cecfd-b093-5904-9786-8bbb286a6a31" -version = "0.3.7" - -[[deps.ImageTransformations]] -deps = ["AxisAlgorithms", "ColorVectorSpace", "CoordinateTransformations", "ImageBase", "ImageCore", "Interpolations", "OffsetArrays", "Rotations", "StaticArrays"] -git-tree-sha1 = "8717482f4a2108c9358e5c3ca903d3a6113badc9" -uuid = "02fcd773-0e25-5acc-982a-7f6622650795" -version = "0.9.5" - -[[deps.Images]] -deps = ["Base64", "FileIO", "Graphics", "ImageAxes", "ImageBase", "ImageContrastAdjustment", "ImageCore", "ImageDistances", "ImageFiltering", "ImageIO", "ImageMagick", "ImageMetadata", "ImageMorphology", "ImageQualityIndexes", "ImageSegmentation", "ImageShow", "ImageTransformations", "IndirectArrays", "IntegralArrays", "Random", "Reexport", "SparseArrays", "StaticArrays", "Statistics", "StatsBase", "TiledIteration"] -git-tree-sha1 = "03d1301b7ec885b266c0f816f338368c6c0b81bd" -uuid = "916415d5-f1e6-5110-898d-aaa5f9f070e0" -version = "0.25.2" - -[[deps.Imath_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "3d09a9f60edf77f8a4d99f9e015e8fbf9989605d" -uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1" -version = "3.1.7+0" - -[[deps.IndirectArrays]] -git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f" -uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" -version = "1.0.0" - -[[deps.InfiniteArrays]] -deps = ["ArrayLayouts", "FillArrays", "Infinities", "LazyArrays", "LinearAlgebra", "Statistics"] -git-tree-sha1 = "6eb47f8b5e497f7f436a2a07f77f011cf0ce9824" -uuid = "4858937d-0d70-526a-a4dd-2d5cb5dd786c" -version = "0.12.13" - -[[deps.Infinities]] -git-tree-sha1 = "7cafb0d59dabad36e451c80b03505ecd599ce924" -uuid = "e1ba4f0e-776d-440f-acd9-e1d2e9742647" -version = "0.1.6" - -[[deps.Inflate]] -git-tree-sha1 = "5cd07aab533df5170988219191dfad0519391428" -uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" -version = "0.1.3" - -[[deps.IniFile]] -git-tree-sha1 = "f550e6e32074c939295eb5ea6de31849ac2c9625" -uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f" -version = "0.5.1" - -[[deps.InitialValues]] -git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3" -uuid = "22cec73e-a1b8-11e9-2c92-598750a2cf9c" -version = "0.3.1" - -[[deps.InlineStrings]] -deps = ["Parsers"] -git-tree-sha1 = "9cc2baf75c6d09f9da536ddf58eb2f29dedaf461" -uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" -version = "1.4.0" - -[[deps.InlineTest]] -deps = ["Test"] -git-tree-sha1 = "daf0743879904f0ad645ca6594e1479685f158a2" -uuid = "bd334432-b1e7-49c7-a2dc-dd9149e4ebd6" -version = "0.2.0" - -[[deps.IntegralArrays]] -deps = ["ColorTypes", "FixedPointNumbers", "IntervalSets"] -git-tree-sha1 = "be8e690c3973443bec584db3346ddc904d4884eb" -uuid = "1d092043-8f09-5a30-832f-7509e371ab51" -version = "0.1.5" - -[[deps.IntelOpenMP_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "d979e54b71da82f3a65b62553da4fc3d18c9004c" -uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2018.0.3+2" - -[[deps.InteractiveUtils]] -deps = ["Markdown"] -uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" - -[[deps.InternedStrings]] -deps = ["Random", "Test"] -git-tree-sha1 = "eb05b5625bc5d821b8075a77e4c421933e20c76b" -uuid = "7d512f48-7fb1-5a58-b986-67e6dc259f01" -version = "0.7.0" - -[[deps.Interpolations]] -deps = ["AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] -git-tree-sha1 = "b7bc05649af456efc75d178846f47006c2c4c3c7" -uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" -version = "0.13.6" - -[[deps.IntervalSets]] -deps = ["Dates", "Random", "Statistics"] -git-tree-sha1 = "16c0cc91853084cb5f58a78bd209513900206ce6" -uuid = "8197267c-284f-5f27-9208-e0e47529a953" -version = "0.7.4" - -[[deps.InverseFunctions]] -deps = ["Test"] -git-tree-sha1 = "49510dfcb407e572524ba94aeae2fced1f3feb0f" -uuid = "3587e190-3f89-42d0-90ee-14403ec27112" -version = "0.1.8" - -[[deps.InvertedIndices]] -git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" -uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" -version = "1.3.0" - -[[deps.IrrationalConstants]] -git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" -uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" -version = "0.2.2" - -[[deps.Isoband]] -deps = ["isoband_jll"] -git-tree-sha1 = "f9b6d97355599074dc867318950adaa6f9946137" -uuid = "f1662d9f-8043-43de-a69a-05efc1cc6ff4" -version = "0.1.1" - -[[deps.IterTools]] -git-tree-sha1 = "fa6287a4469f5e048d763df38279ee729fbd44e5" -uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" -version = "1.4.0" - -[[deps.IterableTables]] -deps = ["DataValues", "IteratorInterfaceExtensions", "Requires", "TableTraits", "TableTraitsUtils"] -git-tree-sha1 = "70300b876b2cebde43ebc0df42bc8c94a144e1b4" -uuid = "1c8ee90f-4401-5389-894e-7a04a3dc0f4d" -version = "1.0.0" - -[[deps.IteratorInterfaceExtensions]] -git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" -uuid = "82899510-4779-5014-852e-03e436cf321d" -version = "1.0.0" - -[[deps.JLD2]] -deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] -git-tree-sha1 = "42c17b18ced77ff0be65957a591d34f4ed57c631" -uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.4.31" - -[[deps.JLLWrappers]] -deps = ["Preferences"] -git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1" -uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.4.1" - -[[deps.JSON]] -deps = ["Dates", "Mmap", "Parsers", "Unicode"] -git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" -uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" -version = "0.21.4" - -[[deps.JSON3]] -deps = ["Dates", "Mmap", "Parsers", "SnoopPrecompile", "StructTypes", "UUIDs"] -git-tree-sha1 = "84b10656a41ef564c39d2d477d7236966d2b5683" -uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" -version = "1.12.0" - -[[deps.JpegTurbo]] -deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] -git-tree-sha1 = "106b6aa272f294ba47e96bd3acbabdc0407b5c60" -uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" -version = "0.1.2" - -[[deps.JpegTurbo_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" -uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" -version = "2.1.91+0" - -[[deps.JuliaInterpreter]] -deps = ["CodeTracking", "InteractiveUtils", "Random", "UUIDs"] -git-tree-sha1 = "6a125e6a4cb391e0b9adbd1afa9e771c2179f8ef" -uuid = "aa1ae85d-cabe-5617-a682-6adf51b2e16a" -version = "0.9.23" - -[[deps.JuliaVariables]] -deps = ["MLStyle", "NameResolution"] -git-tree-sha1 = "49fb3cb53362ddadb4415e9b73926d6b40709e70" -uuid = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec" -version = "0.2.4" - -[[deps.KernelDensity]] -deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] -git-tree-sha1 = "9816b296736292a80b9a3200eb7fbb57aaa3917a" -uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" -version = "0.6.5" - -[[deps.LAME_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" -uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" -version = "3.100.1+0" - -[[deps.LERC_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" -uuid = "88015f11-f218-50d7-93a8-a6af411a945d" -version = "3.0.0+1" - -[[deps.LLVM]] -deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Printf", "Unicode"] -git-tree-sha1 = "f044a2796a9e18e0531b9b3072b0019a61f264bc" -uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "4.17.1" - -[[deps.LLVMExtra_jll]] -deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "070e4b5b65827f82c16ae0916376cb47377aa1b5" -uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.18+0" - -[[deps.LZO_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" -uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" -version = "2.10.1+0" - -[[deps.LaTeXStrings]] -git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" -uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" -version = "1.3.0" - -[[deps.Languages]] -deps = ["InteractiveUtils", "JSON"] -git-tree-sha1 = "b1a564061268ccc3f3397ac0982983a657d4dcb8" -uuid = "8ef0a80b-9436-5d2c-a485-80b904378c43" -version = "0.4.3" - -[[deps.LayoutPointers]] -deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] -git-tree-sha1 = "88b8f66b604da079a627b6fb2860d3704a6729a1" -uuid = "10f19ff3-798f-405d-979b-55457f8fc047" -version = "0.1.14" - -[[deps.LazyArrays]] -deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "MacroTools", "MatrixFactorizations", "SparseArrays", "StaticArrays"] -git-tree-sha1 = "ada4ecc1ace9246681129c212570a45ed19e44a9" -uuid = "5078a376-72f3-5289-bfd5-ec5146d43c02" -version = "1.0.1" - -[[deps.LazyArtifacts]] -deps = ["Artifacts", "Pkg"] -uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" - -[[deps.LazyModules]] -git-tree-sha1 = "a560dd966b386ac9ae60bdd3a3d3a326062d3c3e" -uuid = "8cdb02fc-e678-4876-92c5-9defec4f444e" -version = "0.3.1" - -[[deps.LearnBase]] -git-tree-sha1 = "a0d90569edd490b82fdc4dc078ea54a5a800d30a" -uuid = "7f8f8fb0-2700-5f03-b4bd-41f8cfc144b6" -version = "0.4.1" - -[[deps.LibCURL]] -deps = ["LibCURL_jll", "MozillaCACerts_jll"] -uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" -version = "0.6.3" - -[[deps.LibCURL_jll]] -deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] -uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" -version = "7.84.0+0" - -[[deps.LibGit2]] -deps = ["Base64", "NetworkOptions", "Printf", "SHA"] -uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" - -[[deps.LibSSH2_jll]] -deps = ["Artifacts", "Libdl", "MbedTLS_jll"] -uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" -version = "1.10.2+0" - -[[deps.Libdl]] -uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" - -[[deps.Libffi_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" -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" -uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" -version = "1.8.7+0" - -[[deps.Libgpg_error_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" -uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" -version = "1.42.0+0" - -[[deps.Libiconv_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c7cb1f5d892775ba13767a87c7ada0b980ea0a71" -uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" -version = "1.16.1+2" - -[[deps.Libmount_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" -uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" -version = "2.35.0+0" - -[[deps.Libtiff_jll]] -deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "Pkg", "Zlib_jll", "Zstd_jll"] -git-tree-sha1 = "3eb79b0ca5764d4799c06699573fd8f533259713" -uuid = "89763e89-9b03-5906-acba-b20f662cd828" -version = "4.4.0+0" - -[[deps.Libuuid_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" -uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" -version = "2.36.0+0" - -[[deps.LinearAlgebra]] -deps = ["Libdl", "libblastrampoline_jll"] -uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" - -[[deps.LogExpFunctions]] -deps = ["ChainRulesCore", "ChangesOfVariables", "DocStringExtensions", "InverseFunctions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "0a1b7c2863e44523180fdb3146534e265a91870b" -uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.23" - -[[deps.Logging]] -uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" - -[[deps.LoggingExtras]] -deps = ["Dates", "Logging"] -git-tree-sha1 = "cedb76b37bc5a6c702ade66be44f831fa23c681e" -uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" -version = "1.0.0" - -[[deps.LoopVectorization]] -deps = ["ArrayInterface", "ArrayInterfaceCore", "CPUSummary", "ChainRulesCore", "CloseOpenIntervals", "DocStringExtensions", "ForwardDiff", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "SIMDTypes", "SLEEFPirates", "SnoopPrecompile", "SpecialFunctions", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] -git-tree-sha1 = "defbfba8ddbccdc8ca3edb4a96a6d6fd3cd33ebd" -uuid = "bdcacae8-1622-11e9-2a5c-532679323890" -version = "0.12.157" - -[[deps.LoweredCodeUtils]] -deps = ["JuliaInterpreter"] -git-tree-sha1 = "60168780555f3e663c536500aa790b6368adc02a" -uuid = "6f1432cf-f94c-5a45-995e-cdbf5db27b0b" -version = "2.3.0" - -[[deps.MAT]] -deps = ["BufferedStreams", "CodecZlib", "HDF5", "SparseArrays"] -git-tree-sha1 = "6eff5740c8ab02c90065719579c7aa0eb40c9f69" -uuid = "23992714-dd62-5051-b70f-ba57cb901cac" -version = "0.10.4" - -[[deps.MIMEs]] -git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" -uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" -version = "0.1.4" - -[[deps.MKL_jll]] -deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] -git-tree-sha1 = "2ce8695e1e699b68702c03402672a69f54b8aca9" -uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2022.2.0+0" - -[[deps.MLDataPattern]] -deps = ["LearnBase", "MLLabelUtils", "Random", "SparseArrays", "StatsBase"] -git-tree-sha1 = "2741aabe5ec93c63cc0a5277bb1c2cb819b01bb1" -uuid = "9920b226-0b2a-5f5f-9153-9aa70a013f8b" -version = "0.5.5" - -[[deps.MLDatasets]] -deps = ["CSV", "Chemfiles", "DataDeps", "DataFrames", "DelimitedFiles", "FileIO", "FixedPointNumbers", "GZip", "Glob", "HDF5", "ImageShow", "JLD2", "JSON3", "LazyModules", "MAT", "MLUtils", "NPZ", "Pickle", "Printf", "Requires", "SparseArrays", "Tables"] -git-tree-sha1 = "498b37aa3ebb4407adea36df1b244fa4e397de5e" -uuid = "eb30cadb-4394-5ae3-aed4-317e484a6458" -version = "0.7.9" - -[[deps.MLLabelUtils]] -deps = ["LearnBase", "MappedArrays", "StatsBase"] -git-tree-sha1 = "fd75d4b0c4016e047bbb6263eecf7ae3891af522" -uuid = "66a33bbf-0c2b-5fc8-a008-9da813334f0a" -version = "0.5.7" - -[[deps.MLStyle]] -git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" -uuid = "d8e11817-5142-5d16-987a-aa16d5891078" -version = "0.4.17" - -[[deps.MLUtils]] -deps = ["ChainRulesCore", "Compat", "DataAPI", "DelimitedFiles", "FLoops", "FoldsThreads", "NNlib", "Random", "ShowCases", "SimpleTraits", "Statistics", "StatsBase", "Tables", "Transducers"] -git-tree-sha1 = "f69cdbb5b7c630c02481d81d50eac43697084fe0" -uuid = "f1d291b0-491e-4a28-83b9-f70985020b54" -version = "0.4.1" - -[[deps.MacroTools]] -deps = ["Markdown", "Random"] -git-tree-sha1 = "42324d08725e200c23d4dfb549e0d5d89dede2d2" -uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" -version = "0.5.10" - -[[deps.Makie]] -deps = ["Animations", "Base64", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "Distributions", "DocStringExtensions", "FFMPEG", "FileIO", "FixedPointNumbers", "Formatting", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageIO", "InteractiveUtils", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MakieCore", "Markdown", "Match", "MathTeXEngine", "MiniQhull", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "Printf", "Random", "RelocatableFolders", "Serialization", "Showoff", "SignedDistanceFields", "SnoopPrecompile", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun"] -git-tree-sha1 = "bdbc2178494c5328defb095a04d553278705b448" -uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" -version = "0.18.4" - -[[deps.MakieCore]] -deps = ["Observables"] -git-tree-sha1 = "c1885d865632e7f37e5a1489a164f44c54fb80c9" -uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" -version = "0.5.2" - -[[deps.ManualMemory]] -git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" -uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" -version = "0.1.8" - -[[deps.MappedArrays]] -git-tree-sha1 = "e8b359ef06ec72e8c030463fe02efe5527ee5142" -uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" -version = "0.4.1" - -[[deps.MarchingCubes]] -deps = ["SnoopPrecompile", "StaticArrays"] -git-tree-sha1 = "b198463d1a631e8771709bc8e011ba329da9ad38" -uuid = "299715c1-40a9-479a-aaf9-4a633d36f717" -version = "0.1.7" - -[[deps.Markdown]] -deps = ["Base64"] -uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" - -[[deps.Match]] -git-tree-sha1 = "1d9bc5c1a6e7ee24effb93f175c9342f9154d97f" -uuid = "7eb4fadd-790c-5f42-8a69-bfa0b872bfbf" -version = "1.2.0" - -[[deps.MathTeXEngine]] -deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "Test", "UnicodeFun"] -git-tree-sha1 = "64890e1e8087b71c03bd6b8af99b49c805b2a78d" -uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" -version = "0.5.5" - -[[deps.MatrixFactorizations]] -deps = ["ArrayLayouts", "LinearAlgebra", "Printf", "Random"] -git-tree-sha1 = "e721126cb2e08226cba1324f78cd34aaf1f31581" -uuid = "a3b82374-2e81-5b9e-98ce-41277c0e4c87" -version = "1.0.0" - -[[deps.MbedTLS]] -deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "Random", "Sockets"] -git-tree-sha1 = "03a9b9718f5682ecb107ac9f7308991db4ce395b" -uuid = "739be429-bea8-5141-9913-cc70e7f3736d" -version = "1.1.7" - -[[deps.MbedTLS_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" -version = "2.28.0+0" - -[[deps.MetaGraphs]] -deps = ["Graphs", "JLD2", "Random"] -git-tree-sha1 = "1130dbe1d5276cb656f6e1094ce97466ed700e5a" -uuid = "626554b9-1ddb-594c-aa3c-2596fe9399a5" -version = "0.7.2" - -[[deps.Metalhead]] -deps = ["Artifacts", "BSON", "Flux", "Functors", "LazyArtifacts", "MLUtils", "NNlib", "Random", "Statistics"] -git-tree-sha1 = "0e95f91cc5f23610f8f270d7397f307b21e19d2b" -uuid = "dbeba491-748d-5e0e-a39e-b530a07fa0cc" -version = "0.7.4" - -[[deps.MicroCollections]] -deps = ["BangBang", "InitialValues", "Setfield"] -git-tree-sha1 = "629afd7d10dbc6935ec59b32daeb33bc4460a42e" -uuid = "128add7d-3638-4c79-886c-908ea0c25c34" -version = "0.1.4" - -[[deps.MicroMamba]] -deps = ["Pkg", "Scratch", "micromamba_jll"] -git-tree-sha1 = "a6a4771aba1dc8942bc0f44ff9f8ee0f893ef888" -uuid = "0b3b1443-0f03-428d-bdfb-f27f9c1191ea" -version = "0.1.12" - -[[deps.MiniQhull]] -deps = ["QhullMiniWrapper_jll"] -git-tree-sha1 = "9dc837d180ee49eeb7c8b77bb1c860452634b0d1" -uuid = "978d7f02-9e05-4691-894f-ae31a51d76ca" -version = "0.4.0" - -[[deps.Missings]] -deps = ["DataAPI"] -git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" -uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" -version = "1.1.0" - -[[deps.Mmap]] -uuid = "a63ad114-7e13-5084-954f-fe012c677804" - -[[deps.MosaicViews]] -deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] -git-tree-sha1 = "7b86a5d4d70a9f5cdf2dacb3cbe6d251d1a61dbe" -uuid = "e94cdb99-869f-56ef-bcf0-1ae2bcbe0389" -version = "0.3.4" - -[[deps.MozillaCACerts_jll]] -uuid = "14a3606d-f60d-562e-9121-12d972cd8159" -version = "2022.2.1" - -[[deps.NIfTI]] -deps = ["Base64", "CodecZlib", "MappedArrays", "Mmap", "TranscodingStreams"] -git-tree-sha1 = "8cc568873b6b27594f12eeb9748dec566818f352" -uuid = "a3a9e032-41b5-5fc4-967a-a6b7a19844d3" -version = "0.5.9" - -[[deps.NNlib]] -deps = ["Adapt", "ChainRulesCore", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] -git-tree-sha1 = "33ad5a19dc6730d592d8ce91c14354d758e53b0e" -uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -version = "0.8.19" - -[[deps.NNlibCUDA]] -deps = ["Adapt", "CUDA", "LinearAlgebra", "NNlib", "Random", "Statistics"] -git-tree-sha1 = "b05a082b08a3af0e5c576883bc6dfb6513e7e478" -uuid = "a00861dc-f156-4864-bf3c-e6376f28a68d" -version = "0.2.6" - -[[deps.NPZ]] -deps = ["FileIO", "ZipFile"] -git-tree-sha1 = "60a8e272fe0c5079363b28b0953831e2dd7b7e6f" -uuid = "15e1cf62-19b3-5cfa-8e77-841668bca605" -version = "0.4.3" - -[[deps.NaNMath]] -deps = ["OpenLibm_jll"] -git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" -uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" -version = "1.0.2" - -[[deps.NameResolution]] -deps = ["PrettyPrint"] -git-tree-sha1 = "1a0fa0e9613f46c9b8c11eee38ebb4f590013c5e" -uuid = "71a1bf82-56d0-4bbc-8a3c-48b961074391" -version = "0.1.5" - -[[deps.NearestNeighbors]] -deps = ["Distances", "StaticArrays"] -git-tree-sha1 = "2c3726ceb3388917602169bed973dbc97f1b51a8" -uuid = "b8a86587-4115-5ab1-83bc-aa920d37bbce" -version = "0.4.13" - -[[deps.Netpbm]] -deps = ["FileIO", "ImageCore", "ImageMetadata"] -git-tree-sha1 = "5ae7ca23e13855b3aba94550f26146c01d259267" -uuid = "f09324ee-3d7c-5217-9330-fc30815ba969" -version = "1.1.0" - -[[deps.NetworkOptions]] -uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" -version = "1.2.0" - -[[deps.Nullables]] -git-tree-sha1 = "8f87854cc8f3685a60689d8edecaa29d2251979b" -uuid = "4d1e1d77-625e-5b40-9113-a560ec7a8ecd" -version = "1.0.0" - -[[deps.Observables]] -git-tree-sha1 = "6862738f9796b3edc1c09d0890afce4eca9e7e93" -uuid = "510215fc-4207-5dde-b226-833fc4488ee2" -version = "0.5.4" - -[[deps.OffsetArrays]] -deps = ["Adapt"] -git-tree-sha1 = "82d7c9e310fe55aa54996e6f7f94674e2a38fcb4" -uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.12.9" - -[[deps.Ogg_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" -uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" -version = "1.3.5+1" - -[[deps.OneHotArrays]] -deps = ["Adapt", "ChainRulesCore", "Compat", "GPUArraysCore", "LinearAlgebra", "NNlib"] -git-tree-sha1 = "f511fca956ed9e70b80cd3417bb8c2dde4b68644" -uuid = "0b1bfda6-eb8a-41d2-88d8-f5af5cad476f" -version = "0.2.3" - -[[deps.OnlineStats]] -deps = ["AbstractTrees", "Dates", "Distributions", "LinearAlgebra", "OnlineStatsBase", "OrderedCollections", "Random", "RecipesBase", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns"] -git-tree-sha1 = "914177837d0d4e4ff13c9c5ad6081510b45a354a" -uuid = "a15396b6-48d5-5d58-9928-6d29437db91e" -version = "1.6.0" - -[[deps.OnlineStatsBase]] -deps = ["AbstractTrees", "Dates", "LinearAlgebra", "OrderedCollections", "Statistics", "StatsBase"] -git-tree-sha1 = "60e587c99ea261d1c452d2acb1f3a481e772660c" -uuid = "925886fa-5bf2-5e8e-b522-a9147a512338" -version = "1.5.0" - -[[deps.OpenBLAS_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] -uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.20+0" - -[[deps.OpenEXR]] -deps = ["Colors", "FileIO", "OpenEXR_jll"] -git-tree-sha1 = "327f53360fdb54df7ecd01e96ef1983536d1e633" -uuid = "52e1d378-f018-4a11-a4be-720524705ac7" -version = "0.3.2" - -[[deps.OpenEXR_jll]] -deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "a4ca623df1ae99d09bc9868b008262d0c0ac1e4f" -uuid = "18a262bb-aa17-5467-a713-aee519bc75cb" -version = "3.1.4+0" - -[[deps.OpenLibm_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "05823500-19ac-5b8b-9628-191a04bc5112" -version = "0.8.1+0" - -[[deps.OpenSSL]] -deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] -git-tree-sha1 = "e9d68fe4b5f78f215aa2f0e6e6dc9e9911d33048" -uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" -version = "1.3.4" - -[[deps.OpenSSL_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "9ff31d101d987eb9d66bd8b176ac7c277beccd09" -uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "1.1.20+0" - -[[deps.OpenSpecFun_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" -uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" -version = "0.5.5+0" - -[[deps.Optimisers]] -deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] -git-tree-sha1 = "6a01f65dd8583dee82eecc2a19b0ff21521aa749" -uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" -version = "0.2.18" - -[[deps.Opus_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" -uuid = "91d4177d-7536-5919-b921-800302f37372" -version = "1.3.2+0" - -[[deps.OrderedCollections]] -git-tree-sha1 = "d321bf2de576bf25ec4d3e4360faca399afca282" -uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.6.0" - -[[deps.PCRE2_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" -version = "10.40.0+0" - -[[deps.PDMats]] -deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "67eae2738d63117a196f497d7db789821bce61d1" -uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" -version = "0.11.17" - -[[deps.PNGFiles]] -deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] -git-tree-sha1 = "f809158b27eba0c18c269cf2a2be6ed751d3e81d" -uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" -version = "0.3.17" - -[[deps.Packing]] -deps = ["GeometryBasics"] -git-tree-sha1 = "1155f6f937fa2b94104162f01fa400e192e4272f" -uuid = "19eb6ba3-879d-56ad-ad62-d5c202156566" -version = "0.4.2" - -[[deps.PaddedViews]] -deps = ["OffsetArrays"] -git-tree-sha1 = "0fac6313486baae819364c52b4f483450a9d793f" -uuid = "5432bcbf-9aad-5242-b902-cca2824c8663" -version = "0.5.12" - -[[deps.Pango_jll]] -deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "84a314e3926ba9ec66ac097e3635e270986b0f10" -uuid = "36c8627f-9965-5494-a995-c6b170f724f3" -version = "1.50.9+0" - -[[deps.ParameterSchedulers]] -deps = ["Flux", "InfiniteArrays"] -git-tree-sha1 = "1da1eb2d33a0588b1c9c5df744f3a353d3b14ec2" -uuid = "d7d3b36b-41b8-4d0d-a2bf-768c6151755e" -version = "0.3.5" - -[[deps.Parameters]] -deps = ["OrderedCollections", "UnPack"] -git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" -uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" -version = "0.12.3" - -[[deps.Parsers]] -deps = ["Dates", "SnoopPrecompile"] -git-tree-sha1 = "478ac6c952fddd4399e71d4779797c538d0ff2bf" -uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.5.8" - -[[deps.Pickle]] -deps = ["DataStructures", "InternedStrings", "Serialization", "SparseArrays", "Strided", "StringEncodings", "ZipFile"] -git-tree-sha1 = "e6a34eb1dc0c498f0774bbfbbbeff2de101f4235" -uuid = "fbb45041-c46e-462f-888f-7c521cafbc2c" -version = "0.3.2" - -[[deps.Pidfile]] -deps = ["FileWatching", "Test"] -git-tree-sha1 = "2d8aaf8ee10df53d0dfb9b8ee44ae7c04ced2b03" -uuid = "fa939f87-e72e-5be4-a000-7fc836dbe307" -version = "1.3.0" - -[[deps.Pixman_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "b4f5d02549a10e20780a24fce72bea96b6329e29" -uuid = "30392449-352a-5448-841d-b1acce4e97dc" -version = "0.40.1+0" - -[[deps.Pkg]] -deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] -uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" -version = "1.8.0" - -[[deps.PkgVersion]] -deps = ["Pkg"] -git-tree-sha1 = "f6cf8e7944e50901594838951729a1861e668cb8" -uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" -version = "0.3.2" - -[[deps.PlotUtils]] -deps = ["ColorSchemes", "Colors", "Dates", "Printf", "Random", "Reexport", "SnoopPrecompile", "Statistics"] -git-tree-sha1 = "c95373e73290cf50a8a22c3375e4625ded5c5280" -uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" -version = "1.3.4" - -[[deps.PlutoTest]] -deps = ["HypertextLiteral", "InteractiveUtils", "Markdown", "Test"] -git-tree-sha1 = "17aa9b81106e661cffa1c4c36c17ee1c50a86eda" -uuid = "cb4044da-4d16-4ffa-a6a3-8cad7f73ebdc" -version = "0.2.2" - -[[deps.PlutoUI]] -deps = ["AbstractPlutoDingetjes", "Base64", "ColorTypes", "Dates", "FixedPointNumbers", "Hyperscript", "HypertextLiteral", "IOCapture", "InteractiveUtils", "JSON", "Logging", "MIMEs", "Markdown", "Random", "Reexport", "URIs", "UUIDs"] -git-tree-sha1 = "5bb5129fdd62a2bbbe17c2756932259acf467386" -uuid = "7f904dfe-b85e-4ff6-b463-dae2292396a8" -version = "0.7.50" - -[[deps.PolyesterWeave]] -deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] -git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" -uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" -version = "0.2.1" - -[[deps.PolygonOps]] -git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6" -uuid = "647866c9-e3ac-4575-94e7-e3d426903924" -version = "0.1.2" - -[[deps.Polynomials]] -deps = ["LinearAlgebra", "RecipesBase"] -git-tree-sha1 = "a14a99e430e42a105c898fcc7f212334bc7be887" -uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" -version = "3.2.4" - -[[deps.PooledArrays]] -deps = ["DataAPI", "Future"] -git-tree-sha1 = "a6062fe4063cdafe78f4a0a81cfffb89721b30e7" -uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" -version = "1.4.2" - -[[deps.Preferences]] -deps = ["TOML"] -git-tree-sha1 = "47e5f437cc0e7ef2ce8406ce1e7e24d44915f88d" -uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.3.0" - -[[deps.PrettyPrint]] -git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" -uuid = "8162dcfd-2161-5ef2-ae6c-7681170c5f98" -version = "0.2.0" - -[[deps.PrettyTables]] -deps = ["Crayons", "Formatting", "LaTeXStrings", "Markdown", "Reexport", "StringManipulation", "Tables"] -git-tree-sha1 = "548793c7859e28ef026dba514752275ee871169f" -uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" -version = "2.2.3" - -[[deps.Printf]] -deps = ["Unicode"] -uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" - -[[deps.Profile]] -deps = ["Printf"] -uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" - -[[deps.ProgressLogging]] -deps = ["Logging", "SHA", "UUIDs"] -git-tree-sha1 = "80d919dee55b9c50e8d9e2da5eeafff3fe58b539" -uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" -version = "0.1.4" - -[[deps.ProgressMeter]] -deps = ["Distributed", "Printf"] -git-tree-sha1 = "d7a7aef8f8f2d537104f170139553b14dfe39fe9" -uuid = "92933f4c-e287-5a05-a399-4b506db050ca" -version = "1.7.2" - -[[deps.ProtoBuf]] -deps = ["Logging", "protoc_jll"] -git-tree-sha1 = "5bb5eb83db702376abe5fb2ef0739b08da3ab461" -uuid = "3349acd9-ac6a-5e09-bcdb-63829b23a429" -version = "0.11.5" - -[[deps.PythonCall]] -deps = ["CondaPkg", "Dates", "Libdl", "MacroTools", "Markdown", "Pkg", "REPL", "Requires", "Serialization", "Tables", "UnsafePointers"] -git-tree-sha1 = "f27dabb05ec811675a9eefe49325a14ae7266b0b" -uuid = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" -version = "0.9.12" - -[[deps.QOI]] -deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] -git-tree-sha1 = "18e8f4d1426e965c7b532ddd260599e1510d26ce" -uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65" -version = "1.0.0" - -[[deps.QhullMiniWrapper_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Qhull_jll"] -git-tree-sha1 = "607cf73c03f8a9f83b36db0b86a3a9c14179621f" -uuid = "460c41e3-6112-5d7f-b78c-b6823adb3f2d" -version = "1.0.0+1" - -[[deps.Qhull_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "238dd7e2cc577281976b9681702174850f8d4cbc" -uuid = "784f63db-0788-585a-bace-daefebcd302b" -version = "8.0.1001+0" - -[[deps.QuadGK]] -deps = ["DataStructures", "LinearAlgebra"] -git-tree-sha1 = "6ec7ac8412e83d57e313393220879ede1740f9ee" -uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" -version = "2.8.2" - -[[deps.Quadmath]] -deps = ["Compat", "Printf", "Random", "Requires"] -git-tree-sha1 = "2e368407cf5879f7ad63027b26e01988acd0e8da" -uuid = "be4d8f0f-7fa4-5f49-b795-2f01399ab2dd" -version = "0.5.8" - -[[deps.Quaternions]] -deps = ["LinearAlgebra", "Random", "RealDot"] -git-tree-sha1 = "da095158bdc8eaccb7890f9884048555ab771019" -uuid = "94ee1d12-ae83-5a48-8b1c-48b8ff168ae0" -version = "0.7.4" - -[[deps.REPL]] -deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] -uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" - -[[deps.Random]] -deps = ["SHA", "Serialization"] -uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" - -[[deps.Random123]] -deps = ["Random", "RandomNumbers"] -git-tree-sha1 = "7a1a306b72cfa60634f03a911405f4e64d1b718b" -uuid = "74087812-796a-5b5d-8853-05524746bad3" -version = "1.6.0" - -[[deps.RandomNumbers]] -deps = ["Random", "Requires"] -git-tree-sha1 = "043da614cc7e95c703498a491e2c21f58a2b8111" -uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" -version = "1.5.3" - -[[deps.RangeArrays]] -git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5" -uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d" -version = "0.3.2" - -[[deps.Ratios]] -deps = ["Requires"] -git-tree-sha1 = "dc84268fe0e3335a62e315a3a7cf2afa7178a734" -uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" -version = "0.4.3" - -[[deps.RealDot]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "9f0a1b71baaf7650f4fa8a1d168c7fb6ee41f0c9" -uuid = "c1ae055f-0cd5-4b69-90a6-9a35b1a98df9" -version = "0.1.0" - -[[deps.RecipesBase]] -deps = ["SnoopPrecompile"] -git-tree-sha1 = "261dddd3b862bd2c940cf6ca4d1c8fe593e457c8" -uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" -version = "1.3.3" - -[[deps.Reexport]] -git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" -uuid = "189a3867-3050-52da-a836-e630ba90ab69" -version = "1.2.2" - -[[deps.RegionTrees]] -deps = ["IterTools", "LinearAlgebra", "StaticArrays"] -git-tree-sha1 = "4618ed0da7a251c7f92e869ae1a19c74a7d2a7f9" -uuid = "dee08c22-ab7f-5625-9660-a9af2021b33f" -version = "0.3.2" - -[[deps.RelocatableFolders]] -deps = ["SHA", "Scratch"] -git-tree-sha1 = "90bc7a7c96410424509e4263e277e43250c05691" -uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" -version = "1.0.0" - -[[deps.Requires]] -deps = ["UUIDs"] -git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" -uuid = "ae029012-a4dd-5104-9daa-d747884805df" -version = "1.3.0" - -[[deps.Revise]] -deps = ["CodeTracking", "Distributed", "FileWatching", "JuliaInterpreter", "LibGit2", "LoweredCodeUtils", "OrderedCollections", "Pkg", "REPL", "Requires", "UUIDs", "Unicode"] -git-tree-sha1 = "feafdc70b2e6684314e188d95fe66d116de834a7" -uuid = "295af30f-e4ad-537b-8983-00126c2a3abe" -version = "3.5.2" - -[[deps.Rmath]] -deps = ["Random", "Rmath_jll"] -git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" -uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" -version = "0.7.1" - -[[deps.Rmath_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" -uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" -version = "0.4.0+0" - -[[deps.Rotations]] -deps = ["LinearAlgebra", "Quaternions", "Random", "StaticArrays", "Statistics"] -git-tree-sha1 = "72a6abdcd088764878b473102df7c09bbc0548de" -uuid = "6038ab10-8711-5258-84ad-4b1120ba62dc" -version = "1.4.0" - -[[deps.SHA]] -uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" -version = "0.7.0" - -[[deps.SIMD]] -deps = ["SnoopPrecompile"] -git-tree-sha1 = "8b20084a97b004588125caebf418d8cab9e393d1" -uuid = "fdea26ae-647d-5447-a871-4b548cad5224" -version = "3.4.4" - -[[deps.SIMDTypes]] -git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" -uuid = "94e857df-77ce-4151-89e5-788b33177be4" -version = "0.1.0" - -[[deps.SLEEFPirates]] -deps = ["IfElse", "Static", "VectorizationBase"] -git-tree-sha1 = "cda0aece8080e992f6370491b08ef3909d1c04e7" -uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" -version = "0.6.38" - -[[deps.ScanByte]] -deps = ["Libdl", "SIMD"] -git-tree-sha1 = "2436b15f376005e8790e318329560dcc67188e84" -uuid = "7b38b023-a4d7-4c5e-8d43-3f3097f304eb" -version = "0.3.3" - -[[deps.Scratch]] -deps = ["Dates"] -git-tree-sha1 = "30449ee12237627992a99d5e30ae63e4d78cd24a" -uuid = "6c6a2e73-6563-6170-7368-637461726353" -version = "1.2.0" - -[[deps.SentinelArrays]] -deps = ["Dates", "Random"] -git-tree-sha1 = "77d3c4726515dca71f6d80fbb5e251088defe305" -uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" -version = "1.3.18" - -[[deps.Serialization]] -uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" - -[[deps.Setfield]] -deps = ["ConstructionBase", "Future", "MacroTools", "Requires"] -git-tree-sha1 = "38d88503f695eb0301479bc9b0d4320b378bafe5" -uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" -version = "0.8.2" - -[[deps.SharedArrays]] -deps = ["Distributed", "Mmap", "Random", "Serialization"] -uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" - -[[deps.ShowCases]] -git-tree-sha1 = "7f534ad62ab2bd48591bdeac81994ea8c445e4a5" -uuid = "605ecd9f-84a6-4c9e-81e2-4798472b76a3" -version = "0.1.0" - -[[deps.Showoff]] -deps = ["Dates", "Grisu"] -git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" -uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" -version = "1.0.3" - -[[deps.SignedDistanceFields]] -deps = ["Random", "Statistics", "Test"] -git-tree-sha1 = "d263a08ec505853a5ff1c1ebde2070419e3f28e9" -uuid = "73760f76-fbc4-59ce-8f25-708e95d2df96" -version = "0.4.0" - -[[deps.SimpleBufferStream]] -git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" -uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" -version = "1.1.0" - -[[deps.SimpleTraits]] -deps = ["InteractiveUtils", "MacroTools"] -git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" -uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" -version = "0.9.4" - -[[deps.SimpleWeightedGraphs]] -deps = ["Graphs", "LinearAlgebra", "Markdown", "SparseArrays", "Test"] -git-tree-sha1 = "7d0b07df35fccf9b866a94bcab98822a87a3cb6f" -uuid = "47aef6b3-ad0c-573a-a1e2-d07658019622" -version = "1.3.0" - -[[deps.Sixel]] -deps = ["Dates", "FileIO", "ImageCore", "IndirectArrays", "OffsetArrays", "REPL", "libsixel_jll"] -git-tree-sha1 = "8fb59825be681d451c246a795117f317ecbcaa28" -uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47" -version = "0.1.2" - -[[deps.SnoopPrecompile]] -deps = ["Preferences"] -git-tree-sha1 = "e760a70afdcd461cf01a575947738d359234665c" -uuid = "66db9d55-30c0-4569-8b51-7e840670fc0c" -version = "1.0.3" - -[[deps.Snowball]] -deps = ["Languages", "Snowball_jll", "WordTokenizers"] -git-tree-sha1 = "d38c1ff8a2fca7b1c65a51457dabebef28052399" -uuid = "fb8f903a-0164-4e73-9ffe-431110250c3b" -version = "0.1.0" - -[[deps.Snowball_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "6ff3a185a583dca7265cbfcaae1da16aa3b6a962" -uuid = "88f46535-a3c0-54f4-998e-4320a1339f51" -version = "2.2.0+0" - -[[deps.Sockets]] -uuid = "6462fe0b-24de-5631-8697-dd941f90decc" - -[[deps.SortingAlgorithms]] -deps = ["DataStructures"] -git-tree-sha1 = "a4ada03f999bd01b3a25dcaa30b2d929fe537e00" -uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" -version = "1.1.0" - -[[deps.SparseArrays]] -deps = ["LinearAlgebra", "Random"] -uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - -[[deps.SpecialFunctions]] -deps = ["ChainRulesCore", "IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "ef28127915f4229c971eb43f3fc075dd3fe91880" -uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.2.0" - -[[deps.SplittablesBase]] -deps = ["Setfield", "Test"] -git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" -uuid = "171d559e-b47b-412a-8079-5efa626c420e" -version = "0.1.15" - -[[deps.StackViews]] -deps = ["OffsetArrays"] -git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c" -uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15" -version = "0.1.1" - -[[deps.Static]] -deps = ["IfElse"] -git-tree-sha1 = "08be5ee09a7632c32695d954a602df96a877bf0d" -uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" -version = "0.8.6" - -[[deps.StaticArrayInterface]] -deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "Requires", "SnoopPrecompile", "SparseArrays", "Static", "SuiteSparse"] -git-tree-sha1 = "fd5f417fd7e103c121b0a0b4a6902f03991111f4" -uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.3.0" - -[[deps.StaticArrays]] -deps = ["LinearAlgebra", "Random", "StaticArraysCore", "Statistics"] -git-tree-sha1 = "70e0cc0c0f9ef7ea76b3d7a50ada18c8c52e69a2" -uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.5.20" - -[[deps.StaticArraysCore]] -git-tree-sha1 = "6b7ba252635a5eff6a0b0664a41ee140a1c9e72a" -uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" -version = "1.4.0" - -[[deps.Statistics]] -deps = ["LinearAlgebra", "SparseArrays"] -uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" - -[[deps.StatsAPI]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "45a7769a04a3cf80da1c1c7c60caf932e6f4c9f7" -uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" -version = "1.6.0" - -[[deps.StatsBase]] -deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] -git-tree-sha1 = "d1bf48bfcc554a3761a133fe3a9bb01488e06916" -uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -version = "0.33.21" - -[[deps.StatsFuns]] -deps = ["ChainRulesCore", "HypergeometricFunctions", "InverseFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] -git-tree-sha1 = "f625d686d5a88bcd2b15cd81f18f98186fdc0c9a" -uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" -version = "1.3.0" - -[[deps.StrTables]] -deps = ["Dates"] -git-tree-sha1 = "5998faae8c6308acc25c25896562a1e66a3bb038" -uuid = "9700d1a9-a7c8-5760-9816-a99fda30bb8f" -version = "1.0.1" - -[[deps.Strided]] -deps = ["LinearAlgebra", "TupleTools"] -git-tree-sha1 = "a7a664c91104329c88222aa20264e1a05b6ad138" -uuid = "5e0ebb24-38b0-5f93-81fe-25c709ecae67" -version = "1.2.3" - -[[deps.StringEncodings]] -deps = ["Libiconv_jll"] -git-tree-sha1 = "33c0da881af3248dafefb939a21694b97cfece76" -uuid = "69024149-9ee7-55f6-a4c4-859efe599b68" -version = "0.3.6" - -[[deps.StringManipulation]] -git-tree-sha1 = "46da2434b41f41ac3594ee9816ce5541c6096123" -uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" -version = "0.3.0" - -[[deps.StructArrays]] -deps = ["Adapt", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] -git-tree-sha1 = "521a0e828e98bb69042fec1809c1b5a680eb7389" -uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" -version = "0.6.15" - -[[deps.StructTypes]] -deps = ["Dates", "UUIDs"] -git-tree-sha1 = "ca4bccb03acf9faaf4137a9abc1881ed1841aa70" -uuid = "856f2bd8-1eba-4b0a-8007-ebc267875bd4" -version = "1.10.0" - -[[deps.SuiteSparse]] -deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] -uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" - -[[deps.TOML]] -deps = ["Dates"] -uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" -version = "1.0.0" - -[[deps.TableShowUtils]] -deps = ["DataValues", "Dates", "JSON", "Markdown", "Test"] -git-tree-sha1 = "14c54e1e96431fb87f0d2f5983f090f1b9d06457" -uuid = "5e66a065-1f0a-5976-b372-e0b8c017ca10" -version = "0.2.5" - -[[deps.TableTraits]] -deps = ["IteratorInterfaceExtensions"] -git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" -uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" -version = "1.0.1" - -[[deps.TableTraitsUtils]] -deps = ["DataValues", "IteratorInterfaceExtensions", "Missings", "TableTraits"] -git-tree-sha1 = "78fecfe140d7abb480b53a44f3f85b6aa373c293" -uuid = "382cd787-c1b6-5bf2-a167-d5b971a19bda" -version = "1.0.2" - -[[deps.Tables]] -deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits", "Test"] -git-tree-sha1 = "1544b926975372da01227b382066ab70e574a3ec" -uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.10.1" - -[[deps.Tar]] -deps = ["ArgTools", "SHA"] -uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" -version = "1.10.1" - -[[deps.TensorBoardLogger]] -deps = ["CRC32c", "FileIO", "ImageCore", "ProtoBuf", "Requires", "StatsBase"] -git-tree-sha1 = "70205612422b8b8f2e1525d0eb0e9a9df4d260f4" -uuid = "899adc3e-224a-11e9-021f-63837185c80f" -version = "0.1.19" - -[[deps.TensorCore]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" -uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" -version = "0.1.1" - -[[deps.Test]] -deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] -uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" - -[[deps.TestSetExtensions]] -deps = ["DeepDiffs", "Distributed", "Test"] -git-tree-sha1 = "3a2919a78b04c29a1a57b05e1618e473162b15d0" -uuid = "98d24dd4-01ad-11ea-1b02-c9a08f80db04" -version = "2.0.0" - -[[deps.TextAnalysis]] -deps = ["DataStructures", "DelimitedFiles", "JSON", "Languages", "LinearAlgebra", "Printf", "ProgressMeter", "Random", "Serialization", "Snowball", "SparseArrays", "Statistics", "StatsBase", "Tables", "WordTokenizers"] -git-tree-sha1 = "bc85e54209c30e69e1925460ec0257a916683f59" -uuid = "a2db99b7-8b79-58f8-94bf-bbc811eef33d" -version = "0.7.3" - -[[deps.TextParse]] -deps = ["CodecZlib", "DataStructures", "Dates", "DoubleFloats", "Mmap", "Nullables", "WeakRefStrings"] -git-tree-sha1 = "eb1f4fb185c8644faa2d18d14c72f2c24412415f" -uuid = "e0df1984-e451-5cb5-8b61-797a481e67e3" -version = "1.0.2" - -[[deps.ThreadingUtilities]] -deps = ["ManualMemory"] -git-tree-sha1 = "c97f60dd4f2331e1a495527f80d242501d2f9865" -uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" -version = "0.5.1" - -[[deps.TiffImages]] -deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"] -git-tree-sha1 = "8621f5c499a8aa4aa970b1ae381aae0ef1576966" -uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" -version = "0.6.4" - -[[deps.TiledIteration]] -deps = ["OffsetArrays"] -git-tree-sha1 = "5683455224ba92ef59db72d10690690f4a8dc297" -uuid = "06e1c1a7-607b-532d-9fad-de7d9aa2abac" -version = "0.3.1" - -[[deps.TimerOutputs]] -deps = ["ExprTools", "Printf"] -git-tree-sha1 = "f2fd3f288dfc6f507b0c3a2eb3bac009251e548b" -uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" -version = "0.5.22" - -[[deps.TranscodingStreams]] -deps = ["Random", "Test"] -git-tree-sha1 = "0b829474fed270a4b0ab07117dce9b9a2fa7581a" -uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.9.12" - -[[deps.Transducers]] -deps = ["Adapt", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] -git-tree-sha1 = "c42fa452a60f022e9e087823b47e5a5f8adc53d5" -uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" -version = "0.4.75" - -[[deps.Tricks]] -git-tree-sha1 = "aadb748be58b492045b4f56166b5188aa63ce549" -uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" -version = "0.1.7" - -[[deps.TriplotBase]] -git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" -uuid = "981d1d27-644d-49a2-9326-4793e63143c3" -version = "0.1.0" - -[[deps.TupleTools]] -git-tree-sha1 = "3c712976c47707ff893cf6ba4354aa14db1d8938" -uuid = "9d95972d-f1c8-5527-a6e0-b4b365fa01f6" -version = "1.3.0" - -[[deps.URIs]] -git-tree-sha1 = "074f993b0ca030848b897beff716d93aca60f06a" -uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" -version = "1.4.2" - -[[deps.UUIDs]] -deps = ["Random", "SHA"] -uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" - -[[deps.UnPack]] -git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" -uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" -version = "1.0.2" - -[[deps.Unicode]] -uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" - -[[deps.UnicodeFun]] -deps = ["REPL"] -git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" -uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" -version = "0.4.1" - -[[deps.UnicodePlots]] -deps = ["Contour", "Crayons", "Dates", "LinearAlgebra", "MarchingCubes", "NaNMath", "SparseArrays", "StaticArrays", "StatsBase", "Unitful"] -git-tree-sha1 = "1785494cb9484f9ab05bbc9d81a2d4de4341eb39" -uuid = "b8865327-cd53-5732-bb35-84acbb429228" -version = "2.9.0" - -[[deps.UnionArrays]] -deps = ["Adapt", "Setfield", "Transducers"] -git-tree-sha1 = "9986eabab3dcfd90cf3a041b7ec5a64fca4aa508" -uuid = "d6dd79e4-993b-11e9-1366-0de1c9fe1122" -version = "0.1.3" - -[[deps.Unitful]] -deps = ["ConstructionBase", "Dates", "LinearAlgebra", "Random"] -git-tree-sha1 = "823d8c0d0955aa6df3f715067ec4536562f42912" -uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" -version = "1.13.0" - -[[deps.UnsafePointers]] -git-tree-sha1 = "c81331b3b2e60a982be57c046ec91f599ede674a" -uuid = "e17b2a0c-0bdf-430a-bd0c-3a23cae4ff39" -version = "1.0.0" - -[[deps.ValueHistories]] -deps = ["DataStructures", "RecipesBase"] -git-tree-sha1 = "9cc583107e0c09b8986ac10660653fa2e37c0f62" -uuid = "98cad3c8-aec3-5f06-8e41-884608649ab7" -version = "0.5.4" - -[[deps.VectorizationBase]] -deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"] -git-tree-sha1 = "b182207d4af54ac64cbc71797765068fdeff475d" -uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" -version = "0.21.64" - -[[deps.WeakRefStrings]] -deps = ["DataAPI", "InlineStrings", "Parsers"] -git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23" -uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5" -version = "1.4.2" - -[[deps.WoodburyMatrices]] -deps = ["LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "de67fa59e33ad156a590055375a30b23c40299d3" -uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" -version = "0.5.5" - -[[deps.WordTokenizers]] -deps = ["DataDeps", "HTML_Entities", "StrTables", "Unicode"] -git-tree-sha1 = "01dd4068c638da2431269f49a5964bf42ff6c9d2" -uuid = "796a5d58-b03d-544a-977e-18100b691f6e" -version = "0.5.6" - -[[deps.WorkerUtilities]] -git-tree-sha1 = "cd1659ba0d57b71a464a29e64dbc67cfe83d54e7" -uuid = "76eceee3-57b5-4d4a-8e66-0e911cebbf60" -version = "1.6.1" - -[[deps.XML2_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "93c41695bc1c08c46c5899f4fe06d6ead504bb73" -uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.10.3+0" - -[[deps.XSLT_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] -git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" -uuid = "aed1982a-8fda-507f-9586-7b0439959a61" -version = "1.1.34+0" - -[[deps.Xorg_libX11_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] -git-tree-sha1 = "5be649d550f3f4b95308bf0183b82e2582876527" -uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" -version = "1.6.9+4" - -[[deps.Xorg_libXau_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "4e490d5c960c314f33885790ed410ff3a94ce67e" -uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" -version = "1.0.9+4" - -[[deps.Xorg_libXdmcp_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "4fe47bd2247248125c428978740e18a681372dd4" -uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" -version = "1.1.3+4" - -[[deps.Xorg_libXext_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] -git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" -uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" -version = "1.3.4+4" - -[[deps.Xorg_libXrender_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] -git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" -uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" -version = "0.9.10+4" - -[[deps.Xorg_libpthread_stubs_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "6783737e45d3c59a4a4c4091f5f88cdcf0908cbb" -uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" -version = "0.1.0+3" - -[[deps.Xorg_libxcb_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] -git-tree-sha1 = "daf17f441228e7a3833846cd048892861cff16d6" -uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" -version = "1.13.0+3" - -[[deps.Xorg_xtrans_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "79c31e7844f6ecf779705fbc12146eb190b7d845" -uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" -version = "1.4.0+3" - -[[deps.ZipFile]] -deps = ["Libdl", "Printf", "Zlib_jll"] -git-tree-sha1 = "f492b7fe1698e623024e873244f10d89c95c340a" -uuid = "a5390f91-8eb1-5f08-bee0-b1d1ffed6cea" -version = "0.10.1" - -[[deps.Zlib_jll]] -deps = ["Libdl"] -uuid = "83775a58-1f1d-513f-b197-d71354ab007a" -version = "1.2.12+3" - -[[deps.Zstd_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" -uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" -version = "1.5.5+0" - -[[deps.Zygote]] -deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArrays", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "Random", "Requires", "SnoopPrecompile", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] -git-tree-sha1 = "987ae5554ca90e837594a0f30325eeb5e7303d1e" -uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" -version = "0.6.60" - -[[deps.ZygoteRules]] -deps = ["ChainRulesCore", "MacroTools"] -git-tree-sha1 = "977aed5d006b840e2e40c0b48984f7463109046d" -uuid = "700de1a5-db45-46bc-99cf-38207098b444" -version = "0.2.3" - -[[deps.isoband_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "51b5eeb3f98367157a7a12a1fb0aa5328946c03c" -uuid = "9a68df92-36a6-505f-a73e-abb412b6bfb4" -version = "0.2.3+0" - -[[deps.libaom_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" -uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" -version = "3.4.0+0" - -[[deps.libass_jll]] -deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] -git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" -uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" -version = "0.15.1+0" - -[[deps.libblastrampoline_jll]] -deps = ["Artifacts", "Libdl", "OpenBLAS_jll"] -uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" -version = "5.1.1+0" - -[[deps.libfdk_aac_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" -uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" -version = "2.0.2+0" - -[[deps.libpng_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] -git-tree-sha1 = "94d180a6d2b5e55e447e2d27a29ed04fe79eb30c" -uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" -version = "1.6.38+0" - -[[deps.libsixel_jll]] -deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "libpng_jll"] -git-tree-sha1 = "d4f63314c8aa1e48cd22aa0c17ed76cd1ae48c3c" -uuid = "075b6546-f08a-558a-be8f-8157d0f608a5" -version = "1.10.3+0" - -[[deps.libvorbis_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] -git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" -uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" -version = "1.3.7+1" - -[[deps.micromamba_jll]] -deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] -git-tree-sha1 = "087555b0405ed6adf526cef22b6931606b5af8ac" -uuid = "f8abcde7-e9b7-5caa-b8af-a437887ae8e4" -version = "1.4.1+0" - -[[deps.nghttp2_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" -version = "1.48.0+0" - -[[deps.p7zip_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" -version = "17.4.0+0" - -[[deps.protoc_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "e18ac87b6080d3fa40253cb898f4b8c075d866be" -uuid = "c7845625-083e-5bbe-8504-b32d602b7110" -version = "3.21.12+1" - -[[deps.x264_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" -uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" -version = "2021.5.5+0" - -[[deps.x265_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" -uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" -version = "3.5.0+0" diff --git a/notebooks/benchmarks.jl b/notebooks/benchmarks.jl index a7c6f97..f8e59dc 100644 --- a/notebooks/benchmarks.jl +++ b/notebooks/benchmarks.jl @@ -1,47 +1,52 @@ ### A Pluto.jl notebook ### -# v0.19.14 +# v0.19.32 using Markdown using InteractiveUtils -# ╔═╡ ffe6663f-cb17-4e92-a175-82eca15564cf -begin - using Pkg -# Pkg.activate(".") -# Pkg.instantiate() -# # Pkg.add("DrWatson") -# # Pkg.add("PlutoUI") -# # Pkg.add("BenchmarkTools") -# # Pkg.add("CairoMakie") -# # Pkg.add("DataFrames") -# # Pkg.add("CSV") - Pkg.add(url="https://github.com/Dale-Black/DistanceTransforms.jl", rev="master") -# # Pkg.add("CUDA") -# # Pkg.add("Losers") -# # Pkg.add("CSVFiles") -# # Pkg.add(url="https://github.com/Dale-Black/DistanceTransformsPy.jl", rev="main") -end +# ╔═╡ 8401528c-5484-42f7-8f92-94dcca409526 +using Pkg; Pkg.instantiate() # ╔═╡ bbb7b211-fa87-489d-87dc-1890cd848812 +# ╠═╡ show_logs = false using DrWatson # ╔═╡ 8cbf0cfd-6b41-4a2c-a4af-a1f43c7afe3f # ╠═╡ show_logs = false @quickactivate "hd-loss" -# ╔═╡ a0bcf2cb-ceb7-400e-b2b8-56ed98fc705a +# ╔═╡ 0354c88d-a4e9-446a-b0dc-7bd36583120d # ╠═╡ show_logs = false -using PlutoUI, BenchmarkTools, CairoMakie, DataFrames, CSV, DistanceTransforms, CUDA, Losers, DistanceTransformsPy, Statistics +begin + using CUDA + CUDA.set_runtime_version!(v"11.8") +end + +# ╔═╡ 09db0c44-358a-4d3d-83e6-f6eed0696013 +# ╠═╡ show_logs = false +using PlutoUI, BenchmarkTools, CairoMakie, DataFrames, CSV, CSVFiles, Statistics + +# ╔═╡ 545b7f75-29b1-438e-883a-e2ded8053eed +using ImageMorphology: distance_transform, feature_transform + +# ╔═╡ 7afb4707-888d-49ff-be62-2db208a57246 +using DistanceTransformsPy: pytransform + +# ╔═╡ 1e38338d-eaa8-4252-9a05-698abe4d7756 +using DistanceTransforms: boolean_indicator, transform + +# ╔═╡ 7e5e5691-0239-4c56-ad98-bce50d3d132c +using Losers: dice_loss, hausdorff_loss # ╔═╡ cbf06207-8ad8-42fa-9758-602bcfe7e4aa TableOfContents() # ╔═╡ e53d73e1-126f-42bd-99df-87b59903eb70 begin - range_size_2d = range(4, 4096, 20) - range_size_3d = range(4, 256, 20) - # range_size_2d = range(4, 512, 5) - # range_size_3d = range(4, 64, 5) + range_size_2D = range(4, 4096, 20) + range_size_3D = range(4, 256, 20) + # range_size_2D = range(4, 512, 2) + # range_size_3D = range(4, 64, 2) end # ╔═╡ 71da875a-8420-4f38-8ddd-eb68c110e6fd @@ -55,64 +60,55 @@ md""" """ # ╔═╡ f3ec467e-ca19-4cd3-917b-2d11344e8785 +# ╠═╡ disabled = true +#=╠═╡ begin - sizes = [] + sizes = Float64[] - dt_scipy = [] - dt_scipy_std = [] + dt_scipy = Float64[] + dt_scipy_std = Float64[] - dt_fenz = [] - dt_fenz_std = [] + dt_maurer = Float64[] + dt_maurer_std = Float64[] - dt_fenz_gpu = [] - dt_fenz_gpu_std = [] + dt_fenz = Float64[] + dt_fenz_std = Float64[] + + dt_proposed = Float64[] + dt_proposed_std = Float64[] - for _n in range_size_2d + for _n in range_size_2D n = round(Int, _n) @info n push!(sizes, n^2) f = Float32.(rand([0, 1], n, n)) - # Python - dt1 = @benchmark DistanceTransformsPy.transform($f, $Scipy()) - push!(dt_scipy, BenchmarkTools.mean(dt1).time) - push!(dt_scipy_std, BenchmarkTools.std(dt1).time) + # Python (Scipy) + dt = @benchmark pytransform($f) + push!(dt_scipy, BenchmarkTools.minimum(dt).time) + push!(dt_scipy_std, BenchmarkTools.std(dt).time) + + # Maurer (ImageMorphology.jl) + bool_f = Bool.(f) + dt = @benchmark distance_transform($feature_transform($bool_f)) + push!(dt_maurer, BenchmarkTools.minimum(dt).time) # ns + push!(dt_maurer_std, BenchmarkTools.std(dt).time) - # Felzenszwalb - nthreads = Threads.nthreads() - dt2 = @benchmark DistanceTransforms.transform(boolean_indicator($f), $Felzenszwalb(), $nthreads) - push!(dt_fenz, BenchmarkTools.mean(dt2).time) - push!(dt_fenz_std, BenchmarkTools.std(dt2).time) + # Felzenszwalb (DistanceTransforms.jl) + dt = @benchmark transform($boolean_indicator($f)) + push!(dt_fenz, BenchmarkTools.minimum(dt).time) + push!(dt_fenz_std, BenchmarkTools.std(dt).time) - # Felzenszwalb GPU + # Proposed-GPU (DistanceTransforms.jl) if has_cuda_gpu() f_cuda = CuArray(f) - # 1st run to compile - temp = DistanceTransforms.transform(boolean_indicator(f_cuda), Felzenszwalb()) - CUDA.unsafe_free!(temp) - CUDA.reclaim() - - # Then custom benchmark - dt3 = [] - for trial = 1:1000 - # run - curr_trial = @timed DistanceTransforms.transform(boolean_indicator(f_cuda), Felzenszwalb()) - # record time - push!(dt3, (curr_trial.time - curr_trial.gctime)*10^9) - # clear mem - CUDA.unsafe_free!(curr_trial.value) - # CUDA.reclaim() - end - curr_trial = nothing - GC.gc(true) - CUDA.reclaim() - - # Record data - push!(dt_fenz_gpu, mean(dt3)) - push!(dt_fenz_gpu_std, Statistics.std(dt3)) + dt = @benchmark transform($boolean_indicator($f_cuda)) + push!(dt_proposed, BenchmarkTools.minimum(dt).time) + push!(dt_proposed_std, BenchmarkTools.std(dt).time) end end end + ╠═╡ =# # ╔═╡ 00bd4240-ad66-4aa2-914b-cdf64fe4d639 md""" @@ -120,66 +116,58 @@ md""" """ # ╔═╡ 37b3e0fc-80d1-427a-bd26-0a17f48db118 +# ╠═╡ disabled = true +#=╠═╡ begin - sizes_3D = [] + sizes_3D = Float64[] - dt_scipy_3D = [] - dt_scipy_std_3D = [] + dt_scipy_3D = Float64[] + dt_scipy_std_3D = Float64[] + + dt_maurer_3D = Float64[] + dt_maurer_std_3D = Float64[] - dt_fenz_3D = [] - dt_fenz_std_3D = [] + dt_fenz_3D = Float64[] + dt_fenz_std_3D = Float64[] - dt_fenz_gpu_3D = [] - dt_fenz_gpu_std_3D = [] + dt_proposed_3D = Float64[] + dt_proposed_std_3D = Float64[] - for _n in range_size_3d + for _n in range_size_3D n = round(Int, _n) @info n push!(sizes_3D, n^3) f = Float32.(rand([0, 1], n, n, n)) - # Python - dt1 = @benchmark DistanceTransformsPy.transform($f, $Scipy()) - push!(dt_scipy_3D, BenchmarkTools.mean(dt1).time) - push!(dt_scipy_std_3D, BenchmarkTools.std(dt1).time) + # Python (Scipy) + dt = @benchmark pytransform($f) + push!(dt_scipy_3D, BenchmarkTools.minimum(dt).time) + push!(dt_scipy_std_3D, BenchmarkTools.std(dt).time) + + # Maurer (ImageMorphology.jl) + bool_f = Bool.(f) + dt = @benchmark distance_transform($feature_transform($bool_f)) + push!(dt_maurer_3D, BenchmarkTools.minimum(dt).time) # ns + push!(dt_maurer_std_3D, BenchmarkTools.std(dt).time) - # Felzenszwalb - nthreads = Threads.nthreads() - dt2 = @benchmark DistanceTransforms.transform(boolean_indicator($f), $Felzenszwalb(), $nthreads) - push!(dt_fenz_3D, BenchmarkTools.mean(dt2).time) - push!(dt_fenz_std_3D, BenchmarkTools.std(dt2).time) + # Felzenszwalb (DistanceTransforms.jl) + dt = @benchmark transform($boolean_indicator($f)) + push!(dt_fenz_3D, BenchmarkTools.minimum(dt).time) + push!(dt_fenz_std_3D, BenchmarkTools.std(dt).time) - # Felzenszwalb GPU + # Proposed-GPU (DistanceTransforms.jl) if has_cuda_gpu() f_cuda = CuArray(f) - # 1st run to compile - temp = DistanceTransforms.transform(boolean_indicator(f_cuda), Felzenszwalb()) - CUDA.unsafe_free!(temp) - CUDA.reclaim() - - # Then custom benchmark - dt3 = [] - for trial = 1:1000 - # run - curr_trial = @timed DistanceTransforms.transform(boolean_indicator(f_cuda), Felzenszwalb()) - # record time - push!(dt3, (curr_trial.time - curr_trial.gctime)*10^9) - # clear mem - CUDA.unsafe_free!(curr_trial.value) - # CUDA.reclaim() - end - curr_trial = nothing - GC.gc(true) - CUDA.reclaim() - - # Record data - push!(dt_fenz_gpu_3D, mean(dt3)) - push!(dt_fenz_gpu_std_3D, Statistics.std(dt3)) + dt = @benchmark transform($boolean_indicator($f_cuda)) + push!(dt_proposed_3D, BenchmarkTools.minimum(dt).time) + push!(dt_proposed_std_3D, BenchmarkTools.std(dt).time) end end end + ╠═╡ =# # ╔═╡ 57dc4b37-7165-4f97-89b6-c2238888db5a +#=╠═╡ let f = CairoMakie.Figure() ax = Axis( @@ -187,25 +175,30 @@ let title="2D" ) - lines!(Float32.(dt_scipy), label="Scipy") - lines!(Float32.(dt_fenz), label="Felzenszwalb (CPU)") - lines!(Float32.(dt_fenz_gpu), label="Felzenszwalb (GPU)") + scatterlines!(dt_scipy, label="Python") + scatterlines!(dt_maurer, label="Maurer") + scatterlines!(dt_fenz, label="Felzenszwalb") + scatterlines!(dt_proposed, label="Proposed") ax = Axis( f[2, 1], title="3D" ) - lines!(Float32.(dt_scipy_3D), label="Scipy") - lines!(Float32.(dt_fenz_3D), label="Felzenszwalb (CPU)") - lines!(Float32.(dt_fenz_gpu_3D), label="Felzenszwalb (GPU)") + scatterlines!(dt_scipy_3D, label="Python") + scatterlines!(dt_maurer_3D, label="Maurer") + scatterlines!(dt_fenz_3D, label="Felzenszwalb") + scatterlines!(dt_proposed_3D, label="Proposed") - f[1:2, 2] = Legend(f, ax, "DT Algorithms", framevisible = false) + f[1:2, 2] = Legend(f, ax, "Distance Transforms", framevisible = false) - Label(f[0, 1:2]; text="Distance Transforms", textsize=30) + Label(f[0, 1:2]; text="Distance Transforms", fontsize=30) f end + ╠═╡ =# # ╔═╡ 709116ce-64d2-4407-aad5-22c256cf9de7 +# ╠═╡ disabled = true +#=╠═╡ begin global df_dt if has_cuda_gpu() @@ -213,38 +206,50 @@ begin sizes = sizes, dt_scipy = dt_scipy, dt_scipy_std = dt_scipy_std, + dt_maurer = dt_maurer, + dt_maurer_std = dt_maurer_std, dt_fenz = dt_fenz, dt_fenz_std = dt_fenz_std, - dt_fenz_gpu = dt_fenz_gpu, - dt_fenz_gpu_std = dt_fenz_gpu_std, + dt_proposed = dt_proposed, + dt_proposed_std = dt_proposed_std, sizes_3D = sizes_3D, dt_scipy_3D = dt_scipy_3D, dt_scipy_std_3D = dt_scipy_std_3D, + dt_maurer_3D = dt_maurer_3D, + dt_maurer_std_3D = dt_maurer_std_3D, dt_fenz_3D = dt_fenz_3D, dt_fenz_std_3D = dt_fenz_std_3D, - dt_fenz_gpu_3D = dt_fenz_gpu_3D, - dt_fenz_gpu_std_3D = dt_fenz_gpu_std_3D, + dt_proposed_3D = dt_proposed_3D, + dt_proposed_std_3D = dt_proposed_std_3D, ) else df_dt = DataFrame( sizes = sizes, dt_scipy = dt_scipy, dt_scipy_std = dt_scipy_std, + dt_maurer = dt_maurer, + dt_maurer_std = dt_maurer_std, dt_fenz = dt_fenz, dt_fenz_std = dt_fenz_std, sizes_3D = sizes_3D, dt_scipy_3D = dt_scipy_3D, dt_scipy_std_3D = dt_scipy_std_3D, + dt_maurer_3D = dt_maurer_3D, + dt_maurer_std_3D = dt_maurer_std_3D, dt_fenz_3D = dt_fenz_3D, dt_fenz_std_3D = dt_fenz_std_3D, ) end end + ╠═╡ =# # ╔═╡ df1e62e3-4ff7-4ca5-bce9-ce4a29c34ec9 +# ╠═╡ disabled = true +#=╠═╡ save(datadir("results", "dts.csv"), df_dt) + ╠═╡ =# # ╔═╡ 11431e55-0f01-441a-8855-24952f8bbfcd md""" @@ -256,80 +261,83 @@ md""" ## 2D """ -# ╔═╡ 070822e7-bf8e-4622-99a2-8ff96527568b -function my_hausdorff(ŷ, y, ŷ_dtm, y_dtm) - return mean((ŷ .- y) .^ 2 .* (ŷ_dtm .+ y_dtm)) -end - # ╔═╡ 9e11696a-9961-4ad1-a9a7-d70fdbd5423c begin - sizes_hd = [] + sizes_hd = Float64[] + + dice = Float64[] + dice_std = Float64[] - hd_scipy = [] - hd_scipy_std = [] + hd_scipy = Float64[] + hd_scipy_std = Float64[] + + hd_maurer = Float64[] + hd_maurer_std = Float64[] - hd_fenz = [] - hd_fenz_std = [] + hd_fenz = Float64[] + hd_fenz_std = Float64[] - hd_fenz_gpu = [] - hd_fenz_gpu_std = [] + hd_proposed = Float64[] + hd_proposed_std = Float64[] - for _n in range_size_2d + for _n in range_size_2D n = round(Int, _n) @info n - nthreads = Threads.nthreads() push!(sizes_hd, n^2) f = Float32.(rand([0, 1], n, n)) f2 = Float32.(rand([0, 1], n, n)) + + # Dice Loss (Losers.jl) + loss = @benchmark dice_loss( + $f, + $f2 + ) + push!(dice, BenchmarkTools.minimum(loss).time) + push!(dice_std, BenchmarkTools.std(loss).time) - # Scipy - dt1 = @benchmark my_hausdorff($f, $f2, DistanceTransformsPy.transform($f, $Scipy()), DistanceTransformsPy.transform($f2, $Scipy())) - - push!(hd_scipy, BenchmarkTools.mean(dt1).time) - push!(hd_scipy_std, BenchmarkTools.std(dt1).time) - - # Felzenszwalb - dt2 = @benchmark my_hausdorff($f, $f2, DistanceTransforms.transform(boolean_indicator($f), $Felzenszwalb(), $nthreads), DistanceTransforms.transform(boolean_indicator($f2), $Felzenszwalb(), $nthreads)) + # Python Hausdorff Loss (Scipy) + loss = @benchmark hausdorff_loss( + $f, + $f2, + $pytransform($f), + $pytransform($f2) + ) + push!(hd_scipy, BenchmarkTools.minimum(loss).time) + push!(hd_scipy_std, BenchmarkTools.std(loss).time) + + # Maurer Hausdorff Loss (ImageMorphology.jl) + f_bool, f2_bool = Bool.(f), Bool.(f2) + loss = @benchmark hausdorff_loss( + $f_bool, + $f2_bool, + $distance_transform($feature_transform($f_bool)), + $distance_transform($feature_transform($f2_bool)), + ) + push!(hd_maurer, BenchmarkTools.minimum(loss).time) + push!(hd_maurer_std, BenchmarkTools.std(loss).time) - push!(hd_fenz, BenchmarkTools.mean(dt2).time) - push!(hd_fenz_std, BenchmarkTools.std(dt2).time) + # Felzenszwalb Hausdorff Loss (DistanceTransforms.jl) + loss = @benchmark hausdorff_loss( + $f, + $f2, + $transform($boolean_indicator($f)), + $transform($boolean_indicator($f)) + ) + push!(hd_fenz, BenchmarkTools.minimum(loss).time) + push!(hd_fenz_std, BenchmarkTools.std(loss).time) - # Felzenszwalb GPU + # Proposed Hausdorff Loss (DistanceTransforms.jl) if has_cuda_gpu() f_cuda = CuArray(f) f2_cuda = CuArray(f2) - # 1st run to compile - f_dtm = DistanceTransforms.transform(boolean_indicator(f_cuda), Felzenszwalb()) - f2_dtm = DistanceTransforms.transform(boolean_indicator(f2_cuda), Felzenszwalb()) - temp = my_hausdorff(f_cuda, f2_cuda, f_dtm, f2_dtm) - f_dtm, f2_dtm, temp = nothing, nothing, nothing - GC.gc(true) - CUDA.reclaim() - - # Then custom benchmark - dt3 = [] - for trial = 1:1000 - # run - curr_trial = @timed begin - f_dtm = DistanceTransforms.transform(boolean_indicator(f_cuda), Felzenszwalb()) - f2_dtm = DistanceTransforms.transform(boolean_indicator(f2_cuda), Felzenszwalb()) - temp = my_hausdorff(f_cuda, f2_cuda, f_dtm, f2_dtm) - end - - # clear mem - CUDA.unsafe_free!(f_dtm) - CUDA.unsafe_free!(f2_dtm) - temp = nothing - - # record time - push!(dt3, (curr_trial.time - curr_trial.gctime)*10^9) - end - GC.gc(true) - CUDA.reclaim() - - # Record data - push!(hd_fenz_gpu, mean(dt3)) - push!(hd_fenz_gpu_std, Statistics.std(dt3)) + loss = @benchmark hausdorff_loss( + $f_cuda, + $f2_cuda, + $transform($boolean_indicator($f_cuda)), + $transform($boolean_indicator($f2_cuda)) + ) + push!(hd_proposed, BenchmarkTools.minimum(loss).time) + push!(hd_proposed_std, BenchmarkTools.std(loss).time) end end end @@ -341,73 +349,81 @@ md""" # ╔═╡ 8327f001-b7e6-4f9c-8bef-21c4e992b7be begin - sizes_hd_3D = [] + sizes_hd_3D = Float64[] + + dice_3D = Float64[] + dice_std_3D = Float64[] + + hd_scipy_3D = Float64[] + hd_scipy_std_3D = Float64[] - hd_scipy_3D = [] - hd_scipy_std_3D = [] + hd_maurer_3D = Float64[] + hd_maurer_std_3D = Float64[] - hd_fenz_3D = [] - hd_fenz_std_3D = [] + hd_fenz_3D = Float64[] + hd_fenz_std_3D = Float64[] - hd_fenz_gpu_3D = [] - hd_fenz_gpu_std_3D = [] + hd_proposed_3D = Float64[] + hd_proposed_std_3D = Float64[] - for _n in range_size_3d + for _n in range_size_3D n = round(Int, _n) @info n - nthreads = Threads.nthreads() - push!(sizes_hd_3D, n^3) + push!(sizes_hd_3D, n^2) f = Float32.(rand([0, 1], n, n, n)) f2 = Float32.(rand([0, 1], n, n, n)) + + # Dice Loss (Losers.jl) + loss = @benchmark dice_loss( + $f, + $f2 + ) + push!(dice_3D, BenchmarkTools.minimum(loss).time) + push!(dice_std_3D, BenchmarkTools.std(loss).time) - # Scipy - dt1 = @benchmark my_hausdorff($f, $f2, DistanceTransformsPy.transform($f, $Scipy()), DistanceTransformsPy.transform($f2, $Scipy())) - - push!(hd_scipy_3D, BenchmarkTools.mean(dt1).time) - push!(hd_scipy_std_3D, BenchmarkTools.std(dt1).time) - - # Felzenszwalb - dt2 = @benchmark my_hausdorff($f, $f2, DistanceTransforms.transform(boolean_indicator($f), $Felzenszwalb(), $nthreads), DistanceTransforms.transform(boolean_indicator($f2), $Felzenszwalb(), $nthreads)) + # Python Hausdorff Loss (Scipy) + loss = @benchmark hausdorff_loss( + $f, + $f2, + $pytransform($f), + $pytransform($f2) + ) + push!(hd_scipy_3D, BenchmarkTools.minimum(loss).time) + push!(hd_scipy_std_3D, BenchmarkTools.std(loss).time) + + # Maurer Hausdorff Loss (ImageMorphology.jl) + f_bool, f2_bool = Bool.(f), Bool.(f2) + loss = @benchmark hausdorff_loss( + $f_bool, + $f2_bool, + $distance_transform($feature_transform($f_bool)), + $distance_transform($feature_transform($f2_bool)), + ) + push!(hd_maurer_3D, BenchmarkTools.minimum(loss).time) + push!(hd_maurer_std_3D, BenchmarkTools.std(loss).time) - push!(hd_fenz_3D, BenchmarkTools.mean(dt2).time) - push!(hd_fenz_std_3D, BenchmarkTools.std(dt2).time) + # Felzenszwalb Hausdorff Loss (DistanceTransforms.jl) + loss = @benchmark hausdorff_loss( + $f, + $f2, + $transform($boolean_indicator($f)), + $transform($boolean_indicator($f)) + ) + push!(hd_fenz_3D, BenchmarkTools.minimum(loss).time) + push!(hd_fenz_std_3D, BenchmarkTools.std(loss).time) - # Felzenszwalb GPU + # Felzenszwalb GPU if has_cuda_gpu() f_cuda = CuArray(f) f2_cuda = CuArray(f2) - # 1st run to compile - f_dtm = DistanceTransforms.transform(boolean_indicator(f_cuda), Felzenszwalb()) - f2_dtm = DistanceTransforms.transform(boolean_indicator(f2_cuda), Felzenszwalb()) - temp = my_hausdorff(f_cuda, f2_cuda, f_dtm, f2_dtm) - f_dtm, f2_dtm, temp = nothing, nothing, nothing - GC.gc(true) - CUDA.reclaim() - - # Then custom benchmark - dt3 = [] - for trial = 1:1000 - # run - curr_trial = @timed begin - f_dtm = DistanceTransforms.transform(boolean_indicator(f_cuda), Felzenszwalb()) - f2_dtm = DistanceTransforms.transform(boolean_indicator(f2_cuda), Felzenszwalb()) - temp = my_hausdorff(f_cuda, f2_cuda, f_dtm, f2_dtm) - end - - # clear mem - CUDA.unsafe_free!(f_dtm) - CUDA.unsafe_free!(f2_dtm) - temp = nothing - - # record time - push!(dt3, (curr_trial.time - curr_trial.gctime)*10^9) - end - GC.gc(true) - CUDA.reclaim() - - # Record data - push!(hd_fenz_gpu_3D, mean(dt3)) - push!(hd_fenz_gpu_std_3D, Statistics.std(dt3)) + loss = @benchmark hausdorff_loss( + $f_cuda, + $f2_cuda, + $transform($boolean_indicator($f_cuda)), + $transform($boolean_indicator($f2_cuda)) + ) + push!(hd_proposed_3D, BenchmarkTools.minimum(loss).time) + push!(hd_proposed_std_3D, BenchmarkTools.std(loss).time) end end end @@ -419,22 +435,26 @@ let f[1, 1], title="2D" ) - lines!(Float32.(hd_scipy), label="Scipy") - lines!(Float32.(hd_fenz), label="Felzenszwalb (CPU)") - lines!(Float32.(hd_fenz_gpu), label="Felzenszwalb (GPU)") + scatterlines!(dice, label="Dice Loss") + scatterlines!(hd_scipy, label="Python Hausdorff Loss") + scatterlines!(hd_maurer, label="Maurer Hausdorff Loss") + scatterlines!(hd_fenz, label="Felzenszwalb Hausdorff Loss") + scatterlines!(hd_proposed, label="Proposed Hausdorff Loss") ax = Axis( f[2, 1], title="3D" ) - lines!(Float32.(hd_scipy_3D), label="Scipy") - lines!(Float32.(hd_fenz_3D), label="Felzenszwalb (CPU)") - lines!(Float32.(hd_fenz_gpu_3D), label="Felzenszwalb (GPU)") + scatterlines!(dice_3D, label="Dice Loss") + scatterlines!(hd_scipy_3D, label="Python Hausdorff Loss") + scatterlines!(hd_maurer_3D, label="Maurer Hausdorff Loss") + scatterlines!(hd_fenz_3D, label="Felzenszwalb Hausdorff Loss") + scatterlines!(hd_proposed_3D, label="Proposed Hausdorff Loss") - f[1:2, 2] = Legend(f, ax, "HD Algorithms", framevisible = false) + f[1:2, 2] = Legend(f, ax, "Loss Functions", framevisible = false) - Label(f[0, 1:2]; text="Loss Functions", textsize=30) + Label(f[0, 1:2]; text="Loss Functions", fontsize=30) f end @@ -445,31 +465,47 @@ begin if has_cuda_gpu() df_loss = DataFrame( sizes_hd = sizes_hd, + dice = dice, + dice_std = dice_std, hd_scipy = hd_scipy, hd_scipy_std = hd_scipy_std, + hd_maurer = hd_maurer, + hd_maurer_std = hd_maurer_std, hd_fenz = hd_fenz, hd_fenz_std = hd_fenz_std, - hd_fenz_gpu = hd_fenz_gpu, - hd_fenz_gpu_std = hd_fenz_gpu_std, + hd_proposed = hd_proposed, + hd_proposed_std = hd_proposed_std, sizes_hd_3D = sizes_hd_3D, + dice_3D = dice_3D, + dice_std_3D = dice_std_3D, hd_scipy_3D = hd_scipy_3D, hd_scipy_std_3D = hd_scipy_std_3D, + hd_maurer_3D = hd_maurer_3D, + hd_maurer_std_3D = hd_maurer_std_3D, hd_fenz_3D = hd_fenz_3D, hd_fenz_std_3D = hd_fenz_std_3D, - hd_fenz_gpu_3D = hd_fenz_gpu_3D, - hd_fenz_gpu_std_3D = hd_fenz_gpu_std_3D, + hd_proposed_3D = hd_proposed_3D, + hd_proposed_std_3D = hd_proposed_std_3D, ) else df_loss = DataFrame( sizes_hd = sizes_hd, + dice = dice, + dice_std = dice_std, hd_scipy = hd_scipy, hd_scipy_std = hd_scipy_std, + hd_maurer = hd_maurer, + hd_maurer_std = hd_maurer_std, hd_fenz = hd_fenz, hd_fenz_std = hd_fenz_std, sizes_hd_3D = sizes_hd_3D, + dice_3D = dice_3D, + dice_std_3D = dice_std_3D, hd_scipy_3D = hd_scipy_3D, + hd_maurer_3D = hd_maurer_3D, + hd_maurer_std_3D = hd_maurer_std_3D, hd_scipy_std_3D = hd_scipy_std_3D, hd_fenz_3D = hd_fenz_3D, hd_fenz_std_3D = hd_fenz_std_3D, @@ -481,10 +517,15 @@ end save(datadir("results", "losses.csv"), df_loss) # ╔═╡ Cell order: -# ╠═ffe6663f-cb17-4e92-a175-82eca15564cf # ╠═bbb7b211-fa87-489d-87dc-1890cd848812 # ╠═8cbf0cfd-6b41-4a2c-a4af-a1f43c7afe3f -# ╠═a0bcf2cb-ceb7-400e-b2b8-56ed98fc705a +# ╠═8401528c-5484-42f7-8f92-94dcca409526 +# ╠═0354c88d-a4e9-446a-b0dc-7bd36583120d +# ╠═09db0c44-358a-4d3d-83e6-f6eed0696013 +# ╠═545b7f75-29b1-438e-883a-e2ded8053eed +# ╠═7afb4707-888d-49ff-be62-2db208a57246 +# ╠═1e38338d-eaa8-4252-9a05-698abe4d7756 +# ╠═7e5e5691-0239-4c56-ad98-bce50d3d132c # ╠═cbf06207-8ad8-42fa-9758-602bcfe7e4aa # ╠═e53d73e1-126f-42bd-99df-87b59903eb70 # ╟─71da875a-8420-4f38-8ddd-eb68c110e6fd @@ -493,11 +534,10 @@ save(datadir("results", "losses.csv"), df_loss) # ╟─00bd4240-ad66-4aa2-914b-cdf64fe4d639 # ╠═37b3e0fc-80d1-427a-bd26-0a17f48db118 # ╟─57dc4b37-7165-4f97-89b6-c2238888db5a -# ╟─709116ce-64d2-4407-aad5-22c256cf9de7 +# ╠═709116ce-64d2-4407-aad5-22c256cf9de7 # ╠═df1e62e3-4ff7-4ca5-bce9-ce4a29c34ec9 # ╟─11431e55-0f01-441a-8855-24952f8bbfcd # ╟─e908389d-671f-4cea-a717-218cb6e00bd7 -# ╠═070822e7-bf8e-4622-99a2-8ff96527568b # ╠═9e11696a-9961-4ad1-a9a7-d70fdbd5423c # ╟─1d51b3af-6819-4996-8eea-8285b5c7a1b3 # ╠═8327f001-b7e6-4f9c-8bef-21c4e992b7be diff --git a/notebooks/heart_training.jl b/notebooks/heart_training.jl new file mode 100644 index 0000000..8de3fbb --- /dev/null +++ b/notebooks/heart_training.jl @@ -0,0 +1,3127 @@ +### A Pluto.jl notebook ### +# v0.19.32 + +using Markdown +using InteractiveUtils + +# This Pluto notebook uses @bind for interactivity. When running this notebook outside of Pluto, the following 'mock version' of @bind gives bound variables a default value (instead of an error). +macro bind(def, element) + quote + local iv = try Base.loaded_modules[Base.PkgId(Base.UUID("6e696c72-6542-2067-7265-42206c756150"), "AbstractPlutoDingetjes")].Bonds.initial_value catch; b -> missing; end + local el = $(esc(element)) + global $(esc(def)) = Core.applicable(Base.get, el) ? Base.get(el) : iv(el) + el + end +end + +# ╔═╡ 8d4a6d5a-c437-43bb-a3db-ab961b218c2e +using PlutoUI: TableOfContents, Slider, bind + +# ╔═╡ 83b95cee-90ed-4522-b9a8-79c082fce02e +using Random: default_rng, seed! + +# ╔═╡ 7353b7ce-8b33-4602-aed7-2aa24864aca5 +using HTTP: download + +# ╔═╡ de5efc37-db19-440e-9487-9a7bea84996d +using Tar: extract + +# ╔═╡ 3ab44a2a-692f-4603-a5a8-81f1d260c13e +using MLUtils: DataLoader, splitobs, mapobs, getobs + +# ╔═╡ 562b3772-89cc-4390-87c3-e7260c8aa86b +using NIfTI: niread + +# ╔═╡ db2ccf3a-437a-4dfa-ad05-2526c0e2bde0 +using Glob: glob + +# ╔═╡ 6727ede2-57db-4f0d-b264-ae478e1058ec +using LuxCUDA + +# ╔═╡ 8e2f2c6d-127d-42a6-9906-970c09a22e61 +using CairoMakie: Figure, Axis, heatmap! + +# ╔═╡ a3f44d7c-efa3-41d0-9509-b099ab7f09d4 +using Lux + +# ╔═╡ a6669580-de24-4111-a7cb-26d3e727a12e +using DistanceTransforms: transform, boolean_indicator + +# ╔═╡ dfc9377a-7cc1-43ba-bb43-683d24e67d79 +using ComputerVisionMetrics: hausdorff_metric, dice_metric + +# ╔═╡ c283f9a3-6a76-4186-859f-21cd9efc131f +using ChainRulesCore: ignore_derivatives + +# ╔═╡ c8d6553a-90df-4aeb-aa6d-a213e16fab48 +TableOfContents() + +# ╔═╡ af50e5f3-1a1c-47e5-a461-ffbee0329309 +begin + rng = default_rng() + seed!(rng, 0) +end + +# ╔═╡ 10f0f5c4-86a3-4913-aca4-3dc466a3c902 +function download_dataset(heart_url, target_directory) + if isempty(readdir(target_directory)) + local_tar_file = joinpath(target_directory, "heart_dataset.tar") + download(heart_url, "heart_dataset.tar") + extract("heart_dataset.tar", target_directory) + data_dir = joinpath(target_directory, readdir(target_directory)...) + return data_dir + else + @warn "Target directory is not empty. Aborting download and extraction." + return taget_directory + end +end + +# ╔═╡ ab48404f-ca08-436a-9881-23fb9a28e47b +heart_url = "https://msd-for-monai.s3-us-west-2.amazonaws.com/Task02_Heart.tar" + +# ╔═╡ f106e5b2-6c68-4841-8379-aa8f99cbfd1b +target_directory = mktempdir() + +# ╔═╡ 50dab23a-3449-490d-9613-d006752b65d0 +# ╠═╡ show_logs = false +data_dir = download_dataset(heart_url, target_directory) + +# ╔═╡ 4fd5a70b-53d5-418e-9615-75a6fafae343 +begin + struct ImageCASDataset + image_paths::Vector{String} + label_paths::Vector{String} + end + + function ImageCASDataset(root_dir::String) + image_paths = glob("*.nii*", joinpath(root_dir, "imagesTr")) + label_paths = glob("*.nii*", joinpath(root_dir, "labelsTr")) + return ImageCASDataset(image_paths, label_paths) + end + + Base.length(d::ImageCASDataset) = length(d.image_paths) + + function Base.getindex(d::ImageCASDataset, i::Int) + image = niread(d.image_paths[i]).raw + label = niread(d.label_paths[i]).raw + return (image, label) + end + + function Base.getindex(d::ImageCASDataset, idxs::AbstractVector{Int}) + images = Vector{Array{Float32, 3}}(undef, length(idxs)) + labels = Vector{Array{UInt8, 3}}(undef, length(idxs)) + for (index, i) in enumerate(idxs) + images[index] = niread(d.image_paths[i]).raw + labels[index] = niread(d.label_paths[i]).raw + end + return (images, labels) + end + +end + +# ╔═╡ af798f6b-7549-4253-b02b-2ed20dc1125b +md""" +# Randomness +""" + +# ╔═╡ f0e64ba5-5e11-4ddb-91d3-2a34c60dc6bf +md""" +# Data Preparation +""" + +# ╔═╡ 2fafd628-37af-43e1-ba49-5d5702e20b41 +md""" +## Dataset +""" + +# ╔═╡ 6f327dcc-b617-4066-89d8-a70d2dd109d4 +data = ImageCASDataset(data_dir) + +# ╔═╡ c9eeebd2-f017-4863-810f-2111d5be2b85 +md""" +## Preprocessing +""" + +# ╔═╡ e49721a6-b9f4-4221-9704-fc4e89d502be +function center_crop(volume::Array{T, 3}, target_size::Tuple{Int, Int, Int}) where {T} + center = div.(size(volume), 2) + + start_idx = max.(1, center .- div.(target_size, 2)) + end_idx = start_idx .+ target_size .- 1 + + cropped_volume = volume[start_idx[1]:end_idx[1], start_idx[2]:end_idx[2], start_idx[3]:end_idx[3]] + return cropped_volume +end + +# ╔═╡ 6a286450-6d05-4fd0-928c-ee45c0dfd9fa +function one_hot_encode(label::Array{T, 3}, num_classes::Int) where {T} + one_hot = zeros(T, size(label)..., num_classes) + + for k in 1:num_classes + one_hot[:, :, :, k] = label .== k-1 + end + + return one_hot +end + +# ╔═╡ 87e1e444-fcdc-416d-a3c9-9bedcfaff489 +function preprocess_image_label_pair(pair, target_size) + # Check if pair[1] and pair[2] are individual arrays or collections of arrays + is_individual = ndims(pair[1]) == 3 && ndims(pair[2]) == 3 + + if is_individual + # Handle a single pair + cropped_image = center_crop(pair[1], target_size) + cropped_label = one_hot_encode(center_crop(pair[2], target_size), 2) + processed_image = reshape(cropped_image, size(cropped_image)..., 1) + return (processed_image, cropped_label) + else + # Handle a batch of pairs + cropped_images = [center_crop(img, target_size) for img in pair[1]] + cropped_labels = [one_hot_encode(center_crop(lbl, target_size), 2) for lbl in pair[2]] + processed_images = [reshape(img, size(img)..., 1) for img in cropped_images] + return (processed_images, cropped_labels) + end +end + +# ╔═╡ e4df967e-7532-4a29-8bb2-9ace78e87eba +if LuxCUDA.functional() + target_size = (128, 128, 64) +else + target_size = (64, 64, 32) +end + +# ╔═╡ c2dcef00-9430-466f-8ca1-f135caefde2b +transformed_data = mapobs( + x -> preprocess_image_label_pair(x, target_size), + data +) + +# ╔═╡ e4e695dd-9d49-4384-b0ae-ea20f7a3f576 +md""" +## Dataloaders +""" + +# ╔═╡ 00844aac-3f48-400c-9baa-3b2d6fcfbe74 +train_indices, val_indices = splitobs(1:length(data); at = 0.75) + +# ╔═╡ 298db622-9bc3-428b-bc40-dd51acb32cd2 +bs = 4 + +# ╔═╡ 29d50357-630e-4448-a46f-43d9b949e1c4 +begin + train_loader = DataLoader(transformed_data[train_indices]; batchsize = bs, collate = true) + val_loader = DataLoader(transformed_data[val_indices]; batchsize = bs, collate = true) +end + +# ╔═╡ 2ec43028-c1ab-4df7-9cfe-cc1a4919a7cf +md""" +# Data Visualization +""" + +# ╔═╡ a6316144-c809-4d2a-bda1-d5128dcf89d3 +md""" +## Original Data +""" + +# ╔═╡ f8fc2cee-c1bd-477d-9595-9427e8764bd6 +image_raw, label_raw = getobs(data, 1); + +# ╔═╡ 7cb986f8-b338-4046-b569-493e443a8dcb +@bind z1 Slider(axes(image_raw, 3), show_value = true, default = div(size(image_raw, 3), 2)) + +# ╔═╡ d7e75a72-8281-432c-abab-c254f8c94d3c +let + f = Figure(size = (700, 500)) + ax = Axis( + f[1, 1], + title = "Original Image" + ) + heatmap!(image_raw[:, :, z1]; colormap = :grays) + + ax = Axis( + f[1, 2], + title = "Original Label (Overlayed)" + ) + heatmap!(image_raw[:, :, z1]; colormap = :grays) + heatmap!(label_raw[:, :, z1]; colormap = (:jet, 0.4)) + f +end + +# ╔═╡ 9dc89870-3d99-472e-8974-712e34a3a789 +md""" +## Transformed Data +""" + +# ╔═╡ 0f5d7796-2c3d-4b74-86c1-a1d4e3922011 +image_tfm, label_tfm = getobs(transformed_data, 1); + +# ╔═╡ 6e2bfcfb-77e3-4532-a14d-10f4b91f2f54 +@bind z2 Slider(1:target_size[3], show_value = true, default = div(target_size[3], 2)) + +# ╔═╡ bae79c05-034a-4c39-801a-01229b618e94 +let + f = Figure(size = (700, 500)) + ax = Axis( + f[1, 1], + title = "Transformed Image" + ) + heatmap!(image_tfm[:, :, z2, 1]; colormap = :grays) + + ax = Axis( + f[1, 2], + title = "Transformed Label (Overlayed)" + ) + heatmap!(image_tfm[:, :, z2, 1]; colormap = :grays) + heatmap!(label_tfm[:, :, z2, 2]; colormap = (:jet, 0.4)) + f +end + +# ╔═╡ 1494df6e-f407-42c4-8404-1f4871a2f817 +md""" +# Model +""" + +# ╔═╡ b3fc9578-6b40-4afc-bb58-c772a61a60a5 +md""" +## Helper functions +""" + +# ╔═╡ 3e938872-a390-40ba-8b00-b132f988e2d3 +function create_unet_layers( + kernel_size, de_kernel_size, channel_list; + downsample = true) + + padding = (kernel_size - 1) ÷ 2 + + conv1 = Conv((kernel_size, kernel_size, kernel_size), channel_list[1] => channel_list[2], stride=1, pad=padding) + conv2 = Conv((kernel_size, kernel_size, kernel_size), channel_list[2] => channel_list[3], stride=1, pad=padding) + + relu1 = relu + relu2 = relu + bn1 = BatchNorm(channel_list[2]) + bn2 = BatchNorm(channel_list[3]) + + bridge_conv = Conv((kernel_size, kernel_size, kernel_size), channel_list[1] => channel_list[3], stride=1, pad=padding) + + if downsample + sample = Chain( + Conv((de_kernel_size, de_kernel_size, de_kernel_size), channel_list[3] => channel_list[3], stride=2, pad=(de_kernel_size - 1) ÷ 2, dilation=1), + BatchNorm(channel_list[3]), + relu + ) + else + sample = Chain( + ConvTranspose((de_kernel_size, de_kernel_size, de_kernel_size), channel_list[3] => channel_list[3], stride=2, pad=(de_kernel_size - 1) ÷ 2), + BatchNorm(channel_list[3]), + relu + ) + end + + return (conv1, conv2, relu1, relu2, bn1, bn2, bridge_conv, sample) +end + +# ╔═╡ 1d65b1d1-82de-40ca-aaba-9eee23883cf3 +md""" +## Contracting Block +""" + +# ╔═╡ 40762509-b26e-47f5-8b49-e7100fdeb72a +begin + struct ContractBlock <: Lux.AbstractExplicitContainerLayer{ + (:conv1, :conv2, :bn1, :bn2, :bridge_conv, :sample) + } + conv1::Conv + conv2::Conv + relu1::Function + relu2::Function + bn1::BatchNorm + bn2::BatchNorm + bridge_conv::Conv + sample::Chain + end + + function ContractBlock( + kernel_size, de_kernel_size, channel_list; + downsample = true + ) + + + conv1, conv2, relu1, relu2, bn1, bn2, bridge_conv, sample = create_unet_layers( + kernel_size, de_kernel_size, channel_list; + downsample = downsample + ) + + ContractBlock(conv1, conv2, relu1, relu2, bn1, bn2, bridge_conv, sample) + end + + function (m::ContractBlock)(x, ps, st::NamedTuple) + res, st_bridge_conv = m.bridge_conv(x, ps.bridge_conv, st.bridge_conv) + x, st_conv1 = m.conv1(x, ps.conv1, st.conv1) + x, st_bn1 = m.bn1(x, ps.bn1, st.bn1) + x = relu(x) + + x, st_conv2 = m.conv2(x, ps.conv2, st.conv2) + x, st_bn2 = m.bn2(x, ps.bn2, st.bn2) + x = relu(x) + + x = x .+ res + + next_layer, st_sample = m.sample(x, ps.sample, st.sample) + + st = (conv1=st_conv1, conv2=st_conv2, bn1=st_bn1, bn2=st_bn2, bridge_conv=st_bridge_conv, sample=st_sample) + return next_layer, x, st + end +end + +# ╔═╡ 91e05c6c-e9b3-4a72-84a5-2ce4b1359b1a +md""" +## Expanding Block +""" + +# ╔═╡ 70614cac-2e06-48a9-9cf6-9078bc7436bc +begin + struct ExpandBlock <: Lux.AbstractExplicitContainerLayer{ + (:conv1, :conv2, :bn1, :bn2, :bridge_conv, :sample) + } + conv1::Conv + conv2::Conv + relu1::Function + relu2::Function + bn1::BatchNorm + bn2::BatchNorm + bridge_conv::Conv + sample::Chain + end + + function ExpandBlock( + kernel_size, de_kernel_size, channel_list; + downsample = false) + + conv1, conv2, relu1, relu2, bn1, bn2, bridge_conv, sample = create_unet_layers( + kernel_size, de_kernel_size, channel_list; + downsample = downsample + ) + + ExpandBlock(conv1, conv2, relu1, relu2, bn1, bn2, bridge_conv, sample) + end + + function (m::ExpandBlock)(x, ps, st::NamedTuple) + x, x1 = x[1], x[2] + x = cat(x, x1; dims=4) + + res, st_bridge_conv = m.bridge_conv(x, ps.bridge_conv, st.bridge_conv) + + x, st_conv1 = m.conv1(x, ps.conv1, st.conv1) + x, st_bn1 = m.bn1(x, ps.bn1, st.bn1) + x = relu(x) + + x, st_conv2 = m.conv2(x, ps.conv2, st.conv2) + x, st_bn2 = m.bn2(x, ps.bn2, st.bn2) + x = relu(x) + + x = x .+ res + + next_layer, st_sample = m.sample(x, ps.sample, st.sample) + + st = (conv1=st_conv1, conv2=st_conv2, bn1=st_bn1, bn2=st_bn2, bridge_conv=st_bridge_conv, sample=st_sample) + return next_layer, st + end +end + +# ╔═╡ 36885de0-aa0e-4037-929f-44e074fb17f5 +md""" +## U-Net +""" + +# ╔═╡ af56e2f7-2ab8-4ff2-8295-038b3a565cbc +begin + struct UNet <: Lux.AbstractExplicitContainerLayer{ + (:conv1, :conv2, :conv3, :conv4, :conv5, :de_conv1, :de_conv2, :de_conv3, :de_conv4, :last_conv) + } + conv1::Chain + conv2::Chain + conv3::ContractBlock + conv4::ContractBlock + conv5::ContractBlock + de_conv1::ContractBlock + de_conv2::ExpandBlock + de_conv3::ExpandBlock + de_conv4::ExpandBlock + last_conv::Conv + end + + function UNet(channel) + conv1 = Chain( + Conv((5, 5, 5), 1 => channel, stride=1, pad=2), + BatchNorm(channel), + relu + ) + conv2 = Chain( + Conv((2, 2, 2), channel => 2 * channel, stride=2, pad=0), + BatchNorm(2 * channel), + relu + ) + conv3 = ContractBlock(5, 2, [2 * channel, 2 * channel, 4 * channel]) + conv4 = ContractBlock(5, 2, [4 * channel, 4 * channel, 8 * channel]) + conv5 = ContractBlock(5, 2, [8 * channel, 8 * channel, 16 * channel]) + + de_conv1 = ContractBlock( + 5, 2, [16 * channel, 32 * channel, 16 * channel]; + downsample = false + ) + de_conv2 = ExpandBlock( + 5, 2, [32 * channel, 8 * channel, 8 * channel]; + downsample = false + ) + de_conv3 = ExpandBlock( + 5, 2, [16 * channel, 4 * channel, 4 * channel]; + downsample = false + ) + de_conv4 = ExpandBlock( + 5, 2, [8 * channel, 2 * channel, channel]; + downsample = false + ) + + last_conv = Conv((1, 1, 1), 2 * channel => 2, stride=1, pad=0) + + UNet(conv1, conv2, conv3, conv4, conv5, de_conv1, de_conv2, de_conv3, de_conv4, last_conv) + end + + function (m::UNet)(x, ps, st::NamedTuple) + # Convolutional layers + x, st_conv1 = m.conv1(x, ps.conv1, st.conv1) + x_1 = x # Store for skip connection + x, st_conv2 = m.conv2(x, ps.conv2, st.conv2) + + # Downscaling Blocks + x, x_2, st_conv3 = m.conv3(x, ps.conv3, st.conv3) + x, x_3, st_conv4 = m.conv4(x, ps.conv4, st.conv4) + x, x_4, st_conv5 = m.conv5(x, ps.conv5, st.conv5) + + # Upscaling Blocks + x, _, st_de_conv1 = m.de_conv1(x, ps.de_conv1, st.de_conv1) + x, st_de_conv2 = m.de_conv2((x, x_4), ps.de_conv2, st.de_conv2) + x, st_de_conv3 = m.de_conv3((x, x_3), ps.de_conv3, st.de_conv3) + x, st_de_conv4 = m.de_conv4((x, x_2), ps.de_conv4, st.de_conv4) + + # Concatenate with first skip connection and apply last convolution + x = cat(x, x_1; dims=4) + x, st_last_conv = m.last_conv(x, ps.last_conv, st.last_conv) + + # Merge states + st = ( + conv1=st_conv1, conv2=st_conv2, conv3=st_conv3, conv4=st_conv4, conv5=st_conv5, de_conv1=st_de_conv1, de_conv2=st_de_conv2, de_conv3=st_de_conv3, de_conv4=st_de_conv4, last_conv=st_last_conv + ) + + return x, st + end +end + +# ╔═╡ df2dd9a7-045c-44a5-a62c-8d9f2541dc14 +md""" +# Training Set Up +""" + +# ╔═╡ 69880e6d-162a-4aae-94eb-103bd35ac3c9 +import Zygote + +# ╔═╡ 12d42392-ad7b-4c5f-baf5-1f2c6052669e +import Optimisers + +# ╔═╡ eff59129-3133-4a56-a7cd-da0d9bc849d7 +# using Losers: hausdorff_loss, dice_loss + +# ╔═╡ af7e12f9-c9d4-4cf0-b1e9-1fdea5f50509 +# function compute_loss(x, y, model, ps, st, epoch) +# alpha = max(1.0 - 0.01 * epoch, 0.01) +# beta = 1.0 - alpha + +# y_pred, st = model(x, ps, st) + +# y_pred_softmax = softmax(y_pred, dims=4) +# y_pred_binary = round.(y_pred_softmax[:, :, :, 2, :]) +# y_binary = y[:, :, :, 2, :] + +# # Compute loss +# loss = 0.0 +# for b in axes(y, 5) +# _y_pred = y_pred_binary[:, :, :, b] +# _y = y_binary[:, :, :, b] + +# local _y_dtm, _y_pred_dtm +# ignore_derivatives() do +# _y_dtm = transform(boolean_indicator(_y)) +# _y_pred_dtm = transform(boolean_indicator(_y_pred)) +# end + +# hd = hausdorff_loss(_y_pred, _y, _y_pred_dtm, _y_dtm) +# dsc = dice_loss(_y_pred, _y) +# loss += alpha * dsc + beta * hd +# end + +# return loss / size(y, 5), y_pred_binary, st +# end + +# ╔═╡ 2bf605e0-c245-454b-9c81-42701ac4f369 +md""" +## Optimiser +""" + +# ╔═╡ 15adbe95-47e5-4a63-a00e-420c62dc1d05 +function create_optimiser(ps) + opt = Optimisers.ADAM(0.01f0) + return Optimisers.setup(opt, ps) +end + +# ╔═╡ 7a1e65ab-21bd-4b86-a281-69c64108eda5 +md""" +## Loss function +""" + +# ╔═╡ 49d4d322-a66b-4672-968a-d4c412968b5a +function dice_loss(ŷ, y, ϵ=1e-5) + return loss = 1 - ((2 * sum(ŷ .* y) + ϵ) / (sum(ŷ .* ŷ) + sum(y .* y) + ϵ)) +end + +# ╔═╡ 9c2557fb-4026-40ff-8ad4-871282327b24 +function compute_loss(x, y, model, ps, st) + + y_pred, st = model(x, ps, st) + + y_pred_softmax = softmax(y_pred, dims=4) + y_pred_binary = round.(y_pred_softmax[:, :, :, 2, :]) + y_binary = y[:, :, :, 2, :] + + # Compute loss + loss = 0.0 + for b in axes(y, 5) + _y_pred = y_pred_binary[:, :, :, b] + _y = y_binary[:, :, :, b] + + dsc = dice_loss(_y_pred, _y) + loss += dsc + end + + return loss / size(y, 5), y_pred_binary, st +end + +# ╔═╡ 45949f7f-4e4a-4857-af43-ff013dbdd137 +md""" +# Train +""" + +# ╔═╡ 402ba194-350e-4ff3-832b-6651be1d9ce7 +dev = gpu_device() + +# ╔═╡ bbdaf5c5-9faa-4b61-afab-c0242b8ca034 +model = UNet(4) + +# ╔═╡ 6ec3e34b-1c57-4cfb-a50d-ee786c2e4559 +begin + ps, st = Lux.setup(rng, model) + ps, st = ps |> dev, st |> dev +end + +# ╔═╡ bacc8b9f-8b8d-4230-bcff-eb330ae328b1 +function train_model(model, ps, st, train_loader, num_epochs, dev) + opt_state = create_optimiser(ps) + + for epoch in 1:num_epochs + @info "Epoch: $epoch" + + # Training Phase + for (x, y) in train_loader + x, y = x |> dev, y |> dev + + # Forward pass + y_pred, st = Lux.apply(model, x, ps, st) + loss, y_pred, st = compute_loss(x, y, model, ps, st) + # @info "Training Loss: $loss" + + # Backward pass + (loss_grad, st_), back = Zygote.pullback(p -> Lux.apply(model, x, p, st), ps) + gs = back((one.(loss_grad), nothing))[1] + + # Update parameters + opt_state, ps = Optimisers.update(opt_state, ps, gs) + end + + # Validation Phase + total_loss = 0.0 + num_batches = 0 + for (x, y) in val_loader + x, y = x |> dev, y |> dev + + # Forward Pass + y_pred, st = Lux.apply(model, x, ps, st) + loss, _, _ = compute_loss(x, y, model, ps, st) + + total_loss += loss + num_batches += 1 + end + avg_loss = total_loss / num_batches + @info "Validation Loss: $avg_loss" + end + + return ps, st +end + +# ╔═╡ a2e88851-227a-4719-8828-6064f9d3ef81 +num_epochs = 20 + +# ╔═╡ 5cae73af-471c-4068-b9ff-5bc03dd0472d +train_model(model, ps, st, train_loader, num_epochs, dev) + +# ╔═╡ 00000000-0000-0000-0000-000000000001 +PLUTO_PROJECT_TOML_CONTENTS = """ +[deps] +CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +ComputerVisionMetrics = "56beca70-ca20-45da-83c4-a042539b6c19" +DistanceTransforms = "71182807-4d06-4237-8dd0-bdafe4d097e2" +Glob = "c27321d9-0574-5035-807b-f59d2c89b15c" +HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3" +Lux = "b2108857-7c20-44ae-9111-449ecde12c47" +LuxCUDA = "d0bbae9a-e099-4d5b-a835-1c6931763bda" +MLUtils = "f1d291b0-491e-4a28-83b9-f70985020b54" +NIfTI = "a3a9e032-41b5-5fc4-967a-a6b7a19844d3" +Optimisers = "3bd65402-5787-11e9-1adc-39752487f4e2" +PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8" +Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +Tar = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[compat] +CairoMakie = "~0.11.3" +ChainRulesCore = "~1.19.0" +ComputerVisionMetrics = "~0.1.0" +DistanceTransforms = "~0.2.1" +Glob = "~1.3.1" +HTTP = "~1.10.1" +Lux = "~0.5.13" +LuxCUDA = "~0.3.1" +MLUtils = "~0.4.3" +NIfTI = "~0.6.0" +Optimisers = "~0.3.1" +PlutoUI = "~0.7.54" +Zygote = "~0.6.67" +""" + +# ╔═╡ 00000000-0000-0000-0000-000000000002 +PLUTO_MANIFEST_TOML_CONTENTS = """ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.10.0" +manifest_format = "2.0" +project_hash = "5a04f57e481641433d3b821920ae23a3e38f5d87" + +[[deps.ADTypes]] +git-tree-sha1 = "332e5d7baeff8497b923b730b994fa480601efc7" +uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" +version = "0.2.5" + +[[deps.AbstractFFTs]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "1.5.0" +weakdeps = ["ChainRulesCore", "Test"] + + [deps.AbstractFFTs.extensions] + AbstractFFTsChainRulesCoreExt = "ChainRulesCore" + AbstractFFTsTestExt = "Test" + +[[deps.AbstractLattices]] +git-tree-sha1 = "222ee9e50b98f51b5d78feb93dd928880df35f06" +uuid = "398f06c4-4d28-53ec-89ca-5b2656b7603d" +version = "0.3.0" + +[[deps.AbstractPlutoDingetjes]] +deps = ["Pkg"] +git-tree-sha1 = "793501dcd3fa7ce8d375a2c878dca2296232686e" +uuid = "6e696c72-6542-2067-7265-42206c756150" +version = "1.2.2" + +[[deps.AbstractTrees]] +git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c" +uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" +version = "0.4.4" + +[[deps.Adapt]] +deps = ["LinearAlgebra", "Requires"] +git-tree-sha1 = "cde29ddf7e5726c9fb511f340244ea3481267608" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "3.7.2" +weakdeps = ["StaticArrays"] + + [deps.Adapt.extensions] + AdaptStaticArraysExt = "StaticArrays" + +[[deps.Animations]] +deps = ["Colors"] +git-tree-sha1 = "e81c509d2c8e49592413bfb0bb3b08150056c79d" +uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340" +version = "0.4.1" + +[[deps.ArgCheck]] +git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" +uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" +version = "2.3.0" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.ArrayInterface]] +deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "bbec08a37f8722786d87bedf84eae19c020c4efa" +uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" +version = "7.7.0" + + [deps.ArrayInterface.extensions] + ArrayInterfaceBandedMatricesExt = "BandedMatrices" + ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" + ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" + ArrayInterfaceTrackerExt = "Tracker" + + [deps.ArrayInterface.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Atomix]] +deps = ["UnsafeAtomics"] +git-tree-sha1 = "c06a868224ecba914baa6942988e2f2aade419be" +uuid = "a9b6321e-bd34-4604-b9c9-b65b8de01458" +version = "0.1.0" + +[[deps.Automa]] +deps = ["PrecompileTools", "TranscodingStreams"] +git-tree-sha1 = "0da671c730d79b8f9a88a391556ec695ea921040" +uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" +version = "1.0.2" + +[[deps.AxisAlgorithms]] +deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] +git-tree-sha1 = "01b8ccb13d68535d73d2b0c23e39bd23155fb712" +uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" +version = "1.1.0" + +[[deps.AxisArrays]] +deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"] +git-tree-sha1 = "16351be62963a67ac4083f748fdb3cca58bfd52f" +uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" +version = "0.4.7" + +[[deps.BFloat16s]] +deps = ["LinearAlgebra", "Printf", "Random", "Test"] +git-tree-sha1 = "dbf84058d0a8cbbadee18d25cf606934b22d7c66" +uuid = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" +version = "0.4.2" + +[[deps.BangBang]] +deps = ["Compat", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires", "Setfield", "Tables"] +git-tree-sha1 = "e28912ce94077686443433c2800104b061a827ed" +uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" +version = "0.3.39" + + [deps.BangBang.extensions] + BangBangChainRulesCoreExt = "ChainRulesCore" + BangBangDataFramesExt = "DataFrames" + BangBangStaticArraysExt = "StaticArrays" + BangBangStructArraysExt = "StructArrays" + BangBangTypedTablesExt = "TypedTables" + + [deps.BangBang.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.Baselet]] +git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e" +uuid = "9718e550-a3fa-408a-8086-8db961cd8217" +version = "0.1.1" + +[[deps.BitFlags]] +git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.8" + +[[deps.BitTwiddlingConvenienceFunctions]] +deps = ["Static"] +git-tree-sha1 = "0c5f81f47bbbcf4aea7b2959135713459170798b" +uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" +version = "0.1.5" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+0" + +[[deps.CEnum]] +git-tree-sha1 = "eb4cb44a499229b3b8426dcfb5dd85333951ff90" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.4.2" + +[[deps.CPUSummary]] +deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] +git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" +uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" +version = "0.2.4" + +[[deps.CRC32c]] +uuid = "8bf52ea8-c179-5cab-976a-9e18b702a9bc" + +[[deps.CRlibm]] +deps = ["CRlibm_jll"] +git-tree-sha1 = "32abd86e3c2025db5172aa182b982debed519834" +uuid = "96374032-68de-5a5b-8d9e-752f78720389" +version = "1.0.1" + +[[deps.CRlibm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e329286945d0cfc04456972ea732551869af1cfc" +uuid = "4e9b3aee-d8a1-5a3d-ad8b-7d824db253f0" +version = "1.0.1+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", "Statistics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "76582ae19006b1186e87dadd781747f76cead72c" +uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" +version = "5.1.1" +weakdeps = ["ChainRulesCore", "SpecialFunctions"] + + [deps.CUDA.extensions] + ChainRulesCoreExt = "ChainRulesCore" + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.CUDA_Driver_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] +git-tree-sha1 = "1e42ef1bdb45487ff28de16182c0df4920181dc3" +uuid = "4ee394cb-3365-5eb0-8335-949819d2adfc" +version = "0.7.0+0" + +[[deps.CUDA_Runtime_Discovery]] +deps = ["Libdl"] +git-tree-sha1 = "bcc4a23cbbd99c8535a5318455dcf0f2546ec536" +uuid = "1af6417a-86b4-443c-805f-a4643ffb695f" +version = "0.2.2" + +[[deps.CUDA_Runtime_jll]] +deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "9704e50c9158cf8896c2776b8dbc5edd136caf80" +uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" +version = "0.10.1+0" + +[[deps.CUDNN_jll]] +deps = ["Artifacts", "CUDA_Runtime_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "75923dce4275ead3799b238e10178a68c07dbd3b" +uuid = "62b44479-cb7b-5706-934f-f13b2eb2e645" +version = "8.9.4+0" + +[[deps.Cairo]] +deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] +git-tree-sha1 = "d0b3f8b4ad16cb0a2988c6788646a5e6a17b6b1b" +uuid = "159f3aea-2a34-519c-b102-8c37f9878175" +version = "1.0.5" + +[[deps.CairoMakie]] +deps = ["CRC32c", "Cairo", "Colors", "FFTW", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools"] +git-tree-sha1 = "966ebbf4dbd45cf0746d35d9ea8bf2c28e45ba41" +uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +version = "0.11.3" + +[[deps.Cairo_jll]] +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"] +git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.16.1+1" + +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" + +[[deps.ChainRules]] +deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] +git-tree-sha1 = "0aa0a3dd7b9bacbbadf1932ccbdfa938985c5561" +uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" +version = "1.58.1" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "2118cb2765f8197b08e5958cdd17c165427425ee" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.19.0" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.CloseOpenIntervals]] +deps = ["Static", "StaticArrayInterface"] +git-tree-sha1 = "70232f82ffaab9dc52585e0dd043b5e0c6b714f1" +uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" +version = "0.1.12" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "cd67fc487743b2f0fd4380d4cbd3a24660d0eec8" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.3" + +[[deps.ColorBrewer]] +deps = ["Colors", "JSON", "Test"] +git-tree-sha1 = "61c5334f33d91e570e1d0c3eb5465835242582c4" +uuid = "a2cac450-b92f-5266-8821-25eda20663c8" +version = "0.4.0" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.24.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.4" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.10" + +[[deps.Combinatorics]] +git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" +uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" +version = "1.0.2" + +[[deps.CommonSubexpressions]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.3.0" + +[[deps.Compat]] +deps = ["UUIDs"] +git-tree-sha1 = "886826d76ea9e72b35fcd000e535588f7b60f21d" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.10.1" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+1" + +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + + [deps.CompositionsBase.weakdeps] + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.ComputerVisionMetrics]] +deps = ["ImageMorphology", "StatsBase"] +git-tree-sha1 = "523738766a10afbfba028d48981199cade5e531f" +uuid = "56beca70-ca20-45da-83c4-a042539b6c19" +version = "0.1.0" + +[[deps.ConcreteStructs]] +git-tree-sha1 = "f749037478283d372048690eb3b5f92a79432b34" +uuid = "2569d6c7-a4a2-43d3-a901-331e8e4be471" +version = "0.2.3" + +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "8cfa272e8bdedfa88b6aefbbca7c19f1befac519" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.3.0" + +[[deps.ConstructionBase]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.5.4" +weakdeps = ["IntervalSets", "StaticArrays"] + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseStaticArraysExt = "StaticArrays" + +[[deps.ContextVariablesX]] +deps = ["Compat", "Logging", "UUIDs"] +git-tree-sha1 = "25cc3803f1030ab855e383129dcd3dc294e322cc" +uuid = "6add18c4-b38d-439d-96f6-d6bc489c04c5" +version = "0.1.3" + +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.CpuId]] +deps = ["Markdown"] +git-tree-sha1 = "fcbb72b032692610bfbdb15018ac16a36cf2e406" +uuid = "adafc99b-e345-5852-983c-f28acb93d879" +version = "0.3.1" + +[[deps.Crayons]] +git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" +uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" +version = "4.1.1" + +[[deps.DataAPI]] +git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.15.0" + +[[deps.DataFrames]] +deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] +git-tree-sha1 = "04c738083f29f86e62c8afc341f0967d8717bdb8" +uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +version = "1.6.1" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "3dbd312d370723b6bb43ba9d02fc36abade4518d" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.15" + +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DefineSingletons]] +git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c" +uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" +version = "0.1.2" + +[[deps.DelaunayTriangulation]] +deps = ["DataStructures", "EnumX", "ExactPredicates", "Random", "SimpleGraphs"] +git-tree-sha1 = "26eb8e2331b55735c3d305d949aabd7363f07ba7" +uuid = "927a84f5-c5f4-47a5-9785-b46e178433df" +version = "0.8.11" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.DiffResults]] +deps = ["StaticArraysCore"] +git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "1.1.0" + +[[deps.DiffRules]] +deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] +git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "1.15.1" + +[[deps.DistanceTransforms]] +deps = ["GPUArraysCore", "KernelAbstractions", "LoopVectorization"] +git-tree-sha1 = "bdfc622fac116fbebcebbf0c7e00cf59d3ad92f3" +uuid = "71182807-4d06-4237-8dd0-bdafe4d097e2" +version = "0.2.1" + +[[deps.Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[deps.Distributions]] +deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "9242eec9b7e2e14f9952e8ea1c7e31a50501d587" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.104" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.DualNumbers]] +deps = ["Calculus", "NaNMath", "SpecialFunctions"] +git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" +uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" +version = "0.6.8" + +[[deps.EarCut_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e3290f2d49e661fbd94046d7e3726ffcb2d41053" +uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" +version = "2.2.4+0" + +[[deps.EnumX]] +git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" +uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" +version = "1.0.4" + +[[deps.ErrorfreeArithmetic]] +git-tree-sha1 = "d6863c556f1142a061532e79f611aa46be201686" +uuid = "90fa49ef-747e-5e6f-a989-263ba693cf1a" +version = "0.5.2" + +[[deps.ExactPredicates]] +deps = ["IntervalArithmetic", "Random", "StaticArraysCore"] +git-tree-sha1 = "499b1ca78f6180c8f8bdf1cabde2d39120229e5c" +uuid = "429591f6-91af-11e9-00e2-59fbe8cec110" +version = "2.2.6" + +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "e90caa41f5a86296e014e148ee061bd6c3edec96" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.9" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.5.0+0" + +[[deps.ExprTools]] +git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" +uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" +version = "0.1.10" + +[[deps.Extents]] +git-tree-sha1 = "2140cd04483da90b2da7f99b2add0750504fc39c" +uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" +version = "0.1.2" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "4.4.4+1" + +[[deps.FFTW]] +deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] +git-tree-sha1 = "ec22cbbcd01cba8f41eecd7d44aac1f23ee985e3" +uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" +version = "1.7.2" + +[[deps.FFTW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" +uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" +version = "3.3.10+0" + +[[deps.FLoops]] +deps = ["BangBang", "Compat", "FLoopsBase", "InitialValues", "JuliaVariables", "MLStyle", "Serialization", "Setfield", "Transducers"] +git-tree-sha1 = "ffb97765602e3cbe59a0589d237bf07f245a8576" +uuid = "cc61a311-1640-44b5-9fba-1b764f453329" +version = "0.2.1" + +[[deps.FLoopsBase]] +deps = ["ContextVariablesX"] +git-tree-sha1 = "656f7a6859be8673bf1f35da5670246b923964f7" +uuid = "b9860ae5-e623-471e-878b-f6a53c775ea6" +version = "0.1.1" + +[[deps.FastRounding]] +deps = ["ErrorfreeArithmetic", "LinearAlgebra"] +git-tree-sha1 = "6344aa18f654196be82e62816935225b3b9abe44" +uuid = "fa42c844-2597-5d31-933b-ebd51ab2693f" +version = "0.3.1" + +[[deps.FileIO]] +deps = ["Pkg", "Requires", "UUIDs"] +git-tree-sha1 = "299dc33549f68299137e51e6d49a13b5b1da9673" +uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +version = "1.16.1" + +[[deps.FilePaths]] +deps = ["FilePathsBase", "MacroTools", "Reexport", "Requires"] +git-tree-sha1 = "919d9412dbf53a2e6fe74af62a73ceed0bce0629" +uuid = "8fc22ac5-c921-52a6-82fd-178b2807b824" +version = "0.8.3" + +[[deps.FilePathsBase]] +deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] +git-tree-sha1 = "9f00e42f8d99fdde64d40c8ea5d14269a2e2c1aa" +uuid = "48062228-2e41-5def-b9a4-89aafe57970f" +version = "0.9.21" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.9.3" +weakdeps = ["PDMats", "SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FiniteDiff]] +deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] +git-tree-sha1 = "c6e4a1fbe73b31a3dea94b1da449503b8830c306" +uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" +version = "2.21.1" + + [deps.FiniteDiff.extensions] + FiniteDiffBandedMatricesExt = "BandedMatrices" + FiniteDiffBlockBandedMatricesExt = "BlockBandedMatrices" + FiniteDiffStaticArraysExt = "StaticArrays" + + [deps.FiniteDiff.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.4" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.93+0" + +[[deps.Formatting]] +deps = ["Printf"] +git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" +uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" +version = "0.4.2" + +[[deps.ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] +git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.36" +weakdeps = ["StaticArrays"] + + [deps.ForwardDiff.extensions] + ForwardDiffStaticArraysExt = "StaticArrays" + +[[deps.FreeType]] +deps = ["CEnum", "FreeType2_jll"] +git-tree-sha1 = "907369da0f8e80728ab49c1c7e09327bf0d6d999" +uuid = "b38be410-82b0-50bf-ab77-7b57e271db43" +version = "4.1.1" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.1+0" + +[[deps.FreeTypeAbstraction]] +deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"] +git-tree-sha1 = "055626e1a35f6771fe99060e835b72ca61a52621" +uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" +version = "0.10.1" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.10+0" + +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9a68d75d466ccc1218d0552a8e1631151c569545" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.5" + +[[deps.Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" + +[[deps.GPUArrays]] +deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] +git-tree-sha1 = "85d7fb51afb3def5dcb85ad31c3707795c8bccc1" +uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" +version = "9.1.0" + +[[deps.GPUArraysCore]] +deps = ["Adapt"] +git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" +uuid = "46192b85-c4d5-4398-a991-12ede77f4527" +version = "0.1.5" + +[[deps.GPUCompiler]] +deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "TimerOutputs", "UUIDs"] +git-tree-sha1 = "a846f297ce9d09ccba02ead0cae70690e072a119" +uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" +version = "0.25.0" + +[[deps.GeoInterface]] +deps = ["Extents"] +git-tree-sha1 = "d53480c0793b13341c40199190f92c611aa2e93c" +uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" +version = "1.3.2" + +[[deps.GeometryBasics]] +deps = ["EarCut_jll", "Extents", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "424a5a6ce7c5d97cca7bcc4eac551b97294c54af" +uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" +version = "0.4.9" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.76.5+0" + +[[deps.Glob]] +git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" +uuid = "c27321d9-0574-5035-807b-f59d2c89b15c" +version = "1.3.1" + +[[deps.Graphics]] +deps = ["Colors", "LinearAlgebra", "NaNMath"] +git-tree-sha1 = "d61890399bc535850c4bf08e4e0d3a7ad0f21cbd" +uuid = "a2bd30eb-e257-5431-a919-1863eab51364" +version = "1.1.2" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.GridLayoutBase]] +deps = ["GeometryBasics", "InteractiveUtils", "Observables"] +git-tree-sha1 = "af13a277efd8a6e716d79ef635d5342ccb75be61" +uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" +version = "0.10.0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HTTP]] +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "abbbb9ec3afd783a7cbd82ef01dcd088ea051398" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.10.1" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.HostCPUFeatures]] +deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] +git-tree-sha1 = "eb8fed28f4994600e29beef49744639d985a04b2" +uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" +version = "0.1.16" + +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.23" + +[[deps.Hyperscript]] +deps = ["Test"] +git-tree-sha1 = "8d511d5b81240fc8e6802386302675bdf47737b9" +uuid = "47d2ed2b-36de-50cf-bf87-49c2cf4b8b91" +version = "0.0.4" + +[[deps.HypertextLiteral]] +deps = ["Tricks"] +git-tree-sha1 = "7134810b1afce04bbc1045ca1985fbe81ce17653" +uuid = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2" +version = "0.9.5" + +[[deps.IOCapture]] +deps = ["Logging", "Random"] +git-tree-sha1 = "d75853a0bdbfb1ac815478bacd89cd27b550ace6" +uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" +version = "0.2.3" + +[[deps.IRTools]] +deps = ["InteractiveUtils", "MacroTools", "Test"] +git-tree-sha1 = "8aa91235360659ca7560db43a7d57541120aa31d" +uuid = "7869d1d1-7146-5819-86e3-90919afe41df" +version = "0.4.11" + +[[deps.IfElse]] +git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" +uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" +version = "0.1.1" + +[[deps.ImageAxes]] +deps = ["AxisArrays", "ImageBase", "ImageCore", "Reexport", "SimpleTraits"] +git-tree-sha1 = "2e4520d67b0cef90865b3ef727594d2a58e0e1f8" +uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac" +version = "0.6.11" + +[[deps.ImageBase]] +deps = ["ImageCore", "Reexport"] +git-tree-sha1 = "eb49b82c172811fd2c86759fa0553a2221feb909" +uuid = "c817782e-172a-44cc-b673-b171935fbb9e" +version = "0.1.7" + +[[deps.ImageCore]] +deps = ["AbstractFFTs", "ColorVectorSpace", "Colors", "FixedPointNumbers", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "PrecompileTools", "Reexport"] +git-tree-sha1 = "fc5d1d3443a124fde6e92d0260cd9e064eba69f8" +uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" +version = "0.10.1" + +[[deps.ImageIO]] +deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] +git-tree-sha1 = "bca20b2f5d00c4fbc192c3212da8fa79f4688009" +uuid = "82e4d734-157c-48bb-816b-45c225c6df19" +version = "0.6.7" + +[[deps.ImageMetadata]] +deps = ["AxisArrays", "ImageAxes", "ImageBase", "ImageCore"] +git-tree-sha1 = "355e2b974f2e3212a75dfb60519de21361ad3cb7" +uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49" +version = "0.9.9" + +[[deps.ImageMorphology]] +deps = ["DataStructures", "ImageCore", "LinearAlgebra", "LoopVectorization", "OffsetArrays", "Requires", "TiledIteration"] +git-tree-sha1 = "6f0a801136cb9c229aebea0df296cdcd471dbcd1" +uuid = "787d08f9-d448-5407-9aad-5290dd7ab264" +version = "0.4.5" + +[[deps.Imath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "3d09a9f60edf77f8a4d99f9e015e8fbf9989605d" +uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1" +version = "3.1.7+0" + +[[deps.IndirectArrays]] +git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f" +uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" +version = "1.0.0" + +[[deps.Inflate]] +git-tree-sha1 = "ea8031dea4aff6bd41f1df8f2fdfb25b33626381" +uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" +version = "0.1.4" + +[[deps.InitialValues]] +git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3" +uuid = "22cec73e-a1b8-11e9-2c92-598750a2cf9c" +version = "0.3.1" + +[[deps.InlineStrings]] +deps = ["Parsers"] +git-tree-sha1 = "9cc2baf75c6d09f9da536ddf58eb2f29dedaf461" +uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" +version = "1.4.0" + +[[deps.IntegerMathUtils]] +git-tree-sha1 = "b8ffb903da9f7b8cf695a8bead8e01814aa24b30" +uuid = "18e54dd8-cb9d-406c-a71d-865a43cbb235" +version = "0.1.2" + +[[deps.IntelOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "31d6adb719886d4e32e38197aae466e98881320b" +uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" +version = "2024.0.0+0" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.Interpolations]] +deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] +git-tree-sha1 = "88a101217d7cb38a7b481ccd50d21876e1d1b0e0" +uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" +version = "0.15.1" + + [deps.Interpolations.extensions] + InterpolationsUnitfulExt = "Unitful" + + [deps.Interpolations.weakdeps] + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.IntervalArithmetic]] +deps = ["CRlibm", "EnumX", "FastRounding", "LinearAlgebra", "Markdown", "Random", "RecipesBase", "RoundingEmulator", "SetRounding", "StaticArrays"] +git-tree-sha1 = "f59e639916283c1d2e106d2b00910b50f4dab76c" +uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" +version = "0.21.2" + +[[deps.IntervalSets]] +deps = ["Dates", "Random"] +git-tree-sha1 = "3d8866c029dd6b16e69e0d4a939c4dfcb98fac47" +uuid = "8197267c-284f-5f27-9208-e0e47529a953" +version = "0.7.8" +weakdeps = ["Statistics"] + + [deps.IntervalSets.extensions] + IntervalSetsStatisticsExt = "Statistics" + +[[deps.InvertedIndices]] +git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" +uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" +version = "1.3.0" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.Isoband]] +deps = ["isoband_jll"] +git-tree-sha1 = "f9b6d97355599074dc867318950adaa6f9946137" +uuid = "f1662d9f-8043-43de-a69a-05efc1cc6ff4" +version = "0.1.1" + +[[deps.IterTools]] +git-tree-sha1 = "274c38bd733f9d29036d0a73658fff1dc1d3a065" +uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" +version = "1.9.0" + +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JpegTurbo]] +deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] +git-tree-sha1 = "fa6d0bcff8583bac20f1ffa708c3913ca605c611" +uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" +version = "0.1.5" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60b1194df0a3298f460063de985eae7b01bc011a" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "3.0.1+0" + +[[deps.JuliaNVTXCallbacks_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "af433a10f3942e882d3c671aacb203e006a5808f" +uuid = "9c1d0b0a-7046-5b2e-a33f-ea22f176ac7e" +version = "0.2.1+0" + +[[deps.JuliaVariables]] +deps = ["MLStyle", "NameResolution"] +git-tree-sha1 = "49fb3cb53362ddadb4415e9b73926d6b40709e70" +uuid = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec" +version = "0.2.4" + +[[deps.KernelAbstractions]] +deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "653e0824fc9ab55b3beec67a6dbbe514a65fb954" +uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" +version = "0.9.15" + + [deps.KernelAbstractions.extensions] + EnzymeExt = "EnzymeCore" + + [deps.KernelAbstractions.weakdeps] + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + +[[deps.KernelDensity]] +deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] +git-tree-sha1 = "fee018a29b60733876eb557804b5b109dd3dd8a7" +uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" +version = "0.6.8" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.1+0" + +[[deps.LLVM]] +deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] +git-tree-sha1 = "0678579657515e88b6632a3a482d39adcbb80445" +uuid = "929cbde3-209d-540e-8aea-75f648917ca0" +version = "6.4.1" +weakdeps = ["BFloat16s"] + + [deps.LLVM.extensions] + BFloat16sExt = "BFloat16s" + +[[deps.LLVMExtra_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "98eaee04d96d973e79c25d49167668c5c8fb50e2" +uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" +version = "0.0.27+1" + +[[deps.LLVMLoopInfo]] +git-tree-sha1 = "2e5c102cfc41f48ae4740c7eca7743cc7e7b75ea" +uuid = "8b046642-f1f6-4319-8d3c-209ddc03c586" +version = "1.0.0" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f689897ccbe049adb19a065c495e75f372ecd42b" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.4+0" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.1" + +[[deps.LayoutPointers]] +deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "62edfee3211981241b57ff1cedf4d74d79519277" +uuid = "10f19ff3-798f-405d-979b-55457f8fc047" +version = "0.1.15" + +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" + +[[deps.LazyModules]] +git-tree-sha1 = "a560dd966b386ac9ae60bdd3a3d3a326062d3c3e" +uuid = "8cdb02fc-e678-4876-92c5-9defec4f444e" +version = "0.3.1" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.4.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibGit2_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" +version = "1.6.4+0" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +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" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.7+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.42.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.35.0+0" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.36.0+0" + +[[deps.LightXML]] +deps = ["Libdl", "XML2_jll"] +git-tree-sha1 = "3a994404d3f6709610701c7dabfc03fed87a81f8" +uuid = "9c8b4983-aa76-5018-a973-4c85ecc9e179" +version = "0.9.1" + +[[deps.LineSearches]] +deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] +git-tree-sha1 = "7bbea35cec17305fc70a0e5b4641477dc0789d9d" +uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" +version = "7.2.0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.LinearAlgebraX]] +deps = ["LinearAlgebra", "Mods", "Permutations", "Primes", "SimplePolynomials"] +git-tree-sha1 = "89ed93300377e0742ae8a7423f7543c8f5eb73a4" +uuid = "9b3f67b0-2d00-526e-9884-9e4938f8fb88" +version = "0.2.5" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.26" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.0.3" + +[[deps.LoopVectorization]] +deps = ["ArrayInterface", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] +git-tree-sha1 = "0f5648fbae0d015e3abe5867bca2b362f67a5894" +uuid = "bdcacae8-1622-11e9-2a5c-532679323890" +version = "0.12.166" +weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] + + [deps.LoopVectorization.extensions] + ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Lux]] +deps = ["ADTypes", "Adapt", "ChainRulesCore", "ConcreteStructs", "ConstructionBase", "Functors", "LinearAlgebra", "LuxCore", "LuxDeviceUtils", "LuxLib", "MacroTools", "Markdown", "Optimisers", "PackageExtensionCompat", "Random", "Reexport", "Setfield", "SparseArrays", "Statistics", "TruncatedStacktraces", "WeightInitializers"] +git-tree-sha1 = "08b7e6647e144e31cce846ec4a64cd5d6a77c755" +uuid = "b2108857-7c20-44ae-9111-449ecde12c47" +version = "0.5.13" + + [deps.Lux.extensions] + LuxChainRulesExt = "ChainRules" + LuxComponentArraysExt = "ComponentArrays" + LuxComponentArraysReverseDiffExt = ["ComponentArrays", "ReverseDiff"] + LuxFluxTransformExt = "Flux" + LuxLuxAMDGPUExt = "LuxAMDGPU" + LuxLuxCUDAExt = "LuxCUDA" + LuxTrackerExt = "Tracker" + LuxZygoteExt = "Zygote" + + [deps.Lux.weakdeps] + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" + ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" + FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" + Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" + LuxAMDGPU = "83120cb1-ca15-4f04-bf3b-6967d2e6b60b" + LuxCUDA = "d0bbae9a-e099-4d5b-a835-1c6931763bda" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.LuxCUDA]] +deps = ["CUDA", "Reexport", "cuDNN"] +git-tree-sha1 = "69ac44bde022228c11fc8edde18c589f42643e27" +uuid = "d0bbae9a-e099-4d5b-a835-1c6931763bda" +version = "0.3.1" + +[[deps.LuxCore]] +deps = ["Functors", "Random", "Setfield"] +git-tree-sha1 = "6feb02e23f6d70f407af97ca270b3a337af5ae0f" +uuid = "bb33d45b-7691-41d6-9220-0943567d0623" +version = "0.1.6" + +[[deps.LuxDeviceUtils]] +deps = ["Adapt", "ChainRulesCore", "Functors", "LuxCore", "Preferences", "Random", "SparseArrays"] +git-tree-sha1 = "cffc2222bf9dc01730f6fc904266f8056abb8e83" +uuid = "34f89e08-e1d5-43b4-8944-0b49ac560553" +version = "0.1.11" + + [deps.LuxDeviceUtils.extensions] + LuxDeviceUtilsFillArraysExt = "FillArrays" + LuxDeviceUtilsLuxAMDGPUExt = "LuxAMDGPU" + LuxDeviceUtilsLuxCUDAExt = "LuxCUDA" + LuxDeviceUtilsMetalExt = "Metal" + LuxDeviceUtilsZygoteExt = "Zygote" + + [deps.LuxDeviceUtils.weakdeps] + FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" + LuxAMDGPU = "83120cb1-ca15-4f04-bf3b-6967d2e6b60b" + LuxCUDA = "d0bbae9a-e099-4d5b-a835-1c6931763bda" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.LuxLib]] +deps = ["ChainRulesCore", "KernelAbstractions", "Markdown", "NNlib", "PackageExtensionCompat", "PrecompileTools", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "7dc09243c8b6b4b71d1bac27c8e4593b42379d2e" +uuid = "82251201-b29d-42c6-8e01-566dec8acb11" +version = "0.3.8" + + [deps.LuxLib.extensions] + LuxLibForwardDiffExt = "ForwardDiff" + LuxLibLuxCUDAExt = "LuxCUDA" + LuxLibLuxCUDATrackerExt = ["LuxCUDA", "Tracker"] + LuxLibReverseDiffExt = "ReverseDiff" + LuxLibTrackerExt = "Tracker" + + [deps.LuxLib.weakdeps] + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + LuxCUDA = "d0bbae9a-e099-4d5b-a835-1c6931763bda" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.MIMEs]] +git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" +uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" +version = "0.1.4" + +[[deps.MKL_jll]] +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" +uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" +version = "2024.0.0+0" + +[[deps.MLStyle]] +git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" +uuid = "d8e11817-5142-5d16-987a-aa16d5891078" +version = "0.4.17" + +[[deps.MLUtils]] +deps = ["ChainRulesCore", "Compat", "DataAPI", "DelimitedFiles", "FLoops", "NNlib", "Random", "ShowCases", "SimpleTraits", "Statistics", "StatsBase", "Tables", "Transducers"] +git-tree-sha1 = "3504cdb8c2bc05bde4d4b09a81b01df88fcbbba0" +uuid = "f1d291b0-491e-4a28-83b9-f70985020b54" +version = "0.4.3" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "b211c553c199c111d998ecdaf7623d1b89b69f93" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.12" + +[[deps.Makie]] +deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Formatting", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageIO", "InteractiveUtils", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Setfield", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "StableHashTraits", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun"] +git-tree-sha1 = "db14b5ba682d431317435c866734995a89302c3c" +uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" +version = "0.20.2" + +[[deps.MakieCore]] +deps = ["Observables", "REPL"] +git-tree-sha1 = "e81e6f1e8a0e96bf2bf267e4bf7f94608bf09b5c" +uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" +version = "0.7.1" + +[[deps.ManualMemory]] +git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" +uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" +version = "0.1.8" + +[[deps.MappedArrays]] +git-tree-sha1 = "2dab0221fe2b0f2cb6754eaa743cc266339f527e" +uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" +version = "0.4.2" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MathTeXEngine]] +deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "UnicodeFun"] +git-tree-sha1 = "96ca8a313eb6437db5ffe946c457a401bbb8ce1d" +uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" +version = "0.5.7" + +[[deps.MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.1.9" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+1" + +[[deps.MicroCollections]] +deps = ["BangBang", "InitialValues", "Setfield"] +git-tree-sha1 = "629afd7d10dbc6935ec59b32daeb33bc4460a42e" +uuid = "128add7d-3638-4c79-886c-908ea0c25c34" +version = "0.1.4" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.1.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.Mods]] +git-tree-sha1 = "9d292c7fb23e9a756094f8617a0f10e3b9582f47" +uuid = "7475f97c-0381-53b1-977b-4c60186c8d62" +version = "2.2.0" + +[[deps.MosaicViews]] +deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] +git-tree-sha1 = "7b86a5d4d70a9f5cdf2dacb3cbe6d251d1a61dbe" +uuid = "e94cdb99-869f-56ef-bcf0-1ae2bcbe0389" +version = "0.3.4" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2023.1.10" + +[[deps.Multisets]] +git-tree-sha1 = "8d852646862c96e226367ad10c8af56099b4047e" +uuid = "3b2b4ff1-bcff-5658-a3ee-dbcf1ce5ac09" +version = "0.4.4" + +[[deps.NIfTI]] +deps = ["Base64", "CodecZlib", "MappedArrays", "Mmap", "TranscodingStreams"] +git-tree-sha1 = "21e5b879564607ea98fb680c98a1b7838b7d7f1c" +uuid = "a3a9e032-41b5-5fc4-967a-a6b7a19844d3" +version = "0.6.0" + +[[deps.NLSolversBase]] +deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] +git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" +uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" +version = "7.8.3" + +[[deps.NNlib]] +deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] +git-tree-sha1 = "7c221293228506db2fe883251407581e0846688e" +uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" +version = "0.9.9" + + [deps.NNlib.extensions] + NNlibAMDGPUExt = "AMDGPU" + NNlibCUDACUDNNExt = ["CUDA", "cuDNN"] + NNlibCUDAExt = "CUDA" + NNlibEnzymeCoreExt = "EnzymeCore" + + [deps.NNlib.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" + +[[deps.NVTX]] +deps = ["Colors", "JuliaNVTXCallbacks_jll", "Libdl", "NVTX_jll"] +git-tree-sha1 = "8bc9ce4233be3c63f8dcd78ccaf1b63a9c0baa34" +uuid = "5da4648a-3479-48b8-97b9-01cb529c0a1f" +version = "0.3.3" + +[[deps.NVTX_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ce3269ed42816bf18d500c9f63418d4b0d9f5a3b" +uuid = "e98f9f5b-d649-5603-91fd-7774390e6439" +version = "3.1.0+2" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.NameResolution]] +deps = ["PrettyPrint"] +git-tree-sha1 = "1a0fa0e9613f46c9b8c11eee38ebb4f590013c5e" +uuid = "71a1bf82-56d0-4bbc-8a3c-48b961074391" +version = "0.1.5" + +[[deps.Netpbm]] +deps = ["FileIO", "ImageCore", "ImageMetadata"] +git-tree-sha1 = "d92b107dbb887293622df7697a2223f9f8176fcd" +uuid = "f09324ee-3d7c-5217-9330-fc30815ba969" +version = "1.1.1" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.Observables]] +git-tree-sha1 = "7438a59546cf62428fc9d1bc94729146d37a7225" +uuid = "510215fc-4207-5dde-b226-833fc4488ee2" +version = "0.5.5" + +[[deps.OffsetArrays]] +git-tree-sha1 = "6a731f2b5c03157418a20c12195eb4b74c8f8621" +uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" +version = "1.13.0" +weakdeps = ["Adapt"] + + [deps.OffsetArrays.extensions] + OffsetArraysAdaptExt = "Adapt" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.23+2" + +[[deps.OpenEXR]] +deps = ["Colors", "FileIO", "OpenEXR_jll"] +git-tree-sha1 = "327f53360fdb54df7ecd01e96ef1983536d1e633" +uuid = "52e1d378-f018-4a11-a4be-720524705ac7" +version = "0.3.2" + +[[deps.OpenEXR_jll]] +deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "a4ca623df1ae99d09bc9868b008262d0c0ac1e4f" +uuid = "18a262bb-aa17-5467-a713-aee519bc75cb" +version = "3.1.4+0" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+2" + +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.4.1" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "cc6e1927ac521b659af340e0ca45828a3ffc748f" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.12+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Optim]] +deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] +git-tree-sha1 = "01f85d9269b13fedc61e63cc72ee2213565f7a72" +uuid = "429524aa-4258-5aef-a3af-852621145aeb" +version = "1.7.8" + +[[deps.Optimisers]] +deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] +git-tree-sha1 = "34205b1204cc83c43cd9cfe53ffbd3b310f6e8c5" +uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" +version = "0.3.1" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.3" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+1" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.31" + +[[deps.PNGFiles]] +deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] +git-tree-sha1 = "67186a2bc9a90f9f85ff3cc8277868961fb57cbd" +uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" +version = "0.4.3" + +[[deps.PackageExtensionCompat]] +git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" +uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" +version = "1.0.2" +weakdeps = ["Requires", "TOML"] + +[[deps.Packing]] +deps = ["GeometryBasics"] +git-tree-sha1 = "ec3edfe723df33528e085e632414499f26650501" +uuid = "19eb6ba3-879d-56ad-ad62-d5c202156566" +version = "0.5.0" + +[[deps.PaddedViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "0fac6313486baae819364c52b4f483450a9d793f" +uuid = "5432bcbf-9aad-5242-b902-cca2824c8663" +version = "0.5.12" + +[[deps.Pango_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4745216e94f71cb768d58330b059c9b76f32cb66" +uuid = "36c8627f-9965-5494-a995-c6b170f724f3" +version = "1.50.14+0" + +[[deps.Parameters]] +deps = ["OrderedCollections", "UnPack"] +git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" +uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" +version = "0.12.3" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.1" + +[[deps.PartialFunctions]] +deps = ["MacroTools"] +git-tree-sha1 = "47b49a4dbc23b76682205c646252c0f9e1eb75af" +uuid = "570af359-4316-4cb7-8c74-252c00c2016b" +version = "1.2.0" + +[[deps.Permutations]] +deps = ["Combinatorics", "LinearAlgebra", "Random"] +git-tree-sha1 = "c7745750b8a829bc6039b7f1f0981bcda526a946" +uuid = "2ae35dd2-176d-5d53-8349-f30d82d94d4f" +version = "0.4.19" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.42.2+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.10.0" + +[[deps.PkgVersion]] +deps = ["Pkg"] +git-tree-sha1 = "f9501cc0430a26bc3d156ae1b5b0c1b47af4d6da" +uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" +version = "0.3.3" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "f92e1315dadf8c46561fb9396e525f7200cdc227" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.3.5" + +[[deps.PlutoUI]] +deps = ["AbstractPlutoDingetjes", "Base64", "ColorTypes", "Dates", "FixedPointNumbers", "Hyperscript", "HypertextLiteral", "IOCapture", "InteractiveUtils", "JSON", "Logging", "MIMEs", "Markdown", "Random", "Reexport", "URIs", "UUIDs"] +git-tree-sha1 = "bd7c69c7f7173097e7b5e1be07cee2b8b7447f51" +uuid = "7f904dfe-b85e-4ff6-b463-dae2292396a8" +version = "0.7.54" + +[[deps.PolyesterWeave]] +deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] +git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" +uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" +version = "0.2.1" + +[[deps.PolygonOps]] +git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6" +uuid = "647866c9-e3ac-4575-94e7-e3d426903924" +version = "0.1.2" + +[[deps.Polynomials]] +deps = ["LinearAlgebra", "RecipesBase", "Setfield", "SparseArrays"] +git-tree-sha1 = "a9c7a523d5ed375be3983db190f6a5874ae9286d" +uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" +version = "4.0.6" + + [deps.Polynomials.extensions] + PolynomialsChainRulesCoreExt = "ChainRulesCore" + PolynomialsFFTWExt = "FFTW" + PolynomialsMakieCoreExt = "MakieCore" + PolynomialsMutableArithmeticsExt = "MutableArithmetics" + + [deps.Polynomials.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" + MakieCore = "20f20a25-4f0e-4fdf-b5d1-57303727442b" + MutableArithmetics = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" + +[[deps.PooledArrays]] +deps = ["DataAPI", "Future"] +git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" +uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" +version = "1.4.3" + +[[deps.PositiveFactorizations]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" +uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" +version = "0.2.4" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.0" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.1" + +[[deps.PrettyPrint]] +git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" +uuid = "8162dcfd-2161-5ef2-ae6c-7681170c5f98" +version = "0.2.0" + +[[deps.PrettyTables]] +deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] +git-tree-sha1 = "88b895d13d53b5577fd53379d913b9ab9ac82660" +uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" +version = "2.3.1" + +[[deps.Primes]] +deps = ["IntegerMathUtils"] +git-tree-sha1 = "1d05623b5952aed1307bf8b43bec8b8d1ef94b6e" +uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" +version = "0.5.5" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.ProgressMeter]] +deps = ["Distributed", "Printf"] +git-tree-sha1 = "00099623ffee15972c16111bcf84c58a0051257c" +uuid = "92933f4c-e287-5a05-a399-4b506db050ca" +version = "1.9.0" + +[[deps.QOI]] +deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] +git-tree-sha1 = "18e8f4d1426e965c7b532ddd260599e1510d26ce" +uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65" +version = "1.0.0" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "9ebcd48c498668c7fa0e97a9cae873fbee7bfee1" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.9.1" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.Random123]] +deps = ["Random", "RandomNumbers"] +git-tree-sha1 = "552f30e847641591ba3f39fd1bed559b9deb0ef3" +uuid = "74087812-796a-5b5d-8853-05524746bad3" +version = "1.6.1" + +[[deps.RandomNumbers]] +deps = ["Random", "Requires"] +git-tree-sha1 = "043da614cc7e95c703498a491e2c21f58a2b8111" +uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" +version = "1.5.3" + +[[deps.RangeArrays]] +git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5" +uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d" +version = "0.3.2" + +[[deps.Ratios]] +deps = ["Requires"] +git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b" +uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" +version = "0.4.5" +weakdeps = ["FixedPointNumbers"] + + [deps.Ratios.extensions] + RatiosFixedPointNumbersExt = "FixedPointNumbers" + +[[deps.RealDot]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9f0a1b71baaf7650f4fa8a1d168c7fb6ee41f0c9" +uuid = "c1ae055f-0cd5-4b69-90a6-9a35b1a98df9" +version = "0.1.0" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.RingLists]] +deps = ["Random"] +git-tree-sha1 = "f39da63aa6d2d88e0c1bd20ed6a3ff9ea7171ada" +uuid = "286e9d63-9694-5540-9e3c-4e6708fa07b2" +version = "0.2.8" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.1" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.4.0+0" + +[[deps.RoundingEmulator]] +git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" +uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" +version = "0.2.1" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.SIMDTypes]] +git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" +uuid = "94e857df-77ce-4151-89e5-788b33177be4" +version = "0.1.0" + +[[deps.SLEEFPirates]] +deps = ["IfElse", "Static", "VectorizationBase"] +git-tree-sha1 = "3aac6d68c5e57449f5b9b865c9ba50ac2970c4cf" +uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" +version = "0.6.42" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" + +[[deps.SentinelArrays]] +deps = ["Dates", "Random"] +git-tree-sha1 = "0e7508ff27ba32f26cd459474ca2ede1bc10991f" +uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" +version = "1.4.1" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.SetRounding]] +git-tree-sha1 = "d7a25e439d07a17b7cdf97eecee504c50fedf5f6" +uuid = "3cc68bcd-71a2-5612-b932-767ffbe40ab0" +version = "0.2.1" + +[[deps.Setfield]] +deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] +git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" +uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" +version = "1.1.1" + +[[deps.ShaderAbstractions]] +deps = ["ColorTypes", "FixedPointNumbers", "GeometryBasics", "LinearAlgebra", "Observables", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "db0219befe4507878b1a90e07820fed3e62c289d" +uuid = "65257c39-d410-5151-9873-9b3e5be5013e" +version = "0.4.0" + +[[deps.SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[deps.ShowCases]] +git-tree-sha1 = "7f534ad62ab2bd48591bdeac81994ea8c445e4a5" +uuid = "605ecd9f-84a6-4c9e-81e2-4798472b76a3" +version = "0.1.0" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SignedDistanceFields]] +deps = ["Random", "Statistics", "Test"] +git-tree-sha1 = "d263a08ec505853a5ff1c1ebde2070419e3f28e9" +uuid = "73760f76-fbc4-59ce-8f25-708e95d2df96" +version = "0.4.0" + +[[deps.SimpleBufferStream]] +git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.1.0" + +[[deps.SimpleGraphs]] +deps = ["AbstractLattices", "Combinatorics", "DataStructures", "IterTools", "LightXML", "LinearAlgebra", "LinearAlgebraX", "Optim", "Primes", "Random", "RingLists", "SimplePartitions", "SimplePolynomials", "SimpleRandom", "SparseArrays", "Statistics"] +git-tree-sha1 = "f65caa24a622f985cc341de81d3f9744435d0d0f" +uuid = "55797a34-41de-5266-9ec1-32ac4eb504d3" +version = "0.8.6" + +[[deps.SimplePartitions]] +deps = ["AbstractLattices", "DataStructures", "Permutations"] +git-tree-sha1 = "e9330391d04241eafdc358713b48396619c83bcb" +uuid = "ec83eff0-a5b5-5643-ae32-5cbf6eedec9d" +version = "0.3.1" + +[[deps.SimplePolynomials]] +deps = ["Mods", "Multisets", "Polynomials", "Primes"] +git-tree-sha1 = "7063828369cafa93f3187b3d0159f05582011405" +uuid = "cc47b68c-3164-5771-a705-2bc0097375a0" +version = "0.2.17" + +[[deps.SimpleRandom]] +deps = ["Distributions", "LinearAlgebra", "Random"] +git-tree-sha1 = "3a6fb395e37afab81aeea85bae48a4db5cd7244a" +uuid = "a6525b86-64cd-54fa-8f65-62fc48bdc0e8" +version = "0.3.1" + +[[deps.SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.4" + +[[deps.Sixel]] +deps = ["Dates", "FileIO", "ImageCore", "IndirectArrays", "OffsetArrays", "REPL", "libsixel_jll"] +git-tree-sha1 = "2da10356e31327c7096832eb9cd86307a50b1eb6" +uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47" +version = "0.1.3" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "5165dfb9fd131cf0c6957a3a7605dede376e7b63" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.0" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.10.0" + +[[deps.SparseInverseSubset]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "52962839426b75b3021296f7df242e40ecfc0852" +uuid = "dc90abb0-5640-4711-901d-7e5b23a2fada" +version = "0.1.2" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.1" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.SplittablesBase]] +deps = ["Setfield", "Test"] +git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" +uuid = "171d559e-b47b-412a-8079-5efa626c420e" +version = "0.1.15" + +[[deps.StableHashTraits]] +deps = ["Compat", "SHA", "Tables", "TupleTools"] +git-tree-sha1 = "5a26dfe46e2cb5f5eca78114c7d49548b9597e71" +uuid = "c5dd0088-6c3f-4803-b00e-f31a60c170fa" +version = "1.1.3" + +[[deps.StackViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c" +uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15" +version = "0.1.1" + +[[deps.Static]] +deps = ["IfElse"] +git-tree-sha1 = "f295e0a1da4ca425659c57441bcb59abb035a4bc" +uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" +version = "0.8.8" + +[[deps.StaticArrayInterface]] +deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] +git-tree-sha1 = "5d66818a39bb04bf328e92bc933ec5b4ee88e436" +uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" +version = "1.5.0" +weakdeps = ["OffsetArrays", "StaticArrays"] + + [deps.StaticArrayInterface.extensions] + StaticArrayInterfaceOffsetArraysExt = "OffsetArrays" + StaticArrayInterfaceStaticArraysExt = "StaticArrays" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "fba11dbe2562eecdfcac49a05246af09ee64d055" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.8.1" +weakdeps = ["ChainRulesCore", "Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysChainRulesCoreExt = "ChainRulesCore" + StaticArraysStatisticsExt = "Statistics" + +[[deps.StaticArraysCore]] +git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" +uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +version = "1.4.2" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.10.0" + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.2" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "f625d686d5a88bcd2b15cd81f18f98186fdc0c9a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.0" + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + + [deps.StatsFuns.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.StringManipulation]] +deps = ["PrecompileTools"] +git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" +uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" +version = "0.3.4" + +[[deps.StructArrays]] +deps = ["Adapt", "ConstructionBase", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] +git-tree-sha1 = "0a3db38e4cce3c54fe7a71f831cd7b6194a54213" +uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" +version = "0.6.16" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "7.2.1+1" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[deps.Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.11.1" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.ThreadingUtilities]] +deps = ["ManualMemory"] +git-tree-sha1 = "eda08f7e9818eb53661b3deb74e3159460dfbc27" +uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" +version = "0.5.2" + +[[deps.TiffImages]] +deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"] +git-tree-sha1 = "34cc045dd0aaa59b8bbe86c644679bc57f1d5bd0" +uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" +version = "0.6.8" + +[[deps.TiledIteration]] +deps = ["OffsetArrays", "StaticArrayInterface"] +git-tree-sha1 = "1176cc31e867217b06928e2f140c90bd1bc88283" +uuid = "06e1c1a7-607b-532d-9fad-de7d9aa2abac" +version = "0.5.0" + +[[deps.TimerOutputs]] +deps = ["ExprTools", "Printf"] +git-tree-sha1 = "f548a9e9c490030e545f72074a41edfd0e5bcdd7" +uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" +version = "0.5.23" + +[[deps.TranscodingStreams]] +deps = ["Random", "Test"] +git-tree-sha1 = "9a6ae7ed916312b41236fcef7e0af564ef934769" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.9.13" + +[[deps.Transducers]] +deps = ["Adapt", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "ConstructionBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] +git-tree-sha1 = "e579d3c991938fecbb225699e8f611fa3fbf2141" +uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" +version = "0.4.79" + + [deps.Transducers.extensions] + TransducersBlockArraysExt = "BlockArrays" + TransducersDataFramesExt = "DataFrames" + TransducersLazyArraysExt = "LazyArrays" + TransducersOnlineStatsBaseExt = "OnlineStatsBase" + TransducersReferenceablesExt = "Referenceables" + + [deps.Transducers.weakdeps] + BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" + OnlineStatsBase = "925886fa-5bf2-5e8e-b522-a9147a512338" + Referenceables = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" + +[[deps.Tricks]] +git-tree-sha1 = "eae1bb484cd63b36999ee58be2de6c178105112f" +uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" +version = "0.1.8" + +[[deps.TriplotBase]] +git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" +uuid = "981d1d27-644d-49a2-9326-4793e63143c3" +version = "0.1.0" + +[[deps.TruncatedStacktraces]] +deps = ["InteractiveUtils", "MacroTools", "Preferences"] +git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" +uuid = "781d530d-4396-4725-bb49-402e4bee1e77" +version = "1.4.0" + +[[deps.TupleTools]] +git-tree-sha1 = "155515ed4c4236db30049ac1495e2969cc06be9d" +uuid = "9d95972d-f1c8-5527-a6e0-b4b365fa01f6" +version = "1.4.3" + +[[deps.URIs]] +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.5.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.UnPack]] +git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" +uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" +version = "1.0.2" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.UnsafeAtomics]] +git-tree-sha1 = "6331ac3440856ea1988316b46045303bef658278" +uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f" +version = "0.2.1" + +[[deps.UnsafeAtomicsLLVM]] +deps = ["LLVM", "UnsafeAtomics"] +git-tree-sha1 = "323e3d0acf5e78a56dfae7bd8928c989b4f3083e" +uuid = "d80eeb9a-aca5-4d75-85e5-170c8b632249" +version = "0.1.3" + +[[deps.VectorizationBase]] +deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "7209df901e6ed7489fe9b7aa3e46fb788e15db85" +uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" +version = "0.21.65" + +[[deps.WeightInitializers]] +deps = ["PackageExtensionCompat", "PartialFunctions", "Random", "SpecialFunctions", "Statistics"] +git-tree-sha1 = "f5c5118f3cd9a2ee5992d43d0a296caa671edea9" +uuid = "d49dbf32-c5c2-4618-8acc-27bb2598ef2d" +version = "0.1.3" +weakdeps = ["CUDA"] + + [deps.WeightInitializers.extensions] + WeightInitializersCUDAExt = "CUDA" + +[[deps.WoodburyMatrices]] +deps = ["LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "c1a7aa6219628fcd757dede0ca95e245c5cd9511" +uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" +version = "1.0.0" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.12.2+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.34+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +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" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.4+4" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.10+4" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.15.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+1" + +[[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 = "5ded212acd815612df112bb895ef3910c5a03f57" +uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" +version = "0.6.67" + + [deps.Zygote.extensions] + ZygoteColorsExt = "Colors" + ZygoteDistancesExt = "Distances" + ZygoteTrackerExt = "Tracker" + + [deps.Zygote.weakdeps] + Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" + Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.ZygoteRules]] +deps = ["ChainRulesCore", "MacroTools"] +git-tree-sha1 = "9d749cd449fb448aeca4feee9a2f4186dbb5d184" +uuid = "700de1a5-db45-46bc-99cf-38207098b444" +version = "0.2.4" + +[[deps.cuDNN]] +deps = ["CEnum", "CUDA", "CUDA_Runtime_Discovery", "CUDNN_jll"] +git-tree-sha1 = "c092c26591a851083ed3358890d0d916c58dde62" +uuid = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" +version = "1.2.1" + +[[deps.isoband_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51b5eeb3f98367157a7a12a1fb0aa5328946c03c" +uuid = "9a68df92-36a6-505f-a73e-abb412b6bfb4" +version = "0.2.3+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.4.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+1" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "93284c28274d9e75218a416c65ec49d0e0fcdf3d" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.40+0" + +[[deps.libsixel_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "libpng_jll"] +git-tree-sha1 = "d4f63314c8aa1e48cd22aa0c17ed76cd1ae48c3c" +uuid = "075b6546-f08a-558a-be8f-8157d0f608a5" +version = "1.10.3+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+1" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.52.0+1" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+2" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" +""" + +# ╔═╡ Cell order: +# ╠═8d4a6d5a-c437-43bb-a3db-ab961b218c2e +# ╠═c8d6553a-90df-4aeb-aa6d-a213e16fab48 +# ╟─af798f6b-7549-4253-b02b-2ed20dc1125b +# ╠═83b95cee-90ed-4522-b9a8-79c082fce02e +# ╠═af50e5f3-1a1c-47e5-a461-ffbee0329309 +# ╟─f0e64ba5-5e11-4ddb-91d3-2a34c60dc6bf +# ╠═7353b7ce-8b33-4602-aed7-2aa24864aca5 +# ╠═de5efc37-db19-440e-9487-9a7bea84996d +# ╠═3ab44a2a-692f-4603-a5a8-81f1d260c13e +# ╠═562b3772-89cc-4390-87c3-e7260c8aa86b +# ╠═db2ccf3a-437a-4dfa-ad05-2526c0e2bde0 +# ╟─2fafd628-37af-43e1-ba49-5d5702e20b41 +# ╠═10f0f5c4-86a3-4913-aca4-3dc466a3c902 +# ╠═ab48404f-ca08-436a-9881-23fb9a28e47b +# ╠═f106e5b2-6c68-4841-8379-aa8f99cbfd1b +# ╠═50dab23a-3449-490d-9613-d006752b65d0 +# ╠═4fd5a70b-53d5-418e-9615-75a6fafae343 +# ╠═6f327dcc-b617-4066-89d8-a70d2dd109d4 +# ╟─c9eeebd2-f017-4863-810f-2111d5be2b85 +# ╠═e49721a6-b9f4-4221-9704-fc4e89d502be +# ╠═6a286450-6d05-4fd0-928c-ee45c0dfd9fa +# ╠═87e1e444-fcdc-416d-a3c9-9bedcfaff489 +# ╠═6727ede2-57db-4f0d-b264-ae478e1058ec +# ╠═e4df967e-7532-4a29-8bb2-9ace78e87eba +# ╠═c2dcef00-9430-466f-8ca1-f135caefde2b +# ╟─e4e695dd-9d49-4384-b0ae-ea20f7a3f576 +# ╠═00844aac-3f48-400c-9baa-3b2d6fcfbe74 +# ╠═298db622-9bc3-428b-bc40-dd51acb32cd2 +# ╠═29d50357-630e-4448-a46f-43d9b949e1c4 +# ╟─2ec43028-c1ab-4df7-9cfe-cc1a4919a7cf +# ╠═8e2f2c6d-127d-42a6-9906-970c09a22e61 +# ╟─a6316144-c809-4d2a-bda1-d5128dcf89d3 +# ╠═f8fc2cee-c1bd-477d-9595-9427e8764bd6 +# ╟─7cb986f8-b338-4046-b569-493e443a8dcb +# ╟─d7e75a72-8281-432c-abab-c254f8c94d3c +# ╟─9dc89870-3d99-472e-8974-712e34a3a789 +# ╠═0f5d7796-2c3d-4b74-86c1-a1d4e3922011 +# ╟─6e2bfcfb-77e3-4532-a14d-10f4b91f2f54 +# ╟─bae79c05-034a-4c39-801a-01229b618e94 +# ╟─1494df6e-f407-42c4-8404-1f4871a2f817 +# ╠═a3f44d7c-efa3-41d0-9509-b099ab7f09d4 +# ╟─b3fc9578-6b40-4afc-bb58-c772a61a60a5 +# ╠═3e938872-a390-40ba-8b00-b132f988e2d3 +# ╟─1d65b1d1-82de-40ca-aaba-9eee23883cf3 +# ╠═40762509-b26e-47f5-8b49-e7100fdeb72a +# ╟─91e05c6c-e9b3-4a72-84a5-2ce4b1359b1a +# ╠═70614cac-2e06-48a9-9cf6-9078bc7436bc +# ╟─36885de0-aa0e-4037-929f-44e074fb17f5 +# ╠═af56e2f7-2ab8-4ff2-8295-038b3a565cbc +# ╟─df2dd9a7-045c-44a5-a62c-8d9f2541dc14 +# ╠═a6669580-de24-4111-a7cb-26d3e727a12e +# ╠═dfc9377a-7cc1-43ba-bb43-683d24e67d79 +# ╠═c283f9a3-6a76-4186-859f-21cd9efc131f +# ╠═69880e6d-162a-4aae-94eb-103bd35ac3c9 +# ╠═12d42392-ad7b-4c5f-baf5-1f2c6052669e +# ╟─eff59129-3133-4a56-a7cd-da0d9bc849d7 +# ╟─af7e12f9-c9d4-4cf0-b1e9-1fdea5f50509 +# ╟─2bf605e0-c245-454b-9c81-42701ac4f369 +# ╠═15adbe95-47e5-4a63-a00e-420c62dc1d05 +# ╟─7a1e65ab-21bd-4b86-a281-69c64108eda5 +# ╠═49d4d322-a66b-4672-968a-d4c412968b5a +# ╠═9c2557fb-4026-40ff-8ad4-871282327b24 +# ╟─45949f7f-4e4a-4857-af43-ff013dbdd137 +# ╠═402ba194-350e-4ff3-832b-6651be1d9ce7 +# ╠═bbdaf5c5-9faa-4b61-afab-c0242b8ca034 +# ╠═6ec3e34b-1c57-4cfb-a50d-ee786c2e4559 +# ╠═bacc8b9f-8b8d-4230-bcff-eb330ae328b1 +# ╠═a2e88851-227a-4719-8828-6064f9d3ef81 +# ╠═5cae73af-471c-4068-b9ff-5bc03dd0472d +# ╟─00000000-0000-0000-0000-000000000001 +# ╟─00000000-0000-0000-0000-000000000002 diff --git a/notebooks/imagecas_training.jl b/notebooks/imagecas_training.jl new file mode 100644 index 0000000..a330b48 --- /dev/null +++ b/notebooks/imagecas_training.jl @@ -0,0 +1,799 @@ +### A Pluto.jl notebook ### +# v0.19.32 + +using Markdown +using InteractiveUtils + +# This Pluto notebook uses @bind for interactivity. When running this notebook outside of Pluto, the following 'mock version' of @bind gives bound variables a default value (instead of an error). +macro bind(def, element) + quote + local iv = try Base.loaded_modules[Base.PkgId(Base.UUID("6e696c72-6542-2067-7265-42206c756150"), "AbstractPlutoDingetjes")].Bonds.initial_value catch; b -> missing; end + local el = $(esc(element)) + global $(esc(def)) = Core.applicable(Base.get, el) ? Base.get(el) : iv(el) + el + end +end + +# ╔═╡ c3a61cfa-7bed-43de-aec3-d9c2f78fbd2a +# ╠═╡ show_logs = false +using Pkg; Pkg.instantiate() + +# ╔═╡ 8fa34e64-9ba2-11ee-2b38-8fbf1139c9c9 +using DrWatson + +# ╔═╡ 3dad7c76-b87d-4a98-8d5d-e79807dc56ce +# ╠═╡ show_logs = false +@quickactivate "hd-loss" + +# ╔═╡ 2f14c39b-355f-49a2-9d84-05e71fcae24a +# ╠═╡ show_logs = false +using PlutoUI: TableOfContents, bind, Slider + +# ╔═╡ e4e6c5a0-c3df-4124-9e60-2af55719482e +using Random: MersenneTwister, seed! + +# ╔═╡ 247ef623-1521-474d-9943-4fdf2587f4d9 +using NIfTI: niread + +# ╔═╡ 77147872-8931-45d3-b819-c788ae0afc5f +# ╠═╡ show_logs = false +using MLUtils: DataLoader, mapobs, splitobs, getobs + +# ╔═╡ a4bef095-718e-4b5c-a68b-296454f7914f +using ImageTransformations: imresize + +# ╔═╡ ed3122e6-2d3d-4582-9bd4-e4ed016f2686 +# ╠═╡ show_logs = false +using Lux + +# ╔═╡ e9885bd2-444a-42ff-8d36-0c7b5c5fbbfb +using LuxCUDA + +# ╔═╡ b8429eef-bd66-4934-af2a-42527e5ffbc1 +# ╠═╡ show_logs = false +using CUDA; CUDA.set_runtime_version!(v"11.8") + +# ╔═╡ c53f5aba-5b87-4528-873f-7a36a673222f +using CairoMakie: Figure, Axis, heatmap! + +# ╔═╡ 6032d697-594b-4e64-a80e-1ae34ae22c9b +using ChainRulesCore: ignore_derivatives + +# ╔═╡ 3ea09ae8-11b9-4834-ac51-aba7165e7cce +using Statistics: mean, std + +# ╔═╡ 21d86c36-78ab-4735-b5aa-05fb44fb3df4 +TableOfContents() + +# ╔═╡ 1aa1582f-66a2-4d1f-ae0d-04189c6282ba +begin + rng = MersenneTwister() + seed!(rng, 12345) +end; + +# ╔═╡ a66c190a-df54-4c84-a5d8-d380dbbb83f7 +begin + struct ImageCASDataset + image_paths::Vector{String} + label_paths::Vector{String} + end + + function ImageCASDataset(data_dir::String) + patient_folders = [joinpath(data_dir, folder) for folder in readdir(data_dir)] + image_paths = String[] + label_paths = String[] + + for folder in patient_folders + push!(image_paths, joinpath(folder, "img.nii.gz")) + push!(label_paths, joinpath(folder, "label.nii.gz")) + end + + return ImageCASDataset(image_paths, label_paths) + end + + Base.length(d::ImageCASDataset) = length(d.image_paths) + + function Base.getindex(d::ImageCASDataset, i::Int) + image = niread(d.image_paths[i]).raw + label = niread(d.label_paths[i]).raw + return (image, label) + end + + function Base.getindex(d::ImageCASDataset, idxs::AbstractVector{Int}) + images = Vector{Array{Float32, 3}}(undef, length(idxs)) + labels = Vector{Array{UInt8, 3}}(undef, length(idxs)) + for (index, i) in enumerate(idxs) + images[index] = niread(d.image_paths[i]).raw + labels[index] = niread(d.label_paths[i]).raw + end + return (images, labels) + end +end + +# ╔═╡ 363a2415-9c74-4f86-9eb1-eabaaa7f8de7 +md""" +# Setup +""" + +# ╔═╡ d16c87b3-4fea-4084-8d89-f03e84fff49e +md""" +## Environment +""" + +# ╔═╡ 87a5da94-2ec4-48c6-886d-2e3ddeb7cb93 +md""" +## Randomness +""" + +# ╔═╡ a08c5e89-b1d2-43f1-ac11-5758235298fb +md""" +# Data Preparation +""" + +# ╔═╡ e81b97f5-9a6b-4866-b0a8-6f7b69b7e045 +md""" +## Dataset +""" + +# ╔═╡ 187a9e23-987d-4a58-9862-4d7262f181fd +data_dir = "/dfs7/symolloi-lab/imageCAS" + +# ╔═╡ 61ceda68-bd27-465b-8a9d-ded5b9c6191a +data = ImageCASDataset(data_dir) + +# ╔═╡ e42fdf29-ac12-43ba-b7ed-55f63acd1794 +md""" +## Preprocessing +""" + +# ╔═╡ f1b57532-c87a-4e99-ab7a-e65891d25e6f +function adjust_image_size( + volume::Array{T, 3}, + target_size::Tuple{Int, Int, Int}; + max_crop_percentage::Float64 = 0.15 +) where T + current_size = size(volume) + + # Check if the image is already the target size + if isequal(current_size, target_size) + return volume + end + + # Calculate the maximum allowable crop size + max_crop_size = round.(Int, current_size .* (1 - max_crop_percentage)) + + # Resize if the image is smaller than the target size + if all(x -> x[1] < x[2], zip(current_size, target_size)) + return imresize(volume, target_size) + end + + # Adjust if the image is larger than the target size + if all(x -> x[1] > x[2], zip(current_size, target_size)) + # Determine crop size, limited by the max crop size + crop_size = max.(max_crop_size, target_size) + + # Center crop + center = div.(current_size, 2) + start_idx = max.(1, center .- div.(crop_size, 2)) + end_idx = start_idx .+ crop_size .- 1 + cropped_volume = volume[start_idx[1]:end_idx[1], start_idx[2]:end_idx[2], start_idx[3]:end_idx[3]] + + # Resize if cropped size is not yet the target size + if any(x -> x[1] != x[2], zip(size(cropped_volume), target_size)) + return imresize(cropped_volume, target_size) + else + return cropped_volume + end + end + + # Return the original volume if none of the above conditions are met + return volume +end + +# ╔═╡ d9366696-2f06-4ac0-abea-e80d0262ef4b +function one_hot_encode(label::Array{T, 3}, num_classes::Int) where {T} + one_hot = zeros(T, size(label)..., num_classes) + + for k in 1:num_classes + one_hot[:, :, :, k] = label .== k-1 + end + + return one_hot +end + +# ╔═╡ 4605121b-55a7-44b4-b1f2-3947dc3d4807 +function preprocess_image_label_pair(pair, target_size) + # Check if pair[1] and pair[2] are individual arrays or collections of arrays + is_individual = ndims(pair[1]) == 3 && ndims(pair[2]) == 3 + + if is_individual + # Handle a single pair + cropped_image = adjust_image_size(pair[1], target_size) + cropped_label = one_hot_encode(adjust_image_size(pair[2], target_size), 2) + processed_image = reshape(cropped_image, size(cropped_image)..., 1) + return (Float32.(processed_image), Float32.(cropped_label)) + else + # Handle a batch of pairs + @info pair[1] + cropped_images = [adjust_image_size(img, target_size) for img in pair[1]] + cropped_labels = [one_hot_encode(adjust_image_size(lbl, target_size), 2) for lbl in pair[2]] + processed_images = [reshape(img, size(img)..., 1) for img in cropped_images] + return (Float32.(processed_images), Float32.(cropped_labels)) + end +end + +# ╔═╡ ed3e593d-8580-4e70-bb21-bea904b594dd +if LuxCUDA.functional() + target_size = (512, 512, 256) +else + target_size = (64, 64, 32) +end + +# ╔═╡ cc2ec55c-75c4-4033-8b0d-1fc15f543143 +transformed_data = mapobs( + x -> preprocess_image_label_pair(x, target_size), + data +) + +# ╔═╡ df15933f-ebd6-403b-b0d6-2abf048abbfa +md""" +## Dataloaders +""" + +# ╔═╡ aa2b57d7-d6c2-431a-a4c0-809d2146809b +train_data, val_data = splitobs(transformed_data; at = 0.75) + +# ╔═╡ 492d4b52-a19c-4277-a123-da856e7ff441 +bs = 1 + +# ╔═╡ a3922176-be46-4c39-8e19-7ae1659a318c +begin + train_loader = DataLoader(train_data; batchsize = bs, collate = true) + val_loader = DataLoader(val_data; batchsize = bs, collate = true) +end + +# ╔═╡ 2d2f7e84-fd88-4f05-90d1-b17b305f7bee +md""" +# Data Visualization +""" + +# ╔═╡ 80b023f8-55a2-4312-b4ae-381f72885e45 +md""" +## Original Data +""" + +# ╔═╡ 4384cd1a-179b-487d-97da-298172a50de1 +image_raw, label_raw = getobs(data, 1); + +# ╔═╡ f4fd62b4-305a-46d3-9c95-9d6617b254b7 +@bind z1 Slider(axes(image_raw, 3), show_value = true, default = div(size(image_raw, 3), 2)) + +# ╔═╡ c0119a87-10e1-4a12-b908-c1c09d862357 +let + f = Figure(size = (700, 500)) + ax = Axis( + f[1, 1], + title = "Original Image" + ) + heatmap!(image_raw[:, :, z1]; colormap = :grays) + + ax = Axis( + f[1, 2], + title = "Original Label (Overlayed)" + ) + heatmap!(image_raw[:, :, z1]; colormap = :grays) + heatmap!(label_raw[:, :, z1]; colormap = (:jet, 0.4)) + f +end + +# ╔═╡ 4c1da79b-8389-4248-ba50-cfd7577aa6df +md""" +## Transformed Data +""" + +# ╔═╡ ceb2145b-1d2e-4615-9494-076f525f842a +image_tfm, label_tfm = getobs(transformed_data, 1); + +# ╔═╡ d617ca19-d915-48a5-b282-5af0ec09b362 +unique(label_tfm) + +# ╔═╡ 84e9b251-c83e-4bb7-a065-6ca1a9cffb49 +@bind z2 Slider(1:target_size[3], show_value = true, default = div(target_size[3], 2)) + +# ╔═╡ 337e609b-15d9-4ce3-82cd-5bceb0e479af +let + f = Figure(size = (700, 500)) + ax = Axis( + f[1, 1], + title = "Transformed Image" + ) + heatmap!(image_tfm[:, :, z2, 1]; colormap = :grays) + + ax = Axis( + f[1, 2], + title = "Transformed Label (Overlayed)" + ) + heatmap!(image_tfm[:, :, z2, 1]; colormap = :grays) + heatmap!(label_tfm[:, :, z2, 2]; colormap = (:jet, 0.4)) + f +end + +# ╔═╡ e501bc02-a1f0-4a3c-9587-e81237a10bc8 +md""" +# Model +""" + +# ╔═╡ 50983336-c945-4835-a9ee-b56a6476ad74 +md""" +## Helper functions +""" + +# ╔═╡ 0b10cb62-6a4d-4acf-aef1-f471e21ef5e8 +function create_unet_layers( + kernel_size, de_kernel_size, channel_list; + downsample = true) + + padding = (kernel_size - 1) ÷ 2 + + conv1 = Conv((kernel_size, kernel_size, kernel_size), channel_list[1] => channel_list[2], stride=1, pad=padding) + conv2 = Conv((kernel_size, kernel_size, kernel_size), channel_list[2] => channel_list[3], stride=1, pad=padding) + + relu1 = relu + relu2 = relu + bn1 = BatchNorm(channel_list[2]) + bn2 = BatchNorm(channel_list[3]) + + bridge_conv = Conv((kernel_size, kernel_size, kernel_size), channel_list[1] => channel_list[3], stride=1, pad=padding) + + if downsample + sample = Chain( + Conv((de_kernel_size, de_kernel_size, de_kernel_size), channel_list[3] => channel_list[3], stride=2, pad=(de_kernel_size - 1) ÷ 2, dilation=1), + BatchNorm(channel_list[3]), + relu + ) + else + sample = Chain( + ConvTranspose((de_kernel_size, de_kernel_size, de_kernel_size), channel_list[3] => channel_list[3], stride=2, pad=(de_kernel_size - 1) ÷ 2), + BatchNorm(channel_list[3]), + relu + ) + end + + return (conv1, conv2, relu1, relu2, bn1, bn2, bridge_conv, sample) +end + +# ╔═╡ 0cd872e4-357b-49f6-9212-3b02e09aa020 +md""" +## Contracting Block +""" + +# ╔═╡ fb697e38-a345-4297-90b8-0d686f4ecec3 +begin + struct ContractBlock <: Lux.AbstractExplicitContainerLayer{ + (:conv1, :conv2, :bn1, :bn2, :bridge_conv, :sample) + } + conv1::Conv + conv2::Conv + relu1::Function + relu2::Function + bn1::BatchNorm + bn2::BatchNorm + bridge_conv::Conv + sample::Chain + end + + function ContractBlock( + kernel_size, de_kernel_size, channel_list; + downsample = true + ) + + + conv1, conv2, relu1, relu2, bn1, bn2, bridge_conv, sample = create_unet_layers( + kernel_size, de_kernel_size, channel_list; + downsample = downsample + ) + + ContractBlock(conv1, conv2, relu1, relu2, bn1, bn2, bridge_conv, sample) + end + + function (m::ContractBlock)(x, ps, st::NamedTuple) + res, st_bridge_conv = m.bridge_conv(x, ps.bridge_conv, st.bridge_conv) + x, st_conv1 = m.conv1(x, ps.conv1, st.conv1) + x, st_bn1 = m.bn1(x, ps.bn1, st.bn1) + x = relu(x) + + x, st_conv2 = m.conv2(x, ps.conv2, st.conv2) + x, st_bn2 = m.bn2(x, ps.bn2, st.bn2) + x = relu(x) + + x = x .+ res + + next_layer, st_sample = m.sample(x, ps.sample, st.sample) + + st = (conv1=st_conv1, conv2=st_conv2, bn1=st_bn1, bn2=st_bn2, bridge_conv=st_bridge_conv, sample=st_sample) + return next_layer, x, st + end +end + +# ╔═╡ 9228b077-9b18-4485-93a0-07c84edd7c48 +md""" +## Expanding Block +""" + +# ╔═╡ 45ded54e-8ee3-4aa5-a1a5-79224a416b47 +begin + struct ExpandBlock <: Lux.AbstractExplicitContainerLayer{ + (:conv1, :conv2, :bn1, :bn2, :bridge_conv, :sample) + } + conv1::Conv + conv2::Conv + relu1::Function + relu2::Function + bn1::BatchNorm + bn2::BatchNorm + bridge_conv::Conv + sample::Chain + end + + function ExpandBlock( + kernel_size, de_kernel_size, channel_list; + downsample = false) + + conv1, conv2, relu1, relu2, bn1, bn2, bridge_conv, sample = create_unet_layers( + kernel_size, de_kernel_size, channel_list; + downsample = downsample + ) + + ExpandBlock(conv1, conv2, relu1, relu2, bn1, bn2, bridge_conv, sample) + end + + function (m::ExpandBlock)(x, ps, st::NamedTuple) + x, x1 = x[1], x[2] + x = cat(x, x1; dims=4) + + res, st_bridge_conv = m.bridge_conv(x, ps.bridge_conv, st.bridge_conv) + + x, st_conv1 = m.conv1(x, ps.conv1, st.conv1) + x, st_bn1 = m.bn1(x, ps.bn1, st.bn1) + x = relu(x) + + x, st_conv2 = m.conv2(x, ps.conv2, st.conv2) + x, st_bn2 = m.bn2(x, ps.bn2, st.bn2) + x = relu(x) + + x = x .+ res + + next_layer, st_sample = m.sample(x, ps.sample, st.sample) + + st = (conv1=st_conv1, conv2=st_conv2, bn1=st_bn1, bn2=st_bn2, bridge_conv=st_bridge_conv, sample=st_sample) + return next_layer, st + end +end + +# ╔═╡ 8c0ea123-42db-4b95-bde8-46f2bafff2c9 +md""" +## U-Net +""" + +# ╔═╡ d762f8e2-853a-455c-9fc7-691e54a04593 +begin + struct UNet <: Lux.AbstractExplicitContainerLayer{ + (:conv1, :conv2, :conv3, :conv4, :conv5, :de_conv1, :de_conv2, :de_conv3, :de_conv4, :last_conv) + } + conv1::Chain + conv2::Chain + conv3::ContractBlock + conv4::ContractBlock + conv5::ContractBlock + de_conv1::ContractBlock + de_conv2::ExpandBlock + de_conv3::ExpandBlock + de_conv4::ExpandBlock + last_conv::Conv + end + + function UNet(channel) + conv1 = Chain( + Conv((5, 5, 5), 1 => channel, stride=1, pad=2), + BatchNorm(channel), + relu + ) + conv2 = Chain( + Conv((2, 2, 2), channel => 2 * channel, stride=2, pad=0), + BatchNorm(2 * channel), + relu + ) + conv3 = ContractBlock(5, 2, [2 * channel, 2 * channel, 4 * channel]) + conv4 = ContractBlock(5, 2, [4 * channel, 4 * channel, 8 * channel]) + conv5 = ContractBlock(5, 2, [8 * channel, 8 * channel, 16 * channel]) + + de_conv1 = ContractBlock( + 5, 2, [16 * channel, 32 * channel, 16 * channel]; + downsample = false + ) + de_conv2 = ExpandBlock( + 5, 2, [32 * channel, 8 * channel, 8 * channel]; + downsample = false + ) + de_conv3 = ExpandBlock( + 5, 2, [16 * channel, 4 * channel, 4 * channel]; + downsample = false + ) + de_conv4 = ExpandBlock( + 5, 2, [8 * channel, 2 * channel, channel]; + downsample = false + ) + + last_conv = Conv((1, 1, 1), 2 * channel => 2, stride=1, pad=0) + + UNet(conv1, conv2, conv3, conv4, conv5, de_conv1, de_conv2, de_conv3, de_conv4, last_conv) + end + + function (m::UNet)(x, ps, st::NamedTuple) + # Convolutional layers + x, st_conv1 = m.conv1(x, ps.conv1, st.conv1) + x_1 = x # Store for skip connection + x, st_conv2 = m.conv2(x, ps.conv2, st.conv2) + + # Downscaling Blocks + x, x_2, st_conv3 = m.conv3(x, ps.conv3, st.conv3) + x, x_3, st_conv4 = m.conv4(x, ps.conv4, st.conv4) + x, x_4, st_conv5 = m.conv5(x, ps.conv5, st.conv5) + + # Upscaling Blocks + x, _, st_de_conv1 = m.de_conv1(x, ps.de_conv1, st.de_conv1) + x, st_de_conv2 = m.de_conv2((x, x_4), ps.de_conv2, st.de_conv2) + x, st_de_conv3 = m.de_conv3((x, x_3), ps.de_conv3, st.de_conv3) + x, st_de_conv4 = m.de_conv4((x, x_2), ps.de_conv4, st.de_conv4) + + # Concatenate with first skip connection and apply last convolution + x = cat(x, x_1; dims=4) + x, st_last_conv = m.last_conv(x, ps.last_conv, st.last_conv) + + # Merge states + st = ( + conv1=st_conv1, conv2=st_conv2, conv3=st_conv3, conv4=st_conv4, conv5=st_conv5, de_conv1=st_de_conv1, de_conv2=st_de_conv2, de_conv3=st_de_conv3, de_conv4=st_de_conv4, last_conv=st_last_conv + ) + + return x, st + end +end + +# ╔═╡ b444cb9d-987c-482f-a0c8-634538a8829f +md""" +# Training Set Up +""" + +# ╔═╡ 3796367c-41a7-4024-bfdb-afc5efbbb0cf +# using DistanceTransforms: transform, boolean_indicator + +# ╔═╡ 99ce5436-50ac-4237-b2a8-bd6c575cba0d +# using Losers: dice_loss, hausdorff_loss + +# ╔═╡ d9eb6d05-78fc-4c7b-a390-1ba4c1db1d47 +import Zygote + +# ╔═╡ 43fe8326-fd33-4869-9d0c-0ccfe4ec01cf +import Optimisers + +# ╔═╡ 14e78c3b-1e86-4d64-b280-938e3e181f36 +md""" +## Optimiser +""" + +# ╔═╡ c7dbbbcd-65c5-4a0b-ad71-79f1b1ce1767 +function create_optimiser(ps) + opt = Optimisers.ADAM(0.01f0) + return Optimisers.setup(opt, ps) +end + +# ╔═╡ 0d10693a-a77a-4550-a1c1-e198ec11c985 +md""" +## Loss function +""" + +# ╔═╡ 3d9ffa18-cb55-4bf1-b874-d7e1aa04355b +# function compute_loss(x, y, model, ps, st, epoch) +# alpha = max(1.0 - 0.01 * epoch, 0.01) +# beta = 1.0 - alpha + +# y_pred, st = model(x, ps, st) + +# y_pred_softmax = softmax(y_pred, dims=4) +# y_pred_binary = round.(y_pred_softmax[:, :, :, 2, :]) +# y_binary = y[:, :, :, 2, :] + +# # Compute loss +# loss = 0.0 +# for b in axes(y, 5) +# _y_pred = y_pred_binary[:, :, :, b] +# _y = y_binary[:, :, :, b] + +# local _y_dtm, _y_pred_dtm +# ignore_derivatives() do +# _y_dtm = transform(boolean_indicator(_y)) +# _y_pred_dtm = transform(boolean_indicator(_y_pred)) +# end + +# hd = hausdorff_loss(_y_pred, _y, _y_pred_dtm, _y_dtm) +# dsc = dice_loss(_y_pred, _y) +# loss += alpha * dsc + beta * hd +# end + +# return loss / size(y, 5), y_pred_binary, st +# end + +# ╔═╡ 1066f4c7-d463-4119-821c-e7c50e84a909 +function dice_loss(ŷ, y, ϵ=1e-5) + return loss = 1 - ((2 * sum(ŷ .* y) + ϵ) / (sum(ŷ .* ŷ) + sum(y .* y) + ϵ)) +end + +# ╔═╡ 6990e258-7dbe-47f2-b225-fe9b1ff6f607 +function compute_loss(x, y, model, ps, st) + + y_pred, st = model(x, ps, st) + + y_pred_softmax = softmax(y_pred, dims=4) + y_pred_binary = round.(y_pred_softmax[:, :, :, 2, :]) + y_binary = y[:, :, :, 2, :] + + # Compute loss + loss = 0.0 + for b in axes(y, 5) + _y_pred = y_pred_binary[:, :, :, b] + _y = y_binary[:, :, :, b] + + dsc = dice_loss(_y_pred, _y) + loss += dsc + end + + return loss / size(y, 5), y_pred_binary, st +end + +# ╔═╡ 075c60a6-d1d3-4f64-9186-1fbf1a8abc08 +md""" +# Train +""" + +# ╔═╡ df358406-3547-472c-8d12-02dea6719145 +dev = gpu_device() + +# ╔═╡ 5ff89b95-29c0-4b62-b55e-0d23afba43f5 +model = UNet(4) + +# ╔═╡ 72efcca2-5300-4524-b2b5-09545bdacb92 +begin + ps, st = Lux.setup(rng, model) + ps, st = ps |> dev, st |> dev +end + +# ╔═╡ 6c4dcde0-c72b-4562-b4d9-ea4e15eba84c +function train_model(model, ps, st, train_loader, num_epochs, dev) + opt_state = create_optimiser(ps) + + for epoch in 1:num_epochs + @info "Epoch: $epoch" + + # Training Phase + for (x, y) in train_loader + x = x |> dev + y = y |> dev + + # Forward pass + y_pred, st = Lux.apply(model, x, ps, st) + loss, y_pred, st = compute_loss(x, y, model, ps, st) + # @info "Training Loss: $loss" + + # Backward pass + (loss_grad, st_), back = Zygote.pullback(p -> Lux.apply(model, x, p, st), ps) + gs = back((one.(loss_grad), nothing))[1] + + # Update parameters + opt_state, ps = Optimisers.update(opt_state, ps, gs) + end + + # Validation Phase + total_loss = 0.0 + num_batches = 0 + for (x, y) in val_loader + x, y = x |> dev, y |> dev + + # Forward Pass + y_pred, st = Lux.apply(model, x, ps, st) + loss, _, _ = compute_loss(x, y, model, ps, st) + + total_loss += loss + num_batches += 1 + end + avg_loss = total_loss / num_batches + @info "Validation Loss: $avg_loss" + end + + return ps, st +end + +# ╔═╡ 2259e733-0210-4e4d-839d-8471c462c694 +if LuxCUDA.functional() + num_epochs = 20 +else + num_epochs = 2 +end + +# ╔═╡ 62a09464-b6d1-4131-8565-a1754ba634d5 +# ╠═╡ disabled = true +#=╠═╡ +train_model(model, ps, st, train_loader, num_epochs, dev) + ╠═╡ =# + +# ╔═╡ Cell order: +# ╟─363a2415-9c74-4f86-9eb1-eabaaa7f8de7 +# ╟─d16c87b3-4fea-4084-8d89-f03e84fff49e +# ╠═8fa34e64-9ba2-11ee-2b38-8fbf1139c9c9 +# ╠═3dad7c76-b87d-4a98-8d5d-e79807dc56ce +# ╠═c3a61cfa-7bed-43de-aec3-d9c2f78fbd2a +# ╠═b8429eef-bd66-4934-af2a-42527e5ffbc1 +# ╠═2f14c39b-355f-49a2-9d84-05e71fcae24a +# ╠═21d86c36-78ab-4735-b5aa-05fb44fb3df4 +# ╟─87a5da94-2ec4-48c6-886d-2e3ddeb7cb93 +# ╠═e4e6c5a0-c3df-4124-9e60-2af55719482e +# ╠═1aa1582f-66a2-4d1f-ae0d-04189c6282ba +# ╟─a08c5e89-b1d2-43f1-ac11-5758235298fb +# ╠═247ef623-1521-474d-9943-4fdf2587f4d9 +# ╠═77147872-8931-45d3-b819-c788ae0afc5f +# ╠═a4bef095-718e-4b5c-a68b-296454f7914f +# ╠═ed3122e6-2d3d-4582-9bd4-e4ed016f2686 +# ╠═e9885bd2-444a-42ff-8d36-0c7b5c5fbbfb +# ╟─e81b97f5-9a6b-4866-b0a8-6f7b69b7e045 +# ╠═a66c190a-df54-4c84-a5d8-d380dbbb83f7 +# ╠═187a9e23-987d-4a58-9862-4d7262f181fd +# ╠═61ceda68-bd27-465b-8a9d-ded5b9c6191a +# ╟─e42fdf29-ac12-43ba-b7ed-55f63acd1794 +# ╠═f1b57532-c87a-4e99-ab7a-e65891d25e6f +# ╠═d9366696-2f06-4ac0-abea-e80d0262ef4b +# ╠═4605121b-55a7-44b4-b1f2-3947dc3d4807 +# ╠═ed3e593d-8580-4e70-bb21-bea904b594dd +# ╠═cc2ec55c-75c4-4033-8b0d-1fc15f543143 +# ╟─df15933f-ebd6-403b-b0d6-2abf048abbfa +# ╠═aa2b57d7-d6c2-431a-a4c0-809d2146809b +# ╠═492d4b52-a19c-4277-a123-da856e7ff441 +# ╠═a3922176-be46-4c39-8e19-7ae1659a318c +# ╟─2d2f7e84-fd88-4f05-90d1-b17b305f7bee +# ╠═c53f5aba-5b87-4528-873f-7a36a673222f +# ╟─80b023f8-55a2-4312-b4ae-381f72885e45 +# ╠═4384cd1a-179b-487d-97da-298172a50de1 +# ╟─f4fd62b4-305a-46d3-9c95-9d6617b254b7 +# ╟─c0119a87-10e1-4a12-b908-c1c09d862357 +# ╟─4c1da79b-8389-4248-ba50-cfd7577aa6df +# ╠═ceb2145b-1d2e-4615-9494-076f525f842a +# ╠═d617ca19-d915-48a5-b282-5af0ec09b362 +# ╟─84e9b251-c83e-4bb7-a065-6ca1a9cffb49 +# ╟─337e609b-15d9-4ce3-82cd-5bceb0e479af +# ╟─e501bc02-a1f0-4a3c-9587-e81237a10bc8 +# ╟─50983336-c945-4835-a9ee-b56a6476ad74 +# ╠═0b10cb62-6a4d-4acf-aef1-f471e21ef5e8 +# ╟─0cd872e4-357b-49f6-9212-3b02e09aa020 +# ╠═fb697e38-a345-4297-90b8-0d686f4ecec3 +# ╟─9228b077-9b18-4485-93a0-07c84edd7c48 +# ╠═45ded54e-8ee3-4aa5-a1a5-79224a416b47 +# ╟─8c0ea123-42db-4b95-bde8-46f2bafff2c9 +# ╠═d762f8e2-853a-455c-9fc7-691e54a04593 +# ╟─b444cb9d-987c-482f-a0c8-634538a8829f +# ╠═3796367c-41a7-4024-bfdb-afc5efbbb0cf +# ╠═99ce5436-50ac-4237-b2a8-bd6c575cba0d +# ╠═d9eb6d05-78fc-4c7b-a390-1ba4c1db1d47 +# ╠═43fe8326-fd33-4869-9d0c-0ccfe4ec01cf +# ╠═6032d697-594b-4e64-a80e-1ae34ae22c9b +# ╟─14e78c3b-1e86-4d64-b280-938e3e181f36 +# ╠═c7dbbbcd-65c5-4a0b-ad71-79f1b1ce1767 +# ╟─0d10693a-a77a-4550-a1c1-e198ec11c985 +# ╠═3d9ffa18-cb55-4bf1-b874-d7e1aa04355b +# ╠═1066f4c7-d463-4119-821c-e7c50e84a909 +# ╠═6990e258-7dbe-47f2-b225-fe9b1ff6f607 +# ╟─075c60a6-d1d3-4f64-9186-1fbf1a8abc08 +# ╠═3ea09ae8-11b9-4834-ac51-aba7165e7cce +# ╠═df358406-3547-472c-8d12-02dea6719145 +# ╠═5ff89b95-29c0-4b62-b55e-0d23afba43f5 +# ╠═72efcca2-5300-4524-b2b5-09545bdacb92 +# ╠═6c4dcde0-c72b-4562-b4d9-ea4e15eba84c +# ╠═2259e733-0210-4e4d-839d-8471c462c694 +# ╠═62a09464-b6d1-4131-8565-a1754ba634d5 diff --git a/notebooks/todo.jl b/notebooks/todo.jl deleted file mode 100644 index 46814c1..0000000 --- a/notebooks/todo.jl +++ /dev/null @@ -1,60 +0,0 @@ -### A Pluto.jl notebook ### -# v0.19.14 - -using Markdown -using InteractiveUtils - -# ╔═╡ 3c5fb9b4-d89c-11ed-1f0f-676a16540e9a -md""" -# Timings -## 1. Distance Transforms (2D & 3D) -Compare the pure distance transform algorithms in 2D & 3D. The scipy version is a Julia wrapper around the scipy DT. Compare that against the Julia Felzenszwalb DT on CPU and GPU. -- ✅ ``\text{Scipy}`` -- ✅ ``\text{Felzenszwalb}_{\text{CPU}}`` -- ✅ ``\text{Felzenszwalb}_{\text{GPU}}`` - -## 2. Hausdorff Loss (2D & 3D) -Compare the pure Hausdorff loss functions in 2D & 3D on random arrays. The Hausdorff loss function itself will remain identical between all implementations, with only the underlying distance transform algorithm changing. The current gold standard scipy DT version is the reference. Next, show Felzenszwalb DT on CPU in the HD loss and finally Felzenszwalb on GPU in the HD loss, which should be the fastest. -- ✅ Pure HD Loss, Scipy (``\text{HD-Scipy}``) -- ✅ Pure HD Loss, Felzenszwalb on CPU (``\text{HD-Felzenszwalb}_{\text{CPU}}``) -- ✅ Pure HD Loss, Felzenszwalb on GPU (``\text{HD-Felzenszwalb}_{\text{GPU}}``) - -## 3. Training Loops (Task02 Heart, 3D Only) -Compare the step and epoch times for various training loops. The baseline will be a pure dice loss. Then compare hybrid forms of the Dice/HD loss functions. Use the scipy implementation since that is the current gold standard. Then use the Felzenszwalb GPU version only, since that is the fastest which is shown in the previous sections above. -- ✅ Pure Dice (``\text{Loss}_{\text{Dice}}``) -- ✅ Hybrid Dice/HD (``\text{Loss}_{\text{Scipy}}``) -- ✅ Hybrid Dice/HD (``\text{Loss}_{\text{Felzenszwalb}}``) - -# Accuracy -This section looks at 2 different datasets, and since timings are already acquired, we will only use the fastest hybrid loss function (``\text{Loss}_{\text{Felzenszwalb}}``) on GPU, to compare against the baseline pure dice loss function. Record the Hausdorff Distance and Dice-Sorenson Coefficient for the best model for both loss functions. - -## 4. Task02 Heart -- ✅ Pure Dice Metrics (``\text{Loss}_{\text{Dice}}``) -- ✅ Hybrid Dice/HD Metrics (``\text{Loss}_{\text{Felzenszwalb}}``) - -## 5. RSNA Challenge -- ✅ Pure Dice Metrics (``\text{Loss}_{\text{Dice}}``) -- ✅ Hybrid Dice/HD Metrics (``\text{Loss}_{\text{Felzenszwalb}}``) - -""" - -# ╔═╡ 00000000-0000-0000-0000-000000000001 -PLUTO_PROJECT_TOML_CONTENTS = """ -[deps] -""" - -# ╔═╡ 00000000-0000-0000-0000-000000000002 -PLUTO_MANIFEST_TOML_CONTENTS = """ -# This file is machine-generated - editing it directly is not advised - -julia_version = "1.8.5" -manifest_format = "2.0" -project_hash = "da39a3ee5e6b4b0d3255bfef95601890afd80709" - -[deps] -""" - -# ╔═╡ Cell order: -# ╟─3c5fb9b4-d89c-11ed-1f0f-676a16540e9a -# ╟─00000000-0000-0000-0000-000000000001 -# ╟─00000000-0000-0000-0000-000000000002 diff --git a/notebooks/training_loops.jl b/notebooks/training_loops.jl new file mode 100644 index 0000000..7635c74 --- /dev/null +++ b/notebooks/training_loops.jl @@ -0,0 +1,681 @@ +### A Pluto.jl notebook ### +# v0.19.32 + +using Markdown +using InteractiveUtils + +# ╔═╡ 0ff50fcc-a71a-403d-9e62-458125ac6dc4 +using Pkg; Pkg.instantiate() + +# ╔═╡ 6972d6e6-8a28-11ee-223b-8fe3cb023e45 +using DrWatson + +# ╔═╡ df5b07d1-5413-4768-8b1b-237b4300fdad +# ╠═╡ show_logs = false +@quickactivate "hd-loss" + +# ╔═╡ 5abcd30b-bc3e-4d15-97be-6d53f5cc6481 +# ╠═╡ show_logs = false +using CUDA; CUDA.set_runtime_version!(v"11.8") + +# ╔═╡ 5eaabc58-aa01-419a-bfa1-7cc3eb96d8d1 +# ╠═╡ show_logs = false +using PlutoUI, BenchmarkTools, CairoMakie, DataFrames, CSV, Statistics + +# ╔═╡ 07dc4f9b-7e39-4d76-88e6-3c32068c99b0 +# ╠═╡ show_logs = false +using Lux, LuxCUDA, Random, Optimisers, Zygote, MLUtils + +# ╔═╡ 05d00e65-b22d-4ba9-83e7-3f53647080e7 +using ChainRulesCore: ignore_derivatives + +# ╔═╡ 5dc05f88-8672-427b-ab52-d92358f4151c +using Losers: dice_loss, hausdorff_loss + +# ╔═╡ 514a75f3-decc-46d0-b9b4-df971631f564 +using ImageMorphology: distance_transform, feature_transform + +# ╔═╡ 2f295ac4-d211-4969-bc82-1c6aeb8e8fc5 +using DistanceTransformsPy: pytransform + +# ╔═╡ 85ae8235-f118-4c78-a442-257dfa49e729 +using DistanceTransforms: transform, boolean_indicator + +# ╔═╡ d7959ac3-4366-41f4-9487-a2b9bc1f65d2 +TableOfContents() + +# ╔═╡ 4ccc2224-a361-4647-9dd6-bc598cc86bb0 +md""" +# Setup +""" + +# ╔═╡ 1b758e7b-df5c-4fc0-b534-ef3f76b5a59a +md""" +## Randomness +Initialize the random number generator +""" + +# ╔═╡ c6dec210-71d4-4f07-b5d1-93af2dc2d6e3 +begin + rng = MersenneTwister() + Random.seed!(rng, 12345) +end; + +# ╔═╡ 99abc39a-6f4d-4f99-8380-682a98d56b8e +md""" +## Model +""" + +# ╔═╡ 26d6e4b4-bc46-4268-93d2-d04bc87223d7 +md""" +## Helper functions +""" + +# ╔═╡ ed981ddc-8b05-4a29-bf94-120ddb4a62b0 +function create_unet_layers( + kernel_size, de_kernel_size, channel_list; + downsample = true) + + padding = (kernel_size - 1) ÷ 2 + + conv1 = Conv((kernel_size, kernel_size, kernel_size), channel_list[1] => channel_list[2], stride=1, pad=padding) + conv2 = Conv((kernel_size, kernel_size, kernel_size), channel_list[2] => channel_list[3], stride=1, pad=padding) + + relu1 = relu + relu2 = relu + bn1 = BatchNorm(channel_list[2]) + bn2 = BatchNorm(channel_list[3]) + + bridge_conv = Conv((kernel_size, kernel_size, kernel_size), channel_list[1] => channel_list[3], stride=1, pad=padding) + + if downsample + sample = Chain( + Conv((de_kernel_size, de_kernel_size, de_kernel_size), channel_list[3] => channel_list[3], stride=2, pad=(de_kernel_size - 1) ÷ 2, dilation=1), + BatchNorm(channel_list[3]), + relu + ) + else + sample = Chain( + ConvTranspose((de_kernel_size, de_kernel_size, de_kernel_size), channel_list[3] => channel_list[3], stride=2, pad=(de_kernel_size - 1) ÷ 2), + BatchNorm(channel_list[3]), + relu + ) + end + + return (conv1, conv2, relu1, relu2, bn1, bn2, bridge_conv, sample) +end + +# ╔═╡ 98910f33-05e4-4ca7-bc33-1b3fda75e7e0 +md""" +## Unet module +""" + +# ╔═╡ cbf4cfb3-8af6-4fc0-9e7a-eebc73e22a44 +begin + struct UNetModule <: Lux.AbstractExplicitContainerLayer{ + (:conv1, :conv2, :bn1, :bn2, :bridge_conv, :sample) + } + conv1::Conv + conv2::Conv + relu1::Function + relu2::Function + bn1::BatchNorm + bn2::BatchNorm + bridge_conv::Conv + sample::Chain + end + + function UNetModule( + kernel_size, de_kernel_size, channel_list; + downsample = true + ) + + conv1, conv2, relu1, relu2, bn1, bn2, bridge_conv, sample = create_unet_layers( + kernel_size, de_kernel_size, channel_list; + downsample = downsample + ) + + UNetModule(conv1, conv2, relu1, relu2, bn1, bn2, bridge_conv, sample) + end + + function (m::UNetModule)(x, ps, st::NamedTuple) + res, st_bridge_conv = m.bridge_conv(x, ps.bridge_conv, st.bridge_conv) + x, st_conv1 = m.conv1(x, ps.conv1, st.conv1) + x, st_bn1 = m.bn1(x, ps.bn1, st.bn1) + x = relu(x) + + x, st_conv2 = m.conv2(x, ps.conv2, st.conv2) + x, st_bn2 = m.bn2(x, ps.bn2, st.bn2) + x = relu(x) + + x = x .+ res + + next_layer, st_sample = m.sample(x, ps.sample, st.sample) + + st = (conv1=st_conv1, conv2=st_conv2, bn1=st_bn1, bn2=st_bn2, bridge_conv=st_bridge_conv, sample=st_sample) + return next_layer, x, st + end +end + +# ╔═╡ 40b24e17-5f39-4af8-aac3-77e914712808 +md""" +## Deconv module +""" + +# ╔═╡ ac8b2060-fe96-4a0f-b00e-5f16fe6f7f8a +begin + struct DeConvModule <: Lux.AbstractExplicitContainerLayer{ + (:conv1, :conv2, :bn1, :bn2, :bridge_conv, :sample) + } + conv1::Conv + conv2::Conv + relu1::Function + relu2::Function + bn1::BatchNorm + bn2::BatchNorm + bridge_conv::Conv + sample::Chain + end + + function DeConvModule( + kernel_size, de_kernel_size, channel_list; + downsample = false) + + conv1, conv2, relu1, relu2, bn1, bn2, bridge_conv, sample = create_unet_layers( + kernel_size, de_kernel_size, channel_list; + downsample = downsample + ) + + DeConvModule(conv1, conv2, relu1, relu2, bn1, bn2, bridge_conv, sample) + end + + function (m::DeConvModule)(x, ps, st::NamedTuple) + x, x1 = x[1], x[2] + x = cat(x, x1; dims=4) + + res, st_bridge_conv = m.bridge_conv(x, ps.bridge_conv, st.bridge_conv) + + x, st_conv1 = m.conv1(x, ps.conv1, st.conv1) + x, st_bn1 = m.bn1(x, ps.bn1, st.bn1) + x = relu(x) + + x, st_conv2 = m.conv2(x, ps.conv2, st.conv2) + x, st_bn2 = m.bn2(x, ps.bn2, st.bn2) + x = relu(x) + + x = x .+ res + + next_layer, st_sample = m.sample(x, ps.sample, st.sample) + + st = (conv1=st_conv1, conv2=st_conv2, bn1=st_bn1, bn2=st_bn2, bridge_conv=st_bridge_conv, sample=st_sample) + return next_layer, st + end +end + +# ╔═╡ ed6e1bd5-1fa9-43a8-a28f-085313e36d46 +md""" +## Model +""" + +# ╔═╡ 6b0c097a-2025-4c72-b051-4fb1053cb02d +begin + struct FCN <: Lux.AbstractExplicitContainerLayer{ + (:conv1, :conv2, :conv3, :conv4, :conv5, :de_conv1, :de_conv2, :de_conv3, :de_conv4, :last_conv) + } + conv1::Chain + conv2::Chain + conv3::UNetModule + conv4::UNetModule + conv5::UNetModule + de_conv1::UNetModule + de_conv2::DeConvModule + de_conv3::DeConvModule + de_conv4::DeConvModule + last_conv::Conv + end + + function FCN(channel) + conv1 = Chain( + Conv((5, 5, 5), 1 => channel, stride=1, pad=2), + BatchNorm(channel), + relu + ) + conv2 = Chain( + Conv((2, 2, 2), channel => 2 * channel, stride=2, pad=0), + BatchNorm(2 * channel), + relu + ) + conv3 = UNetModule(5, 2, [2 * channel, 2 * channel, 4 * channel]) + conv4 = UNetModule(5, 2, [4 * channel, 4 * channel, 8 * channel]) + conv5 = UNetModule(5, 2, [8 * channel, 8 * channel, 16 * channel]) + + de_conv1 = UNetModule( + 5, 2, [16 * channel, 32 * channel, 16 * channel]; + downsample = false + ) + de_conv2 = DeConvModule( + 5, 2, [32 * channel, 8 * channel, 8 * channel]; + downsample = false + ) + de_conv3 = DeConvModule( + 5, 2, [16 * channel, 4 * channel, 4 * channel]; + downsample = false + ) + de_conv4 = DeConvModule( + 5, 2, [8 * channel, 2 * channel, channel]; + downsample = false + ) + + last_conv = Conv((1, 1, 1), 2 * channel => 1, stride=1, pad=0) + + FCN(conv1, conv2, conv3, conv4, conv5, de_conv1, de_conv2, de_conv3, de_conv4, last_conv) + end + + function (m::FCN)(x, ps, st::NamedTuple) + # Convolutional layers + x, st_conv1 = m.conv1(x, ps.conv1, st.conv1) + x_1 = x # Store for skip connection + x, st_conv2 = m.conv2(x, ps.conv2, st.conv2) + + # Downscaling UNet modules + x, x_2, st_conv3 = m.conv3(x, ps.conv3, st.conv3) + x, x_3, st_conv4 = m.conv4(x, ps.conv4, st.conv4) + x, x_4, st_conv5 = m.conv5(x, ps.conv5, st.conv5) + + # Upscaling DeConv modules + x, _, st_de_conv1 = m.de_conv1(x, ps.de_conv1, st.de_conv1) + x, st_de_conv2 = m.de_conv2((x, x_4), ps.de_conv2, st.de_conv2) + x, st_de_conv3 = m.de_conv3((x, x_3), ps.de_conv3, st.de_conv3) + x, st_de_conv4 = m.de_conv4((x, x_2), ps.de_conv4, st.de_conv4) + + # Concatenate with first skip connection and apply last convolution + x = cat(x, x_1; dims=4) + x, st_last_conv = m.last_conv(x, ps.last_conv, st.last_conv) + + # Merge states + st = ( + conv1=st_conv1, conv2=st_conv2, conv3=st_conv3, conv4=st_conv4, conv5=st_conv5, de_conv1=st_de_conv1, de_conv2=st_de_conv2, de_conv3=st_de_conv3, de_conv4=st_de_conv4, last_conv=st_last_conv + ) + + return x, st + end +end + +# ╔═╡ 09fca34b-44a3-4918-8f6b-5a405b26ec33 +model = FCN(4) + +# ╔═╡ fa520196-ea57-4c25-9445-bdabbeab9a82 +ps, st = Lux.setup(rng, model) + +# ╔═╡ 4c0d4d36-dccb-420f-a383-c39a64e1b42d +md""" +## Optimizer +""" + +# ╔═╡ 43748430-84c2-4915-a7af-3df50b1cc48a +function create_optimiser(ps) + opt = Optimisers.ADAM(0.01f0) + return Optimisers.setup(opt, ps) +end + +# ╔═╡ f71d9fac-345e-4031-8443-5c4cf54bcaf1 +md""" +## Loss Functions +""" + +# ╔═╡ 8bf8ed10-3170-4404-8916-ba129efba390 +function compute_loss_dice(x, y, model, ps, st) + y_pred, st = model(x, ps, st) + local loss + for b in axes(y, 5) + _y_pred = copy(round.(y_pred[:, :, :, 1, b])) + _y = copy(y[:, :, :, 1, b]) + loss = dice_loss(_y_pred, _y) + end + return loss, y_pred, st +end + +# ╔═╡ 5cb8b16e-9d0d-46a7-813c-344a29a8c4b6 +function compute_loss_hd_proposed(x, y, model, ps, st) + y_pred, st = model(x, ps, st) + local loss + for b in axes(y, 5) + _y_pred = copy(round.(y_pred[:, :, :, 1, b])) + _y = copy(y[:, :, :, 1, b]) + + local _y_dtm, _y_pred_dtm + ignore_derivatives() do + _y_dtm = transform(boolean_indicator(_y)) + _y_pred_dtm = transform(boolean_indicator(_y_pred)) + end + hd = hausdorff_loss(_y_pred, _y, _y_pred_dtm, _y_dtm) + + dsc = dice_loss(_y_pred, _y) + + loss = hd + dsc + end + return loss, y_pred, st +end + +# ╔═╡ c427229a-3c97-405e-abd9-a1625b8a082b +function compute_loss_hd_scipy(x, y, model, ps, st) + y_pred, st = model(x, ps, st) + + y = y |> cpu_device() + y_pred = y_pred |> cpu_device() + + local loss + for b in axes(y, 5) + _y_pred = copy(round.(y_pred[:, :, :, 1, b])) + _y = copy(y[:, :, :, 1, b]) + + local _y_dtm, _y_pred_dtm + ignore_derivatives() do + _y_dtm = pytransform(_y) + _y_pred_dtm = pytransform(_y_pred) + end + hd = hausdorff_loss(_y_pred, _y, _y_pred_dtm, _y_dtm) + + dsc = dice_loss(_y_pred, _y) + + loss = hd + dsc + end + + y = y |> gpu_device() + y_pred = y_pred |> gpu_device() + + return loss, y_pred, st +end + +# ╔═╡ a4c06559-0bc8-4547-afc5-a5d320a981be +function compute_loss_hd_fenz(x, y, model, ps, st) + y_pred, st = model(x, ps, st) + + y = y |> cpu_device() + y_pred = y_pred |> cpu_device() + + local loss + for b in axes(y, 5) + _y_pred = copy(round.(y_pred[:, :, :, 1, b])) + _y = copy(y[:, :, :, 1, b]) + + local _y_dtm, _y_pred_dtm + ignore_derivatives() do + _y_dtm = transform(boolean_indicator(_y)) + _y_pred_dtm = transform(boolean_indicator(_y_pred)) + end + hd = hausdorff_loss(_y_pred, _y, _y_pred_dtm, _y_dtm) + + dsc = dice_loss(_y_pred, _y) + + loss = hd + dsc + end + + y = y |> gpu_device() + y_pred = y_pred |> gpu_device() + + return loss, y_pred, st +end + +# ╔═╡ f3697f64-3d5a-4ace-80c8-54d646cc57e4 +function compute_loss_hd_maurer(x, y, model, ps, st) + y_pred, st = model(x, ps, st) + + y = y |> cpu_device() + y_pred = y_pred |> cpu_device() + + local loss + for b in axes(y, 5) + _y_pred = copy(round.(y_pred[:, :, :, 1, b])) + _y = copy(y[:, :, :, 1, b]) + + local _y_dtm, _y_pred_dtm + ignore_derivatives() do + _y_dtm = distance_transform(feature_transform(Bool.(_y))) + _y_pred_dtm = distance_transform(feature_transform(Bool.(_y_pred))) + end + hd = hausdorff_loss(_y_pred, _y, _y_pred_dtm, _y_dtm) + + dsc = dice_loss(_y_pred, _y) + + loss = hd + dsc + end + + y = y |> gpu_device() + y_pred = y_pred |> gpu_device() + + return loss, y_pred, st +end + +# ╔═╡ dbde99bc-c062-4c13-b556-1f2dbee1cc41 +arr = rand(10, 10) .* 2 + +# ╔═╡ 96fb1c88-7397-4e1c-80c5-4ce796a85514 +md""" +# Training Timings +""" + +# ╔═╡ 93f973db-f038-4c72-857a-a50df78a1e7e +function run_epoch!(train_loader, dev, compute_loss, model, ps, st, opt_state) + # Train the model + for (x, y) in train_loader + x = x |> dev + y = y |> dev + (loss, y_pred, st), back = pullback( + compute_loss, x, y, model, ps, st + ) + gs = back((one(loss), nothing, nothing))[4] + opt_state, ps = Optimisers.update(opt_state, ps, gs) + end +end + +# ╔═╡ 4753fc5d-616d-4f43-9d3c-032d882dc86f +function time_epoch!(model, ps, st, train_loader, compute_loss) + dev = gpu_device() + ps = ps |> dev + st = st |> dev + + # Create the optimiser + opt_state = create_optimiser(ps) + bench = @benchmark run_epoch!($train_loader, $dev, $compute_loss, $model, $ps, $st, $opt_state) + return bench +end + +# ╔═╡ eab39035-c7f0-43fb-a6a3-ab5b004d3153 +md""" +## Benchmarks +""" + +# ╔═╡ 9bc6158c-0d78-445d-a4d0-ee2133ea7252 +md""" +## Dataset +""" + +# ╔═╡ 7664bf01-e5dd-49d5-9b64-56f4b8efc594 +img_sizes = [64, 96, 128, 256] +# img_sizes = [64, 96, 128] + +# ╔═╡ bf00f5b9-311d-4f83-ac97-e5e5fe55b346 +begin + channels = 1 + num_imgs = 5 + batch_size = 4 +end + +# ╔═╡ 0efd5aad-baac-4654-a7f9-216c2d5493e0 +# ╠═╡ skip_as_script = true +#=╠═╡ +begin + sizes = Float64[] + + ep_dice = Float64[] + ep_dice_std = Float64[] + + ep_scipy = Float64[] + ep_scipy_std = Float64[] + + ep_maurer = Float64[] + ep_maurer_std = Float64[] + + ep_fenz = Float64[] + ep_fenz_std = Float64[] + + ep_proposed = Float64[] + ep_proposed_std = Float64[] + + for _n in img_sizes + n = round(Int, _n) + @info n + push!(sizes, n^3) + + # Data creation + img_size = (n, n, n) + img_data = rand(Float32, img_size..., channels, num_imgs) + lbl_data = rand([0f0, 1f0], img_size..., channels, num_imgs) + (img_train, lbl_train), (img_val, lbl_val) = splitobs((img_data, lbl_data); at=0.8, shuffle=true) + train_loader = DataLoader(collect.((img_train, lbl_train)); batchsize=batch_size, shuffle=true) + + # Dice + ep = time_epoch!(model, ps, st, train_loader, compute_loss_dice) + push!(ep_dice, BenchmarkTools.minimum(ep).time) + push!(ep_dice_std, BenchmarkTools.std(ep).time) + + # Python (Scipy) + ep = time_epoch!( + model, + ps, + st, + train_loader, + compute_loss_hd_scipy + ) + push!(ep_scipy, BenchmarkTools.minimum(ep).time) + push!(ep_scipy_std, BenchmarkTools.std(ep).time) + + # Maurer (ImageMorphology.jl) + ep = time_epoch!( + model, + ps, + st, + train_loader, + compute_loss_hd_maurer + ) + push!(ep_maurer, BenchmarkTools.minimum(ep).time) + push!(ep_maurer_std, BenchmarkTools.std(ep).time) + + # Felzenszwalb (DistanceTransforms.jl) + ep = time_epoch!( + model, + ps, + st, + train_loader, + compute_loss_hd_fenz + ) + push!(ep_fenz, BenchmarkTools.minimum(ep).time) + push!(ep_fenz_std, BenchmarkTools.std(ep).time) + + # Proposed-GPU (DistanceTransforms.jl) + ep = time_epoch!( + model, + ps, + st, + train_loader, + compute_loss_hd_proposed + ) + push!(ep_proposed, BenchmarkTools.minimum(ep).time) + push!(ep_proposed_std, BenchmarkTools.std(ep).time) + end +end + ╠═╡ =# + +# ╔═╡ 4558cee9-c9bf-4f28-a7a6-bd3179edab3b +#=╠═╡ +let + f = CairoMakie.Figure() + ax = Axis( + f[1, 1], + title="2D" + ) + + scatterlines!(ep_dice, label="Dice Loss") + scatterlines!(ep_scipy, label="Hausdorff Loss Scipy") + scatterlines!(ep_maurer, label="Hausdorff Loss Maurer") + scatterlines!(ep_fenz, label="Hausdorff Loss Felzenswalb") + scatterlines!(ep_proposed, label="Hausdorff Loss Proposed") + + f[1, 2] = Legend(f, ax, "Loss Function", framevisible = false) + + Label(f[0, 1]; text="Minimum Epoch Time", fontsize=30) + f +end + ╠═╡ =# + +# ╔═╡ 83aa0bf6-ed72-4aad-9976-45a89dd24a05 +#=╠═╡ +df_ep = DataFrame( + batch_size = batch_size, + sizes = sizes, + ep_dice = ep_dice, + ep_dice_std = ep_dice_std, + ep_scipy = ep_scipy, + ep_scipy_std = ep_scipy_std, + ep_maurer = ep_maurer, + ep_maurer_std = ep_maurer_std, + ep_fenz = ep_fenz, + ep_fenz_std = ep_fenz_std, + ep_proposed = ep_proposed, + ep_proposed_std = ep_proposed_std, +) + ╠═╡ =# + +# ╔═╡ b0ad91db-660e-4cda-b229-a40fa987589c +#=╠═╡ +save(datadir("results", "epochs.csv"), df_ep) + ╠═╡ =# + +# ╔═╡ Cell order: +# ╠═6972d6e6-8a28-11ee-223b-8fe3cb023e45 +# ╠═df5b07d1-5413-4768-8b1b-237b4300fdad +# ╠═0ff50fcc-a71a-403d-9e62-458125ac6dc4 +# ╠═5abcd30b-bc3e-4d15-97be-6d53f5cc6481 +# ╠═5eaabc58-aa01-419a-bfa1-7cc3eb96d8d1 +# ╠═07dc4f9b-7e39-4d76-88e6-3c32068c99b0 +# ╠═05d00e65-b22d-4ba9-83e7-3f53647080e7 +# ╠═5dc05f88-8672-427b-ab52-d92358f4151c +# ╠═514a75f3-decc-46d0-b9b4-df971631f564 +# ╠═2f295ac4-d211-4969-bc82-1c6aeb8e8fc5 +# ╠═85ae8235-f118-4c78-a442-257dfa49e729 +# ╠═d7959ac3-4366-41f4-9487-a2b9bc1f65d2 +# ╟─4ccc2224-a361-4647-9dd6-bc598cc86bb0 +# ╟─1b758e7b-df5c-4fc0-b534-ef3f76b5a59a +# ╠═c6dec210-71d4-4f07-b5d1-93af2dc2d6e3 +# ╟─99abc39a-6f4d-4f99-8380-682a98d56b8e +# ╠═26d6e4b4-bc46-4268-93d2-d04bc87223d7 +# ╠═ed981ddc-8b05-4a29-bf94-120ddb4a62b0 +# ╟─98910f33-05e4-4ca7-bc33-1b3fda75e7e0 +# ╠═cbf4cfb3-8af6-4fc0-9e7a-eebc73e22a44 +# ╟─40b24e17-5f39-4af8-aac3-77e914712808 +# ╠═ac8b2060-fe96-4a0f-b00e-5f16fe6f7f8a +# ╟─ed6e1bd5-1fa9-43a8-a28f-085313e36d46 +# ╠═6b0c097a-2025-4c72-b051-4fb1053cb02d +# ╠═09fca34b-44a3-4918-8f6b-5a405b26ec33 +# ╠═fa520196-ea57-4c25-9445-bdabbeab9a82 +# ╟─4c0d4d36-dccb-420f-a383-c39a64e1b42d +# ╠═43748430-84c2-4915-a7af-3df50b1cc48a +# ╟─f71d9fac-345e-4031-8443-5c4cf54bcaf1 +# ╠═8bf8ed10-3170-4404-8916-ba129efba390 +# ╠═5cb8b16e-9d0d-46a7-813c-344a29a8c4b6 +# ╠═c427229a-3c97-405e-abd9-a1625b8a082b +# ╠═a4c06559-0bc8-4547-afc5-a5d320a981be +# ╠═f3697f64-3d5a-4ace-80c8-54d646cc57e4 +# ╠═dbde99bc-c062-4c13-b556-1f2dbee1cc41 +# ╟─96fb1c88-7397-4e1c-80c5-4ce796a85514 +# ╠═93f973db-f038-4c72-857a-a50df78a1e7e +# ╠═4753fc5d-616d-4f43-9d3c-032d882dc86f +# ╟─eab39035-c7f0-43fb-a6a3-ab5b004d3153 +# ╟─9bc6158c-0d78-445d-a4d0-ee2133ea7252 +# ╠═7664bf01-e5dd-49d5-9b64-56f4b8efc594 +# ╠═bf00f5b9-311d-4f83-ac97-e5e5fe55b346 +# ╠═0efd5aad-baac-4654-a7f9-216c2d5493e0 +# ╟─4558cee9-c9bf-4f28-a7a6-bd3179edab3b +# ╠═83aa0bf6-ed72-4aad-9976-45a89dd24a05 +# ╠═b0ad91db-660e-4cda-b229-a40fa987589c