From a5fb33c9dab82f1e795747e51ef1059be1734706 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Fri, 7 Jul 2023 14:18:20 -0400 Subject: [PATCH 01/31] wip --- Manifest.toml | 867 +++++++++++++++++++++-------------- Project.toml | 4 + src/operations/Operations.jl | 114 ++++- src/service/ArgIO.jl | 44 +- test/runtests.jl | 25 +- 5 files changed, 659 insertions(+), 395 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index 7ff792f..7175674 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -1,13 +1,19 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.9.1" +julia_version = "1.9.2" manifest_format = "2.0" -project_hash = "283a566a5d05e4589a1b5859a995461386be0bc3" +project_hash = "767c093e67fdab416f979f052b06bf048b75f0ac" + +[[deps.ACSets]] +deps = ["CompTime", "JSON", "MLStyle", "OrderedCollections", "Pkg", "PrettyTables", "Reexport", "StaticArrays", "StructEquality", "Tables"] +git-tree-sha1 = "935a09f5a40d199ac9c7fb55357e2164b1ef8671" +uuid = "227ef7b5-1206-438b-ac65-934d6da304b8" +version = "0.2.3" [[deps.ADTypes]] -git-tree-sha1 = "dcfdf328328f2645531c4ddebf841228aef74130" +git-tree-sha1 = "e58c18d2312749847a74f5be80bb0fa53da102bd" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "0.1.3" +version = "0.1.5" [[deps.AMQPClient]] deps = ["Logging", "MbedTLS", "Sockets"] @@ -22,16 +28,16 @@ uuid = "ae81ac8f-d209-56e5-92de-9978fef736f9" version = "0.1.3+0" [[deps.AbstractAlgebra]] -deps = ["GroupsCore", "InteractiveUtils", "LinearAlgebra", "MacroTools", "Random", "RandomExtensions", "SparseArrays", "Test"] -git-tree-sha1 = "3ee5c58774f4487a5bf2bb05e39d91ff5022b4cc" +deps = ["GroupsCore", "InteractiveUtils", "LinearAlgebra", "MacroTools", "Preferences", "Random", "RandomExtensions", "SparseArrays", "Test"] +git-tree-sha1 = "1bd8a536c949eb3de9b58042d57790ded6b70fa6" uuid = "c3fe647b-3220-5bb0-a1ea-a7954cac585d" -version = "0.29.4" +version = "0.30.9" [[deps.AbstractFFTs]] deps = ["LinearAlgebra"] -git-tree-sha1 = "16b6dbc4cf7caee4e1e75c49485ec67b667098a0" +git-tree-sha1 = "cad4c758c0038eea30394b1b671526921ca85b21" uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" -version = "1.3.1" +version = "1.4.0" weakdeps = ["ChainRulesCore"] [deps.AbstractFFTs.extensions] @@ -39,9 +45,9 @@ weakdeps = ["ChainRulesCore"] [[deps.AbstractMCMC]] deps = ["BangBang", "ConsoleProgressMonitor", "Distributed", "LogDensityProblems", "Logging", "LoggingExtras", "ProgressLogging", "Random", "StatsBase", "TerminalLoggers", "Transducers"] -git-tree-sha1 = "a21654aa796bcc993284dace0d17d1022774c0a3" +git-tree-sha1 = "87e63dcb990029346b091b170252f3c416568afc" uuid = "80f14c24-f653-4e6a-9b94-39d6b0f70001" -version = "4.4.1" +version = "4.4.2" [[deps.AbstractPPL]] deps = ["AbstractMCMC", "DensityInterface", "Random", "Setfield", "SparseArrays"] @@ -54,6 +60,24 @@ git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c" uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" version = "0.4.4" +[[deps.Accessors]] +deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "MacroTools", "Requires", "Test"] +git-tree-sha1 = "954634616d5846d8e216df1298be2298d55280b2" +uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" +version = "0.1.32" + + [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 = "76289dc51920fdc6e0013c872ba9551d54961c24" @@ -66,9 +90,9 @@ weakdeps = ["StaticArrays"] [[deps.AdvancedHMC]] deps = ["AbstractMCMC", "ArgCheck", "DocStringExtensions", "InplaceOps", "LinearAlgebra", "LogDensityProblems", "LogDensityProblemsAD", "ProgressMeter", "Random", "Requires", "Setfield", "SimpleUnPack", "Statistics", "StatsBase", "StatsFuns"] -git-tree-sha1 = "25d38b80e29533f5f85af19692a39e4275047a51" +git-tree-sha1 = "3bf24030e85b1d6d298e4f483f6aeff6f38462db" uuid = "0bf59076-c3b1-5ca4-86bd-e02cd72cde3d" -version = "0.4.5" +version = "0.4.6" [deps.AdvancedHMC.extensions] AdvancedHMCCUDAExt = "CUDA" @@ -105,21 +129,26 @@ uuid = "b5ca4192-6429-45e5-a2d9-87aec30a685c" version = "0.1.6" [[deps.AlgebraicPetri]] -deps = ["Catlab", "DataStructures", "GeneralizedGenerated", "LabelledArrays", "StatsBase"] -git-tree-sha1 = "3607af61f8ab68825b3ad37cdd166b756fb688ef" +deps = ["Catlab", "GeneralizedGenerated", "LabelledArrays"] +git-tree-sha1 = "d798c838e065927a09edf431791d34fd5a709023" uuid = "4f99eebe-17bf-4e98-b6a1-2c4f205a959b" -version = "0.8.11" +version = "0.9.0" [deps.AlgebraicPetri.extensions] AlgebraicPetriCatalystExt = "Catalyst" AlgebraicPetriModelingToolkitExt = "ModelingToolkit" - AlgebraicPetriPetriExt = "Petri" + AlgebraicPetriOrdinaryDiffEqExt = "OrdinaryDiffEq" [deps.AlgebraicPetri.weakdeps] Catalyst = "479239e8-5488-4da2-87a7-35f2df7eef83" ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" - Petri = "4259d249-1051-49fa-8328-3f8ab9391c33" - Requires = "ae029012-a4dd-5104-9daa-d747884805df" + OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" + +[[deps.AlphaStableDistributions]] +deps = ["Distributions", "FileIO", "Interpolations", "JLD2", "LinearAlgebra", "Random", "SpecialFunctions", "StaticArrays", "Statistics", "StatsBase", "ToeplitzMatrices"] +git-tree-sha1 = "ad5789d4d1a7e38a9fb1e5e02369eeb799833b2e" +uuid = "f20549b4-2d50-407f-863c-cdd202ba59a3" +version = "1.1.6" [[deps.ArgCheck]] git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" @@ -138,9 +167,9 @@ version = "0.2.0" [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "917286faa2abb288796e75b88ca67edc016f3219" +git-tree-sha1 = "f83ec24f76d4c8f525099b2ac475fc098138ec31" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.4.5" +version = "7.4.11" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" @@ -166,9 +195,9 @@ version = "0.1.29" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "4aff5fa660eb95c2e0deb6bcdabe4d9a96bc4667" +git-tree-sha1 = "9e5ad0f651c1be8a355e4d327e9cb3bc135d1b73" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "0.8.18" +version = "1.0.8" [[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" @@ -192,16 +221,16 @@ uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" version = "0.4.6" [[deps.BandedMatrices]] -deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "SnoopPrecompile", "SparseArrays"] -git-tree-sha1 = "6ef8fc1d77b60f41041d59ce61ef9eb41ed97a83" +deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools", "SparseArrays"] +git-tree-sha1 = "3c63ab5fb851444fb018b97883cfd79ae044e888" uuid = "aae01518-5342-5314-be14-df237901396f" -version = "0.17.18" +version = "0.17.29" [[deps.BangBang]] deps = ["Compat", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires", "Setfield", "Tables"] -git-tree-sha1 = "54b00d1b93791f8e19e31584bd30f2cb6004614b" +git-tree-sha1 = "e28912ce94077686443433c2800104b061a827ed" uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" -version = "0.3.38" +version = "0.3.39" [deps.BangBang.extensions] BangBangChainRulesCoreExt = "ChainRulesCore" @@ -277,16 +306,28 @@ 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 = "89e0654ed8c7aebad6d5ad235d6242c2d737a928" uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.2.2" +version = "0.2.3" [[deps.CPUTime]] git-tree-sha1 = "2dcc50ea6a0a1ef6440d6eecd0fe3813e5671f45" uuid = "a9c8d775-2e2e-55fc-8582-045d282d599e" version = "1.0.0" +[[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.CSTParser]] deps = ["Tokenize"] git-tree-sha1 = "3ddd48d200eb8ddf9cb3e0189fc059fd49b97c1f" @@ -295,9 +336,9 @@ version = "3.3.6" [[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.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"] @@ -312,16 +353,34 @@ uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" version = "0.5.1" [[deps.Catlab]] -deps = ["Colors", "CompTime", "Compose", "DataStructures", "GeneralizedGenerated", "JSON", "LightXML", "LinearAlgebra", "Logging", "MLStyle", "Pkg", "PrettyTables", "Random", "Reexport", "Requires", "SparseArrays", "StaticArrays", "Statistics", "StructEquality", "Tables"] -git-tree-sha1 = "821d6dcf331981e7c1d6377a6baee112a79a1021" +deps = ["ACSets", "Colors", "CompTime", "Compose", "DataStructures", "GeneralizedGenerated", "JSON", "LightXML", "LinearAlgebra", "Logging", "MLStyle", "PrettyTables", "Random", "Reexport", "SparseArrays", "StaticArrays", "Statistics", "StructEquality", "Tables"] +git-tree-sha1 = "c610008c7dc9907a0112b3d48f75a6de806e1aeb" uuid = "134e5e36-593f-5add-ad60-77f754baafbe" -version = "0.14.17" +version = "0.15.1" + + [deps.Catlab.extensions] + CatlabConvexExt = "Convex" + CatlabDataFramesExt = "DataFrames" + CatlabGraphsExt = "Graphs" + CatlabGraphvizExt = "Graphviz_jll" + CatlabMetaGraphsExt = "MetaGraphs" + CatlabSCSExt = "SCS" + CatlabTikzPicturesExt = "TikzPictures" + + [deps.Catlab.weakdeps] + Convex = "f65535da-76fb-5f13-bab9-19810c17039a" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" + Graphviz_jll = "3c863552-8265-54e4-a6dc-903eb78fde85" + MetaGraphs = "626554b9-1ddb-594c-aa3c-2596fe9399a5" + SCS = "c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13" + TikzPictures = "37f6aa50-8035-52d0-81c2-5a1d08754b2d" [[deps.ChainRules]] deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "Statistics", "StructArrays"] -git-tree-sha1 = "8bae903893aeeb429cf732cf1888490b93ecf265" +git-tree-sha1 = "2afc496e94d15a1af5502625246d172361542133" uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.49.0" +version = "1.52.0" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra", "SparseArrays"] @@ -331,9 +390,13 @@ version = "1.16.0" [[deps.ChangesOfVariables]] deps = ["LinearAlgebra", "Test"] -git-tree-sha1 = "f84967c4497e0e1955f9a582c232b02847c5f589" +git-tree-sha1 = "2fba81a302a7be671aefe194f0525ef231104e7f" uuid = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" -version = "0.1.7" +version = "0.1.8" +weakdeps = ["InverseFunctions"] + + [deps.ChangesOfVariables.extensions] + ChangesOfVariablesInverseFunctionsExt = "InverseFunctions" [[deps.CloseOpenIntervals]] deps = ["Static", "StaticArrayInterface"] @@ -395,9 +458,9 @@ uuid = "a80b9123-70ca-4bc0-993e-6e3bcb318db6" version = "0.8.12" [[deps.CommonSolve]] -git-tree-sha1 = "9441451ee712d1aec22edad62db1a9af3dc8d852" +git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" -version = "0.2.3" +version = "0.2.4" [[deps.CommonSubexpressions]] deps = ["MacroTools", "Test"] @@ -413,9 +476,9 @@ version = "0.1.2" [[deps.Compat]] deps = ["UUIDs"] -git-tree-sha1 = "7a60c856b9fa189eb34f5f8a6f6b5529b7942957" +git-tree-sha1 = "4e88377ae7ebeaf29a047aa1ee40826e0b708a5d" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.6.1" +version = "4.7.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -424,7 +487,7 @@ weakdeps = ["Dates", "LinearAlgebra"] [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.0.2+0" +version = "1.0.5+0" [[deps.Compose]] deps = ["Base64", "Colors", "DataStructures", "Dates", "IterTools", "JSON", "LinearAlgebra", "Measures", "Printf", "Random", "Requires", "Statistics", "UUIDs"] @@ -446,6 +509,11 @@ weakdeps = ["InverseFunctions"] [deps.CompositionsBase.extensions] CompositionsBaseInverseFunctionsExt = "InverseFunctions" +[[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" @@ -474,6 +542,12 @@ git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" version = "0.6.2" +[[deps.Copulas]] +deps = ["AlphaStableDistributions", "Cubature", "Distributions", "ForwardDiff", "GSL", "MvNormalCDF", "Random", "Roots", "SpecialFunctions", "StatsBase", "TaylorSeries"] +git-tree-sha1 = "bf5b74cd9b240eea4b713bf3b04211dabf827688" +uuid = "ae264745-0b69-425e-9d9d-cf662c5eec93" +version = "0.1.10" + [[deps.CpuId]] deps = ["Markdown"] git-tree-sha1 = "fcbb72b032692610bfbdb15018ac16a36cf2e406" @@ -485,6 +559,24 @@ git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" version = "4.1.1" +[[deps.Cubature]] +deps = ["Cubature_jll"] +git-tree-sha1 = "c3f4b3b38abd7b5c3ccf59adab2568212e7530d3" +uuid = "667455a9-e2ce-5579-9412-b964f529a492" +version = "1.5.1" + +[[deps.Cubature_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0fe9efb84e3eb7b14f885a95aaa0ed50c7e839c8" +uuid = "7bc98958-0e37-5d67-a6ac-a3a19030071a" +version = "1.0.5+0" + +[[deps.DSP]] +deps = ["Compat", "FFTW", "IterTools", "LinearAlgebra", "Polynomials", "Random", "Reexport", "SpecialFunctions", "Statistics"] +git-tree-sha1 = "da8b06f89fce9996443010ef92572b193f8dca1f" +uuid = "717857b8-e6f2-59f4-9121-6e50c889abd2" +version = "0.7.8" + [[deps.DataAPI]] git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" @@ -498,9 +590,9 @@ version = "1.5.0" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "d1fff3a548102f48987a52a2e0d114fa97d730f0" +git-tree-sha1 = "cf25ccb972fec4e4817764d01c82386ae94f77b4" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.13" +version = "0.18.14" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -536,9 +628,9 @@ version = "0.4.0" [[deps.DiffEqBase]] deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "DocStringExtensions", "EnumX", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces", "ZygoteRules"] -git-tree-sha1 = "1c03e389a28be70cd9049f98ff0b84cf7539d959" +git-tree-sha1 = "62c41421bd0facc43dfe4e9776135fe21fd1e1b9" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.125.0" +version = "6.126.0" [deps.DiffEqBase.extensions] DiffEqBaseDistributionsExt = "Distributions" @@ -569,10 +661,10 @@ uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" version = "2.26.1" [[deps.DiffEqNoiseProcess]] -deps = ["DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "Optim", "PoissonRandom", "QuadGK", "Random", "Random123", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "Requires", "ResettableStacks", "SciMLBase", "StaticArrays", "Statistics"] -git-tree-sha1 = "2c4ed3eedb87579bfe9f20ecc2440de06b9f3b89" +deps = ["DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "Optim", "PoissonRandom", "QuadGK", "Random", "Random123", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "Requires", "ResettableStacks", "SciMLBase", "StaticArraysCore", "Statistics"] +git-tree-sha1 = "26594c6ec8416fb6ef3ed8828fd29c98b10bfaad" uuid = "77a26b50-5914-5dd7-bc55-306e6241c503" -version = "5.16.0" +version = "5.17.2" [deps.DiffEqNoiseProcess.extensions] DiffEqNoiseProcessReverseDiffExt = "ReverseDiff" @@ -588,15 +680,15 @@ 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.DifferentialEquations]] deps = ["BoundaryValueDiffEq", "DelayDiffEq", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "JumpProcesses", "LinearAlgebra", "LinearSolve", "NonlinearSolve", "OrdinaryDiffEq", "Random", "RecursiveArrayTools", "Reexport", "SciMLBase", "SteadyStateDiffEq", "StochasticDiffEq", "Sundials"] -git-tree-sha1 = "ac145e3d718157c679fc4febf2fcef73ec77b067" +git-tree-sha1 = "1cfe0178410e1bb4b14058c537d0f347eb9d95dc" uuid = "0c46a032-eb83-5123-abaf-570d42b7fbaa" -version = "7.7.0" +version = "7.8.0" [[deps.Distances]] deps = ["LinearAlgebra", "SparseArrays", "Statistics", "StatsAPI"] @@ -610,9 +702,9 @@ 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 = "5eeb2bd01e5065090ad591a205d8cad432ae6cb6" +git-tree-sha1 = "e76a3281de2719d7c81ed62c6ea7057380c87b1d" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.93" +version = "0.25.98" weakdeps = ["ChainRulesCore", "DensityInterface"] [deps.Distributions.extensions] @@ -621,9 +713,9 @@ weakdeps = ["ChainRulesCore", "DensityInterface"] [[deps.DistributionsAD]] deps = ["Adapt", "ChainRules", "ChainRulesCore", "Compat", "Distributions", "FillArrays", "LinearAlgebra", "PDMats", "Random", "Requires", "SpecialFunctions", "StaticArrays", "StatsFuns", "ZygoteRules"] -git-tree-sha1 = "c19c3ee030a0abb9366e6d3c5eafff519471f645" +git-tree-sha1 = "1fb4fedd5a407243d535cc50c8c803c2fce0dc26" uuid = "ced4e74d-a319-5a8a-b0ac-84af2272839c" -version = "0.6.47" +version = "0.6.49" [deps.DistributionsAD.extensions] DistributionsADForwardDiffExt = "ForwardDiff" @@ -645,9 +737,9 @@ version = "0.9.3" [[deps.DomainSets]] deps = ["CompositeTypes", "IntervalSets", "LinearAlgebra", "Random", "StaticArrays", "Statistics"] -git-tree-sha1 = "698124109da77b6914f64edd696be8dccf90229e" +git-tree-sha1 = "51b4b84d33ec5e0955b55ff4b748b99ce2c3faa9" uuid = "5b8099bc-c8ec-5219-889f-1d9e522a28bf" -version = "0.6.6" +version = "0.6.7" [[deps.Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] @@ -689,29 +781,22 @@ git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" version = "1.0.4" -[[deps.Enzyme]] -deps = ["CEnum", "EnzymeCore", "Enzyme_jll", "GPUCompiler", "LLVM", "Libdl", "LinearAlgebra", "ObjectFile", "Printf", "Random"] -git-tree-sha1 = "28c09cee567a3b62a8ae2a99035bd477fdbaee3f" -uuid = "7da242da-08ed-463a-9acd-ee780be4f1d9" -version = "0.11.0" - -[[deps.EnzymeCore]] -deps = ["Adapt"] -git-tree-sha1 = "d0840cfff51e34729d20fd7d0a13938dc983878b" -uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" -version = "0.3.0" +[[deps.ErrorfreeArithmetic]] +git-tree-sha1 = "d6863c556f1142a061532e79f611aa46be201686" +uuid = "90fa49ef-747e-5e6f-a989-263ba693cf1a" +version = "0.5.2" -[[deps.Enzyme_jll]] -deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "b83b072e7a5eee2050800658f5676b0ff7b37dc6" -uuid = "7cc45869-7501-5eee-bdea-0790c847d4ef" -version = "0.0.53+0" +[[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.ExponentialUtilities]] deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "Printf", "SnoopPrecompile", "SparseArrays", "libblastrampoline_jll"] @@ -744,9 +829,9 @@ version = "4.4.2+2" [[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"] @@ -767,9 +852,15 @@ version = "0.3.2" [[deps.FastLapackInterface]] deps = ["LinearAlgebra"] -git-tree-sha1 = "c1293a93193f0ae94be7cf338d33e162c39d8788" +git-tree-sha1 = "b12f05108e405dadcc2aff0008db7f831374e051" uuid = "29a986be-02c6-4525-aec4-84b980013641" -version = "1.2.9" +version = "2.0.0" + +[[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"] @@ -788,15 +879,25 @@ uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[deps.FillArrays]] deps = ["LinearAlgebra", "Random", "SparseArrays", "Statistics"] -git-tree-sha1 = "7072f1e3e5a8be51d525d64f63d3ec1287ff2790" +git-tree-sha1 = "2250347838b28a108d1967663cba57bfb3c02a58" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "0.13.11" +version = "1.3.0" [[deps.FiniteDiff]] -deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays", "StaticArrays"] -git-tree-sha1 = "6604e18a0220650dbbea7854938768f15955dd8e" +deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] +git-tree-sha1 = "c6e4a1fbe73b31a3dea94b1da449503b8830c306" uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.20.0" +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"] @@ -827,10 +928,10 @@ weakdeps = ["StaticArrays"] ForwardDiffStaticArraysExt = "StaticArrays" [[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.FriBidi_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -867,33 +968,39 @@ version = "3.3.8+0" [[deps.GPUArrays]] deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] -git-tree-sha1 = "9ade6983c3dbbd492cf5729f865fe030d1541463" +git-tree-sha1 = "2e57b4a4f9cc15e85a24d603256fe08e527f48d1" uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "8.6.6" +version = "8.8.1" [[deps.GPUArraysCore]] deps = ["Adapt"] -git-tree-sha1 = "1cd7f0af1aa58abc02ea1d872953a97359cb87fa" +git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" uuid = "46192b85-c4d5-4398-a991-12ede77f4527" -version = "0.1.4" - -[[deps.GPUCompiler]] -deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "5737dc242dadd392d934ee330c69ceff47f0259c" -uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.19.4" +version = "0.1.5" [[deps.GR]] deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] -git-tree-sha1 = "d014972cd6f5afb1f8cd7adf000b7a966d62c304" +git-tree-sha1 = "8b8a2fd4536ece6e554168c21860b6820a8a83db" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.72.5" +version = "0.72.7" [[deps.GR_jll]] deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt5Base_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "f670f269909a9114df1380cc0fcaa316fff655fb" +git-tree-sha1 = "19fad9cd9ae44847fe842558a744748084a722d1" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.72.5+0" +version = "0.72.7+0" + +[[deps.GSL]] +deps = ["GSL_jll", "Libdl", "Markdown"] +git-tree-sha1 = "3ebd07d519f5ec318d5bc1b4971e2472e14bd1f0" +uuid = "92c85e6c-cbff-5e0c-80f7-495c94daaecd" +version = "1.0.1" + +[[deps.GSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "56f1e2c9e083e0bb7cf9a7055c280beb08a924c0" +uuid = "1b77fbbe-d8ee-58f0-85f9-836ddc23a7a4" +version = "2.7.2+0" [[deps.GeneralizedGenerated]] deps = ["DataStructures", "JuliaVariables", "MLStyle", "Serialization"] @@ -925,10 +1032,10 @@ uuid = "c27321d9-0574-5035-807b-f59d2c89b15c" version = "1.3.1" [[deps.GlobalSensitivity]] -deps = ["Distributions", "FFTW", "ForwardDiff", "KernelDensity", "LinearAlgebra", "Parameters", "QuasiMonteCarlo", "Random", "RecursiveArrayTools", "Statistics", "StatsBase", "Trapz"] -git-tree-sha1 = "e44cdbdc5ee2c4417be3ae244c84de6a6c4eab44" +deps = ["Combinatorics", "Copulas", "Distributions", "FFTW", "ForwardDiff", "KernelDensity", "LinearAlgebra", "Parameters", "QuasiMonteCarlo", "Random", "RecursiveArrayTools", "Statistics", "StatsBase", "ThreadsX", "Trapz"] +git-tree-sha1 = "e5484bc811d0335814e3f7d3815dcea19d261fbc" uuid = "af5da776-676b-467e-8baf-acd8249e4f0f" -version = "2.1.4" +version = "2.2.1" [[deps.Graphite2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -949,9 +1056,9 @@ version = "1.0.2" [[deps.Groebner]] deps = ["AbstractAlgebra", "Combinatorics", "Logging", "MultivariatePolynomials", "Primes", "Random", "SnoopPrecompile"] -git-tree-sha1 = "b6c3e9e1eb8dcc6fd9bc68fe08dcc7ab22710de6" +git-tree-sha1 = "c8b55b624a83f60bcd6574cc999ad148d0a47dd6" uuid = "0b43b601-686d-58a3-8a1c-6623616c7cd4" -version = "0.3.4" +version = "0.3.6" [[deps.GroupsCore]] deps = ["Markdown", "Random"] @@ -966,10 +1073,10 @@ uuid = "19dc6840-f33b-545b-b366-655c7e3ffd49" version = "1.5.1" [[deps.HTTP]] -deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "41f7dfb2b20e7e8bf64f6b6fae98f4d2df027b06" +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "7f5ef966a02a8fdf3df2ca03108a88447cb3c6f0" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.9.4" +version = "1.9.8" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -985,15 +1092,15 @@ version = "0.5.2" [[deps.HostCPUFeatures]] deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] -git-tree-sha1 = "734fd90dd2f920a2f1921d5388dcebe805b262dc" +git-tree-sha1 = "d38bd0d9759e3c6cfa19bdccc314eccf8ce596cc" uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" -version = "0.1.14" +version = "0.1.15" [[deps.HypergeometricFunctions]] deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] -git-tree-sha1 = "84204eae2dd237500835990bcade263e27674a93" +git-tree-sha1 = "0ec02c648befc2f94156eaef13b0f38106212f3f" uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" -version = "0.3.16" +version = "0.3.17" [[deps.IRTools]] deps = ["InteractiveUtils", "MacroTools", "Test"] @@ -1029,9 +1136,9 @@ uuid = "505f98c9-085e-5b2c-8e89-488be7bf1f34" version = "0.3.0" [[deps.IntegerMathUtils]] -git-tree-sha1 = "f366daebdfb079fd1fe4e3d560f99a0c892e15bc" +git-tree-sha1 = "b8ffb903da9f7b8cf695a8bead8e01814aa24b30" uuid = "18e54dd8-cb9d-406c-a71d-865a43cbb235" -version = "0.1.0" +version = "0.1.2" [[deps.Integrals]] deps = ["CommonSolve", "HCubature", "LinearAlgebra", "MonteCarloIntegration", "QuadGK", "Reexport", "Requires", "SciMLBase"] @@ -1066,6 +1173,12 @@ git-tree-sha1 = "721ec2cf720536ad005cb38f50dbba7b02419a15" uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" version = "0.14.7" +[[deps.IntervalArithmetic]] +deps = ["CRlibm", "FastRounding", "LinearAlgebra", "Markdown", "Random", "RecipesBase", "RoundingEmulator", "SetRounding", "StaticArrays"] +git-tree-sha1 = "5ab7744289be503d76a944784bac3f2df7b809af" +uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" +version = "0.20.9" + [[deps.IntervalSets]] deps = ["Dates", "Random", "Statistics"] git-tree-sha1 = "16c0cc91853084cb5f58a78bd209513900206ce6" @@ -1074,9 +1187,9 @@ version = "0.7.4" [[deps.InverseFunctions]] deps = ["Test"] -git-tree-sha1 = "6667aadd1cdee2c6cd068128b3d226ebc4fb0c67" +git-tree-sha1 = "edd1c1ac227767c75e8518defdf6e48dbfa7c3b0" uuid = "3587e190-3f89-42d0-90ee-14403ec27112" -version = "0.1.9" +version = "0.1.10" [[deps.InvertedIndices]] git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" @@ -1095,15 +1208,9 @@ uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" version = "0.2.2" [[deps.IterTools]] -git-tree-sha1 = "fa6287a4469f5e048d763df38279ee729fbd44e5" +git-tree-sha1 = "4ced6667f9974fc5c5943fa5e2ef1ca43ea9e450" uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" -version = "1.4.0" - -[[deps.IterativeSolvers]] -deps = ["LinearAlgebra", "Printf", "Random", "RecipesBase", "SparseArrays"] -git-tree-sha1 = "1169632f425f79429f245113b775a0e3d121457c" -uuid = "42fd0dbc-a981-5370-80f2-aaf504508153" -version = "0.9.2" +version = "1.8.0" [[deps.IteratorInterfaceExtensions]] git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" @@ -1135,10 +1242,10 @@ 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 = "5b62d93f2582b09e469b3099d839c2d2ebf5066d" uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" -version = "1.12.0" +version = "1.13.1" [[deps.JSONSchema]] deps = ["Downloads", "HTTP", "JSON", "URIs"] @@ -1166,9 +1273,9 @@ version = "2.1.91+0" [[deps.JuliaFormatter]] deps = ["CSTParser", "CommonMark", "DataStructures", "Glob", "Pkg", "PrecompileTools", "Tokenize"] -git-tree-sha1 = "01ab91fcce19c965b3c68a82eb26260a3a7af271" +git-tree-sha1 = "60567b51bd9e1e19ae2fd8a54dcd6bc5994727f0" uuid = "98e50ef6-434e-11e9-1051-2b60c6c9e899" -version = "1.0.29" +version = "1.0.34" [[deps.JuliaVariables]] deps = ["MLStyle", "NameResolution"] @@ -1190,9 +1297,9 @@ version = "0.4.0" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "47be64f040a7ece575c2b5f53ca6da7b548d69f4" +git-tree-sha1 = "b48617c5d764908b5fac493cd907cf33cc11eec1" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.4" +version = "0.9.6" [[deps.KernelDensity]] deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] @@ -1206,12 +1313,6 @@ git-tree-sha1 = "0356a64062656b0cbb43c504ad5de338251f4bda" uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" version = "0.9.1" -[[deps.KrylovKit]] -deps = ["ChainRulesCore", "GPUArraysCore", "LinearAlgebra", "Printf"] -git-tree-sha1 = "1a5e1d9941c783b0119897d29f2eb665d876ecf3" -uuid = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" -version = "0.6.0" - [[deps.LAME_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" @@ -1226,15 +1327,21 @@ version = "3.0.0+1" [[deps.LLVM]] deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Printf", "Unicode"] -git-tree-sha1 = "26a31cdd9f1f4ea74f649a7bf249703c687a953d" +git-tree-sha1 = "8695a49bfe05a2dc0feeefd06b4ca6361a018729" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "5.1.0" +version = "6.1.0" [[deps.LLVMExtra_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "09b7505cc0b1cee87e5d4a26eea61d2e1b0dcd35" +git-tree-sha1 = "c35203c1e1002747da220ffc3c0762ce7754b08c" uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.21+0" +version = "0.0.23+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.LRUCache]] git-tree-sha1 = "48c10e3cc27e30de82463c27bef0b8bdbd1dc634" @@ -1265,9 +1372,9 @@ version = "0.4.6" [[deps.Latexify]] deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] -git-tree-sha1 = "099e356f267354f46ba65087981a77da23a279b7" +git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" -version = "0.16.0" +version = "0.16.1" [deps.Latexify.extensions] DataFramesExt = "DataFrames" @@ -1277,12 +1384,6 @@ version = "0.16.0" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" -[[deps.LatinHypercubeSampling]] -deps = ["Random", "StableRNGs", "StatsBase", "Test"] -git-tree-sha1 = "825289d43c753c7f1bf9bed334c253e9913997f8" -uuid = "a5e1c1ea-c99a-51d3-a14d-a9a37257b02d" -version = "1.9.0" - [[deps.LatticeRules]] deps = ["Random"] git-tree-sha1 = "7f5b02258a3ca0221a6a9710b0a0a2e8fb4957fe" @@ -1410,16 +1511,24 @@ deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" [[deps.LinearSolve]] -deps = ["ArrayInterface", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "IterativeSolvers", "KLU", "Krylov", "KrylovKit", "LinearAlgebra", "Preferences", "RecursiveFactorization", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SnoopPrecompile", "SparseArrays", "Sparspak", "SuiteSparse", "UnPack"] -git-tree-sha1 = "4a4f8cc7a59fadbb02d1852d1e0cef5dca3a9460" +deps = ["ArrayInterface", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "LinearAlgebra", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "SuiteSparse", "UnPack"] +git-tree-sha1 = "93f3a0d88c8f5498bed3ad37ddd844b939fdf899" uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "1.42.0" +version = "2.3.0" [deps.LinearSolve.extensions] - LinearSolveHYPRE = "HYPRE" + LinearSolveCUDAExt = "CUDA" + LinearSolveHYPREExt = "HYPRE" + LinearSolveIterativeSolversExt = "IterativeSolvers" + LinearSolveKrylovKitExt = "KrylovKit" + LinearSolvePardisoExt = "Pardiso" [deps.LinearSolve.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" + IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" + KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" + Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" [[deps.LogDensityProblems]] deps = ["ArgCheck", "DocStringExtensions", "Random"] @@ -1429,12 +1538,13 @@ version = "2.1.1" [[deps.LogDensityProblemsAD]] deps = ["DocStringExtensions", "LogDensityProblems", "Requires", "SimpleUnPack"] -git-tree-sha1 = "b726468867eb032ebd7aba0337213eb18ed0566b" +git-tree-sha1 = "a0512ad65f849536b5a52e59b05c59c25cdad943" uuid = "996a588d-648d-4e1f-a8f0-a84b347e47b1" -version = "1.4.3" +version = "1.5.0" [deps.LogDensityProblemsAD.extensions] LogDensityProblemsADEnzymeExt = "Enzyme" + LogDensityProblemsADFiniteDifferencesExt = "FiniteDifferences" LogDensityProblemsADForwardDiffBenchmarkToolsExt = ["BenchmarkTools", "ForwardDiff"] LogDensityProblemsADForwardDiffExt = "ForwardDiff" LogDensityProblemsADReverseDiffExt = "ReverseDiff" @@ -1444,6 +1554,7 @@ version = "1.4.3" [deps.LogDensityProblemsAD.weakdeps] BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + FiniteDifferences = "26cc04aa-876d-5657-8c51-4c34ba976000" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" @@ -1451,9 +1562,9 @@ version = "1.4.3" [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "0a1b7c2863e44523180fdb3146534e265a91870b" +git-tree-sha1 = "c3ce8e7420b3a6e071e0fe4745f5d4300e37b13f" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.23" +version = "0.3.24" weakdeps = ["ChainRulesCore", "ChangesOfVariables", "InverseFunctions"] [deps.LogExpFunctions.extensions] @@ -1472,9 +1583,9 @@ version = "1.0.0" [[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" +git-tree-sha1 = "e4eed22d70ac91d7a4bf9e0f6902383061d17105" uuid = "bdcacae8-1622-11e9-2a5c-532679323890" -version = "0.12.159" +version = "0.12.162" weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] [deps.LoopVectorization.extensions] @@ -1483,15 +1594,15 @@ weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] [[deps.MCMCChains]] deps = ["AbstractMCMC", "AxisArrays", "Dates", "Distributions", "Formatting", "IteratorInterfaceExtensions", "KernelDensity", "LinearAlgebra", "MCMCDiagnosticTools", "MLJModelInterface", "NaturalSort", "OrderedCollections", "PrettyTables", "Random", "RecipesBase", "Statistics", "StatsBase", "StatsFuns", "TableTraits", "Tables"] -git-tree-sha1 = "5eec3d97404f1df009560e5e17d0d64ea713dc91" +git-tree-sha1 = "8778ea7283a0bf0d7e507a0235adfff38071493b" uuid = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" -version = "6.0.1" +version = "6.0.3" [[deps.MCMCDiagnosticTools]] deps = ["AbstractFFTs", "DataAPI", "DataStructures", "Distributions", "LinearAlgebra", "MLJModelInterface", "Random", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "Tables"] -git-tree-sha1 = "09202be9ac9489905c26f525e7050e014bdb70d5" +git-tree-sha1 = "695e91605361d1932c3e89a812be78480a4a4595" uuid = "be115224-59cd-429b-ad48-344e309966f0" -version = "0.3.2" +version = "0.3.4" [[deps.METIS_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1506,9 +1617,9 @@ version = "0.1.4" [[deps.MKL_jll]] deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] -git-tree-sha1 = "2ce8695e1e699b68702c03402672a69f54b8aca9" +git-tree-sha1 = "154d7aaa82d24db6d8f7e4ffcfe596f40bff214b" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2022.2.0+0" +version = "2023.1.0+0" [[deps.MLJModelInterface]] deps = ["Random", "ScientificTypesBase", "StatisticalTraits"] @@ -1555,9 +1666,9 @@ version = "0.1.14" [[deps.MathOptInterface]] deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test", "Unicode"] -git-tree-sha1 = "6ba094e471106981b278f60179170d8b10985052" +git-tree-sha1 = "5c5cd501ae1d76d3ccd7c7e6b4325a15dde7f31c" uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" -version = "1.16.0" +version = "1.18.0" [[deps.MathProgBase]] deps = ["LinearAlgebra", "SparseArrays"] @@ -1598,15 +1709,15 @@ uuid = "a63ad114-7e13-5084-954f-fe012c677804" [[deps.Mocking]] deps = ["Compat", "ExprTools"] -git-tree-sha1 = "782e258e80d68a73d8c916e55f8ced1de00c2cea" +git-tree-sha1 = "4cc0c5a83933648b615c36c2b956d94fda70641e" uuid = "78c3b35d-d492-501b-9361-3d52fe80e533" -version = "0.7.6" +version = "0.7.7" [[deps.ModelingToolkit]] -deps = ["AbstractTrees", "ArrayInterface", "Combinatorics", "Compat", "ConstructionBase", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "DiffRules", "Distributed", "Distributions", "DocStringExtensions", "DomainSets", "ForwardDiff", "FunctionWrappersWrappers", "Graphs", "IfElse", "InteractiveUtils", "JuliaFormatter", "JumpProcesses", "LabelledArrays", "Latexify", "Libdl", "LinearAlgebra", "MacroTools", "NaNMath", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLBase", "Serialization", "Setfield", "SimpleNonlinearSolve", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicIndexingInterface", "SymbolicUtils", "Symbolics", "UnPack", "Unitful"] -git-tree-sha1 = "e52b0337d18fd6ca8b1e1e3d801636dba203b966" +deps = ["AbstractTrees", "ArrayInterface", "Combinatorics", "Compat", "ConstructionBase", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "DiffRules", "Distributed", "Distributions", "DocStringExtensions", "DomainSets", "ForwardDiff", "FunctionWrappersWrappers", "Graphs", "IfElse", "InteractiveUtils", "JuliaFormatter", "JumpProcesses", "LabelledArrays", "Latexify", "Libdl", "LinearAlgebra", "MLStyle", "MacroTools", "NaNMath", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLBase", "Serialization", "Setfield", "SimpleNonlinearSolve", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicIndexingInterface", "SymbolicUtils", "Symbolics", "URIs", "UnPack", "Unitful"] +git-tree-sha1 = "cad27947bc85b1a3136f395f22a7dd5c382b7209" uuid = "961ee093-0014-501f-94e3-6117800e7a78" -version = "8.55.1" +version = "8.62.0" [deps.ModelingToolkit.extensions] MTKDeepDiffsExt = "DeepDiffs" @@ -1641,6 +1752,12 @@ git-tree-sha1 = "964cb1a7069723727025ae295408747a0b36a854" uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" version = "1.3.0" +[[deps.MvNormalCDF]] +deps = ["Distributions", "FillArrays", "LinearAlgebra", "Primes", "Random", "StatsBase"] +git-tree-sha1 = "e472ed20dfe9f68d9aebc02258dfe31d69deb8eb" +uuid = "37188c8d-bc69-4638-b057-733e744175ec" +version = "0.2.6" + [[deps.MyterialColors]] git-tree-sha1 = "01d8466fb449436348999d7c6ad740f8f853a579" uuid = "1c23619d-4212-4747-83aa-717207fae70f" @@ -1672,15 +1789,19 @@ version = "4.5.1" [[deps.NNlib]] deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] -git-tree-sha1 = "99e6dbb50d8a96702dc60954569e9fe7291cc55d" +git-tree-sha1 = "ec9858db6fcd07f63aeeed105420cc573ce2685a" uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -version = "0.8.20" +version = "0.9.1" [deps.NNlib.extensions] NNlibAMDGPUExt = "AMDGPU" + NNlibCUDACUDNNExt = ["CUDA", "cuDNN"] + NNlibCUDAExt = "CUDA" [deps.NNlib.weakdeps] AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" [[deps.NaNMath]] deps = ["OpenLibm_jll"] @@ -1715,22 +1836,16 @@ uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" [[deps.NonlinearSolve]] -deps = ["ArrayInterface", "DiffEqBase", "EnumX", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SnoopPrecompile", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "UnPack"] -git-tree-sha1 = "a6000c813371cd3cd9cbbdf8a356fc3a97138d92" +deps = ["ArrayInterface", "DiffEqBase", "EnumX", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "PrecompileTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "UnPack"] +git-tree-sha1 = "2a7f28c62eb2c16b9c375c38f664cdcf22313cf5" uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "1.6.0" - -[[deps.ObjectFile]] -deps = ["Reexport", "StructIO"] -git-tree-sha1 = "55ce61d43409b1fb0279d1781bf3b0f22c83ab3b" -uuid = "d8793406-e978-5875-9003-1fc021f44a92" -version = "0.3.7" +version = "1.8.0" [[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"] @@ -1740,9 +1855,9 @@ version = "1.3.5+1" [[deps.OpenAPI]] deps = ["Base64", "Dates", "Downloads", "HTTP", "JSON", "LibCURL", "MbedTLS", "TimeZones", "URIs"] -git-tree-sha1 = "d091c5b9feb951f0a674a9792cd5f948507eecaa" +git-tree-sha1 = "6e497e6245770817a7821a2d1d32f8f465166a99" uuid = "d5e62ea6-ddf3-4d43-8e4c-ad5e6c8bfd7d" -version = "0.1.9" +version = "0.1.11" [[deps.OpenBLAS32_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -1767,10 +1882,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 = "1aa4b74f80b01c6bc2b89992b861b5f210e665b5" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "1.1.20+0" +version = "1.1.21+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -1780,9 +1895,9 @@ version = "0.5.5+0" [[deps.Optim]] deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] -git-tree-sha1 = "a89b11f0f354f06099e4001c151dffad7ebab015" +git-tree-sha1 = "e3a6546c1577bfd701771b477b794a52949e7594" uuid = "429524aa-4258-5aef-a3af-852621145aeb" -version = "1.7.5" +version = "1.7.6" [[deps.Optimisers]] deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] @@ -1791,10 +1906,28 @@ uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" version = "0.2.15" [[deps.Optimization]] -deps = ["ArrayInterface", "ConsoleProgressMonitor", "DocStringExtensions", "Enzyme", "LinearAlgebra", "Logging", "LoggingExtras", "Pkg", "Printf", "ProgressLogging", "Reexport", "Requires", "SciMLBase", "SparseArrays", "TerminalLoggers"] -git-tree-sha1 = "82ffb0d292601b9b64a1a03e043f79536d9d243c" +deps = ["ADTypes", "ArrayInterface", "ConsoleProgressMonitor", "DocStringExtensions", "LinearAlgebra", "Logging", "LoggingExtras", "Pkg", "Printf", "ProgressLogging", "Reexport", "Requires", "SciMLBase", "SparseArrays", "TerminalLoggers"] +git-tree-sha1 = "80005bc7d96d4d00e56b8a58c5240a35bd638d4a" uuid = "7f7a1694-90dd-40f0-9382-eb1efda571ba" -version = "3.14.1" +version = "3.15.2" + + [deps.Optimization.extensions] + OptimizationEnzymeExt = "Enzyme" + OptimizationFinitediffExt = "FiniteDiff" + OptimizationForwarddiffExt = "ForwardDiff" + OptimizationMTKExt = "ModelingToolkit" + OptimizationReversediffExt = "ReverseDiff" + OptimizationTrackerExt = "Tracker" + OptimizationZygoteExt = "Zygote" + + [deps.Optimization.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [[deps.OptimizationBBO]] deps = ["BlackBoxOptim", "Optimization", "Reexport"] @@ -1804,15 +1937,15 @@ version = "0.1.4" [[deps.OptimizationMOI]] deps = ["Ipopt_jll", "MathOptInterface", "ModelingToolkit", "Optimization", "Reexport", "SparseArrays", "Symbolics"] -git-tree-sha1 = "1eb9464b555b98752dbed420583b43cd8fe5f344" +git-tree-sha1 = "32c99127e8caf6b50856d676b56a9382bd5650c6" uuid = "fd9f6733-72f4-499f-8506-86b2bdd0dea1" -version = "0.1.13" +version = "0.1.14" [[deps.OptimizationNLopt]] deps = ["NLopt", "Optimization", "Reexport"] -git-tree-sha1 = "10d58c91cde18c6c576f6559d546d7c94971fa47" +git-tree-sha1 = "105de2db4fad2750921fb59507b8ebf3ccebdd91" uuid = "4e6fcdb7-1186-4e1f-a706-475e75c168bb" -version = "0.1.5" +version = "0.1.6" [[deps.Opus_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1826,16 +1959,16 @@ uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" version = "1.6.0" [[deps.OrdinaryDiffEq]] -deps = ["Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLNLSolve", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "6ffebfa8971546bace3fc312f9a703795f79f5b9" +deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLNLSolve", "SciMLOperators", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] +git-tree-sha1 = "4f1ab68f236fa846d0c30718c6b29c1665b019c0" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.51.2" +version = "6.53.3" [[deps.Oxygen]] deps = ["Dates", "HTTP", "JSON3", "MIMEs", "Sockets"] -git-tree-sha1 = "638db9ad1e71ed972e7e4dd2ee4346e6ed66a3b6" +git-tree-sha1 = "dca31e833aafb6277e5aff9fdcb5029be5045255" uuid = "df9a0d86-3283-4920-82dc-4555fc0d1d8b" -version = "1.1.8" +version = "1.1.11" [[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] @@ -1856,9 +1989,9 @@ version = "0.12.3" [[deps.Parsers]] deps = ["Dates", "PrecompileTools", "UUIDs"] -git-tree-sha1 = "a5aef8d4a6e8d81f171b2bd4be5265b01384c74c" +git-tree-sha1 = "4b2e829ee66d4218e0cef22c0a64ee37cf258c29" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.5.10" +version = "2.7.1" [[deps.Pipe]] git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" @@ -1867,20 +2000,20 @@ version = "1.3.0" [[deps.Pipelines]] deps = ["Dates", "FilePathsBase", "Logging", "OrderedCollections", "Printf", "Reexport", "Test", "UUIDs"] -git-tree-sha1 = "2c9f915f7e815add483c23a88c61eac310f93108" +git-tree-sha1 = "b870d8e0354361e38b0d9fc1997e96c299e948ae" uuid = "ef544631-5c6f-4e9b-994c-12e7a4cd724c" -version = "0.10.1" +version = "0.10.4" [[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.9.2" [[deps.PlotThemes]] deps = ["PlotUtils", "Statistics"] @@ -1895,10 +2028,10 @@ uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" version = "1.3.5" [[deps.Plots]] -deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Preferences", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "Unzip"] -git-tree-sha1 = "d03ef538114b38f89d66776f2d8fdc0280f90621" +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Preferences", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "75ca67b2c6512ad2d0c767a7cfc55e75075f8bbc" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.38.12" +version = "1.38.16" [deps.Plots.extensions] FileIOExt = "FileIO" @@ -1932,6 +2065,22 @@ git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" version = "0.2.1" +[[deps.Polynomials]] +deps = ["LinearAlgebra", "RecipesBase"] +git-tree-sha1 = "3aa2bb4982e575acd7583f01531f241af077b163" +uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" +version = "3.2.13" + + [deps.Polynomials.extensions] + PolynomialsChainRulesCoreExt = "ChainRulesCore" + PolynomialsMakieCoreExt = "MakieCore" + PolynomialsMutableArithmeticsExt = "MutableArithmetics" + + [deps.Polynomials.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + MakieCore = "20f20a25-4f0e-4fdf-b5d1-57303727442b" + MutableArithmetics = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" + [[deps.PooledArrays]] deps = ["DataAPI", "Future"] git-tree-sha1 = "a6062fe4063cdafe78f4a0a81cfffb89721b30e7" @@ -1958,9 +2107,9 @@ version = "0.4.12" [[deps.PrecompileTools]] deps = ["Preferences"] -git-tree-sha1 = "259e206946c293698122f63e2b513a7c99a244e8" +git-tree-sha1 = "9673d39decc5feece56ef3940e5dafba15ba0f81" uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -version = "1.1.1" +version = "1.1.2" [[deps.Preferences]] deps = ["TOML"] @@ -2018,10 +2167,10 @@ uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" version = "2.8.2" [[deps.QuasiMonteCarlo]] -deps = ["Distributions", "LatinHypercubeSampling", "LatticeRules", "LinearAlgebra", "Primes", "Random", "Sobol", "StatsBase"] -git-tree-sha1 = "b10f1a5345f14f6431712661925ae2d8c02780ee" +deps = ["Accessors", "ConcreteStructs", "Distributions", "LatticeRules", "LinearAlgebra", "Primes", "Random", "Sobol", "StatsBase"] +git-tree-sha1 = "e23bba76fbb0a71991a57b3190126988bc64212a" uuid = "8a4e6c94-4038-4cdc-81c3-7e6ffdb2a71b" -version = "0.2.19" +version = "0.3.1" [[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] @@ -2056,9 +2205,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] @@ -2109,6 +2258,12 @@ git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" uuid = "189a3867-3050-52da-a836-e630ba90ab69" version = "1.2.2" +[[deps.Referenceables]] +deps = ["Adapt"] +git-tree-sha1 = "e681d3bfa49cd46c3c161505caddf20f0e62aaa9" +uuid = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" +version = "0.1.2" + [[deps.RelocatableFolders]] deps = ["SHA", "Scratch"] git-tree-sha1 = "90bc7a7c96410424509e4263e277e43250c05691" @@ -2141,23 +2296,30 @@ version = "0.4.0+0" [[deps.Roots]] deps = ["ChainRulesCore", "CommonSolve", "Printf", "Setfield"] -git-tree-sha1 = "e961f57a7d5b1d46059b62a8fb7223d6497a5bc4" +git-tree-sha1 = "de432823e8aab4dd1a985be4be768f95acf152d4" uuid = "f2b01f46-fcfa-551c-844a-d8ac1e96c665" -version = "2.0.15" +version = "2.0.17" [deps.Roots.extensions] RootsForwardDiffExt = "ForwardDiff" RootsIntervalRootFindingExt = "IntervalRootFinding" + RootsSymPyExt = "SymPy" [deps.Roots.weakdeps] ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" IntervalRootFinding = "d2bf35a9-74e0-55ec-b149-d360ff49b807" + SymPy = "24249f21-da20-56a4-8eb1-6a02cf4ae2e6" + +[[deps.RoundingEmulator]] +git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" +uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" +version = "0.2.1" [[deps.RuntimeGeneratedFunctions]] deps = ["ExprTools", "SHA", "Serialization"] -git-tree-sha1 = "d7d9ebe28062161c1e314ed643097b0c6fe657d9" +git-tree-sha1 = "0b9b18d6236e9ab2b092defaacdffd929d572642" uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" -version = "0.5.7" +version = "0.5.9" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" @@ -2170,21 +2332,20 @@ version = "0.1.0" [[deps.SLEEFPirates]] deps = ["IfElse", "Static", "VectorizationBase"] -git-tree-sha1 = "cda0aece8080e992f6370491b08ef3909d1c04e7" +git-tree-sha1 = "4b8586aece42bee682399c4c4aee95446aa5cd19" uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" -version = "0.6.38" +version = "0.6.39" [[deps.SafeTestsets]] -deps = ["Test"] -git-tree-sha1 = "36ebc5622c82eb9324005cc75e7e2cc51181d181" +git-tree-sha1 = "81ec49d645af090901120a1542e67ecbbe044db3" uuid = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" -version = "0.0.1" +version = "0.1.0" [[deps.SciMLBase]] deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] -git-tree-sha1 = "75552338dda481baeb9b9e171f73ecd0171e8f34" +git-tree-sha1 = "a22a12db91f6a921e28a7ae39a9546eed93fd92e" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "1.92.2" +version = "1.93.0" [[deps.SciMLExpectations]] deps = ["DiffEqBase", "Distributions", "Integrals", "KernelDensity", "LinearAlgebra", "Parameters", "Random", "RecursiveArrayTools", "Reexport", "StaticArrays", "Statistics", "Zygote"] @@ -2194,15 +2355,15 @@ version = "2.0.1" [[deps.SciMLNLSolve]] deps = ["DiffEqBase", "LineSearches", "NLsolve", "Reexport", "SciMLBase"] -git-tree-sha1 = "a8eb97c56cac50c21096582afb2a0110784dc36e" +git-tree-sha1 = "9dfc8e9e3d58c0c74f1a821c762b5349da13eccf" uuid = "e9a6253c-8580-4d32-9898-8661bb511710" -version = "0.1.6" +version = "0.1.8" [[deps.SciMLOperators]] deps = ["ArrayInterface", "DocStringExtensions", "Lazy", "LinearAlgebra", "Setfield", "SparseArrays", "StaticArraysCore", "Tricks"] -git-tree-sha1 = "90163ebc767cba9f126ea00aeef1d75ed74fe7b0" +git-tree-sha1 = "b1fe33c9984c6789b58419e62e7a2b92f9aa813e" uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" -version = "0.2.8" +version = "0.3.3" [[deps.ScientificTypesBase]] git-tree-sha1 = "a8e18eb383b5ecf1b5e6fc237eb39255044fd92b" @@ -2217,13 +2378,18 @@ version = "1.2.0" [[deps.SentinelArrays]] deps = ["Dates", "Random"] -git-tree-sha1 = "77d3c4726515dca71f6d80fbb5e251088defe305" +git-tree-sha1 = "04bdff0b09c65ff3e06a05e3eb7b120223da3d39" uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" -version = "1.3.18" +version = "1.4.0" [[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" @@ -2246,14 +2412,10 @@ uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" version = "1.1.0" [[deps.SimpleNonlinearSolve]] -deps = ["ArrayInterface", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "Reexport", "Requires", "SciMLBase", "SnoopPrecompile", "StaticArraysCore"] -git-tree-sha1 = "54c78ac3cc0343a16785adabe5bbf4063c737967" +deps = ["ArrayInterfaceCore", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "Reexport", "SciMLBase", "SnoopPrecompile", "StaticArraysCore"] +git-tree-sha1 = "3f558105e8ef4aac1e22bf30bd1f1e95698bfc95" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "0.1.14" -weakdeps = ["NNlib"] - - [deps.SimpleNonlinearSolve.extensions] - SimpleBatchedNonlinearSolveExt = "NNlib" +version = "0.1.10" [[deps.SimpleTraits]] deps = ["InteractiveUtils", "MacroTools"] @@ -2283,19 +2445,23 @@ uuid = "6462fe0b-24de-5631-8697-dd941f90decc" [[deps.SortingAlgorithms]] deps = ["DataStructures"] -git-tree-sha1 = "a4ada03f999bd01b3a25dcaa30b2d929fe537e00" +git-tree-sha1 = "c60ec5c62180f27efea3ba2908480f8055e17cee" uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" -version = "1.1.0" +version = "1.1.1" [[deps.SparseArrays]] deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" [[deps.SparseDiffTools]] -deps = ["Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "Requires", "SparseArrays", "StaticArrays", "VertexSafeGraphs"] -git-tree-sha1 = "e19ac47477c9a8fcca06dab5e5471417d5d9d723" +deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "Reexport", "Requires", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "VertexSafeGraphs"] +git-tree-sha1 = "4c1a57bcbc0b795fbfdc2009e70f9c2fd2815bfe" uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" -version = "1.31.0" +version = "2.4.1" +weakdeps = ["Zygote"] + + [deps.SparseDiffTools.extensions] + SparseDiffToolsZygoteExt = "Zygote" [[deps.Sparspak]] deps = ["Libdl", "LinearAlgebra", "Logging", "OffsetArrays", "Printf", "SparseArrays", "Test"] @@ -2310,9 +2476,9 @@ version = "0.1.5" [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "ef28127915f4229c971eb43f3fc075dd3fe91880" +git-tree-sha1 = "7beb031cf8145577fbccacd94b8a8f4ce78428d3" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.2.0" +version = "2.3.0" weakdeps = ["ChainRulesCore"] [deps.SpecialFunctions.extensions] @@ -2324,12 +2490,6 @@ git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" uuid = "171d559e-b47b-412a-8079-5efa626c420e" version = "0.1.15" -[[deps.StableRNGs]] -deps = ["Random", "Test"] -git-tree-sha1 = "3be7d49667040add7ee151fefaf1f8c04c8c8276" -uuid = "860ef19b-820b-49d6-a774-d7a799459cd3" -version = "1.0.0" - [[deps.Static]] deps = ["IfElse"] git-tree-sha1 = "dbde6766fc677423598138a5951269432b0fcc90" @@ -2348,10 +2508,14 @@ weakdeps = ["OffsetArrays", "StaticArrays"] StaticArrayInterfaceStaticArraysExt = "StaticArrays" [[deps.StaticArrays]] -deps = ["LinearAlgebra", "Random", "StaticArraysCore", "Statistics"] -git-tree-sha1 = "8982b3607a212b070a5e46eea83eb62b4744ae12" +deps = ["LinearAlgebra", "Random", "StaticArraysCore"] +git-tree-sha1 = "0da7e6b70d1bb40b1ace3b576da9ea2992f76318" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.5.25" +version = "1.6.0" +weakdeps = ["Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysStatisticsExt = "Statistics" [[deps.StaticArraysCore]] git-tree-sha1 = "6b7ba252635a5eff6a0b0664a41ee140a1c9e72a" @@ -2394,21 +2558,21 @@ weakdeps = ["ChainRulesCore", "InverseFunctions"] [[deps.SteadyStateDiffEq]] deps = ["DiffEqBase", "DiffEqCallbacks", "LinearAlgebra", "NLsolve", "Reexport", "SciMLBase"] -git-tree-sha1 = "564451a262696334a3bab19108a99dd90d5a22c8" +git-tree-sha1 = "6e801d0da4c81d9cd6a05d97340404f9892fba85" uuid = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f" -version = "1.15.0" +version = "1.16.0" [[deps.StochasticDiffEq]] -deps = ["Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqNoiseProcess", "DocStringExtensions", "FillArrays", "FiniteDiff", "ForwardDiff", "JumpProcesses", "LevyArea", "LinearAlgebra", "Logging", "MuladdMacro", "NLsolve", "OrdinaryDiffEq", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] -git-tree-sha1 = "073da86200349ddf4ef8bc3e3f3acd62e1d554f7" +deps = ["Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqNoiseProcess", "DocStringExtensions", "FillArrays", "FiniteDiff", "ForwardDiff", "JumpProcesses", "LevyArea", "LinearAlgebra", "Logging", "MuladdMacro", "NLsolve", "OrdinaryDiffEq", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] +git-tree-sha1 = "ccf744171b3a83879158a4b3f3a430c1bc585123" uuid = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" -version = "6.60.0" +version = "6.61.1" [[deps.StrideArraysCore]] deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] -git-tree-sha1 = "5ffcee1813efc849f188dce82ca1553bd5f3a476" +git-tree-sha1 = "26316a9a43d32ecd0c5b342cb36dc86305c73e53" uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" -version = "0.4.14" +version = "0.4.16" [[deps.StringEncodings]] deps = ["Libiconv_jll"] @@ -2433,12 +2597,6 @@ git-tree-sha1 = "192a9f1de3cfef80ab1a4ba7b150bb0e11ceedcf" uuid = "6ec83bb0-ed9f-11e9-3b4c-2b04cb4e219c" version = "2.1.0" -[[deps.StructIO]] -deps = ["Test"] -git-tree-sha1 = "010dc73c7146869c042b49adcdb6bf528c12e859" -uuid = "53d494c1-5632-5724-8f4c-31dff12d585f" -version = "0.3.0" - [[deps.StructTypes]] deps = ["Dates", "UUIDs"] git-tree-sha1 = "ca4bccb03acf9faaf4137a9abc1881ed1841aa70" @@ -2456,9 +2614,9 @@ version = "5.10.1+6" [[deps.Sundials]] deps = ["CEnum", "DataStructures", "DiffEqBase", "Libdl", "LinearAlgebra", "Logging", "PrecompileTools", "Reexport", "SciMLBase", "SparseArrays", "Sundials_jll"] -git-tree-sha1 = "4289695031d663252f38fd114d3e0020d1461cee" +git-tree-sha1 = "4931f9013c53128337ce8df54a2d38c79fe58d4c" uuid = "c3572dad-4567-51f8-b174-8c6c989267f4" -version = "4.18.0" +version = "4.19.3" [[deps.Sundials_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "OpenBLAS_jll", "Pkg", "SuiteSparse_jll"] @@ -2486,9 +2644,9 @@ version = "1.0.5" [[deps.Symbolics]] deps = ["ArrayInterface", "ConstructionBase", "DataStructures", "DiffRules", "Distributions", "DocStringExtensions", "DomainSets", "Groebner", "IfElse", "LaTeXStrings", "LambertW", "Latexify", "Libdl", "LinearAlgebra", "MacroTools", "Markdown", "NaNMath", "RecipesBase", "Reexport", "Requires", "RuntimeGeneratedFunctions", "SciMLBase", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicUtils", "TreeViews"] -git-tree-sha1 = "e23ec62c083ca8f15a4b7174331b3b8d1c511e47" +git-tree-sha1 = "c4e5688a9a5a2f4088cd1a779b0742be31cbe9aa" uuid = "0c5d862f-8b57-4792-8d23-62f2024744c7" -version = "5.3.1" +version = "5.5.0" [[deps.TOML]] deps = ["Dates"] @@ -2512,6 +2670,12 @@ deps = ["ArgTools", "SHA"] uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" version = "1.10.0" +[[deps.TaylorSeries]] +deps = ["IntervalArithmetic", "LinearAlgebra", "Markdown", "Requires", "SparseArrays"] +git-tree-sha1 = "b123e0614b0f366e2073c4da7b1367cebda3f579" +uuid = "6aa5eb33-94cf-58f4-a9d0-e4b2c4fc25ea" +version = "0.14.0" + [[deps.TensorCore]] deps = ["LinearAlgebra"] git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" @@ -2520,9 +2684,9 @@ version = "0.1.1" [[deps.Term]] deps = ["AbstractTrees", "CodeTracking", "Dates", "Highlights", "InteractiveUtils", "Logging", "Markdown", "MyterialColors", "OrderedCollections", "Parameters", "PrecompileTools", "ProgressLogging", "REPL", "Tables", "UUIDs", "Unicode", "UnicodeFun"] -git-tree-sha1 = "7952fafaecea040260bdc4be2afff92c411c23ce" +git-tree-sha1 = "ffac67f6fbcbb32027d924b93ba91b7633af9220" uuid = "22787eb5-b846-44ae-b979-8e399b8463ab" -version = "2.0.4" +version = "2.0.5" [[deps.TerminalLoggers]] deps = ["LeftChildRightSiblingTrees", "Logging", "Markdown", "Printf", "ProgressLogging", "UUIDs"] @@ -2542,15 +2706,21 @@ uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [[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.ThreadsX]] +deps = ["ArgCheck", "BangBang", "ConstructionBase", "InitialValues", "MicroCollections", "Referenceables", "Setfield", "SplittablesBase", "Transducers"] +git-tree-sha1 = "34e6bcf36b9ed5d56489600cf9f3c16843fa2aa2" +uuid = "ac1d9e8a-700a-412c-b207-f0111f4b6c0d" +version = "0.1.11" [[deps.TimeZones]] deps = ["Dates", "Downloads", "InlineStrings", "LazyArtifacts", "Mocking", "Printf", "RecipesBase", "Scratch", "Unicode"] -git-tree-sha1 = "a5404eddfee0cf451cabb8ea8846413323712e25" +git-tree-sha1 = "cdaa0c2a4449724aded839550eca7d7240bb6938" uuid = "f269a46b-ccf7-5d73-abea-4c690281aa53" -version = "1.9.2" +version = "1.10.0" [[deps.TimerOutputs]] deps = ["ExprTools", "Printf"] @@ -2558,6 +2728,12 @@ git-tree-sha1 = "f548a9e9c490030e545f72074a41edfd0e5bcdd7" uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" version = "0.5.23" +[[deps.ToeplitzMatrices]] +deps = ["AbstractFFTs", "DSP", "LinearAlgebra", "StatsBase"] +git-tree-sha1 = "326388c0c53565fb21eecafb6176b1cc5d225d34" +uuid = "c751599d-da0a-543b-9d20-d0a503d91d24" +version = "0.8.1" + [[deps.Tokenize]] git-tree-sha1 = "90538bf898832b6ebd900fa40f223e695970e3a5" uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624" @@ -2565,9 +2741,9 @@ version = "0.5.25" [[deps.Tracker]] deps = ["Adapt", "DiffRules", "ForwardDiff", "Functors", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NNlib", "NaNMath", "Optimisers", "Printf", "Random", "Requires", "SpecialFunctions", "Statistics"] -git-tree-sha1 = "8b552cc0a4132c1ce5cee14197bb57d2109d480f" +git-tree-sha1 = "92364c27aa35c0ee36e6e010b704adaade6c409c" uuid = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" -version = "0.2.25" +version = "0.2.26" weakdeps = ["PDMats"] [deps.Tracker.extensions] @@ -2581,9 +2757,23 @@ 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" +git-tree-sha1 = "a66fb81baec325cf6ccafa243af573b031e87b00" uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" -version = "0.4.76" +version = "0.4.77" + + [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.Trapz]] git-tree-sha1 = "79eb0ed763084a3e7de81fe1838379ac6a23b6a0" @@ -2609,9 +2799,9 @@ version = "0.1.7" [[deps.TruncatedStacktraces]] deps = ["InteractiveUtils", "MacroTools", "Preferences"] -git-tree-sha1 = "7bc1632a4eafbe9bd94cf1a784a9a4eb5e040a91" +git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" uuid = "781d530d-4396-4725-bb49-402e4bee1e77" -version = "1.3.0" +version = "1.4.0" [[deps.Turing]] deps = ["AbstractMCMC", "AdvancedHMC", "AdvancedMH", "AdvancedPS", "AdvancedVI", "BangBang", "Bijectors", "DataStructures", "Distributions", "DistributionsAD", "DocStringExtensions", "DynamicPPL", "EllipticalSliceSampling", "ForwardDiff", "Libtask", "LinearAlgebra", "LogDensityProblems", "LogDensityProblemsAD", "MCMCChains", "NamedArrays", "Printf", "Random", "Reexport", "Requires", "SciMLBase", "Setfield", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "Tracker"] @@ -2643,15 +2833,22 @@ uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" version = "0.4.1" [[deps.Unitful]] -deps = ["ConstructionBase", "Dates", "LinearAlgebra", "Random"] -git-tree-sha1 = "ba4aa36b2d5c98d6ed1f149da916b3ba46527b2b" +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "c4d2a349259c8eba66a00a540d550f122a3ab228" uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" -version = "1.14.0" -weakdeps = ["InverseFunctions"] +version = "1.15.0" +weakdeps = ["ConstructionBase", "InverseFunctions"] [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" InverseFunctionsUnitfulExt = "InverseFunctions" +[[deps.UnitfulLatexify]] +deps = ["LaTeXStrings", "Latexify", "Unitful"] +git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" +uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" +version = "1.6.3" + [[deps.Unityper]] deps = ["ConstructionBase"] git-tree-sha1 = "d5f4ec8c22db63bd3ccb239f640e895cfde145aa" @@ -2665,9 +2862,9 @@ version = "0.2.1" [[deps.UnsafeAtomicsLLVM]] deps = ["LLVM", "UnsafeAtomics"] -git-tree-sha1 = "ea37e6066bf194ab78f4e747f5245261f17a7175" +git-tree-sha1 = "323e3d0acf5e78a56dfae7bd8928c989b4f3083e" uuid = "d80eeb9a-aca5-4d75-85e5-170c8b632249" -version = "0.1.2" +version = "0.1.3" [[deps.Unzip]] git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" @@ -2728,16 +2925,16 @@ 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_libXcursor_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] @@ -2746,10 +2943,10 @@ uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" version = "1.2.0+4" [[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"] @@ -2788,22 +2985,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_libxkbfile_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] -git-tree-sha1 = "926af861744212db0eb001d9e40b5d16292080b2" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "730eeca102434283c50ccf7d1ecdadf521a765a4" uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" -version = "1.1.0+4" +version = "1.1.2+0" [[deps.Xorg_xcb_util_image_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] @@ -2836,28 +3033,28 @@ uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" version = "0.4.1+1" [[deps.Xorg_xkbcomp_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxkbfile_jll"] -git-tree-sha1 = "4bcbf660f6c2e714f87e960a171b119d06ee163b" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] +git-tree-sha1 = "330f955bc41bb8f5270a369c473fc4a5a4e4d3cb" uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" -version = "1.4.2+4" +version = "1.4.6+0" [[deps.Xorg_xkeyboard_config_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xkbcomp_jll"] -git-tree-sha1 = "5c8424f8a67c3f2209646d4425f3d415fee5931d" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] +git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" uuid = "33bec58e-1273-512f-9401-5d533626f822" -version = "2.27.0+4" +version = "2.39.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.YAML]] deps = ["Base64", "Dates", "Printf", "StringEncodings"] -git-tree-sha1 = "dbc7f1c0012a69486af79c8bcdb31be820670ba2" +git-tree-sha1 = "e6330e4b731a6af7959673621e91645eb1356884" uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" -version = "0.4.8" +version = "0.4.9" [[deps.Zlib_jll]] deps = ["Libdl"] @@ -2872,9 +3069,9 @@ version = "1.5.5+0" [[deps.Zygote]] deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArrays", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "PrecompileTools", "Random", "Requires", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] -git-tree-sha1 = "ebac1ae9f048c669317ad48c9bed815790a468d8" +git-tree-sha1 = "5be3ddb88fc992a7d8ea96c3f10a49a7e98ebc7b" uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" -version = "0.6.61" +version = "0.6.62" weakdeps = ["Colors", "Distances", "Tracker"] [deps.Zygote.extensions] diff --git a/Project.toml b/Project.toml index b065180..9b2bdba 100644 --- a/Project.toml +++ b/Project.toml @@ -10,6 +10,8 @@ Bijections = "e2ed5e7c-b2de-5872-ae92-c73ca462fb04" CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" Catlab = "134e5e36-593f-5add-ad60-77f754baafbe" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" +DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def" DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" Downloads = "f43a241f-c20a-4ad4-852c-f6b1247861c6" EasyModelAnalysis = "ef4b24a4-a090-4686-a932-e7e56a5a83bd" @@ -19,6 +21,7 @@ JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" JSONTables = "b9914132-a727-11e9-1322-f18e41205b0b" JobSchedulers = "eeff360b-c02d-44d3-ab26-4013c616a17e" +LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" MathML = "abcecc63-2b08-419c-80c4-c63dca6fa478" ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" @@ -33,6 +36,7 @@ Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" Preferences = "21216c6a-2e73-6563-6e65-726566657250" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" +SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" SwaggerMarkdown = "1b6eb727-ad4b-44eb-9669-b9596a6e760f" SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5" Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" diff --git a/src/operations/Operations.jl b/src/operations/Operations.jl index 37cb4d8..029e4cb 100644 --- a/src/operations/Operations.jl +++ b/src/operations/Operations.jl @@ -4,34 +4,104 @@ SciML Operation definitions module Operations import AlgebraicPetri: LabelledPetriNet, AbstractPetriNet -import DataFrames: DataFrame -import DifferentialEquations: solve -import ModelingToolkit: remake -import Symbolics: Num +import DataFrames: DataFrame, names +import DifferentialEquations: solve, DiscreteCallback +import ModelingToolkit: remake, ODESystem, ODEProblem +import Symbolics: Num, getname, @variables, substitute import SymbolicIndexingInterface: states, parameters import EasyModelAnalysis +import SciMLBase -include("./Utils.jl"); import .Utils: to_prob, unzip, symbolize_args, select_data +using LinearAlgebra: norm +using Dates: Dates, DateTime, now + +# import MathML + +# include("./Utils.jl"); import .Utils: to_prob, unzip, symbolize_args, select_data # NOTE: Operations exposed to the rest of the Simulation Service export simulate, calibrate, ensemble -""" -Simulate a scenario from a PetriNet -""" -# model::ASKEMModel -function simulate(; model, timespan::Tuple{Float64,Float64}=(0.0, 100.0), context)::DataFrame - sol = solve(to_prob(model, timespan); progress = true, progress_steps = 1) - DataFrame(sol) + +#-----------------------------------------------------------------------------# utils + +# Transform model representation into a SciML ODEProblem +function to_prob(sys, tspan) + ODEProblem(sys, [], tspan, saveat=1) +end + +# Separate keys and values +unzip(d::Dict) = (collect(keys(d)), collect(values(d))) + +# Unzip a collection of pairs +unzip(ps) = first.(ps), last.(ps) + + +# Transform list of args into Symbolics variables +function symbolize_args(incoming_values, sys_vars) + pairs = collect(incoming_values) + ks, values = unzip(pairs) + symbols = Symbol.(ks) + vars_as_symbols = getname.(sys_vars) + symbols_to_vars = Dict(vars_as_symbols .=> sys_vars) + Dict( + [ + symbols_to_vars[vars_as_symbols[findfirst(x -> x == symbol, vars_as_symbols)]] + for symbol in symbols + ] .=> values + ) end -" -for custom loss functions, we probably just allow an enum of functions defined in EMA. (todo) - datafit is exported in EMA -" -# model::ASKEMModel -function calibrate(; model, dataset::DataFrame, context) +# Generate data and timestep list from a dataframe +function select_data(df::DataFrame) + data = Dict( + key => df[!, key] + for key in names(df) if key != "timestep" + ) + df[!, "timestep"], data +end + +#-----------------------------------------------------------------------------# IntermediateReulsts callback +# Return information about current state of the solver at regular intervals +mutable struct IntermediateResults + last_callback::DateTime + every::Dates.TimePeriod + context # ::Union{Nothing, Context} +end +IntermediateResults(context; every=Dates.Second(5)) = IntermediateResults(typemin(DateTime), every, context) + +# TODO: ensure that this is called at the end of the solve +function (o::IntermediateResults)(integrator) + if o.last_callback + o.every ≤ now() + o.last_callback = now() + d = Dict( + :iter => integrator.iter, + :time => integrator.t, + :params => integrator.u, + :abs_err => norm(integrator.u - integrator.uprev), + :retcode => Symbol(SciMLBase.check_error(integrator)), + ) + if isnothing(o.context) + @info "IntermediateResults: $(NamedTuple(d))" + else + d[:job_id] = context.job_id + context.interactivity_hook(d) + end + end +end + +#-----------------------------------------------------------------------------# simulate +function simulate(; model::ODESystem, timespan::Tuple{Float64,Float64}=(0.0, 100.0), context=nothing) + prob = to_prob(model, timespan) + res = IntermediateResults(context) + callback = DiscreteCallback((args...) -> true, res) + sol = solve(prob; progress = true, progress_steps = 1, callback) + DataFrame(sol) +end + +#-----------------------------------------------------------------------------# calibrate +function calibrate(; model, dataset::DataFrame, context=nothing) timesteps, data = select_data(dataset) prob = to_prob(model, extrema(timesteps)) p = Vector{Pair{Num, Float64}}([Num(param) => model.defaults[param] for param in parameters(model)]) @@ -43,13 +113,13 @@ function calibrate(; model, dataset::DataFrame, context) fitp end -""" -NOT IMPLEMENTED -""" -function ensemble(; models::AbstractArray{AbstractPetriNet}, timespan=(0.0, 100.0)::Tuple{Float64, Float64}) +#-----------------------------------------------------------------------------# ensemble +function ensemble(; models::AbstractArray{AbstractPetriNet}, timespan::Tuple{Float64, Float64} = (0.0, 100.0), context=nothing) throw("ENSEMBLE IS NOT YET IMPLEMENTED") end + +# joshday: what is this function? "long running functions like global_datafit and sensitivity wrappers will need to be refactored to share callback info incrementally" function _global_datafit(; model::LabelledPetriNet, parameter_bounds::Dict{String,Tuple{Float64,Float64}}, diff --git a/src/service/ArgIO.jl b/src/service/ArgIO.jl index df45f7f..fc3feb0 100644 --- a/src/service/ArgIO.jl +++ b/src/service/ArgIO.jl @@ -15,11 +15,11 @@ include("./AssetManager.jl"); import .AssetManager: fetch_dataset, fetch_model, export prepare_input, prepare_output -""" -Transform requests into arguments to be used by operation +# """ +# Transform requests into arguments to be used by operation -Optionally, IDs are hydrated with the corresponding entity from TDS. -""" +# Optionally, IDs are hydrated with the corresponding entity from TDS. +# """ function prepare_input(args; context...) if settings["ENABLE_TDS"] update_simulation(context[:job_id], Dict([:status=>"running", :start_time => time()])) @@ -40,27 +40,27 @@ function prepare_input(args; context...) args[:timespan] = nothing end if in(:extra, keys(args)) - for (key, value) in Dict(args[:extra]) + for (key, value) in Dict(args[:extra]) args[Symbol(key)] = value end end args end -""" -Generate a `prepare_input` function that is already contextualized -""" +# """ +# Generate a `prepare_input` function that is already contextualized +# """ function prepare_input(context) function contextualized_prepare_input(args) prepare_input(args; context...) end end -""" -Normalize the header of the resulting dataframe and return a CSV +# """ +# Normalize the header of the resulting dataframe and return a CSV -Optionally, the CSV is saved to TDS instead an the coreresponding ID is returned. -""" +# Optionally, the CSV is saved to TDS instead an the coreresponding ID is returned. +# """ function prepare_output(dataframe::DataFrame; name="0", context...) stripped_names = names(dataframe) .=> (r -> replace(r, "(t)"=>"")).(names(dataframe)) rename!(dataframe, stripped_names) @@ -74,9 +74,9 @@ function prepare_output(dataframe::DataFrame; name="0", context...) end end -""" -Coerces NaN values to nothing for each parameter -""" +# """ +# Coerces NaN values to nothing for each parameter +# """ function prepare_output(params::Vector{Pair{Symbolics.Num, Float64}}; name="0", context...) nan_to_nothing(value) = isnan(value) ? nothing : value fixed_params = Dict(key => nan_to_nothing(value) for (key, value) in params) @@ -86,9 +86,9 @@ function prepare_output(params::Vector{Pair{Symbolics.Num, Float64}}; name="0", end -""" -Coerces NaN values to nothing for each parameter -""" +# """ +# Coerces NaN values to nothing for each parameter +# """ function prepare_output(results::Dict{String}; context...) if settings["ENABLE_TDS"] urls = [] @@ -99,9 +99,9 @@ function prepare_output(results::Dict{String}; context...) end end -""" -Generate a `prepare_output` function that is already contextualized -""" +# """ +# Generate a `prepare_output` function that is already contextualized +# """ function prepare_output(context) function contextualized_prepare_output(arg) prepare_output(arg; context...) @@ -109,4 +109,4 @@ function prepare_output(context) end -end \ No newline at end of file +end diff --git a/test/runtests.jl b/test/runtests.jl index bed1d6c..5340cbc 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -8,22 +8,15 @@ using SimulationService #-----------------------------------------------------------------------------# Operations @testset "Operations" begin - - for (url, op) in [ - ("https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/main/petrinet/examples/sir.json", :simulate), - ("https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/main/regnet/examples/lotka_volterra.json", :calibrate), - ] - @testset "Operations.$op" begin - @info "Testing $op" - - json_string = read(download(url), String) - - f = SimulationService.Service.Execution.Interface.Available.get_operation(op) - - model = SimulationService.Service.Execution.Interface.Available.ProblemInputs.coerce_model(json_string) - - f(; model, context=nothing) - end + @testset "simulate" begin + url = "https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/main/petrinet/examples/sir.json" + json_string = read(download(url), String) + model = SimulationService.Service.Execution.Interface.Available.ProblemInputs.coerce_model(json_string) + f = SimulationService.Service.Execution.Interface.Available.get_operation(:simulate) + f(; model, context=nothing) + end + @testset "calibrate" begin + # TODO end end From 87911a26fc954c67d41de529c1a722ec082c2b22 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Fri, 7 Jul 2023 14:52:57 -0400 Subject: [PATCH 02/31] spelling --- src/operations/Operations.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/operations/Operations.jl b/src/operations/Operations.jl index 029e4cb..123c877 100644 --- a/src/operations/Operations.jl +++ b/src/operations/Operations.jl @@ -79,7 +79,7 @@ function (o::IntermediateResults)(integrator) :iter => integrator.iter, :time => integrator.t, :params => integrator.u, - :abs_err => norm(integrator.u - integrator.uprev), + :abserr => norm(integrator.u - integrator.uprev), :retcode => Symbol(SciMLBase.check_error(integrator)), ) if isnothing(o.context) From 2365c1072efe30f8dc9bd16f365cc450a4a030fa Mon Sep 17 00:00:00 2001 From: Josh Day Date: Sat, 8 Jul 2023 07:04:44 -0400 Subject: [PATCH 03/31] clean up --- src/operations/Operations.jl | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/operations/Operations.jl b/src/operations/Operations.jl index 123c877..7102c83 100644 --- a/src/operations/Operations.jl +++ b/src/operations/Operations.jl @@ -63,25 +63,25 @@ function select_data(df::DataFrame) end #-----------------------------------------------------------------------------# IntermediateReulsts callback -# Return information about current state of the solver at regular intervals mutable struct IntermediateResults - last_callback::DateTime - every::Dates.TimePeriod - context # ::Union{Nothing, Context} + last_callback::DateTime # Track the last time the callback was called + every::Dates.TimePeriod # Callback frequency e.g. `Dates.Second(5)` + context # ::Union{Nothing, Context} (context.interactivity_hook sends Dict to frontend via RabbitMQ) end IntermediateResults(context; every=Dates.Second(5)) = IntermediateResults(typemin(DateTime), every, context) -# TODO: ensure that this is called at the end of the solve +intermediate_results_to_rabbitmq(integrator) = Dict( + :iter => integrator.iter, + :time => integrator.t, + :params => integrator.u, + :abserr => norm(integrator.u - integrator.uprev), + :retcode => Symbol(SciMLBase.check_error(integrator)), +) + function (o::IntermediateResults)(integrator) if o.last_callback + o.every ≤ now() o.last_callback = now() - d = Dict( - :iter => integrator.iter, - :time => integrator.t, - :params => integrator.u, - :abserr => norm(integrator.u - integrator.uprev), - :retcode => Symbol(SciMLBase.check_error(integrator)), - ) + d = intermediate_results_to_rabbitmq(integrator) if isnothing(o.context) @info "IntermediateResults: $(NamedTuple(d))" else @@ -94,8 +94,7 @@ end #-----------------------------------------------------------------------------# simulate function simulate(; model::ODESystem, timespan::Tuple{Float64,Float64}=(0.0, 100.0), context=nothing) prob = to_prob(model, timespan) - res = IntermediateResults(context) - callback = DiscreteCallback((args...) -> true, res) + callback = DiscreteCallback((args...) -> true, IntermediateResults(context)) sol = solve(prob; progress = true, progress_steps = 1, callback) DataFrame(sol) end From e9421d1df2318706b709713e7a6101791b1bdc80 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Mon, 10 Jul 2023 13:33:18 -0400 Subject: [PATCH 04/31] remove Utils.jl --- src/operations/Operations.jl | 2 -- src/operations/Utils.jl | 63 ------------------------------------ test/runtests.jl | 3 ++ 3 files changed, 3 insertions(+), 65 deletions(-) delete mode 100644 src/operations/Utils.jl diff --git a/src/operations/Operations.jl b/src/operations/Operations.jl index 7102c83..865e840 100644 --- a/src/operations/Operations.jl +++ b/src/operations/Operations.jl @@ -17,8 +17,6 @@ using Dates: Dates, DateTime, now # import MathML -# include("./Utils.jl"); import .Utils: to_prob, unzip, symbolize_args, select_data - # NOTE: Operations exposed to the rest of the Simulation Service export simulate, calibrate, ensemble diff --git a/src/operations/Utils.jl b/src/operations/Utils.jl deleted file mode 100644 index f0e6d35..0000000 --- a/src/operations/Utils.jl +++ /dev/null @@ -1,63 +0,0 @@ -""" -Unexposed helper functions for operations -""" -module Utils - -import DataFrames: DataFrame, names -import ModelingToolkit: ODESystem, ODEProblem -import Symbolics: getname, @variables, substitute -import SymbolicIndexingInterface: states, parameters -import MathML - -export to_prob, unzip, symbolize_args, select_data - -""" -Transform model representation into a SciML ODEProblem -""" -function to_prob(sys, tspan) - ODEProblem(sys, [], tspan, saveat=1) -end - -""" -Separate keys and values -""" -unzip(d::Dict) = (collect(keys(d)), collect(values(d))) - -""" -Unzip a collection of pairs -""" -unzip(ps) = first.(ps), last.(ps) - - -""" -Transform list of args into Symbolics variables -""" -function symbolize_args(incoming_values, sys_vars) - pairs = collect(incoming_values) - ks, values = unzip(pairs) - symbols = Symbol.(ks) - vars_as_symbols = getname.(sys_vars) - symbols_to_vars = Dict(vars_as_symbols .=> sys_vars) - Dict( - [ - symbols_to_vars[vars_as_symbols[findfirst(x -> x == symbol, vars_as_symbols)]] - for symbol in symbols - ] .=> values - ) -end - - -""" -Generate data and timestep list from a dataframe -""" -function select_data(dataframe::DataFrame) - data = Dict( - key => dataframe[!, key] - for key in names(dataframe) if key != "timestep" - ) - - dataframe[!, "timestep"], data -end - - -end # module Utils.jl diff --git a/test/runtests.jl b/test/runtests.jl index 5340cbc..9afcca1 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -18,6 +18,9 @@ using SimulationService @testset "calibrate" begin # TODO end + @testset "ensemble" begin + # TODO + end end From a7c8d00f927b68fba18de1271d5bee9381e0ca87 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Mon, 10 Jul 2023 14:41:17 -0400 Subject: [PATCH 05/31] first pass, server running --- Manifest.toml | 2981 +------------------------------------- Project.toml | 38 - src/SimulationService.jl | 213 ++- test/runtests.jl | 44 +- 4 files changed, 194 insertions(+), 3082 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index 7175674..0b9b379 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,1576 +2,66 @@ julia_version = "1.9.2" manifest_format = "2.0" -project_hash = "767c093e67fdab416f979f052b06bf048b75f0ac" - -[[deps.ACSets]] -deps = ["CompTime", "JSON", "MLStyle", "OrderedCollections", "Pkg", "PrettyTables", "Reexport", "StaticArrays", "StructEquality", "Tables"] -git-tree-sha1 = "935a09f5a40d199ac9c7fb55357e2164b1ef8671" -uuid = "227ef7b5-1206-438b-ac65-934d6da304b8" -version = "0.2.3" - -[[deps.ADTypes]] -git-tree-sha1 = "e58c18d2312749847a74f5be80bb0fa53da102bd" -uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "0.1.5" - -[[deps.AMQPClient]] -deps = ["Logging", "MbedTLS", "Sockets"] -git-tree-sha1 = "508457ed7a2afb432590247dc363fffc51f242fc" -uuid = "79c8b4cd-a41a-55fa-907c-fab5288e1383" -version = "0.5.1" - -[[deps.ASL_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "6252039f98492252f9e47c312c8ffda0e3b9e78d" -uuid = "ae81ac8f-d209-56e5-92de-9978fef736f9" -version = "0.1.3+0" - -[[deps.AbstractAlgebra]] -deps = ["GroupsCore", "InteractiveUtils", "LinearAlgebra", "MacroTools", "Preferences", "Random", "RandomExtensions", "SparseArrays", "Test"] -git-tree-sha1 = "1bd8a536c949eb3de9b58042d57790ded6b70fa6" -uuid = "c3fe647b-3220-5bb0-a1ea-a7954cac585d" -version = "0.30.9" - -[[deps.AbstractFFTs]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "cad4c758c0038eea30394b1b671526921ca85b21" -uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" -version = "1.4.0" -weakdeps = ["ChainRulesCore"] - - [deps.AbstractFFTs.extensions] - AbstractFFTsChainRulesCoreExt = "ChainRulesCore" - -[[deps.AbstractMCMC]] -deps = ["BangBang", "ConsoleProgressMonitor", "Distributed", "LogDensityProblems", "Logging", "LoggingExtras", "ProgressLogging", "Random", "StatsBase", "TerminalLoggers", "Transducers"] -git-tree-sha1 = "87e63dcb990029346b091b170252f3c416568afc" -uuid = "80f14c24-f653-4e6a-9b94-39d6b0f70001" -version = "4.4.2" - -[[deps.AbstractPPL]] -deps = ["AbstractMCMC", "DensityInterface", "Random", "Setfield", "SparseArrays"] -git-tree-sha1 = "33ea6c6837332395dbf3ba336f273c9f7fcf4db9" -uuid = "7a57a42e-76ec-4ea3-a279-07e840d6d9cf" -version = "0.5.4" - -[[deps.AbstractTrees]] -git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c" -uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" -version = "0.4.4" - -[[deps.Accessors]] -deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "MacroTools", "Requires", "Test"] -git-tree-sha1 = "954634616d5846d8e216df1298be2298d55280b2" -uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" -version = "0.1.32" - - [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 = "76289dc51920fdc6e0013c872ba9551d54961c24" -uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.6.2" -weakdeps = ["StaticArrays"] - - [deps.Adapt.extensions] - AdaptStaticArraysExt = "StaticArrays" - -[[deps.AdvancedHMC]] -deps = ["AbstractMCMC", "ArgCheck", "DocStringExtensions", "InplaceOps", "LinearAlgebra", "LogDensityProblems", "LogDensityProblemsAD", "ProgressMeter", "Random", "Requires", "Setfield", "SimpleUnPack", "Statistics", "StatsBase", "StatsFuns"] -git-tree-sha1 = "3bf24030e85b1d6d298e4f483f6aeff6f38462db" -uuid = "0bf59076-c3b1-5ca4-86bd-e02cd72cde3d" -version = "0.4.6" - - [deps.AdvancedHMC.extensions] - AdvancedHMCCUDAExt = "CUDA" - AdvancedHMCMCMCChainsExt = "MCMCChains" - AdvancedHMCOrdinaryDiffEqExt = "OrdinaryDiffEq" - - [deps.AdvancedHMC.weakdeps] - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" - MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" - OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" - -[[deps.AdvancedMH]] -deps = ["AbstractMCMC", "Distributions", "LogDensityProblems", "Random", "Requires"] -git-tree-sha1 = "165af834eee68d0a96c58daa950ddf0b3f45f608" -uuid = "5b7e9947-ddc0-4b3f-9b55-0d8042f74170" -version = "0.7.4" -weakdeps = ["DiffResults", "ForwardDiff", "MCMCChains", "StructArrays"] - - [deps.AdvancedMH.extensions] - AdvancedMHForwardDiffExt = ["DiffResults", "ForwardDiff"] - AdvancedMHMCMCChainsExt = "MCMCChains" - AdvancedMHStructArraysExt = "StructArrays" - -[[deps.AdvancedPS]] -deps = ["AbstractMCMC", "Distributions", "Libtask", "Random", "Random123", "StatsFuns"] -git-tree-sha1 = "4d73400b3583147b1b639794696c78202a226584" -uuid = "576499cb-2369-40b2-a588-c64705576edc" -version = "0.4.3" - -[[deps.AdvancedVI]] -deps = ["Bijectors", "Distributions", "DistributionsAD", "DocStringExtensions", "ForwardDiff", "LinearAlgebra", "ProgressMeter", "Random", "Requires", "StatsBase", "StatsFuns", "Tracker"] -git-tree-sha1 = "67fcc7d46c26250e89fc62798fbe07b5ee264c6f" -uuid = "b5ca4192-6429-45e5-a2d9-87aec30a685c" -version = "0.1.6" - -[[deps.AlgebraicPetri]] -deps = ["Catlab", "GeneralizedGenerated", "LabelledArrays"] -git-tree-sha1 = "d798c838e065927a09edf431791d34fd5a709023" -uuid = "4f99eebe-17bf-4e98-b6a1-2c4f205a959b" -version = "0.9.0" - - [deps.AlgebraicPetri.extensions] - AlgebraicPetriCatalystExt = "Catalyst" - AlgebraicPetriModelingToolkitExt = "ModelingToolkit" - AlgebraicPetriOrdinaryDiffEqExt = "OrdinaryDiffEq" - - [deps.AlgebraicPetri.weakdeps] - Catalyst = "479239e8-5488-4da2-87a7-35f2df7eef83" - ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" - OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" - -[[deps.AlphaStableDistributions]] -deps = ["Distributions", "FileIO", "Interpolations", "JLD2", "LinearAlgebra", "Random", "SpecialFunctions", "StaticArrays", "Statistics", "StatsBase", "ToeplitzMatrices"] -git-tree-sha1 = "ad5789d4d1a7e38a9fb1e5e02369eeb799833b2e" -uuid = "f20549b4-2d50-407f-863c-cdd202ba59a3" -version = "1.1.6" - -[[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", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "f83ec24f76d4c8f525099b2ac475fc098138ec31" -uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.4.11" - - [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.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 = "9e5ad0f651c1be8a355e4d327e9cb3bc135d1b73" -uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.0.8" +project_hash = "45fab2acfc6e10b0d1f7da9bc528d466de657c86" [[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.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.BandedMatrices]] -deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools", "SparseArrays"] -git-tree-sha1 = "3c63ab5fb851444fb018b97883cfd79ae044e888" -uuid = "aae01518-5342-5314-be14-df237901396f" -version = "0.17.29" - -[[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.BenchmarkTools]] -deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] -git-tree-sha1 = "d9a9701b899b30332bbcb3e1679c41cce81fb0e8" -uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" -version = "1.3.2" - -[[deps.Bijections]] -git-tree-sha1 = "fe4f8c5ee7f76f2198d5c2a06d3961c249cce7bd" -uuid = "e2ed5e7c-b2de-5872-ae92-c73ca462fb04" -version = "0.1.4" - -[[deps.Bijectors]] -deps = ["ArgCheck", "ChainRulesCore", "ChangesOfVariables", "Compat", "Distributions", "Functors", "InverseFunctions", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "MappedArrays", "Random", "Reexport", "Requires", "Roots", "SparseArrays", "Statistics"] -git-tree-sha1 = "1234b03e94938e6f2b14834dfd3ef45698d5e14f" -uuid = "76274a88-744f-5084-9051-94815aaf08c4" -version = "0.10.8" - [[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.BlackBoxOptim]] -deps = ["CPUTime", "Compat", "Distributed", "Distributions", "HTTP", "JSON", "LinearAlgebra", "Printf", "Random", "SpatialIndexing", "StatsBase"] -git-tree-sha1 = "136079f37e3514ec691926093924b591a8842f5d" -uuid = "a134a8b2-14d6-55f6-9291-3336d3ab0209" -version = "0.6.2" - -[[deps.BoundaryValueDiffEq]] -deps = ["BandedMatrices", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "NLsolve", "Reexport", "SciMLBase", "SparseArrays"] -git-tree-sha1 = "ed8e837bfb3d1e3157022c9636ec1c722b637318" -uuid = "764a87c0-6b3e-53db-9096-fe964310641d" -version = "2.11.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", "PrecompileTools", "Static"] -git-tree-sha1 = "89e0654ed8c7aebad6d5ad235d6242c2d737a928" -uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.2.3" - -[[deps.CPUTime]] -git-tree-sha1 = "2dcc50ea6a0a1ef6440d6eecd0fe3813e5671f45" -uuid = "a9c8d775-2e2e-55fc-8582-045d282d599e" -version = "1.0.0" - -[[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.CSTParser]] -deps = ["Tokenize"] -git-tree-sha1 = "3ddd48d200eb8ddf9cb3e0189fc059fd49b97c1f" -uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f" -version = "3.3.6" - -[[deps.CSV]] -deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] -git-tree-sha1 = "44dbf560808d49041989b8a96cae4cffbeb7966a" -uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" -version = "0.10.11" - -[[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.Catlab]] -deps = ["ACSets", "Colors", "CompTime", "Compose", "DataStructures", "GeneralizedGenerated", "JSON", "LightXML", "LinearAlgebra", "Logging", "MLStyle", "PrettyTables", "Random", "Reexport", "SparseArrays", "StaticArrays", "Statistics", "StructEquality", "Tables"] -git-tree-sha1 = "c610008c7dc9907a0112b3d48f75a6de806e1aeb" -uuid = "134e5e36-593f-5add-ad60-77f754baafbe" -version = "0.15.1" - - [deps.Catlab.extensions] - CatlabConvexExt = "Convex" - CatlabDataFramesExt = "DataFrames" - CatlabGraphsExt = "Graphs" - CatlabGraphvizExt = "Graphviz_jll" - CatlabMetaGraphsExt = "MetaGraphs" - CatlabSCSExt = "SCS" - CatlabTikzPicturesExt = "TikzPictures" - - [deps.Catlab.weakdeps] - Convex = "f65535da-76fb-5f13-bab9-19810c17039a" - DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" - Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" - Graphviz_jll = "3c863552-8265-54e4-a6dc-903eb78fde85" - MetaGraphs = "626554b9-1ddb-594c-aa3c-2596fe9399a5" - SCS = "c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13" - TikzPictures = "37f6aa50-8035-52d0-81c2-5a1d08754b2d" - -[[deps.ChainRules]] -deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "Statistics", "StructArrays"] -git-tree-sha1 = "2afc496e94d15a1af5502625246d172361542133" -uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.52.0" - -[[deps.ChainRulesCore]] -deps = ["Compat", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "e30f2f4e20f7f186dc36529910beaedc60cfa644" -uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.16.0" - -[[deps.ChangesOfVariables]] -deps = ["LinearAlgebra", "Test"] -git-tree-sha1 = "2fba81a302a7be671aefe194f0525ef231104e7f" -uuid = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" -version = "0.1.8" -weakdeps = ["InverseFunctions"] - - [deps.ChangesOfVariables.extensions] - ChangesOfVariablesInverseFunctionsExt = "InverseFunctions" - -[[deps.CloseOpenIntervals]] -deps = ["Static", "StaticArrayInterface"] -git-tree-sha1 = "70232f82ffaab9dc52585e0dd043b5e0c6b714f1" -uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" -version = "0.1.12" - -[[deps.CodeTracking]] -deps = ["InteractiveUtils", "UUIDs"] -git-tree-sha1 = "d730914ef30a06732bdd9f763f6cc32e92ffbff1" -uuid = "da1fd8a2-8d9e-5ec2-8556-3022fb5608a2" -version = "1.3.1" - -[[deps.CodecBzip2]] -deps = ["Bzip2_jll", "Libdl", "TranscodingStreams"] -git-tree-sha1 = "2e62a725210ce3c3c2e1a3080190e7ca491f18d7" -uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" -version = "0.7.2" - [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] git-tree-sha1 = "9c209fb7536406834aa938fb149964b985de6c83" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" version = "0.7.1" -[[deps.ColorSchemes]] -deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] -git-tree-sha1 = "be6ab11021cd29f0344d5c4357b163af05a48cba" -uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" -version = "3.21.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.Combinatorics]] -git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" -uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" -version = "1.0.2" - -[[deps.CommonMark]] -deps = ["Crayons", "JSON", "PrecompileTools", "URIs"] -git-tree-sha1 = "532c4185d3c9037c0237546d817858b23cf9e071" -uuid = "a80b9123-70ca-4bc0-993e-6e3bcb318db6" -version = "0.8.12" - -[[deps.CommonSolve]] -git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" -uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" -version = "0.2.4" - -[[deps.CommonSubexpressions]] -deps = ["MacroTools", "Test"] -git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" -uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" -version = "0.3.0" - -[[deps.CompTime]] -deps = ["MLStyle", "MacroTools"] -git-tree-sha1 = "8c05059bc293a17f71cae4cd58b1fc18d4ede271" -uuid = "0fb5dd42-039a-4ca4-a1d7-89a96eae6d39" -version = "0.1.2" - -[[deps.Compat]] -deps = ["UUIDs"] -git-tree-sha1 = "4e88377ae7ebeaf29a047aa1ee40826e0b708a5d" -uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.7.0" -weakdeps = ["Dates", "LinearAlgebra"] - - [deps.Compat.extensions] - CompatLinearAlgebraExt = "LinearAlgebra" - -[[deps.CompilerSupportLibraries_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.0.5+0" - -[[deps.Compose]] -deps = ["Base64", "Colors", "DataStructures", "Dates", "IterTools", "JSON", "LinearAlgebra", "Measures", "Printf", "Random", "Requires", "Statistics", "UUIDs"] -git-tree-sha1 = "bf6570a34c850f99407b494757f5d7ad233a7257" -uuid = "a81c6b42-2e10-5240-aca2-a61377ecd94b" -version = "0.9.5" - -[[deps.CompositeTypes]] -git-tree-sha1 = "02d2316b7ffceff992f3096ae48c7829a8aa0638" -uuid = "b152e2b5-7a66-4b01-a709-34e65c35f657" -version = "0.1.3" - -[[deps.CompositionsBase]] -git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" -uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" -version = "0.1.2" -weakdeps = ["InverseFunctions"] - - [deps.CompositionsBase.extensions] - CompositionsBaseInverseFunctionsExt = "InverseFunctions" - -[[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" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" version = "2.2.0" -[[deps.ConsoleProgressMonitor]] -deps = ["Logging", "ProgressMeter"] -git-tree-sha1 = "3ab7b2136722890b9af903859afcf457fa3059e8" -uuid = "88cd18e8-d9cc-4ea6-8889-5259c0d15c8b" -version = "0.1.2" - -[[deps.ConstructionBase]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "738fec4d684a9a6ee9598a8bfee305b26831f28c" -uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.2" -weakdeps = ["IntervalSets", "StaticArrays"] - - [deps.ConstructionBase.extensions] - ConstructionBaseIntervalSetsExt = "IntervalSets" - ConstructionBaseStaticArraysExt = "StaticArrays" - -[[deps.Contour]] -git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" -uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" -version = "0.6.2" - -[[deps.Copulas]] -deps = ["AlphaStableDistributions", "Cubature", "Distributions", "ForwardDiff", "GSL", "MvNormalCDF", "Random", "Roots", "SpecialFunctions", "StatsBase", "TaylorSeries"] -git-tree-sha1 = "bf5b74cd9b240eea4b713bf3b04211dabf827688" -uuid = "ae264745-0b69-425e-9d9d-cf662c5eec93" -version = "0.1.10" - -[[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.Cubature]] -deps = ["Cubature_jll"] -git-tree-sha1 = "c3f4b3b38abd7b5c3ccf59adab2568212e7530d3" -uuid = "667455a9-e2ce-5579-9412-b964f529a492" -version = "1.5.1" - -[[deps.Cubature_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "0fe9efb84e3eb7b14f885a95aaa0ed50c7e839c8" -uuid = "7bc98958-0e37-5d67-a6ac-a3a19030071a" -version = "1.0.5+0" - -[[deps.DSP]] -deps = ["Compat", "FFTW", "IterTools", "LinearAlgebra", "Polynomials", "Random", "Reexport", "SpecialFunctions", "Statistics"] -git-tree-sha1 = "da8b06f89fce9996443010ef92572b193f8dca1f" -uuid = "717857b8-e6f2-59f4-9121-6e50c889abd2" -version = "0.7.8" - -[[deps.DataAPI]] -git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" -uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" -version = "1.15.0" - -[[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 = "cf25ccb972fec4e4817764d01c82386ae94f77b4" -uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.14" - -[[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.DelayDiffEq]] -deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "LinearAlgebra", "Logging", "OrdinaryDiffEq", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SimpleUnPack"] -git-tree-sha1 = "89f3fbfe78f9d116d1ed0721d65b0b2cf9b36169" -uuid = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb" -version = "5.42.0" - -[[deps.DelimitedFiles]] -deps = ["Mmap"] -git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" -uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" -version = "1.9.1" - -[[deps.DensityInterface]] -deps = ["InverseFunctions", "Test"] -git-tree-sha1 = "80c3e8639e3353e5d2912fb3a1916b8455e2494b" -uuid = "b429d917-457f-4dbc-8f4c-0cc954292b1d" -version = "0.4.0" - -[[deps.DiffEqBase]] -deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "DocStringExtensions", "EnumX", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces", "ZygoteRules"] -git-tree-sha1 = "62c41421bd0facc43dfe4e9776135fe21fd1e1b9" -uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.126.0" - - [deps.DiffEqBase.extensions] - DiffEqBaseDistributionsExt = "Distributions" - DiffEqBaseGeneralizedGeneratedExt = "GeneralizedGenerated" - DiffEqBaseMPIExt = "MPI" - DiffEqBaseMeasurementsExt = "Measurements" - DiffEqBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements" - DiffEqBaseReverseDiffExt = "ReverseDiff" - DiffEqBaseTrackerExt = "Tracker" - DiffEqBaseUnitfulExt = "Unitful" - DiffEqBaseZygoteExt = "Zygote" - - [deps.DiffEqBase.weakdeps] - Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" - GeneralizedGenerated = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb" - MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" - Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" - MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" - -[[deps.DiffEqCallbacks]] -deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "63b6be7b396ad395825f3cc48c56b53bfaf7e69d" -uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" -version = "2.26.1" - -[[deps.DiffEqNoiseProcess]] -deps = ["DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "Optim", "PoissonRandom", "QuadGK", "Random", "Random123", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "Requires", "ResettableStacks", "SciMLBase", "StaticArraysCore", "Statistics"] -git-tree-sha1 = "26594c6ec8416fb6ef3ed8828fd29c98b10bfaad" -uuid = "77a26b50-5914-5dd7-bc55-306e6241c503" -version = "5.17.2" - - [deps.DiffEqNoiseProcess.extensions] - DiffEqNoiseProcessReverseDiffExt = "ReverseDiff" - - [deps.DiffEqNoiseProcess.weakdeps] - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - -[[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.DifferentialEquations]] -deps = ["BoundaryValueDiffEq", "DelayDiffEq", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "JumpProcesses", "LinearAlgebra", "LinearSolve", "NonlinearSolve", "OrdinaryDiffEq", "Random", "RecursiveArrayTools", "Reexport", "SciMLBase", "SteadyStateDiffEq", "StochasticDiffEq", "Sundials"] -git-tree-sha1 = "1cfe0178410e1bb4b14058c537d0f347eb9d95dc" -uuid = "0c46a032-eb83-5123-abaf-570d42b7fbaa" -version = "7.8.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 = "e76a3281de2719d7c81ed62c6ea7057380c87b1d" -uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.98" -weakdeps = ["ChainRulesCore", "DensityInterface"] - - [deps.Distributions.extensions] - DistributionsChainRulesCoreExt = "ChainRulesCore" - DistributionsDensityInterfaceExt = "DensityInterface" - -[[deps.DistributionsAD]] -deps = ["Adapt", "ChainRules", "ChainRulesCore", "Compat", "Distributions", "FillArrays", "LinearAlgebra", "PDMats", "Random", "Requires", "SpecialFunctions", "StaticArrays", "StatsFuns", "ZygoteRules"] -git-tree-sha1 = "1fb4fedd5a407243d535cc50c8c803c2fce0dc26" -uuid = "ced4e74d-a319-5a8a-b0ac-84af2272839c" -version = "0.6.49" - - [deps.DistributionsAD.extensions] - DistributionsADForwardDiffExt = "ForwardDiff" - DistributionsADLazyArraysExt = "LazyArrays" - DistributionsADReverseDiffExt = "ReverseDiff" - DistributionsADTrackerExt = "Tracker" - - [deps.DistributionsAD.weakdeps] - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - -[[deps.DocStringExtensions]] -deps = ["LibGit2"] -git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" -uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" -version = "0.9.3" - -[[deps.DomainSets]] -deps = ["CompositeTypes", "IntervalSets", "LinearAlgebra", "Random", "StaticArrays", "Statistics"] -git-tree-sha1 = "51b4b84d33ec5e0955b55ff4b748b99ce2c3faa9" -uuid = "5b8099bc-c8ec-5219-889f-1d9e522a28bf" -version = "0.6.7" - -[[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.DynamicPPL]] -deps = ["AbstractMCMC", "AbstractPPL", "BangBang", "Bijectors", "ChainRulesCore", "ConstructionBase", "Distributions", "DocStringExtensions", "LinearAlgebra", "LogDensityProblems", "MacroTools", "OrderedCollections", "Random", "Setfield", "Test", "ZygoteRules"] -git-tree-sha1 = "932f5f977b04db019cc72ebd1f4161a6e7bded14" -uuid = "366bfd00-2699-11ea-058f-f148b4cae6d8" -version = "0.21.6" - -[[deps.DynamicPolynomials]] -deps = ["DataStructures", "Future", "LinearAlgebra", "MultivariatePolynomials", "MutableArithmetics", "Pkg", "Reexport", "Test"] -git-tree-sha1 = "8b84876e31fa39479050e2d3395c4b3b210db8b0" -uuid = "7c1d4256-1411-5781-91ec-d7bc3513ac07" -version = "0.4.6" - -[[deps.EasyModelAnalysis]] -deps = ["DifferentialEquations", "Distributions", "GlobalSensitivity", "LinearAlgebra", "ModelingToolkit", "NLopt", "Optimization", "OptimizationBBO", "OptimizationMOI", "OptimizationNLopt", "Plots", "Reexport", "SciMLBase", "SciMLExpectations", "Turing"] -git-tree-sha1 = "62ccc0ec19dff1ce722810b78b01ab459e47d1b6" -uuid = "ef4b24a4-a090-4686-a932-e7e56a5a83bd" -version = "0.1.9" - -[[deps.EllipticalSliceSampling]] -deps = ["AbstractMCMC", "ArrayInterface", "Distributions", "Random", "Statistics"] -git-tree-sha1 = "973b4927d112559dc737f55d6bf06503a5b3fc14" -uuid = "cad2338a-1db2-11e9-3401-43bc07c9ede2" -version = "1.1.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.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.ExponentialUtilities]] -deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "Printf", "SnoopPrecompile", "SparseArrays", "libblastrampoline_jll"] -git-tree-sha1 = "fb7dbef7d2631e2d02c49e2750f7447648b0ec9b" -uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" -version = "1.24.0" - -[[deps.ExprTools]] -git-tree-sha1 = "c1d06d129da9f55715c6c212866f5b1bddc5fa00" -uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" -version = "0.1.9" - -[[deps.EzXML]] -deps = ["Printf", "XML2_jll"] -git-tree-sha1 = "0fa3b52a04a4e210aeb1626def9c90df3ae65268" -uuid = "8f5d6c58-4d21-5cfd-889c-e3ad7ee6a615" -version = "1.1.0" - -[[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.FFTW]] -deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] -git-tree-sha1 = "b4fbdd20c889804969571cc589900803edda16b7" -uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" -version = "1.7.1" - -[[deps.FFTW_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" -uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" -version = "3.3.10+0" - -[[deps.FastBroadcast]] -deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] -git-tree-sha1 = "d1248fceea0b26493fd33e8e9e8c553270da03bd" -uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" -version = "0.2.5" - -[[deps.FastClosures]] -git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" -uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" -version = "0.3.2" - -[[deps.FastLapackInterface]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "b12f05108e405dadcc2aff0008db7f831374e051" -uuid = "29a986be-02c6-4525-aec4-84b980013641" -version = "2.0.0" - -[[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.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 = "2250347838b28a108d1967663cba57bfb3c02a58" -uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.3.0" - -[[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 = "00e252f4d706b3d55a8863432e742bf5717b498d" -uuid = "f6369f11-7733-5829-9624-2563aa707210" -version = "0.10.35" -weakdeps = ["StaticArrays"] - - [deps.ForwardDiff.extensions] - ForwardDiffStaticArraysExt = "StaticArrays" - -[[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.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.FunctionWrappersWrappers]] -deps = ["FunctionWrappers"] -git-tree-sha1 = "b104d487b34566608f8b4e1c39fb0b10aa279ff8" -uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" -version = "0.1.3" - -[[deps.Functors]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "a2657dd0f3e8a61dbe70fc7c122038bd33790af5" -uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" -version = "0.3.0" - -[[deps.Future]] -deps = ["Random"] -uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" - -[[deps.GLFW_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pkg", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] -git-tree-sha1 = "d972031d28c8c8d9d7b41a536ad7bb0c2579caca" -uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" -version = "3.3.8+0" - -[[deps.GPUArrays]] -deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] -git-tree-sha1 = "2e57b4a4f9cc15e85a24d603256fe08e527f48d1" -uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "8.8.1" - -[[deps.GPUArraysCore]] -deps = ["Adapt"] -git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" -uuid = "46192b85-c4d5-4398-a991-12ede77f4527" -version = "0.1.5" - -[[deps.GR]] -deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] -git-tree-sha1 = "8b8a2fd4536ece6e554168c21860b6820a8a83db" -uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.72.7" - -[[deps.GR_jll]] -deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt5Base_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "19fad9cd9ae44847fe842558a744748084a722d1" -uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.72.7+0" - -[[deps.GSL]] -deps = ["GSL_jll", "Libdl", "Markdown"] -git-tree-sha1 = "3ebd07d519f5ec318d5bc1b4971e2472e14bd1f0" -uuid = "92c85e6c-cbff-5e0c-80f7-495c94daaecd" -version = "1.0.1" - -[[deps.GSL_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "56f1e2c9e083e0bb7cf9a7055c280beb08a924c0" -uuid = "1b77fbbe-d8ee-58f0-85f9-836ddc23a7a4" -version = "2.7.2+0" - -[[deps.GeneralizedGenerated]] -deps = ["DataStructures", "JuliaVariables", "MLStyle", "Serialization"] -git-tree-sha1 = "60f1fa1696129205873c41763e7d0920ac7d6f1f" -uuid = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb" -version = "0.3.3" - -[[deps.GenericSchur]] -deps = ["LinearAlgebra", "Printf"] -git-tree-sha1 = "fb69b2a645fa69ba5f474af09221b9308b160ce6" -uuid = "c145ed77-6b09-5dd9-b285-bf645a82121e" -version = "0.5.3" - -[[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", "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.GlobalSensitivity]] -deps = ["Combinatorics", "Copulas", "Distributions", "FFTW", "ForwardDiff", "KernelDensity", "LinearAlgebra", "Parameters", "QuasiMonteCarlo", "Random", "RecursiveArrayTools", "Statistics", "StatsBase", "ThreadsX", "Trapz"] -git-tree-sha1 = "e5484bc811d0335814e3f7d3815dcea19d261fbc" -uuid = "af5da776-676b-467e-8baf-acd8249e4f0f" -version = "2.2.1" - -[[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.Grisu]] -git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" -uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" -version = "1.0.2" - -[[deps.Groebner]] -deps = ["AbstractAlgebra", "Combinatorics", "Logging", "MultivariatePolynomials", "Primes", "Random", "SnoopPrecompile"] -git-tree-sha1 = "c8b55b624a83f60bcd6574cc999ad148d0a47dd6" -uuid = "0b43b601-686d-58a3-8a1c-6623616c7cd4" -version = "0.3.6" - -[[deps.GroupsCore]] -deps = ["Markdown", "Random"] -git-tree-sha1 = "9e1a5e9f3b81ad6a5c613d181664a0efc6fe6dd7" -uuid = "d5909c97-4eac-4ecc-a3dc-fdd0858a4120" -version = "0.4.0" - -[[deps.HCubature]] -deps = ["Combinatorics", "DataStructures", "LinearAlgebra", "QuadGK", "StaticArrays"] -git-tree-sha1 = "e95b36755023def6ebc3d269e6483efa8b2f7f65" -uuid = "19dc6840-f33b-545b-b366-655c7e3ffd49" -version = "1.5.1" - [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "7f5ef966a02a8fdf3df2ca03108a88447cb3c6f0" +git-tree-sha1 = "2150ff91a4b3c566ff020c0c56e3c70d51249a2a" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.9.8" - -[[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.Highlights]] -deps = ["DocStringExtensions", "InteractiveUtils", "REPL"] -git-tree-sha1 = "0341077e8a6b9fc1c2ea5edc1e93a956d2aec0c7" -uuid = "eafb193a-b7ab-5a9e-9068-77385905fa72" -version = "0.5.2" - -[[deps.HostCPUFeatures]] -deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] -git-tree-sha1 = "d38bd0d9759e3c6cfa19bdccc314eccf8ce596cc" -uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" -version = "0.1.15" - -[[deps.HypergeometricFunctions]] -deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] -git-tree-sha1 = "0ec02c648befc2f94156eaef13b0f38106212f3f" -uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" -version = "0.3.17" - -[[deps.IRTools]] -deps = ["InteractiveUtils", "MacroTools", "Test"] -git-tree-sha1 = "eac00994ce3229a464c2847e956d77a2c64ad3a5" -uuid = "7869d1d1-7146-5819-86e3-90919afe41df" -version = "0.4.10" - -[[deps.IfElse]] -git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" -uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" -version = "0.1.1" - -[[deps.Inflate]] -git-tree-sha1 = "5cd07aab533df5170988219191dfad0519391428" -uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" -version = "0.1.3" - -[[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.InplaceOps]] -deps = ["LinearAlgebra", "Test"] -git-tree-sha1 = "50b41d59e7164ab6fda65e71049fee9d890731ff" -uuid = "505f98c9-085e-5b2c-8e89-488be7bf1f34" -version = "0.3.0" - -[[deps.IntegerMathUtils]] -git-tree-sha1 = "b8ffb903da9f7b8cf695a8bead8e01814aa24b30" -uuid = "18e54dd8-cb9d-406c-a71d-865a43cbb235" -version = "0.1.2" - -[[deps.Integrals]] -deps = ["CommonSolve", "HCubature", "LinearAlgebra", "MonteCarloIntegration", "QuadGK", "Reexport", "Requires", "SciMLBase"] -git-tree-sha1 = "f8f24a73621e9063f696ffeaa83f7a725ab5ae23" -uuid = "de52edbc-65ea-441a-8357-d3a637375a31" -version = "3.8.0" - - [deps.Integrals.extensions] - IntegralsFastGaussQuadratureExt = "FastGaussQuadrature" - IntegralsForwardDiffExt = "ForwardDiff" - IntegralsZygoteExt = ["Zygote", "ChainRulesCore"] - - [deps.Integrals.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - FastGaussQuadrature = "442a2c76-b920-505d-bb47-c5924d526838" - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" - -[[deps.IntelOpenMP_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "0cb9352ef2e01574eeebdb102948a58740dcaf83" -uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2023.1.0+0" +version = "1.9.9" [[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 = "721ec2cf720536ad005cb38f50dbba7b02419a15" -uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" -version = "0.14.7" - -[[deps.IntervalArithmetic]] -deps = ["CRlibm", "FastRounding", "LinearAlgebra", "Markdown", "Random", "RecipesBase", "RoundingEmulator", "SetRounding", "StaticArrays"] -git-tree-sha1 = "5ab7744289be503d76a944784bac3f2df7b809af" -uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" -version = "0.20.9" - -[[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 = "edd1c1ac227767c75e8518defdf6e48dbfa7c3b0" -uuid = "3587e190-3f89-42d0-90ee-14403ec27112" -version = "0.1.10" - -[[deps.InvertedIndices]] -git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" -uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" -version = "1.3.0" - -[[deps.Ipopt_jll]] -deps = ["ASL_jll", "Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "MUMPS_seq_jll", "OpenBLAS32_jll", "Pkg"] -git-tree-sha1 = "e3e202237d93f18856b6ff1016166b0f172a49a8" -uuid = "9cc047cb-c261-5740-88fc-0cf96f7bdcc7" -version = "300.1400.400+0" - -[[deps.IrrationalConstants]] -git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" -uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" -version = "0.2.2" - -[[deps.IterTools]] -git-tree-sha1 = "4ced6667f9974fc5c5943fa5e2ef1ca43ea9e450" -uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" -version = "1.8.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.JLFzf]] -deps = ["Pipe", "REPL", "Random", "fzf_jll"] -git-tree-sha1 = "f377670cda23b6b7c1c0b3893e37451c5c1a2185" -uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" -version = "0.1.5" - [[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", "PrecompileTools", "StructTypes", "UUIDs"] git-tree-sha1 = "5b62d93f2582b09e469b3099d839c2d2ebf5066d" uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" version = "1.13.1" -[[deps.JSONSchema]] -deps = ["Downloads", "HTTP", "JSON", "URIs"] -git-tree-sha1 = "58cb291b01508293f7a9dc88325bc00d797cf04d" -uuid = "7d188eb4-7ad8-530c-ae41-71a32a6d4692" -version = "1.1.0" - -[[deps.JSONTables]] -deps = ["JSON3", "StructTypes", "Tables"] -git-tree-sha1 = "13f7485bb0b4438bb5e83e62fcadc65c5de1d1bb" -uuid = "b9914132-a727-11e9-1322-f18e41205b0b" -version = "1.0.3" - -[[deps.JobSchedulers]] -deps = ["Dates", "JLD2", "JSON", "Logging", "OrderedCollections", "Pipelines", "PrettyTables", "Printf", "Reexport", "Term", "Terming", "Test"] -git-tree-sha1 = "568c4fe4c1ae76ada68604c9a1ea6f76e6030104" -uuid = "eeff360b-c02d-44d3-ab26-4013c616a17e" -version = "0.8.1" - -[[deps.JpegTurbo_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" -uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" -version = "2.1.91+0" - -[[deps.JuliaFormatter]] -deps = ["CSTParser", "CommonMark", "DataStructures", "Glob", "Pkg", "PrecompileTools", "Tokenize"] -git-tree-sha1 = "60567b51bd9e1e19ae2fd8a54dcd6bc5994727f0" -uuid = "98e50ef6-434e-11e9-1051-2b60c6c9e899" -version = "1.0.34" - -[[deps.JuliaVariables]] -deps = ["MLStyle", "NameResolution"] -git-tree-sha1 = "49fb3cb53362ddadb4415e9b73926d6b40709e70" -uuid = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec" -version = "0.2.4" - -[[deps.JumpProcesses]] -deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "FunctionWrappers", "Graphs", "LinearAlgebra", "Markdown", "PoissonRandom", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays", "TreeViews", "UnPack"] -git-tree-sha1 = "50bd271af7f6cc23be7d24c8c4804809bb5d05ae" -uuid = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5" -version = "9.6.3" - -[[deps.KLU]] -deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] -git-tree-sha1 = "764164ed65c30738750965d55652db9c94c59bfe" -uuid = "ef3ab10e-7fda-4108-b977-705223b18434" -version = "0.4.0" - -[[deps.KernelAbstractions]] -deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "b48617c5d764908b5fac493cd907cf33cc11eec1" -uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.6" - -[[deps.KernelDensity]] -deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] -git-tree-sha1 = "90442c50e202a5cdf21a7899c66b240fdef14035" -uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" -version = "0.6.7" - -[[deps.Krylov]] -deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "0356a64062656b0cbb43c504ad5de338251f4bda" -uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.9.1" - -[[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 = "8695a49bfe05a2dc0feeefd06b4ca6361a018729" -uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "6.1.0" - -[[deps.LLVMExtra_jll]] -deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "c35203c1e1002747da220ffc3c0762ce7754b08c" -uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.23+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.LRUCache]] -git-tree-sha1 = "48c10e3cc27e30de82463c27bef0b8bdbd1dc634" -uuid = "8ac3fa9e-de4c-5943-b1dc-09c6b5f20637" -version = "1.4.1" - -[[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.LabelledArrays]] -deps = ["ArrayInterface", "ChainRulesCore", "ForwardDiff", "LinearAlgebra", "MacroTools", "PreallocationTools", "RecursiveArrayTools", "StaticArrays"] -git-tree-sha1 = "cd04158424635efd05ff38d5f55843397b7416a9" -uuid = "2ee39098-c373-598a-b85f-a56591580800" -version = "1.14.0" - -[[deps.LambertW]] -git-tree-sha1 = "c5ffc834de5d61d00d2b0e18c96267cffc21f648" -uuid = "984bce1d-4616-540c-a9ee-88d1112d94c9" -version = "0.4.6" - -[[deps.Latexify]] -deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] -git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" -uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" -version = "0.16.1" - - [deps.Latexify.extensions] - DataFramesExt = "DataFrames" - SymEngineExt = "SymEngine" - - [deps.Latexify.weakdeps] - DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" - SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" - -[[deps.LatticeRules]] -deps = ["Random"] -git-tree-sha1 = "7f5b02258a3ca0221a6a9710b0a0a2e8fb4957fe" -uuid = "73f95e8e-ec14-4e6a-8b18-0d2e271c4e55" -version = "0.0.1" - -[[deps.LayoutPointers]] -deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] -git-tree-sha1 = "88b8f66b604da079a627b6fb2860d3704a6729a1" -uuid = "10f19ff3-798f-405d-979b-55457f8fc047" -version = "0.1.14" - -[[deps.Lazy]] -deps = ["MacroTools"] -git-tree-sha1 = "1370f8202dac30758f3c345f9909b97f53d87d3f" -uuid = "50d2b5c4-7a5e-59d5-8109-a42b560f39c0" -version = "0.15.1" - -[[deps.LazyArtifacts]] -deps = ["Artifacts", "Pkg"] -uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" - -[[deps.LeftChildRightSiblingTrees]] -deps = ["AbstractTrees"] -git-tree-sha1 = "fb6803dafae4a5d62ea5cab204b1e657d9737e7f" -uuid = "1d6d02ad-be62-4b6b-8a6d-2f90e265016e" -version = "0.2.0" - -[[deps.LevyArea]] -deps = ["LinearAlgebra", "Random", "SpecialFunctions"] -git-tree-sha1 = "56513a09b8e0ae6485f34401ea9e2f31357958ec" -uuid = "2d8b4e74-eb68-11e8-0fb9-d5eb67b50637" -version = "1.0.0" - -[[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.Libglvnd_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] -git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" -uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" -version = "1.6.0+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.Libtask]] -deps = ["FunctionWrappers", "LRUCache", "LinearAlgebra", "Statistics"] -git-tree-sha1 = "345a40c746404dd9cb1bbc368715856838ab96f2" -uuid = "6f1fad26-d15e-5dc8-ae53-837a1d7b8c9f" -version = "0.8.6" - -[[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.LinearSolve]] -deps = ["ArrayInterface", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "LinearAlgebra", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "SuiteSparse", "UnPack"] -git-tree-sha1 = "93f3a0d88c8f5498bed3ad37ddd844b939fdf899" -uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "2.3.0" - - [deps.LinearSolve.extensions] - LinearSolveCUDAExt = "CUDA" - LinearSolveHYPREExt = "HYPRE" - LinearSolveIterativeSolversExt = "IterativeSolvers" - LinearSolveKrylovKitExt = "KrylovKit" - LinearSolvePardisoExt = "Pardiso" - - [deps.LinearSolve.weakdeps] - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" - HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" - IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" - KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" - Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" - -[[deps.LogDensityProblems]] -deps = ["ArgCheck", "DocStringExtensions", "Random"] -git-tree-sha1 = "f9a11237204bc137617194d79d813069838fcf61" -uuid = "6fdf6af0-433a-55f7-b3ed-c6c6e0b8df7c" -version = "2.1.1" - -[[deps.LogDensityProblemsAD]] -deps = ["DocStringExtensions", "LogDensityProblems", "Requires", "SimpleUnPack"] -git-tree-sha1 = "a0512ad65f849536b5a52e59b05c59c25cdad943" -uuid = "996a588d-648d-4e1f-a8f0-a84b347e47b1" -version = "1.5.0" - - [deps.LogDensityProblemsAD.extensions] - LogDensityProblemsADEnzymeExt = "Enzyme" - LogDensityProblemsADFiniteDifferencesExt = "FiniteDifferences" - LogDensityProblemsADForwardDiffBenchmarkToolsExt = ["BenchmarkTools", "ForwardDiff"] - LogDensityProblemsADForwardDiffExt = "ForwardDiff" - LogDensityProblemsADReverseDiffExt = "ReverseDiff" - LogDensityProblemsADTrackerExt = "Tracker" - LogDensityProblemsADZygoteExt = "Zygote" - - [deps.LogDensityProblemsAD.weakdeps] - BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" - Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" - FiniteDifferences = "26cc04aa-876d-5657-8c51-4c34ba976000" - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" - -[[deps.LogExpFunctions]] -deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "c3ce8e7420b3a6e071e0fe4745f5d4300e37b13f" -uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.24" -weakdeps = ["ChainRulesCore", "ChangesOfVariables", "InverseFunctions"] - - [deps.LogExpFunctions.extensions] - LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" - LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" - LogExpFunctionsInverseFunctionsExt = "InverseFunctions" - [[deps.Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" @@ -1581,300 +71,37 @@ git-tree-sha1 = "cedb76b37bc5a6c702ade66be44f831fa23c681e" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" version = "1.0.0" -[[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 = "e4eed22d70ac91d7a4bf9e0f6902383061d17105" -uuid = "bdcacae8-1622-11e9-2a5c-532679323890" -version = "0.12.162" -weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] - - [deps.LoopVectorization.extensions] - ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] - SpecialFunctionsExt = "SpecialFunctions" - -[[deps.MCMCChains]] -deps = ["AbstractMCMC", "AxisArrays", "Dates", "Distributions", "Formatting", "IteratorInterfaceExtensions", "KernelDensity", "LinearAlgebra", "MCMCDiagnosticTools", "MLJModelInterface", "NaturalSort", "OrderedCollections", "PrettyTables", "Random", "RecipesBase", "Statistics", "StatsBase", "StatsFuns", "TableTraits", "Tables"] -git-tree-sha1 = "8778ea7283a0bf0d7e507a0235adfff38071493b" -uuid = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" -version = "6.0.3" - -[[deps.MCMCDiagnosticTools]] -deps = ["AbstractFFTs", "DataAPI", "DataStructures", "Distributions", "LinearAlgebra", "MLJModelInterface", "Random", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "Tables"] -git-tree-sha1 = "695e91605361d1932c3e89a812be78480a4a4595" -uuid = "be115224-59cd-429b-ad48-344e309966f0" -version = "0.3.4" - -[[deps.METIS_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "1fd0a97409e418b78c53fac671cf4622efdf0f21" -uuid = "d00139f3-1899-568f-a2f0-47f597d42d70" -version = "5.1.2+0" - [[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 = "154d7aaa82d24db6d8f7e4ffcfe596f40bff214b" -uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2023.1.0+0" - -[[deps.MLJModelInterface]] -deps = ["Random", "ScientificTypesBase", "StatisticalTraits"] -git-tree-sha1 = "c8b7e632d6754a5e36c0d94a4b466a5ba3a30128" -uuid = "e80e1ace-859a-464e-9ed9-23947d8ae3ea" -version = "1.8.0" - -[[deps.MLStyle]] -git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" -uuid = "d8e11817-5142-5d16-987a-aa16d5891078" -version = "0.4.17" - -[[deps.MUMPS_seq_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "METIS_jll", "OpenBLAS32_jll", "Pkg"] -git-tree-sha1 = "29de2841fa5aefe615dea179fcde48bb87b58f57" -uuid = "d7ed1dd3-d0ae-5e8e-bfb4-87a502085b8d" -version = "5.4.1+0" - -[[deps.MacroTools]] -deps = ["Markdown", "Random"] -git-tree-sha1 = "42324d08725e200c23d4dfb549e0d5d89dede2d2" -uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" -version = "0.5.10" - -[[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.MathML]] -deps = ["AbstractTrees", "DocStringExtensions", "EzXML", "IfElse", "SpecialFunctions", "Statistics", "Symbolics"] -git-tree-sha1 = "f9d5b2895734a699b51249ebb90ca9b4b6a6e12c" -uuid = "abcecc63-2b08-419c-80c4-c63dca6fa478" -version = "0.1.14" - -[[deps.MathOptInterface]] -deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test", "Unicode"] -git-tree-sha1 = "5c5cd501ae1d76d3ccd7c7e6b4325a15dde7f31c" -uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" -version = "1.18.0" - -[[deps.MathProgBase]] -deps = ["LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "9abbe463a1e9fc507f12a69e7f29346c2cdc472c" -uuid = "fdba3010-5040-5b88-9595-932c9decdf73" -version = "0.7.8" - [[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.2+0" - -[[deps.Measures]] -git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" -uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" -version = "0.3.2" - -[[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.Mocking]] -deps = ["Compat", "ExprTools"] -git-tree-sha1 = "4cc0c5a83933648b615c36c2b956d94fda70641e" -uuid = "78c3b35d-d492-501b-9361-3d52fe80e533" -version = "0.7.7" - -[[deps.ModelingToolkit]] -deps = ["AbstractTrees", "ArrayInterface", "Combinatorics", "Compat", "ConstructionBase", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "DiffRules", "Distributed", "Distributions", "DocStringExtensions", "DomainSets", "ForwardDiff", "FunctionWrappersWrappers", "Graphs", "IfElse", "InteractiveUtils", "JuliaFormatter", "JumpProcesses", "LabelledArrays", "Latexify", "Libdl", "LinearAlgebra", "MLStyle", "MacroTools", "NaNMath", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLBase", "Serialization", "Setfield", "SimpleNonlinearSolve", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicIndexingInterface", "SymbolicUtils", "Symbolics", "URIs", "UnPack", "Unitful"] -git-tree-sha1 = "cad27947bc85b1a3136f395f22a7dd5c382b7209" -uuid = "961ee093-0014-501f-94e3-6117800e7a78" -version = "8.62.0" - - [deps.ModelingToolkit.extensions] - MTKDeepDiffsExt = "DeepDiffs" - - [deps.ModelingToolkit.weakdeps] - DeepDiffs = "ab62b9b5-e342-54a8-a765-a90f495de1a6" - -[[deps.MonteCarloIntegration]] -deps = ["Distributions", "Random"] -git-tree-sha1 = "3f78ebce296c927d5c854e83cccdb5dcb1845629" -uuid = "4886b29c-78c9-11e9-0a6e-41e1f4161f7b" -version = "0.0.3" - -[[deps.MozillaCACerts_jll]] -uuid = "14a3606d-f60d-562e-9121-12d972cd8159" -version = "2022.10.11" - -[[deps.MuladdMacro]] -git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" -uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" -version = "0.2.4" - -[[deps.MultivariatePolynomials]] -deps = ["ChainRulesCore", "DataStructures", "LinearAlgebra", "MutableArithmetics"] -git-tree-sha1 = "eaa98afe2033ffc0629f9d0d83961d66a021dfcc" -uuid = "102ac46a-7ee4-5c85-9060-abc95bfdeaa3" -version = "0.4.7" - -[[deps.MutableArithmetics]] -deps = ["LinearAlgebra", "SparseArrays", "Test"] -git-tree-sha1 = "964cb1a7069723727025ae295408747a0b36a854" -uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" -version = "1.3.0" - -[[deps.MvNormalCDF]] -deps = ["Distributions", "FillArrays", "LinearAlgebra", "Primes", "Random", "StatsBase"] -git-tree-sha1 = "e472ed20dfe9f68d9aebc02258dfe31d69deb8eb" -uuid = "37188c8d-bc69-4638-b057-733e744175ec" -version = "0.2.6" - -[[deps.MyterialColors]] -git-tree-sha1 = "01d8466fb449436348999d7c6ad740f8f853a579" -uuid = "1c23619d-4212-4747-83aa-717207fae70f" -version = "0.3.0" - -[[deps.NLSolversBase]] -deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] -git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" -uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" -version = "7.8.3" - -[[deps.NLopt]] -deps = ["MathOptInterface", "MathProgBase", "NLopt_jll"] -git-tree-sha1 = "5a7e32c569200a8a03c3d55d286254b0321cd262" -uuid = "76087f3c-5699-56af-9a33-bf431cd00edd" -version = "0.6.5" - -[[deps.NLopt_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "9b1f15a08f9d00cdb2761dcfa6f453f5d0d6f973" -uuid = "079eb43e-fd8e-5478-9966-2cf3e3edb778" -version = "2.7.1+0" - -[[deps.NLsolve]] -deps = ["Distances", "LineSearches", "LinearAlgebra", "NLSolversBase", "Printf", "Reexport"] -git-tree-sha1 = "019f12e9a1a7880459d0173c182e6a99365d7ac1" -uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" -version = "4.5.1" - -[[deps.NNlib]] -deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] -git-tree-sha1 = "ec9858db6fcd07f63aeeed105420cc573ce2685a" -uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -version = "0.9.1" - - [deps.NNlib.extensions] - NNlibAMDGPUExt = "AMDGPU" - NNlibCUDACUDNNExt = ["CUDA", "cuDNN"] - NNlibCUDAExt = "CUDA" - - [deps.NNlib.weakdeps] - AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" - cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" - -[[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" +version = "1.1.7" -[[deps.NamedArrays]] -deps = ["Combinatorics", "DataStructures", "DelimitedFiles", "InvertedIndices", "LinearAlgebra", "Random", "Requires", "SparseArrays", "Statistics"] -git-tree-sha1 = "b84e17976a40cb2bfe3ae7edb3673a8c630d4f95" -uuid = "86f7a689-2022-50b4-a561-43c23ac3c673" -version = "0.9.8" +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+0" -[[deps.NamedTupleTools]] -git-tree-sha1 = "90914795fc59df44120fe3fff6742bb0d7adb1d0" -uuid = "d9ec5142-1e00-5aa0-9d6a-321866360f50" -version = "0.14.3" +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" -[[deps.NaturalSort]] -git-tree-sha1 = "eda490d06b9f7c00752ee81cfa451efe55521e21" -uuid = "c020b1a1-e9b0-503a-9c33-f039bfc54a85" -version = "1.0.0" +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2022.10.11" [[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" -[[deps.NonlinearSolve]] -deps = ["ArrayInterface", "DiffEqBase", "EnumX", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "PrecompileTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "UnPack"] -git-tree-sha1 = "2a7f28c62eb2c16b9c375c38f664cdcf22313cf5" -uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "1.8.0" - -[[deps.OffsetArrays]] -deps = ["Adapt"] -git-tree-sha1 = "2ac17d29c523ce1cd38e27785a7d23024853a4bb" -uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.12.10" - -[[deps.Ogg_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" -uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" -version = "1.3.5+1" - -[[deps.OpenAPI]] -deps = ["Base64", "Dates", "Downloads", "HTTP", "JSON", "LibCURL", "MbedTLS", "TimeZones", "URIs"] -git-tree-sha1 = "6e497e6245770817a7821a2d1d32f8f465166a99" -uuid = "d5e62ea6-ddf3-4d43-8e4c-ad5e6c8bfd7d" -version = "0.1.11" - -[[deps.OpenBLAS32_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "2fb9ee2dc14d555a6df2a714b86b7125178344c2" -uuid = "656ef2d0-ae68-5445-9ca0-591084a874a2" -version = "0.3.21+0" - -[[deps.OpenBLAS_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] -uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.21+4" - -[[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 = "51901a49222b09e3743c65b8847687ae5fc78eb2" @@ -1887,224 +114,18 @@ git-tree-sha1 = "1aa4b74f80b01c6bc2b89992b861b5f210e665b5" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" version = "1.1.21+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 = "e3a6546c1577bfd701771b477b794a52949e7594" -uuid = "429524aa-4258-5aef-a3af-852621145aeb" -version = "1.7.6" - -[[deps.Optimisers]] -deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] -git-tree-sha1 = "e5a1825d3d53aa4ad4fb42bd4927011ad4a78c3d" -uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" -version = "0.2.15" - -[[deps.Optimization]] -deps = ["ADTypes", "ArrayInterface", "ConsoleProgressMonitor", "DocStringExtensions", "LinearAlgebra", "Logging", "LoggingExtras", "Pkg", "Printf", "ProgressLogging", "Reexport", "Requires", "SciMLBase", "SparseArrays", "TerminalLoggers"] -git-tree-sha1 = "80005bc7d96d4d00e56b8a58c5240a35bd638d4a" -uuid = "7f7a1694-90dd-40f0-9382-eb1efda571ba" -version = "3.15.2" - - [deps.Optimization.extensions] - OptimizationEnzymeExt = "Enzyme" - OptimizationFinitediffExt = "FiniteDiff" - OptimizationForwarddiffExt = "ForwardDiff" - OptimizationMTKExt = "ModelingToolkit" - OptimizationReversediffExt = "ReverseDiff" - OptimizationTrackerExt = "Tracker" - OptimizationZygoteExt = "Zygote" - - [deps.Optimization.weakdeps] - Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" - FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" - -[[deps.OptimizationBBO]] -deps = ["BlackBoxOptim", "Optimization", "Reexport"] -git-tree-sha1 = "5f653f29459f2aba3c1961dff265b727bd1ed5be" -uuid = "3e6eede4-6085-4f62-9a71-46d9bc1eb92b" -version = "0.1.4" - -[[deps.OptimizationMOI]] -deps = ["Ipopt_jll", "MathOptInterface", "ModelingToolkit", "Optimization", "Reexport", "SparseArrays", "Symbolics"] -git-tree-sha1 = "32c99127e8caf6b50856d676b56a9382bd5650c6" -uuid = "fd9f6733-72f4-499f-8506-86b2bdd0dea1" -version = "0.1.14" - -[[deps.OptimizationNLopt]] -deps = ["NLopt", "Optimization", "Reexport"] -git-tree-sha1 = "105de2db4fad2750921fb59507b8ebf3ccebdd91" -uuid = "4e6fcdb7-1186-4e1f-a706-475e75c168bb" -version = "0.1.6" - -[[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.OrdinaryDiffEq]] -deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLNLSolve", "SciMLOperators", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "4f1ab68f236fa846d0c30718c6b29c1665b019c0" -uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.53.3" - [[deps.Oxygen]] deps = ["Dates", "HTTP", "JSON3", "MIMEs", "Sockets"] git-tree-sha1 = "dca31e833aafb6277e5aff9fdcb5029be5045255" uuid = "df9a0d86-3283-4920-82dc-4555fc0d1d8b" version = "1.1.11" -[[deps.PCRE2_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" -version = "10.42.0+0" - -[[deps.PDMats]] -deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "67eae2738d63117a196f497d7db789821bce61d1" -uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" -version = "0.11.17" - -[[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 = "4b2e829ee66d4218e0cef22c0a64ee37cf258c29" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" version = "2.7.1" -[[deps.Pipe]] -git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" -uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" -version = "1.3.0" - -[[deps.Pipelines]] -deps = ["Dates", "FilePathsBase", "Logging", "OrderedCollections", "Printf", "Reexport", "Test", "UUIDs"] -git-tree-sha1 = "b870d8e0354361e38b0d9fc1997e96c299e948ae" -uuid = "ef544631-5c6f-4e9b-994c-12e7a4cd724c" -version = "0.10.4" - -[[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.9.2" - -[[deps.PlotThemes]] -deps = ["PlotUtils", "Statistics"] -git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" -uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" -version = "3.1.0" - -[[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.Plots]] -deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Preferences", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] -git-tree-sha1 = "75ca67b2c6512ad2d0c767a7cfc55e75075f8bbc" -uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.38.16" - - [deps.Plots.extensions] - FileIOExt = "FileIO" - GeometryBasicsExt = "GeometryBasics" - IJuliaExt = "IJulia" - ImageInTerminalExt = "ImageInTerminal" - UnitfulExt = "Unitful" - - [deps.Plots.weakdeps] - FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" - GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" - IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" - ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" - Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" - -[[deps.PoissonRandom]] -deps = ["Random"] -git-tree-sha1 = "a0f1159c33f846aa77c3f30ebbc69795e5327152" -uuid = "e409e4f3-bfea-5376-8464-e040bb5c01ab" -version = "0.4.4" - -[[deps.Polyester]] -deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] -git-tree-sha1 = "0fe4e7c4d8ff4c70bfa507f0dd96fa161b115777" -uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" -version = "0.7.3" - -[[deps.PolyesterWeave]] -deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] -git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" -uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" -version = "0.2.1" - -[[deps.Polynomials]] -deps = ["LinearAlgebra", "RecipesBase"] -git-tree-sha1 = "3aa2bb4982e575acd7583f01531f241af077b163" -uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" -version = "3.2.13" - - [deps.Polynomials.extensions] - PolynomialsChainRulesCoreExt = "ChainRulesCore" - PolynomialsMakieCoreExt = "MakieCore" - PolynomialsMutableArithmeticsExt = "MutableArithmetics" - - [deps.Polynomials.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - MakieCore = "20f20a25-4f0e-4fdf-b5d1-57303727442b" - MutableArithmetics = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" - -[[deps.PooledArrays]] -deps = ["DataAPI", "Future"] -git-tree-sha1 = "a6062fe4063cdafe78f4a0a81cfffb89721b30e7" -uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" -version = "1.4.2" - -[[deps.PositiveFactorizations]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" -uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" -version = "0.2.4" - -[[deps.PreallocationTools]] -deps = ["Adapt", "ArrayInterface", "ForwardDiff", "Requires"] -git-tree-sha1 = "f739b1b3cc7b9949af3b35089931f2b58c289163" -uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -version = "0.4.12" - - [deps.PreallocationTools.extensions] - PreallocationToolsReverseDiffExt = "ReverseDiff" - - [deps.PreallocationTools.weakdeps] - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - [[deps.PrecompileTools]] deps = ["Preferences"] git-tree-sha1 = "9673d39decc5feece56ef3940e5dafba15ba0f81" @@ -2117,698 +138,50 @@ git-tree-sha1 = "7eb1686b4f04b82f96ed7a4ea5890a4f0c7a09f1" uuid = "21216c6a-2e73-6563-6e65-726566657250" version = "1.4.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 = "213579618ec1f42dea7dd637a42785a608b1ea9c" -uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" -version = "2.2.4" - -[[deps.Primes]] -deps = ["IntegerMathUtils"] -git-tree-sha1 = "311a2aa90a64076ea0fac2ad7492e914e6feeb81" -uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" -version = "0.5.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.Qt5Base_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "xkbcommon_jll"] -git-tree-sha1 = "0c03844e2231e12fda4d0086fd7cbe4098ee8dc5" -uuid = "ea2cea3b-5b76-57ae-a6ef-0a8af62496e1" -version = "5.15.3+2" - -[[deps.QuadGK]] -deps = ["DataStructures", "LinearAlgebra"] -git-tree-sha1 = "6ec7ac8412e83d57e313393220879ede1740f9ee" -uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" -version = "2.8.2" - -[[deps.QuasiMonteCarlo]] -deps = ["Accessors", "ConcreteStructs", "Distributions", "LatticeRules", "LinearAlgebra", "Primes", "Random", "Sobol", "StatsBase"] -git-tree-sha1 = "e23bba76fbb0a71991a57b3190126988bc64212a" -uuid = "8a4e6c94-4038-4cdc-81c3-7e6ffdb2a71b" -version = "0.3.1" - -[[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 = "552f30e847641591ba3f39fd1bed559b9deb0ef3" -uuid = "74087812-796a-5b5d-8853-05524746bad3" -version = "1.6.1" - -[[deps.RandomExtensions]] -deps = ["Random", "SparseArrays"] -git-tree-sha1 = "062986376ce6d394b23d5d90f01d81426113a3c9" -uuid = "fb686558-2515-59ef-acaa-46db3789a887" -version = "0.4.3" - -[[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.RecipesPipeline]] -deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] -git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" -uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" -version = "0.6.12" - -[[deps.RecursiveArrayTools]] -deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "Requires", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "02ef02926f30d53b94be443bfaea010c47f6b556" -uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "2.38.5" - - [deps.RecursiveArrayTools.extensions] - RecursiveArrayToolsMeasurementsExt = "Measurements" - RecursiveArrayToolsTrackerExt = "Tracker" - RecursiveArrayToolsZygoteExt = "Zygote" - - [deps.RecursiveArrayTools.weakdeps] - Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" - -[[deps.RecursiveFactorization]] -deps = ["LinearAlgebra", "LoopVectorization", "Polyester", "SnoopPrecompile", "StrideArraysCore", "TriangularSolve"] -git-tree-sha1 = "9088515ad915c99026beb5436d0a09cd8c18163e" -uuid = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" -version = "0.2.18" - -[[deps.Reexport]] -git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" -uuid = "189a3867-3050-52da-a836-e630ba90ab69" -version = "1.2.2" - -[[deps.Referenceables]] -deps = ["Adapt"] -git-tree-sha1 = "e681d3bfa49cd46c3c161505caddf20f0e62aaa9" -uuid = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" -version = "0.1.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.ResettableStacks]] -deps = ["StaticArrays"] -git-tree-sha1 = "256eeeec186fa7f26f2801732774ccf277f05db9" -uuid = "ae5879a3-cd67-5da8-be7f-38c6eb64a37b" -version = "1.1.1" - -[[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.Roots]] -deps = ["ChainRulesCore", "CommonSolve", "Printf", "Setfield"] -git-tree-sha1 = "de432823e8aab4dd1a985be4be768f95acf152d4" -uuid = "f2b01f46-fcfa-551c-844a-d8ac1e96c665" -version = "2.0.17" - - [deps.Roots.extensions] - RootsForwardDiffExt = "ForwardDiff" - RootsIntervalRootFindingExt = "IntervalRootFinding" - RootsSymPyExt = "SymPy" - - [deps.Roots.weakdeps] - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - IntervalRootFinding = "d2bf35a9-74e0-55ec-b149-d360ff49b807" - SymPy = "24249f21-da20-56a4-8eb1-6a02cf4ae2e6" - -[[deps.RoundingEmulator]] -git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" -uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" -version = "0.2.1" - -[[deps.RuntimeGeneratedFunctions]] -deps = ["ExprTools", "SHA", "Serialization"] -git-tree-sha1 = "0b9b18d6236e9ab2b092defaacdffd929d572642" -uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" -version = "0.5.9" - [[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 = "4b8586aece42bee682399c4c4aee95446aa5cd19" -uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" -version = "0.6.39" - -[[deps.SafeTestsets]] -git-tree-sha1 = "81ec49d645af090901120a1542e67ecbbe044db3" -uuid = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" -version = "0.1.0" - -[[deps.SciMLBase]] -deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] -git-tree-sha1 = "a22a12db91f6a921e28a7ae39a9546eed93fd92e" -uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "1.93.0" - -[[deps.SciMLExpectations]] -deps = ["DiffEqBase", "Distributions", "Integrals", "KernelDensity", "LinearAlgebra", "Parameters", "Random", "RecursiveArrayTools", "Reexport", "StaticArrays", "Statistics", "Zygote"] -git-tree-sha1 = "6b784198e634859eced71c782115853b9f58b6d3" -uuid = "afe9f18d-7609-4d0e-b7b7-af0cb72b8ea8" -version = "2.0.1" - -[[deps.SciMLNLSolve]] -deps = ["DiffEqBase", "LineSearches", "NLsolve", "Reexport", "SciMLBase"] -git-tree-sha1 = "9dfc8e9e3d58c0c74f1a821c762b5349da13eccf" -uuid = "e9a6253c-8580-4d32-9898-8661bb511710" -version = "0.1.8" - -[[deps.SciMLOperators]] -deps = ["ArrayInterface", "DocStringExtensions", "Lazy", "LinearAlgebra", "Setfield", "SparseArrays", "StaticArraysCore", "Tricks"] -git-tree-sha1 = "b1fe33c9984c6789b58419e62e7a2b92f9aa813e" -uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" -version = "0.3.3" - -[[deps.ScientificTypesBase]] -git-tree-sha1 = "a8e18eb383b5ecf1b5e6fc237eb39255044fd92b" -uuid = "30f210dd-8aff-4c5f-94ba-8e64358c1161" -version = "3.0.0" - -[[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 = "04bdff0b09c65ff3e06a05e3eb7b120223da3d39" -uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" -version = "1.4.0" - [[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.SharedArrays]] -deps = ["Distributed", "Mmap", "Random", "Serialization"] -uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" - -[[deps.Showoff]] -deps = ["Dates", "Grisu"] -git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" -uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" -version = "1.0.3" - [[deps.SimpleBufferStream]] git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" version = "1.1.0" -[[deps.SimpleNonlinearSolve]] -deps = ["ArrayInterfaceCore", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "Reexport", "SciMLBase", "SnoopPrecompile", "StaticArraysCore"] -git-tree-sha1 = "3f558105e8ef4aac1e22bf30bd1f1e95698bfc95" -uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "0.1.10" - -[[deps.SimpleTraits]] -deps = ["InteractiveUtils", "MacroTools"] -git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" -uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" -version = "0.9.4" - -[[deps.SimpleUnPack]] -git-tree-sha1 = "58e6353e72cde29b90a69527e56df1b5c3d8c437" -uuid = "ce78b400-467f-4804-87d8-8f486da07d0a" -version = "1.1.0" - -[[deps.SnoopPrecompile]] -deps = ["Preferences"] -git-tree-sha1 = "e760a70afdcd461cf01a575947738d359234665c" -uuid = "66db9d55-30c0-4569-8b51-7e840670fc0c" -version = "1.0.3" - -[[deps.Sobol]] -deps = ["DelimitedFiles", "Random"] -git-tree-sha1 = "5a74ac22a9daef23705f010f72c81d6925b19df8" -uuid = "ed01d8cd-4d21-5b2a-85b4-cc3bdc58bad4" -version = "1.5.0" - [[deps.Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" -[[deps.SortingAlgorithms]] -deps = ["DataStructures"] -git-tree-sha1 = "c60ec5c62180f27efea3ba2908480f8055e17cee" -uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" -version = "1.1.1" - -[[deps.SparseArrays]] -deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] -uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - -[[deps.SparseDiffTools]] -deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "Reexport", "Requires", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "VertexSafeGraphs"] -git-tree-sha1 = "4c1a57bcbc0b795fbfdc2009e70f9c2fd2815bfe" -uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" -version = "2.4.1" -weakdeps = ["Zygote"] - - [deps.SparseDiffTools.extensions] - SparseDiffToolsZygoteExt = "Zygote" - -[[deps.Sparspak]] -deps = ["Libdl", "LinearAlgebra", "Logging", "OffsetArrays", "Printf", "SparseArrays", "Test"] -git-tree-sha1 = "342cf4b449c299d8d1ceaf00b7a49f4fbc7940e7" -uuid = "e56a9233-b9d6-4f03-8d0f-1825330902ac" -version = "0.3.9" - -[[deps.SpatialIndexing]] -git-tree-sha1 = "bacf5065cd7c0d6449b8bba6fa8e75b3087356b0" -uuid = "d4ead438-fe20-5cc5-a293-4fd39a41b74c" -version = "0.1.5" - -[[deps.SpecialFunctions]] -deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "7beb031cf8145577fbccacd94b8a8f4ce78428d3" -uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.3.0" -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.Static]] -deps = ["IfElse"] -git-tree-sha1 = "dbde6766fc677423598138a5951269432b0fcc90" -uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" -version = "0.8.7" - -[[deps.StaticArrayInterface]] -deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "Requires", "SnoopPrecompile", "SparseArrays", "Static", "SuiteSparse"] -git-tree-sha1 = "33040351d2403b84afce74dae2e22d3f5b18edcb" -uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.4.0" -weakdeps = ["OffsetArrays", "StaticArrays"] - - [deps.StaticArrayInterface.extensions] - StaticArrayInterfaceOffsetArraysExt = "OffsetArrays" - StaticArrayInterfaceStaticArraysExt = "StaticArrays" - -[[deps.StaticArrays]] -deps = ["LinearAlgebra", "Random", "StaticArraysCore"] -git-tree-sha1 = "0da7e6b70d1bb40b1ace3b576da9ea2992f76318" -uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.6.0" -weakdeps = ["Statistics"] - - [deps.StaticArrays.extensions] - StaticArraysStatisticsExt = "Statistics" - -[[deps.StaticArraysCore]] -git-tree-sha1 = "6b7ba252635a5eff6a0b0664a41ee140a1c9e72a" -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" - -[[deps.Statistics]] -deps = ["LinearAlgebra", "SparseArrays"] -uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" -version = "1.9.0" - -[[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 = ["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.SteadyStateDiffEq]] -deps = ["DiffEqBase", "DiffEqCallbacks", "LinearAlgebra", "NLsolve", "Reexport", "SciMLBase"] -git-tree-sha1 = "6e801d0da4c81d9cd6a05d97340404f9892fba85" -uuid = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f" -version = "1.16.0" - -[[deps.StochasticDiffEq]] -deps = ["Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqNoiseProcess", "DocStringExtensions", "FillArrays", "FiniteDiff", "ForwardDiff", "JumpProcesses", "LevyArea", "LinearAlgebra", "Logging", "MuladdMacro", "NLsolve", "OrdinaryDiffEq", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] -git-tree-sha1 = "ccf744171b3a83879158a4b3f3a430c1bc585123" -uuid = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" -version = "6.61.1" - -[[deps.StrideArraysCore]] -deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] -git-tree-sha1 = "26316a9a43d32ecd0c5b342cb36dc86305c73e53" -uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" -version = "0.4.16" - -[[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.StructEquality]] -deps = ["Compat"] -git-tree-sha1 = "192a9f1de3cfef80ab1a4ba7b150bb0e11ceedcf" -uuid = "6ec83bb0-ed9f-11e9-3b4c-2b04cb4e219c" -version = "2.1.0" - [[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.SuiteSparse_jll]] -deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] -uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" -version = "5.10.1+6" - -[[deps.Sundials]] -deps = ["CEnum", "DataStructures", "DiffEqBase", "Libdl", "LinearAlgebra", "Logging", "PrecompileTools", "Reexport", "SciMLBase", "SparseArrays", "Sundials_jll"] -git-tree-sha1 = "4931f9013c53128337ce8df54a2d38c79fe58d4c" -uuid = "c3572dad-4567-51f8-b174-8c6c989267f4" -version = "4.19.3" - -[[deps.Sundials_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "OpenBLAS_jll", "Pkg", "SuiteSparse_jll"] -git-tree-sha1 = "04777432d74ec5bc91ca047c9e0e0fd7f81acdb6" -uuid = "fb77eaff-e24c-56d4-86b1-d163f2edb164" -version = "5.2.1+0" - -[[deps.SwaggerMarkdown]] -deps = ["JSON", "JSONSchema", "Test", "UUIDs", "YAML"] -git-tree-sha1 = "ea2513768e67b5ca27bbbab19e34179714a78cab" -uuid = "1b6eb727-ad4b-44eb-9669-b9596a6e760f" -version = "0.2.1" - -[[deps.SymbolicIndexingInterface]] -deps = ["DocStringExtensions"] -git-tree-sha1 = "f8ab052bfcbdb9b48fad2c80c873aa0d0344dfe5" -uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.2.2" - -[[deps.SymbolicUtils]] -deps = ["AbstractTrees", "Bijections", "ChainRulesCore", "Combinatorics", "ConstructionBase", "DataStructures", "DocStringExtensions", "DynamicPolynomials", "IfElse", "LabelledArrays", "LinearAlgebra", "MultivariatePolynomials", "NaNMath", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArrays", "TimerOutputs", "Unityper"] -git-tree-sha1 = "5cb1f963f82e7b81305102dd69472fcd3e0e1483" -uuid = "d1185830-fcd6-423d-90d6-eec64667417b" -version = "1.0.5" - -[[deps.Symbolics]] -deps = ["ArrayInterface", "ConstructionBase", "DataStructures", "DiffRules", "Distributions", "DocStringExtensions", "DomainSets", "Groebner", "IfElse", "LaTeXStrings", "LambertW", "Latexify", "Libdl", "LinearAlgebra", "MacroTools", "Markdown", "NaNMath", "RecipesBase", "Reexport", "Requires", "RuntimeGeneratedFunctions", "SciMLBase", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicUtils", "TreeViews"] -git-tree-sha1 = "c4e5688a9a5a2f4088cd1a779b0742be31cbe9aa" -uuid = "0c5d862f-8b57-4792-8d23-62f2024744c7" -version = "5.5.0" - [[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", "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.0" - -[[deps.TaylorSeries]] -deps = ["IntervalArithmetic", "LinearAlgebra", "Markdown", "Requires", "SparseArrays"] -git-tree-sha1 = "b123e0614b0f366e2073c4da7b1367cebda3f579" -uuid = "6aa5eb33-94cf-58f4-a9d0-e4b2c4fc25ea" -version = "0.14.0" - -[[deps.TensorCore]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" -uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" -version = "0.1.1" - -[[deps.Term]] -deps = ["AbstractTrees", "CodeTracking", "Dates", "Highlights", "InteractiveUtils", "Logging", "Markdown", "MyterialColors", "OrderedCollections", "Parameters", "PrecompileTools", "ProgressLogging", "REPL", "Tables", "UUIDs", "Unicode", "UnicodeFun"] -git-tree-sha1 = "ffac67f6fbcbb32027d924b93ba91b7633af9220" -uuid = "22787eb5-b846-44ae-b979-8e399b8463ab" -version = "2.0.5" - -[[deps.TerminalLoggers]] -deps = ["LeftChildRightSiblingTrees", "Logging", "Markdown", "Printf", "ProgressLogging", "UUIDs"] -git-tree-sha1 = "f133fab380933d042f6796eda4e130272ba520ca" -uuid = "5d786b92-1e48-4d6f-9151-6b4477ca9bed" -version = "0.1.7" - -[[deps.Terming]] -deps = ["REPL", "Test"] -git-tree-sha1 = "9ef2648010c3a74ab4ea44a88e8640f0d1034d1f" -uuid = "5a1048b7-9ca6-4e8a-8e2e-1f932e78ac4e" -version = "0.2.6" - [[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.ThreadsX]] -deps = ["ArgCheck", "BangBang", "ConstructionBase", "InitialValues", "MicroCollections", "Referenceables", "Setfield", "SplittablesBase", "Transducers"] -git-tree-sha1 = "34e6bcf36b9ed5d56489600cf9f3c16843fa2aa2" -uuid = "ac1d9e8a-700a-412c-b207-f0111f4b6c0d" -version = "0.1.11" - -[[deps.TimeZones]] -deps = ["Dates", "Downloads", "InlineStrings", "LazyArtifacts", "Mocking", "Printf", "RecipesBase", "Scratch", "Unicode"] -git-tree-sha1 = "cdaa0c2a4449724aded839550eca7d7240bb6938" -uuid = "f269a46b-ccf7-5d73-abea-4c690281aa53" -version = "1.10.0" - -[[deps.TimerOutputs]] -deps = ["ExprTools", "Printf"] -git-tree-sha1 = "f548a9e9c490030e545f72074a41edfd0e5bcdd7" -uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" -version = "0.5.23" - -[[deps.ToeplitzMatrices]] -deps = ["AbstractFFTs", "DSP", "LinearAlgebra", "StatsBase"] -git-tree-sha1 = "326388c0c53565fb21eecafb6176b1cc5d225d34" -uuid = "c751599d-da0a-543b-9d20-d0a503d91d24" -version = "0.8.1" - -[[deps.Tokenize]] -git-tree-sha1 = "90538bf898832b6ebd900fa40f223e695970e3a5" -uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624" -version = "0.5.25" - -[[deps.Tracker]] -deps = ["Adapt", "DiffRules", "ForwardDiff", "Functors", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NNlib", "NaNMath", "Optimisers", "Printf", "Random", "Requires", "SpecialFunctions", "Statistics"] -git-tree-sha1 = "92364c27aa35c0ee36e6e010b704adaade6c409c" -uuid = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" -version = "0.2.26" -weakdeps = ["PDMats"] - - [deps.Tracker.extensions] - TrackerPDMatsExt = "PDMats" - [[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", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] -git-tree-sha1 = "a66fb81baec325cf6ccafa243af573b031e87b00" -uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" -version = "0.4.77" - - [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.Trapz]] -git-tree-sha1 = "79eb0ed763084a3e7de81fe1838379ac6a23b6a0" -uuid = "592b5752-818d-11e9-1e9a-2b8ca4a44cd1" -version = "2.0.3" - -[[deps.TreeViews]] -deps = ["Test"] -git-tree-sha1 = "8d0d7a3fe2f30d6a7f833a5f19f7c7a5b396eae6" -uuid = "a2a6695c-b41b-5b7d-aed9-dbfdeacea5d7" -version = "0.3.0" - -[[deps.TriangularSolve]] -deps = ["CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "LoopVectorization", "Polyester", "Static", "VectorizationBase"] -git-tree-sha1 = "31eedbc0b6d07c08a700e26d31298ac27ef330eb" -uuid = "d5829a12-d9aa-46ab-831f-fb7c9ab06edf" -version = "0.1.19" - -[[deps.Tricks]] -git-tree-sha1 = "aadb748be58b492045b4f56166b5188aa63ce549" -uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" -version = "0.1.7" - -[[deps.TruncatedStacktraces]] -deps = ["InteractiveUtils", "MacroTools", "Preferences"] -git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" -uuid = "781d530d-4396-4725-bb49-402e4bee1e77" -version = "1.4.0" - -[[deps.Turing]] -deps = ["AbstractMCMC", "AdvancedHMC", "AdvancedMH", "AdvancedPS", "AdvancedVI", "BangBang", "Bijectors", "DataStructures", "Distributions", "DistributionsAD", "DocStringExtensions", "DynamicPPL", "EllipticalSliceSampling", "ForwardDiff", "Libtask", "LinearAlgebra", "LogDensityProblems", "LogDensityProblemsAD", "MCMCChains", "NamedArrays", "Printf", "Random", "Reexport", "Requires", "SciMLBase", "Setfield", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "Tracker"] -git-tree-sha1 = "26cdfce1cc0301fe832eaa419a5d0edd6a554004" -uuid = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" -version = "0.24.4" - [[deps.URIs]] git-tree-sha1 = "074f993b0ca030848b897beff716d93aca60f06a" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" @@ -2818,338 +191,10 @@ version = "1.4.2" 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.Unitful]] -deps = ["Dates", "LinearAlgebra", "Random"] -git-tree-sha1 = "c4d2a349259c8eba66a00a540d550f122a3ab228" -uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" -version = "1.15.0" -weakdeps = ["ConstructionBase", "InverseFunctions"] - - [deps.Unitful.extensions] - ConstructionBaseUnitfulExt = "ConstructionBase" - InverseFunctionsUnitfulExt = "InverseFunctions" - -[[deps.UnitfulLatexify]] -deps = ["LaTeXStrings", "Latexify", "Unitful"] -git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" -uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" -version = "1.6.3" - -[[deps.Unityper]] -deps = ["ConstructionBase"] -git-tree-sha1 = "d5f4ec8c22db63bd3ccb239f640e895cfde145aa" -uuid = "a7c27f48-0311-42f6-a7f8-2c11e75eb415" -version = "0.1.2" - -[[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.Unzip]] -git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" -uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" -version = "0.2.0" - -[[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.VertexSafeGraphs]] -deps = ["Graphs"] -git-tree-sha1 = "8351f8d73d7e880bfc042a8b6922684ebeafb35c" -uuid = "19fa3120-7c27-5ec5-8db8-b0b0aa330d6f" -version = "0.2.0" - -[[deps.Wayland_jll]] -deps = ["Artifacts", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] -git-tree-sha1 = "ed8d92d9774b077c53e1da50fd81a36af3744c1c" -uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" -version = "1.21.0+0" - -[[deps.Wayland_protocols_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "4528479aa01ee1b3b4cd0e6faef0e04cf16466da" -uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" -version = "1.25.0+0" - -[[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.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", "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_libXcursor_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] -git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" -uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" -version = "1.2.0+4" - -[[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_libXfixes_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] -git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" -uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" -version = "5.0.3+4" - -[[deps.Xorg_libXi_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] -git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" -uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" -version = "1.7.10+4" - -[[deps.Xorg_libXinerama_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] -git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" -uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" -version = "1.1.4+4" - -[[deps.Xorg_libXrandr_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] -git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" -uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" -version = "1.5.2+4" - -[[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_libxkbfile_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] -git-tree-sha1 = "730eeca102434283c50ccf7d1ecdadf521a765a4" -uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" -version = "1.1.2+0" - -[[deps.Xorg_xcb_util_image_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] -git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" -uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" -version = "0.4.0+1" - -[[deps.Xorg_xcb_util_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] -git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" -uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" -version = "0.4.0+1" - -[[deps.Xorg_xcb_util_keysyms_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] -git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" -uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" -version = "0.4.0+1" - -[[deps.Xorg_xcb_util_renderutil_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] -git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" -uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" -version = "0.3.9+1" - -[[deps.Xorg_xcb_util_wm_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] -git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" -uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" -version = "0.4.1+1" - -[[deps.Xorg_xkbcomp_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] -git-tree-sha1 = "330f955bc41bb8f5270a369c473fc4a5a4e4d3cb" -uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" -version = "1.4.6+0" - -[[deps.Xorg_xkeyboard_config_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] -git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" -uuid = "33bec58e-1273-512f-9401-5d533626f822" -version = "2.39.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.YAML]] -deps = ["Base64", "Dates", "Printf", "StringEncodings"] -git-tree-sha1 = "e6330e4b731a6af7959673621e91645eb1356884" -uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" -version = "0.4.9" - [[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" - -[[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 = "5be3ddb88fc992a7d8ea96c3f10a49a7e98ebc7b" -uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" -version = "0.6.62" -weakdeps = ["Colors", "Distances", "Tracker"] - - [deps.Zygote.extensions] - ZygoteColorsExt = "Colors" - ZygoteDistancesExt = "Distances" - ZygoteTrackerExt = "Tracker" - -[[deps.ZygoteRules]] -deps = ["ChainRulesCore", "MacroTools"] -git-tree-sha1 = "977aed5d006b840e2e40c0b48984f7463109046d" -uuid = "700de1a5-db45-46bc-99cf-38207098b444" -version = "0.2.3" - -[[deps.fzf_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "868e669ccb12ba16eaf50cb2957ee2ff61261c56" -uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" -version = "0.29.0+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+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.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.48.0+0" - -[[deps.p7zip_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" -version = "17.4.0+0" - -[[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" - -[[deps.xkbcommon_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] -git-tree-sha1 = "9ebfc140cc56e8c2156a15ceac2f0302e327ac0a" -uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" -version = "1.4.1+0" diff --git a/Project.toml b/Project.toml index 9b2bdba..f9cef05 100644 --- a/Project.toml +++ b/Project.toml @@ -4,44 +4,6 @@ authors = ["Five Grant <5@fivegrant.com>"] version = "0.6.0" [deps] -AMQPClient = "79c8b4cd-a41a-55fa-907c-fab5288e1383" -AlgebraicPetri = "4f99eebe-17bf-4e98-b6a1-2c4f205a959b" -Bijections = "e2ed5e7c-b2de-5872-ae92-c73ca462fb04" -CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" -Catlab = "134e5e36-593f-5add-ad60-77f754baafbe" -DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" -Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" -DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def" -DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" -Downloads = "f43a241f-c20a-4ad4-852c-f6b1247861c6" -EasyModelAnalysis = "ef4b24a4-a090-4686-a932-e7e56a5a83bd" -ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3" -JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" -JSONTables = "b9914132-a727-11e9-1322-f18e41205b0b" -JobSchedulers = "eeff360b-c02d-44d3-ab26-4013c616a17e" -LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" -Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" -MathML = "abcecc63-2b08-419c-80c4-c63dca6fa478" -ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" -NamedTupleTools = "d9ec5142-1e00-5aa0-9d6a-321866360f50" -OpenAPI = "d5e62ea6-ddf3-4d43-8e4c-ad5e6c8bfd7d" -OpenBLAS32_jll = "656ef2d0-ae68-5445-9ca0-591084a874a2" -OrderedCollections = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Oxygen = "df9a0d86-3283-4920-82dc-4555fc0d1d8b" -Pipelines = "ef544631-5c6f-4e9b-994c-12e7a4cd724c" -Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -Preferences = "21216c6a-2e73-6563-6e65-726566657250" -Reexport = "189a3867-3050-52da-a836-e630ba90ab69" -SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" -SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -SwaggerMarkdown = "1b6eb727-ad4b-44eb-9669-b9596a6e760f" -SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" -TerminalLoggers = "5d786b92-1e48-4d6f-9151-6b4477ca9bed" -Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" -UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" -UnPack = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" -YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" diff --git a/src/SimulationService.jl b/src/SimulationService.jl index d81a4b4..28768ac 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -1,77 +1,168 @@ -""" -Interface for relevant ASKEM simulation libraries -""" -module SimulationService - -import AlgebraicPetri: LabelledPetriNet -import Symbolics -import Oxygen: serveparallel, resetstate, json, setschema, terminate, @post, @get -import SwaggerMarkdown: build, @swagger, OpenAPI, validate_spec, openApiToDict, DOCS -import YAML -import JSON3 as JSON -import JobSchedulers: scheduler_start, set_scheduler, scheduler_stop, submit!, job_query, result, generate_id, update_queue!, Job, JobSchedulers - -include("./service/Service.jl") -import .Service: make_deterministic_run, retrieve_job -include("./Settings.jl"); import .Settings: settings +module SimulationService -export start!, stop! +using Oxygen: Oxygen +using HTTP: HTTP +using JSON3: JSON3 -OPENAPI_SPEC = "paths.yaml" +export start!, stop! -""" -Print out settings -""" -function health_check() - tds_url = settings["TDS_URL"] - mq_route = settings["RABBITMQ_ROUTE"] +#-----------------------------------------------------------------------------# start! +function start!(; host=SIMSERVICE_HOST, port=SIMSERVICE_PORT, kw...) + stop!() + Threads.nthreads() > 1 || error("Server is not parallelized. Start the REPL with `julia --threads=auto`.") + Oxygen.resetstate() + Oxygen.@get "/" health + Oxygen.@post "/simulate" req -> simulate(process_request(req)) + Oxygen.@post "/calibrate" req -> calibrate(process_request(req)) + Oxygen.@post "/ensemble" req -> ensemble(process_request(req)) + Oxygen.serveparallel(; host, port, kw...) +end - return "Simulation-service. TDS_URL=$tds_url, RABBITMQ_ROUTE=$mq_route" +#-----------------------------------------------------------------------------# stop! +function stop!() + Oxygen.terminate() end +#-----------------------------------------------------------------------------# settings +# server +SIMSERVICE_HOST = get(ENV, "SIMSERVICE_HOST", "0.0.0.0") +SIMSERVICE_PORT = parse(Int, get(ENV, "SIMSERVICE_PORT", "8000")) -""" -Specify endpoint to function mappings -""" -function register!() - @get "/" health_check - @get "/{element}/{uuid}" retrieve_job - @post "/{operation}" make_deterministic_run +# rabbitmq +SIMSERVICE_RABBITMQ_ENABLED = get(ENV, "SIMSERVICE_RABBITMQ_ENABLED", "false") == "true" +SIMSERVICE_RABBITMQ_LOGIN = get(ENV, "SIMSERVICE_RABBITMQ_LOGIN", "guest") +SIMSERVICE_RABBITMQ_PASSWORD = get(ENV, "SIMSERVICE_RABBITMQ_PASSWORD", "guest") +SIMSERVICE_RABBITMQ_ROUTE = get(ENV, "SIMSERVICE_RABBITMQ_ROUTE", "terarium") +SIMSERVICE_RABBITMQ_PORT = parse(Int, get(ENV, "SIMSERVICE_RABBITMQ_PORT", "5672")) - info = Dict("title" => "Simulation Service", "version" => "0.6.0") - openAPI = OpenAPI("3.0.0", info) - openAPI.paths = YAML.load_file(OPENAPI_SPEC) - documentation = build(openAPI) - setschema(documentation) +# tds +SIMSERVICE_ENABLE_TDS = get(ENV, "SIMSERVICE_ENABLE_TDS", "true") == "true" +SIMSERVICE_TDS_URL = get(ENV, "SIMSERVICE_TDS_URL", "http://localhost:8001") + + +#-----------------------------------------------------------------------------# S3 uploaders +JSON_HEADER = ["Content-Type" => "application/json"] + +function get_upload_url(job_id::String, name::String, ext::String) + url = string(SIMSERVICE_TDS_URL, "/simulations/sciml-$job_id/upload-url?filename=$name.$ext") + res = HTTP.get(url, JSON_HEADER) + return JSON3.read(res.body).url end -""" -Load API endpoints and start listening for sim run jobs -""" -function start!() - resetstate() - register!() - if Threads.nthreads() > 1 - set_scheduler( - max_cpu=0.5, - max_mem=0.5, - update_second=0.05, - max_job=5000, - ) - scheduler_start() - serveparallel(host="0.0.0.0", async=true) - else - throw("The server is not parallelized. You need to start the REPL like `julia --threads 5`") +# DataFrame -> CSV +# Other -> JSON +function upload(output, job_id::String; name::String="result") + if SIMSERVICE_ENABLE_TDS + return @warn "TDS is not enabled. `output::$(typeof(output))` will not be uploaded.))" end - nothing + ext = output isa DataFrame ? "csv" : "json" + body = output isa DataFrame ? CSV.write(output) : JSON3.write(output) + url = get_upload_url(job_id, name, ext) + HTTP.put(url, JSON_HEADER; body) + return first(split(url, '?')) end -""" -Shutdown server -""" -function stop!() - scheduler_stop() - terminate() +#-----------------------------------------------------------------------------# /health +function health(::HTTP.Request) + return (; SIMSERVICE_RABBITMQ_ENABLED, SIMSERVICE_RABBITMQ_ROUTE) end +#-----------------------------------------------------------------------------# ModelRepresentation +struct ModelRepresentation + json_obj::JSON3.Object # Exact JSON object from the request +end + +function ModelRepresentation(req::HTTP.Request) + obj = JSON3.read(req.body) + ModelRepresentation(obj) +end + + +#-----------------------------------------------------------------------------# simulate +function simulate(m::ModelRepresentation) + "TODO" +end + +#-----------------------------------------------------------------------------# calibrate +function calibrate(m::ModelRepresentation) + "TODO" +end + +#-----------------------------------------------------------------------------# ensemble +function ensemble(m::ModelRepresentation) + "TODO" +end + + +# import AlgebraicPetri: LabelledPetriNet +# import Symbolics +# import Oxygen: serveparallel, resetstate, json, setschema, terminate, @post, @get +# import SwaggerMarkdown: build, @swagger, OpenAPI, validate_spec, openApiToDict, DOCS +# import YAML +# import JSON3 as JSON +# import JobSchedulers: scheduler_start, set_scheduler, scheduler_stop, submit!, job_query, result, generate_id, update_queue!, Job, JobSchedulers + +# include("./service/Service.jl") +# import .Service: make_deterministic_run, retrieve_job +# include("./Settings.jl"); import .Settings: settings + +# export start!, stop! + +# OPENAPI_SPEC = "paths.yaml" + +# """ +# Print out settings +# """ +# function health_check() +# tds_url = settings["TDS_URL"] +# mq_route = settings["RABBITMQ_ROUTE"] + +# return "Simulation-service. TDS_URL=$tds_url, RABBITMQ_ROUTE=$mq_route" +# end + + +# """ +# Specify endpoint to function mappings +# """ +# function register!() +# @get "/" health_check +# @get "/{element}/{uuid}" retrieve_job +# @post "/{operation}" make_deterministic_run + +# info = Dict("title" => "Simulation Service", "version" => "0.6.0") +# openAPI = OpenAPI("3.0.0", info) +# openAPI.paths = YAML.load_file(OPENAPI_SPEC) +# documentation = build(openAPI) +# setschema(documentation) +# end + +# """ +# Load API endpoints and start listening for sim run jobs +# """ +# function start!() +# resetstate() +# register!() +# if Threads.nthreads() > 1 +# set_scheduler( +# max_cpu=0.5, +# max_mem=0.5, +# update_second=0.05, +# max_job=5000, +# ) +# scheduler_start() +# serveparallel(host="0.0.0.0", async=true) +# else +# throw("The server is not parallelized. You need to start the REPL like `julia --threads 5`") +# end +# nothing +# end + +# """ +# Shutdown server +# """ +# function stop!() +# scheduler_stop() +# terminate() +# end + end # module SimulationService diff --git a/test/runtests.jl b/test/runtests.jl index 9afcca1..22e69e4 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -3,25 +3,39 @@ using Downloads: download using HTTP using JSON3 using SimulationService -# using SafeTestsets -#-----------------------------------------------------------------------------# Operations -@testset "Operations" begin - @testset "simulate" begin - url = "https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/main/petrinet/examples/sir.json" - json_string = read(download(url), String) - model = SimulationService.Service.Execution.Interface.Available.ProblemInputs.coerce_model(json_string) - f = SimulationService.Service.Execution.Interface.Available.get_operation(:simulate) - f(; model, context=nothing) - end - @testset "calibrate" begin - # TODO - end - @testset "ensemble" begin - # TODO +#-----------------------------------------------------------------------------# test routes +@testset "Routes" begin + host = "172.0.0.1" + port = 8080 + url = "$host:$port" + + server = start!(; host, port, async=true) + sleep(5) + + @testset "/" begin + res = HTTP.get(url) + @test res.status == 200 end end +# #-----------------------------------------------------------------------------# Operations +# @testset "Operations" begin +# @testset "simulate" begin +# url = "https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/main/petrinet/examples/sir.json" +# json_string = read(download(url), String) +# model = SimulationService.Service.Execution.Interface.Available.ProblemInputs.coerce_model(json_string) +# f = SimulationService.Service.Execution.Interface.Available.get_operation(:simulate) +# f(; model, context=nothing) +# end +# @testset "calibrate" begin +# # TODO +# end +# @testset "ensemble" begin +# # TODO +# end +# end + # @safetestset "sciml" begin include("sciml.jl") end From 97a46429544a1376d8efa9e303c6763604f27e87 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Mon, 10 Jul 2023 15:17:35 -0400 Subject: [PATCH 06/31] wip --- Manifest.toml | 1076 +++++++++++++++++++++++++++++++++++++- Project.toml | 4 + src/SimulationService.jl | 76 ++- test/runtests.jl | 39 +- 4 files changed, 1165 insertions(+), 30 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index 0b9b379..707e262 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,7 +2,65 @@ julia_version = "1.9.2" manifest_format = "2.0" -project_hash = "45fab2acfc6e10b0d1f7da9bc528d466de657c86" +project_hash = "5a30e3be49fcb61f03c69a9f62da720528951d50" + +[[deps.ADTypes]] +git-tree-sha1 = "e58c18d2312749847a74f5be80bb0fa53da102bd" +uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" +version = "0.1.5" + +[[deps.AbstractAlgebra]] +deps = ["GroupsCore", "InteractiveUtils", "LinearAlgebra", "MacroTools", "Preferences", "Random", "RandomExtensions", "SparseArrays", "Test"] +git-tree-sha1 = "1bd8a536c949eb3de9b58042d57790ded6b70fa6" +uuid = "c3fe647b-3220-5bb0-a1ea-a7954cac585d" +version = "0.30.9" + +[[deps.AbstractTrees]] +git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c" +uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" +version = "0.4.4" + +[[deps.Adapt]] +deps = ["LinearAlgebra", "Requires"] +git-tree-sha1 = "76289dc51920fdc6e0013c872ba9551d54961c24" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "3.6.2" +weakdeps = ["StaticArrays"] + + [deps.Adapt.extensions] + AdaptStaticArraysExt = "StaticArrays" + +[[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", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "f83ec24f76d4c8f525099b2ac475fc098138ec31" +uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" +version = "7.4.11" + + [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" @@ -10,58 +68,556 @@ uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" +[[deps.Bijections]] +git-tree-sha1 = "fe4f8c5ee7f76f2198d5c2a06d3961c249cce7bd" +uuid = "e2ed5e7c-b2de-5872-ae92-c73ca462fb04" +version = "0.1.4" + [[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.CPUSummary]] +deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] +git-tree-sha1 = "89e0654ed8c7aebad6d5ad235d6242c2d737a928" +uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" +version = "0.2.3" + +[[deps.CSTParser]] +deps = ["Tokenize"] +git-tree-sha1 = "3ddd48d200eb8ddf9cb3e0189fc059fd49b97c1f" +uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f" +version = "3.3.6" + +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "e30f2f4e20f7f186dc36529910beaedc60cfa644" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.16.0" + +[[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 = "9c209fb7536406834aa938fb149964b985de6c83" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" version = "0.7.1" +[[deps.Combinatorics]] +git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" +uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" +version = "1.0.2" + +[[deps.CommonMark]] +deps = ["Crayons", "JSON", "PrecompileTools", "URIs"] +git-tree-sha1 = "532c4185d3c9037c0237546d817858b23cf9e071" +uuid = "a80b9123-70ca-4bc0-993e-6e3bcb318db6" +version = "0.8.12" + +[[deps.CommonSolve]] +git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" +uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" +version = "0.2.4" + +[[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 = "4e88377ae7ebeaf29a047aa1ee40826e0b708a5d" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.7.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+0" + +[[deps.CompositeTypes]] +git-tree-sha1 = "02d2316b7ffceff992f3096ae48c7829a8aa0638" +uuid = "b152e2b5-7a66-4b01-a709-34e65c35f657" +version = "0.1.3" + [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] git-tree-sha1 = "96d823b94ba8d187a6d8f0826e731195a74b90e9" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" version = "2.2.0" +[[deps.ConstructionBase]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "738fec4d684a9a6ee9598a8bfee305b26831f28c" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.5.2" +weakdeps = ["IntervalSets", "StaticArrays"] + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseStaticArraysExt = "StaticArrays" + +[[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", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] +git-tree-sha1 = "089d29c0fc00a190661517e4f3cba5dcb3fd0c08" +uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +version = "1.6.0" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "cf25ccb972fec4e4817764d01c82386ae94f77b4" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.14" + +[[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.DiffEqBase]] +deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "DocStringExtensions", "EnumX", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces", "ZygoteRules"] +git-tree-sha1 = "62c41421bd0facc43dfe4e9776135fe21fd1e1b9" +uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" +version = "6.126.0" + + [deps.DiffEqBase.extensions] + DiffEqBaseDistributionsExt = "Distributions" + DiffEqBaseGeneralizedGeneratedExt = "GeneralizedGenerated" + DiffEqBaseMPIExt = "MPI" + DiffEqBaseMeasurementsExt = "Measurements" + DiffEqBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements" + DiffEqBaseReverseDiffExt = "ReverseDiff" + DiffEqBaseTrackerExt = "Tracker" + DiffEqBaseUnitfulExt = "Unitful" + DiffEqBaseZygoteExt = "Zygote" + + [deps.DiffEqBase.weakdeps] + Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" + GeneralizedGenerated = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb" + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.DiffEqCallbacks]] +deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "63b6be7b396ad395825f3cc48c56b53bfaf7e69d" +uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" +version = "2.26.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.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 = "e76a3281de2719d7c81ed62c6ea7057380c87b1d" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.98" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.DomainSets]] +deps = ["CompositeTypes", "IntervalSets", "LinearAlgebra", "Random", "StaticArrays", "Statistics"] +git-tree-sha1 = "51b4b84d33ec5e0955b55ff4b748b99ce2c3faa9" +uuid = "5b8099bc-c8ec-5219-889f-1d9e522a28bf" +version = "0.6.7" + +[[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.DynamicPolynomials]] +deps = ["DataStructures", "Future", "LinearAlgebra", "MultivariatePolynomials", "MutableArithmetics", "Pkg", "Reexport", "Test"] +git-tree-sha1 = "8b84876e31fa39479050e2d3395c4b3b210db8b0" +uuid = "7c1d4256-1411-5781-91ec-d7bc3513ac07" +version = "0.4.6" + +[[deps.EasyConfig]] +deps = ["JSON3", "OrderedCollections", "StructTypes"] +git-tree-sha1 = "8a5a451290aaa8bece132d16e557fae478ae55e0" +uuid = "acab07b0-f158-46d4-8913-50acef6d41fe" +version = "0.1.14" + +[[deps.EnumX]] +git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" +uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" +version = "1.0.4" + [[deps.ExceptionUnwrapping]] deps = ["Test"] git-tree-sha1 = "e90caa41f5a86296e014e148ee061bd6c3edec96" uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" version = "0.1.9" +[[deps.ExprTools]] +git-tree-sha1 = "c1d06d129da9f55715c6c212866f5b1bddc5fa00" +uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" +version = "0.1.9" + +[[deps.EzXML]] +deps = ["Printf", "XML2_jll"] +git-tree-sha1 = "0fa3b52a04a4e210aeb1626def9c90df3ae65268" +uuid = "8f5d6c58-4d21-5cfd-889c-e3ad7ee6a615" +version = "1.1.0" + +[[deps.FastBroadcast]] +deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] +git-tree-sha1 = "d1248fceea0b26493fd33e8e9e8c553270da03bd" +uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" +version = "0.2.5" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random", "SparseArrays", "Statistics"] +git-tree-sha1 = "2250347838b28a108d1967663cba57bfb3c02a58" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.3.0" + +[[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.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 = "00e252f4d706b3d55a8863432e742bf5717b498d" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.35" +weakdeps = ["StaticArrays"] + + [deps.ForwardDiff.extensions] + ForwardDiffStaticArraysExt = "StaticArrays" + +[[deps.FunctionWrappers]] +git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" +uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" +version = "1.1.3" + +[[deps.FunctionWrappersWrappers]] +deps = ["FunctionWrappers"] +git-tree-sha1 = "b104d487b34566608f8b4e1c39fb0b10aa279ff8" +uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" +version = "0.1.3" + +[[deps.Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" + +[[deps.GPUArraysCore]] +deps = ["Adapt"] +git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" +uuid = "46192b85-c4d5-4398-a991-12ede77f4527" +version = "0.1.5" + +[[deps.Glob]] +git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" +uuid = "c27321d9-0574-5035-807b-f59d2c89b15c" +version = "1.3.1" + +[[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.Groebner]] +deps = ["AbstractAlgebra", "Combinatorics", "Logging", "MultivariatePolynomials", "Primes", "Random", "SnoopPrecompile"] +git-tree-sha1 = "c8b55b624a83f60bcd6574cc999ad148d0a47dd6" +uuid = "0b43b601-686d-58a3-8a1c-6623616c7cd4" +version = "0.3.6" + +[[deps.GroupsCore]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "9e1a5e9f3b81ad6a5c613d181664a0efc6fe6dd7" +uuid = "d5909c97-4eac-4ecc-a3dc-fdd0858a4120" +version = "0.4.0" + [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] git-tree-sha1 = "2150ff91a4b3c566ff020c0c56e3c70d51249a2a" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" version = "1.9.9" +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "ce7ea9cc5db29563b1fe20196b6d23ab3b111384" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.18" + +[[deps.IfElse]] +git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" +uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" +version = "0.1.1" + +[[deps.Inflate]] +git-tree-sha1 = "5cd07aab533df5170988219191dfad0519391428" +uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" +version = "0.1.3" + +[[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.InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" +[[deps.IntervalSets]] +deps = ["Dates", "Random", "Statistics"] +git-tree-sha1 = "16c0cc91853084cb5f58a78bd209513900206ce6" +uuid = "8197267c-284f-5f27-9208-e0e47529a953" +version = "0.7.4" + +[[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.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + [[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", "PrecompileTools", "StructTypes", "UUIDs"] git-tree-sha1 = "5b62d93f2582b09e469b3099d839c2d2ebf5066d" uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" version = "1.13.1" +[[deps.JuliaFormatter]] +deps = ["CSTParser", "CommonMark", "DataStructures", "Glob", "Pkg", "PrecompileTools", "Tokenize"] +git-tree-sha1 = "60567b51bd9e1e19ae2fd8a54dcd6bc5994727f0" +uuid = "98e50ef6-434e-11e9-1051-2b60c6c9e899" +version = "1.0.34" + +[[deps.JumpProcesses]] +deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "FunctionWrappers", "Graphs", "LinearAlgebra", "Markdown", "PoissonRandom", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays", "TreeViews", "UnPack"] +git-tree-sha1 = "50bd271af7f6cc23be7d24c8c4804809bb5d05ae" +uuid = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5" +version = "9.6.3" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.0" + +[[deps.LabelledArrays]] +deps = ["ArrayInterface", "ChainRulesCore", "ForwardDiff", "LinearAlgebra", "MacroTools", "PreallocationTools", "RecursiveArrayTools", "StaticArrays"] +git-tree-sha1 = "cd04158424635efd05ff38d5f55843397b7416a9" +uuid = "2ee39098-c373-598a-b85f-a56591580800" +version = "1.14.0" + +[[deps.LambertW]] +git-tree-sha1 = "c5ffc834de5d61d00d2b0e18c96267cffc21f648" +uuid = "984bce1d-4616-540c-a9ee-88d1112d94c9" +version = "0.4.6" + +[[deps.Latexify]] +deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] +git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.1" + + [deps.Latexify.extensions] + DataFramesExt = "DataFrames" + SymEngineExt = "SymEngine" + + [deps.Latexify.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" + +[[deps.LayoutPointers]] +deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "88b8f66b604da079a627b6fb2860d3704a6729a1" +uuid = "10f19ff3-798f-405d-979b-55457f8fc047" +version = "0.1.14" + +[[deps.Lazy]] +deps = ["MacroTools"] +git-tree-sha1 = "1370f8202dac30758f3c345f9909b97f53d87d3f" +uuid = "50d2b5c4-7a5e-59d5-8109-a42b560f39c0" +version = "0.15.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.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c7cb1f5d892775ba13767a87c7ada0b980ea0a71" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.16.1+2" + +[[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.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "c3ce8e7420b3a6e071e0fe4745f5d4300e37b13f" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.24" + + [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" @@ -76,10 +632,32 @@ git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" version = "0.1.4" +[[deps.MLStyle]] +git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" +uuid = "d8e11817-5142-5d16-987a-aa16d5891078" +version = "0.4.17" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "42324d08725e200c23d4dfb549e0d5d89dede2d2" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.10" + +[[deps.ManualMemory]] +git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" +uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" +version = "0.1.8" + [[deps.Markdown]] deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" +[[deps.MathML]] +deps = ["AbstractTrees", "DocStringExtensions", "EzXML", "IfElse", "SpecialFunctions", "Statistics", "Symbolics"] +git-tree-sha1 = "f9d5b2895734a699b51249ebb90ca9b4b6a6e12c" +uuid = "abcecc63-2b08-419c-80c4-c63dca6fa478" +version = "0.1.14" + [[deps.MbedTLS]] deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "Random", "Sockets"] git-tree-sha1 = "03a9b9718f5682ecb107ac9f7308991db4ce395b" @@ -91,17 +669,80 @@ deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" version = "2.28.2+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.ModelingToolkit]] +deps = ["AbstractTrees", "ArrayInterface", "Combinatorics", "Compat", "ConstructionBase", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "DiffRules", "Distributed", "Distributions", "DocStringExtensions", "DomainSets", "ForwardDiff", "FunctionWrappersWrappers", "Graphs", "IfElse", "InteractiveUtils", "JuliaFormatter", "JumpProcesses", "LabelledArrays", "Latexify", "Libdl", "LinearAlgebra", "MLStyle", "MacroTools", "NaNMath", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLBase", "Serialization", "Setfield", "SimpleNonlinearSolve", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicIndexingInterface", "SymbolicUtils", "Symbolics", "URIs", "UnPack", "Unitful"] +git-tree-sha1 = "cad27947bc85b1a3136f395f22a7dd5c382b7209" +uuid = "961ee093-0014-501f-94e3-6117800e7a78" +version = "8.62.0" + + [deps.ModelingToolkit.extensions] + MTKDeepDiffsExt = "DeepDiffs" + + [deps.ModelingToolkit.weakdeps] + DeepDiffs = "ab62b9b5-e342-54a8-a765-a90f495de1a6" + [[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" version = "2022.10.11" +[[deps.MuladdMacro]] +git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" +uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" +version = "0.2.4" + +[[deps.MultivariatePolynomials]] +deps = ["ChainRulesCore", "DataStructures", "LinearAlgebra", "MutableArithmetics"] +git-tree-sha1 = "eaa98afe2033ffc0629f9d0d83961d66a021dfcc" +uuid = "102ac46a-7ee4-5c85-9060-abc95bfdeaa3" +version = "0.4.7" + +[[deps.MutableArithmetics]] +deps = ["LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "964cb1a7069723727025ae295408747a0b36a854" +uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" +version = "1.3.0" + +[[deps.NLSolversBase]] +deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] +git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" +uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" +version = "7.8.3" + +[[deps.NLsolve]] +deps = ["Distances", "LineSearches", "LinearAlgebra", "NLSolversBase", "Printf", "Reexport"] +git-tree-sha1 = "019f12e9a1a7880459d0173c182e6a99365d7ac1" +uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" +version = "4.5.1" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + [[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.21+4" + +[[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 = "51901a49222b09e3743c65b8847687ae5fc78eb2" @@ -114,18 +755,82 @@ git-tree-sha1 = "1aa4b74f80b01c6bc2b89992b861b5f210e665b5" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" version = "1.1.21+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.OrderedCollections]] +git-tree-sha1 = "d321bf2de576bf25ec4d3e4360faca399afca282" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.0" + [[deps.Oxygen]] deps = ["Dates", "HTTP", "JSON3", "MIMEs", "Sockets"] git-tree-sha1 = "dca31e833aafb6277e5aff9fdcb5029be5045255" uuid = "df9a0d86-3283-4920-82dc-4555fc0d1d8b" version = "1.1.11" +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "67eae2738d63117a196f497d7db789821bce61d1" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.17" + +[[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 = "4b2e829ee66d4218e0cef22c0a64ee37cf258c29" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" version = "2.7.1" +[[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.2" + +[[deps.PoissonRandom]] +deps = ["Random"] +git-tree-sha1 = "a0f1159c33f846aa77c3f30ebbc69795e5327152" +uuid = "e409e4f3-bfea-5376-8464-e040bb5c01ab" +version = "0.4.4" + +[[deps.Polyester]] +deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] +git-tree-sha1 = "0fe4e7c4d8ff4c70bfa507f0dd96fa161b115777" +uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" +version = "0.7.3" + +[[deps.PolyesterWeave]] +deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] +git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" +uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" +version = "0.2.1" + +[[deps.PooledArrays]] +deps = ["DataAPI", "Future"] +git-tree-sha1 = "a6062fe4063cdafe78f4a0a81cfffb89721b30e7" +uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" +version = "1.4.2" + +[[deps.PreallocationTools]] +deps = ["Adapt", "ArrayInterface", "ForwardDiff", "Requires"] +git-tree-sha1 = "f739b1b3cc7b9949af3b35089931f2b58c289163" +uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" +version = "0.4.12" + + [deps.PreallocationTools.extensions] + PreallocationToolsReverseDiffExt = "ReverseDiff" + + [deps.PreallocationTools.weakdeps] + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + [[deps.PrecompileTools]] deps = ["Preferences"] git-tree-sha1 = "9673d39decc5feece56ef3940e5dafba15ba0f81" @@ -138,50 +843,367 @@ git-tree-sha1 = "7eb1686b4f04b82f96ed7a4ea5890a4f0c7a09f1" uuid = "21216c6a-2e73-6563-6e65-726566657250" version = "1.4.0" +[[deps.PrettyTables]] +deps = ["Crayons", "Formatting", "LaTeXStrings", "Markdown", "Reexport", "StringManipulation", "Tables"] +git-tree-sha1 = "213579618ec1f42dea7dd637a42785a608b1ea9c" +uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" +version = "2.2.4" + +[[deps.Primes]] +deps = ["IntegerMathUtils"] +git-tree-sha1 = "311a2aa90a64076ea0fac2ad7492e914e6feeb81" +uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" +version = "0.5.3" + [[deps.Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "6ec7ac8412e83d57e313393220879ede1740f9ee" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.8.2" + +[[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.RandomExtensions]] +deps = ["Random", "SparseArrays"] +git-tree-sha1 = "062986376ce6d394b23d5d90f01d81426113a3c9" +uuid = "fb686558-2515-59ef-acaa-46db3789a887" +version = "0.4.3" + +[[deps.RandomNumbers]] +deps = ["Random", "Requires"] +git-tree-sha1 = "043da614cc7e95c703498a491e2c21f58a2b8111" +uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" +version = "1.5.3" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.RecursiveArrayTools]] +deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "Requires", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] +git-tree-sha1 = "02ef02926f30d53b94be443bfaea010c47f6b556" +uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" +version = "2.38.5" + + [deps.RecursiveArrayTools.extensions] + RecursiveArrayToolsMeasurementsExt = "Measurements" + RecursiveArrayToolsTrackerExt = "Tracker" + RecursiveArrayToolsZygoteExt = "Zygote" + + [deps.RecursiveArrayTools.weakdeps] + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[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.RuntimeGeneratedFunctions]] +deps = ["ExprTools", "SHA", "Serialization"] +git-tree-sha1 = "0b9b18d6236e9ab2b092defaacdffd929d572642" +uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" +version = "0.5.9" + [[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.SciMLBase]] +deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] +git-tree-sha1 = "a22a12db91f6a921e28a7ae39a9546eed93fd92e" +uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +version = "1.93.0" + +[[deps.SciMLOperators]] +deps = ["ArrayInterface", "DocStringExtensions", "Lazy", "LinearAlgebra", "Setfield", "SparseArrays", "StaticArraysCore", "Tricks"] +git-tree-sha1 = "b1fe33c9984c6789b58419e62e7a2b92f9aa813e" +uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" +version = "0.3.3" + +[[deps.SentinelArrays]] +deps = ["Dates", "Random"] +git-tree-sha1 = "04bdff0b09c65ff3e06a05e3eb7b120223da3d39" +uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" +version = "1.4.0" + [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" +[[deps.Setfield]] +deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] +git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" +uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" +version = "1.1.1" + +[[deps.SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + [[deps.SimpleBufferStream]] git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" version = "1.1.0" +[[deps.SimpleNonlinearSolve]] +deps = ["ArrayInterface", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "PrecompileTools", "Reexport", "Requires", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "56aa73a93cdca493af5155a0338a864ed314222b" +uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" +version = "0.1.16" + + [deps.SimpleNonlinearSolve.extensions] + SimpleBatchedNonlinearSolveExt = "NNlib" + + [deps.SimpleNonlinearSolve.weakdeps] + NNlib = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" + +[[deps.SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.4" + +[[deps.SnoopPrecompile]] +deps = ["Preferences"] +git-tree-sha1 = "e760a70afdcd461cf01a575947738d359234665c" +uuid = "66db9d55-30c0-4569-8b51-7e840670fc0c" +version = "1.0.3" + [[deps.Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "c60ec5c62180f27efea3ba2908480f8055e17cee" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.1.1" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "7beb031cf8145577fbccacd94b8a8f4ce78428d3" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.0" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.Static]] +deps = ["IfElse"] +git-tree-sha1 = "dbde6766fc677423598138a5951269432b0fcc90" +uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" +version = "0.8.7" + +[[deps.StaticArrayInterface]] +deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "Requires", "SnoopPrecompile", "SparseArrays", "Static", "SuiteSparse"] +git-tree-sha1 = "33040351d2403b84afce74dae2e22d3f5b18edcb" +uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" +version = "1.4.0" + + [deps.StaticArrayInterface.extensions] + StaticArrayInterfaceOffsetArraysExt = "OffsetArrays" + StaticArrayInterfaceStaticArraysExt = "StaticArrays" + + [deps.StaticArrayInterface.weakdeps] + OffsetArrays = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "Random", "StaticArraysCore"] +git-tree-sha1 = "0da7e6b70d1bb40b1ace3b576da9ea2992f76318" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.6.0" +weakdeps = ["Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysStatisticsExt = "Statistics" + +[[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" +version = "1.9.0" + +[[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 = "75ebe04c5bed70b91614d684259b661c9e6274a4" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.0" + +[[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.StrideArraysCore]] +deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] +git-tree-sha1 = "26316a9a43d32ecd0c5b342cb36dc86305c73e53" +uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" +version = "0.4.16" + +[[deps.StringManipulation]] +git-tree-sha1 = "46da2434b41f41ac3594ee9816ce5541c6096123" +uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" +version = "0.3.0" + [[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.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "5.10.1+6" + +[[deps.SymbolicIndexingInterface]] +deps = ["DocStringExtensions"] +git-tree-sha1 = "f8ab052bfcbdb9b48fad2c80c873aa0d0344dfe5" +uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" +version = "0.2.2" + +[[deps.SymbolicUtils]] +deps = ["AbstractTrees", "Bijections", "ChainRulesCore", "Combinatorics", "ConstructionBase", "DataStructures", "DocStringExtensions", "DynamicPolynomials", "IfElse", "LabelledArrays", "LinearAlgebra", "MultivariatePolynomials", "NaNMath", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArrays", "TimerOutputs", "Unityper"] +git-tree-sha1 = "5cb1f963f82e7b81305102dd69472fcd3e0e1483" +uuid = "d1185830-fcd6-423d-90d6-eec64667417b" +version = "1.0.5" + +[[deps.Symbolics]] +deps = ["ArrayInterface", "ConstructionBase", "DataStructures", "DiffRules", "Distributions", "DocStringExtensions", "DomainSets", "Groebner", "IfElse", "LaTeXStrings", "LambertW", "Latexify", "Libdl", "LinearAlgebra", "MacroTools", "Markdown", "NaNMath", "RecipesBase", "Reexport", "Requires", "RuntimeGeneratedFunctions", "SciMLBase", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicUtils", "TreeViews"] +git-tree-sha1 = "c4e5688a9a5a2f4088cd1a779b0742be31cbe9aa" +uuid = "0c5d862f-8b57-4792-8d23-62f2024744c7" +version = "5.5.0" + [[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", "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.0" + [[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.TimerOutputs]] +deps = ["ExprTools", "Printf"] +git-tree-sha1 = "f548a9e9c490030e545f72074a41edfd0e5bcdd7" +uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" +version = "0.5.23" + +[[deps.Tokenize]] +git-tree-sha1 = "90538bf898832b6ebd900fa40f223e695970e3a5" +uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624" +version = "0.5.25" + [[deps.TranscodingStreams]] deps = ["Random", "Test"] git-tree-sha1 = "9a6ae7ed916312b41236fcef7e0af564ef934769" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" version = "0.9.13" +[[deps.TreeViews]] +deps = ["Test"] +git-tree-sha1 = "8d0d7a3fe2f30d6a7f833a5f19f7c7a5b396eae6" +uuid = "a2a6695c-b41b-5b7d-aed9-dbfdeacea5d7" +version = "0.3.0" + +[[deps.Tricks]] +git-tree-sha1 = "aadb748be58b492045b4f56166b5188aa63ce549" +uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" +version = "0.1.7" + +[[deps.TruncatedStacktraces]] +deps = ["InteractiveUtils", "MacroTools", "Preferences"] +git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" +uuid = "781d530d-4396-4725-bb49-402e4bee1e77" +version = "1.4.0" + [[deps.URIs]] git-tree-sha1 = "074f993b0ca030848b897beff716d93aca60f06a" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" @@ -191,10 +1213,62 @@ version = "1.4.2" 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.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "c4d2a349259c8eba66a00a540d550f122a3ab228" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.15.0" + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" + + [deps.Unitful.weakdeps] + ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Unityper]] +deps = ["ConstructionBase"] +git-tree-sha1 = "d5f4ec8c22db63bd3ccb239f640e895cfde145aa" +uuid = "a7c27f48-0311-42f6-a7f8-2c11e75eb415" +version = "0.1.2" + +[[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.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" version = "1.2.13+0" + +[[deps.ZygoteRules]] +deps = ["ChainRulesCore", "MacroTools"] +git-tree-sha1 = "977aed5d006b840e2e40c0b48984f7463109046d" +uuid = "700de1a5-db45-46bc-99cf-38207098b444" +version = "0.2.3" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+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" diff --git a/Project.toml b/Project.toml index f9cef05..4f1e27d 100644 --- a/Project.toml +++ b/Project.toml @@ -4,6 +4,10 @@ authors = ["Five Grant <5@fivegrant.com>"] version = "0.6.0" [deps] +DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +EasyConfig = "acab07b0-f158-46d4-8913-50acef6d41fe" HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3" JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" +MathML = "abcecc63-2b08-419c-80c4-c63dca6fa478" +ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" Oxygen = "df9a0d86-3283-4920-82dc-4555fc0d1d8b" diff --git a/src/SimulationService.jl b/src/SimulationService.jl index 28768ac..24a249f 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -1,15 +1,19 @@ module SimulationService -using Oxygen: Oxygen + +import DataFrames: DataFrame +using EasyConfig: EasyConfig using HTTP: HTTP using JSON3: JSON3 +using ModelingToolkit: @parameters, substitute, Differential, Num, @variables, ODESystem +using Oxygen: Oxygen export start!, stop! #-----------------------------------------------------------------------------# start! function start!(; host=SIMSERVICE_HOST, port=SIMSERVICE_PORT, kw...) stop!() - Threads.nthreads() > 1 || error("Server is not parallelized. Start the REPL with `julia --threads=auto`.") + Threads.nthreads() > 1 || error("Server require `Thread.nthreads() > 1`. Start Julia via `julia --threads=auto`.") Oxygen.resetstate() Oxygen.@get "/" health Oxygen.@post "/simulate" req -> simulate(process_request(req)) @@ -24,18 +28,18 @@ function stop!() end #-----------------------------------------------------------------------------# settings -# server +# Server SIMSERVICE_HOST = get(ENV, "SIMSERVICE_HOST", "0.0.0.0") SIMSERVICE_PORT = parse(Int, get(ENV, "SIMSERVICE_PORT", "8000")) -# rabbitmq +# RabbitMQ SIMSERVICE_RABBITMQ_ENABLED = get(ENV, "SIMSERVICE_RABBITMQ_ENABLED", "false") == "true" SIMSERVICE_RABBITMQ_LOGIN = get(ENV, "SIMSERVICE_RABBITMQ_LOGIN", "guest") SIMSERVICE_RABBITMQ_PASSWORD = get(ENV, "SIMSERVICE_RABBITMQ_PASSWORD", "guest") SIMSERVICE_RABBITMQ_ROUTE = get(ENV, "SIMSERVICE_RABBITMQ_ROUTE", "terarium") SIMSERVICE_RABBITMQ_PORT = parse(Int, get(ENV, "SIMSERVICE_RABBITMQ_PORT", "5672")) -# tds +# Terrarium Data Service SIMSERVICE_ENABLE_TDS = get(ENV, "SIMSERVICE_ENABLE_TDS", "true") == "true" SIMSERVICE_TDS_URL = get(ENV, "SIMSERVICE_TDS_URL", "http://localhost:8001") @@ -62,19 +66,73 @@ function upload(output, job_id::String; name::String="result") return first(split(url, '?')) end -#-----------------------------------------------------------------------------# /health +#-----------------------------------------------------------------------------# health: "GET /" function health(::HTTP.Request) - return (; SIMSERVICE_RABBITMQ_ENABLED, SIMSERVICE_RABBITMQ_ROUTE) + return (; status="ok", SIMSERVICE_RABBITMQ_ENABLED, SIMSERVICE_RABBITMQ_ROUTE) end #-----------------------------------------------------------------------------# ModelRepresentation struct ModelRepresentation - json_obj::JSON3.Object # Exact JSON object from the request + obj::JSON3.Object # Exact JSON object from the request + config::EasyConfig.Config # Like `obj` but with stuff filled in end function ModelRepresentation(req::HTTP.Request) obj = JSON3.read(req.body) - ModelRepresentation(obj) + c = EasyConfig.Config(k => _get(Val(k), v) for (k, v) in pairs(obj)) + ModelRepresentation(obj, c) +end + +# fallback to identity +_get(::Val, val) = val + +# dataset +_get(::Val{:dataset}, val::String) = CSV.read(IOBuffer(val), DataFrame) + +# models +_get(::Val{:models}, val) = _get.(Val{:model}, val) + +# model +function _get(::Val{:model}, val) + return val + obj = JSON3.read(val) + model = obj.model + ode = obj.semantics.ode + + t = only(@variables t) + D = Differential(t) + + statenames = [Symbol(s["id"]) for s in model["states"]] + statevars = [only(@variables $s) for s in statenames] + statefuncs = [only(@variables $s(t)) for s in statenames] + + # get parameter values and state initial values + paramnames = [Symbol(x["id"]) for x in ode["parameters"]] + paramvars = [only(@parameters $x) for x in paramnames] + paramvals = [x["value"] for x in ode["parameters"]] + sym_defs = paramvars .=> paramvals + initial_exprs = [MathML.parse_str(x["expression_mathml"]) for x in ode["initials"]] + initial_vals = map(x->substitute(x, sym_defs), initial_exprs) + + # build equations from transitions and rate expressions + rates = Dict(Symbol(x["target"]) => MathML.parse_str(x["expression_mathml"]) for x in ode["rates"]) + eqs = Dict(s => Num(0) for s in statenames) + for tr in model["transitions"] + ratelaw = rates[Symbol(tr["id"])] + for s in tr["input"] + s = Symbol(s) + eqs[s] = eqs[s] - ratelaw + end + for s in tr["output"] + s = Symbol(s) + eqs[s] = eqs[s] + ratelaw + end + end + + subst = Dict(zip(statevars, statefuncs)) + eqs = [D(statef) ~ substitute(eqs[state], subst) for (state, statef) in zip(statenames, statefuncs)] + + ODESystem(eqs, t, statefuncs, paramvars; defaults = [statefuncs .=> initial_vals; sym_defs], name=Symbol(obj["name"])) end diff --git a/test/runtests.jl b/test/runtests.jl index 22e69e4..3c143c7 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -5,6 +5,24 @@ using JSON3 using SimulationService +#-----------------------------------------------------------------------------# Operations +@testset "Operations" begin + @testset "simulate" begin + url = "https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/main/petrinet/examples/sir.json" + json_string = read(download(url), String) + model = SimulationService._get(Val(:model), json_string) + f(; model, context=nothing) + end + + @testset "calibrate" begin + # TODO + end + + @testset "ensemble" begin + # TODO + end +end + #-----------------------------------------------------------------------------# test routes @testset "Routes" begin host = "172.0.0.1" @@ -17,25 +35,6 @@ using SimulationService @testset "/" begin res = HTTP.get(url) @test res.status == 200 + @test JSON3.read(res.body).status == "ok" end end - -# #-----------------------------------------------------------------------------# Operations -# @testset "Operations" begin -# @testset "simulate" begin -# url = "https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/main/petrinet/examples/sir.json" -# json_string = read(download(url), String) -# model = SimulationService.Service.Execution.Interface.Available.ProblemInputs.coerce_model(json_string) -# f = SimulationService.Service.Execution.Interface.Available.get_operation(:simulate) -# f(; model, context=nothing) -# end -# @testset "calibrate" begin -# # TODO -# end -# @testset "ensemble" begin -# # TODO -# end -# end - - -# @safetestset "sciml" begin include("sciml.jl") end From ff07a44307f1b5c5dc82917fbf2a0831dd78c6fe Mon Sep 17 00:00:00 2001 From: Josh Day Date: Mon, 10 Jul 2023 21:30:18 -0400 Subject: [PATCH 07/31] wip --- Manifest.toml | 79 ++++++++++- Project.toml | 4 + paths.yaml | 176 ----------------------- src/SimulationService.jl | 295 +++++++++++++++++++++++++++++---------- 4 files changed, 306 insertions(+), 248 deletions(-) delete mode 100644 paths.yaml diff --git a/Manifest.toml b/Manifest.toml index 707e262..7b6b7ca 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,13 +2,19 @@ julia_version = "1.9.2" manifest_format = "2.0" -project_hash = "5a30e3be49fcb61f03c69a9f62da720528951d50" +project_hash = "e9ca95536fa37724ffbfa38e244074faf5ad3d31" [[deps.ADTypes]] git-tree-sha1 = "e58c18d2312749847a74f5be80bb0fa53da102bd" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" version = "0.1.5" +[[deps.AMQPClient]] +deps = ["Logging", "MbedTLS", "Sockets"] +git-tree-sha1 = "508457ed7a2afb432590247dc363fffc51f242fc" +uuid = "79c8b4cd-a41a-55fa-907c-fab5288e1383" +version = "0.5.1" + [[deps.AbstractAlgebra]] deps = ["GroupsCore", "InteractiveUtils", "LinearAlgebra", "MacroTools", "Preferences", "Random", "RandomExtensions", "SparseArrays", "Test"] git-tree-sha1 = "1bd8a536c949eb3de9b58042d57790ded6b70fa6" @@ -114,6 +120,12 @@ git-tree-sha1 = "70232f82ffaab9dc52585e0dd043b5e0c6b714f1" uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" version = "0.1.12" +[[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" @@ -349,6 +361,18 @@ git-tree-sha1 = "d1248fceea0b26493fd33e8e9e8c553270da03bd" uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" version = "0.2.5" +[[deps.FileIO]] +deps = ["Pkg", "Requires", "UUIDs"] +git-tree-sha1 = "299dc33549f68299137e51e6d49a13b5b1da9673" +uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +version = "1.16.1" + +[[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" @@ -440,6 +464,12 @@ git-tree-sha1 = "2150ff91a4b3c566ff020c0c56e3c70d51249a2a" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" version = "1.9.9" +[[deps.Highlights]] +deps = ["DocStringExtensions", "InteractiveUtils", "REPL"] +git-tree-sha1 = "0341077e8a6b9fc1c2ea5edc1e93a956d2aec0c7" +uuid = "eafb193a-b7ab-5a9e-9068-77385905fa72" +version = "0.5.2" + [[deps.HypergeometricFunctions]] deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] git-tree-sha1 = "ce7ea9cc5db29563b1fe20196b6d23ab3b111384" @@ -492,6 +522,12 @@ 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 = "5df8278ad24772c0c6dbbeb97b162ccf29ced2a9" +uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" +version = "0.4.32" + [[deps.JLLWrappers]] deps = ["Preferences"] git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1" @@ -510,6 +546,12 @@ git-tree-sha1 = "5b62d93f2582b09e469b3099d839c2d2ebf5066d" uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" version = "1.13.1" +[[deps.JobSchedulers]] +deps = ["Dates", "JLD2", "JSON", "Logging", "OrderedCollections", "Pipelines", "PrettyTables", "Printf", "Reexport", "Term", "Terming", "Test"] +git-tree-sha1 = "568c4fe4c1ae76ada68604c9a1ea6f76e6030104" +uuid = "eeff360b-c02d-44d3-ab26-4013c616a17e" +version = "0.8.1" + [[deps.JuliaFormatter]] deps = ["CSTParser", "CommonMark", "DataStructures", "Glob", "Pkg", "PrecompileTools", "Tokenize"] git-tree-sha1 = "60567b51bd9e1e19ae2fd8a54dcd6bc5994727f0" @@ -711,6 +753,11 @@ git-tree-sha1 = "964cb1a7069723727025ae295408747a0b36a854" uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" version = "1.3.0" +[[deps.MyterialColors]] +git-tree-sha1 = "01d8466fb449436348999d7c6ad740f8f853a579" +uuid = "1c23619d-4212-4747-83aa-717207fae70f" +version = "0.3.0" + [[deps.NLSolversBase]] deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" @@ -790,6 +837,12 @@ git-tree-sha1 = "4b2e829ee66d4218e0cef22c0a64ee37cf258c29" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" version = "2.7.1" +[[deps.Pipelines]] +deps = ["Dates", "FilePathsBase", "Logging", "OrderedCollections", "Printf", "Reexport", "Test", "UUIDs"] +git-tree-sha1 = "b870d8e0354361e38b0d9fc1997e96c299e948ae" +uuid = "ef544631-5c6f-4e9b-994c-12e7a4cd724c" +version = "0.10.4" + [[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" @@ -859,6 +912,12 @@ version = "0.5.3" 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.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] git-tree-sha1 = "6ec7ac8412e83d57e313393220879ede1740f9ee" @@ -1160,6 +1219,18 @@ deps = ["ArgTools", "SHA"] uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" version = "1.10.0" +[[deps.Term]] +deps = ["AbstractTrees", "CodeTracking", "Dates", "Highlights", "InteractiveUtils", "Logging", "Markdown", "MyterialColors", "OrderedCollections", "Parameters", "PrecompileTools", "ProgressLogging", "REPL", "Tables", "UUIDs", "Unicode", "UnicodeFun"] +git-tree-sha1 = "ffac67f6fbcbb32027d924b93ba91b7633af9220" +uuid = "22787eb5-b846-44ae-b979-8e399b8463ab" +version = "2.0.5" + +[[deps.Terming]] +deps = ["REPL", "Test"] +git-tree-sha1 = "9ef2648010c3a74ab4ea44a88e8640f0d1034d1f" +uuid = "5a1048b7-9ca6-4e8a-8e2e-1f932e78ac4e" +version = "0.2.6" + [[deps.Test]] deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" @@ -1221,6 +1292,12 @@ 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.Unitful]] deps = ["Dates", "LinearAlgebra", "Random"] git-tree-sha1 = "c4d2a349259c8eba66a00a540d550f122a3ab228" diff --git a/Project.toml b/Project.toml index 4f1e27d..aa90d6c 100644 --- a/Project.toml +++ b/Project.toml @@ -4,10 +4,14 @@ authors = ["Five Grant <5@fivegrant.com>"] version = "0.6.0" [deps] +AMQPClient = "79c8b4cd-a41a-55fa-907c-fab5288e1383" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" EasyConfig = "acab07b0-f158-46d4-8913-50acef6d41fe" HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3" JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" +JobSchedulers = "eeff360b-c02d-44d3-ab26-4013c616a17e" MathML = "abcecc63-2b08-419c-80c4-c63dca6fa478" ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" Oxygen = "df9a0d86-3283-4920-82dc-4555fc0d1d8b" +UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" diff --git a/paths.yaml b/paths.yaml deleted file mode 100644 index f7ab5e2..0000000 --- a/paths.yaml +++ /dev/null @@ -1,176 +0,0 @@ -/simulate: - post: - summary: Perform a simulation - operationId: simulateModel - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - engine: - type: string - enum: [SciML, CIEMSS] - example: CIEMSS - model_config_id: - type: string - example: "ba8da8d4-047d-11ee-be56" - timespan: - type: object - properties: - start: - type: integer - example: 0 - end: - type: integer - example: 0 - items: - type: integer - example: [0, 90] - extra: - description: optional extra system specific arguments for advanced use cases - type: object - required: - - engine - - model_config_id - - timespan - responses: - '200': - description: Simulation created successfully - content: - application/json: - schema: - type: object - properties: - simulation_id: - type: string - example: fc5d80e4-0483-11ee-be56 - -/calibrate: - post: - summary: Calibrate a model to data then simulate - description: Calibrate a model and perform a "fitting" simulation over the time range of the calibration dataset and a simulation of a time range specified in `timespan` if `timespan` is specified. The SciML engine allows for calibration without additional simulation; in that case `timespan` is left off the payload. - operationId: calibratesimulateModel - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - engine: - type: string - enum: [SciML, CIEMSS] - example: CIEMSS - model_config_id: - type: string - example: "c1cd941a-047d-11ee-be56" - dataset: - type: object - properties: - id: - type: string - example: "cd339570-047d-11ee-be55" - filename: - type: string - example: "dataset.csv" - mappings: - type: object - timespan: - type: object - properties: - start: - type: integer - example: 0 - end: - type: integer - example: 0 - extra: - description: optional extra system specific arguments for advanced use cases - type: object - required: - - engine - - model_config_id - - dataset_id - responses: - '200': - description: Calibration/simulation created successfully - content: - application/json: - schema: - type: object - properties: - simulation_id: - type: string - example: fc5d80e4-0483-11ee-be56 -/ensemble: - post: - summary: Perform an ensemble simulation - operationId: createEnsemble - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - engine: - type: string - enum: [SciML, CIEMSS] - example: CIEMSS - model_config_ids: - type: array - items: - type: string - example: ["ba8da8d4-047d-11ee-be56", "c1cd941a-047d-11ee-be56", "c4b9f88a-047d-11ee-be56"] - timespan: - type: object - properties: - start: - type: integer - example: 0 - end: - type: integer - example: 0 - extra: - description: optional extra system specific arguments for advanced use cases - type: object - required: - - engine - - model_config_id - - timespan - responses: - '200': - description: Ensemble created successfully - content: - application/json: - schema: - type: object - properties: - simulation_id: - type: string - example: fc5d80e4-0483-11ee-be56 - -/status/{simulation_id}: - get: - summary: Retrieve the status of a simulation - operationId: getStatus - parameters: - - name: simulation_id - in: path - required: true - schema: - type: string - example: fc5d80e4-0483-11ee-be56 - responses: - '200': - description: Status retrieved successfully - content: - application/json: - schema: - type: object - properties: - status: - type: string - enum: [queued, running, complete, error] diff --git a/src/SimulationService.jl b/src/SimulationService.jl index 24a249f..bd4c7ab 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -1,24 +1,55 @@ module SimulationService - -import DataFrames: DataFrame -using EasyConfig: EasyConfig +using AMQPClient: AMQPClient +using DataFrames: DataFrame +using Dates: Dates +using EasyConfig: Config using HTTP: HTTP +using JobSchedulers: JobSchedulers using JSON3: JSON3 using ModelingToolkit: @parameters, substitute, Differential, Num, @variables, ODESystem using Oxygen: Oxygen +using SciMLBase: SciMLBase +using UUIDs export start!, stop! +#-----------------------------------------------------------------------------# notes +# Example request to /operation/{op}: +# { +# "model_config_id": "22739963-0f82-4d6f-aecc-1082712ed299", +# "timespan": {"start":0, "end":90}, +# "engine": "sciml", +# "dataset": { +# "dataset_id": "adfasdf", +# "mappings": [], #optional column mappings... renames column headers +# "filename":"asdfa", +# } +# } + +#-----------------------------------------------------------------------------# __init__ +const rabbit_mq_channel = Ref{Any}() + +function __init__() + # RabbitMQ Channel + auth_params = Dict{String,Any}( + "MECHANISM" => "AMQPLAIN", + "LOGIN" => SIMSERVICE_RABBITMQ_LOGIN, + "PASSWORD" => SIMSERVICE_RABBITMQ_PASSWORD, + ) + + conn = AMQPClient.connection(; virtualhost="/", host="localhost", port=SIMSERVICE_RABBITMQ_PORT, auth_params) + rabbitmq_channel[] = AMQPClient.channel(conn, AMQPClient.UNUSED_CHANNEL, true) +end + #-----------------------------------------------------------------------------# start! function start!(; host=SIMSERVICE_HOST, port=SIMSERVICE_PORT, kw...) stop!() Threads.nthreads() > 1 || error("Server require `Thread.nthreads() > 1`. Start Julia via `julia --threads=auto`.") Oxygen.resetstate() Oxygen.@get "/" health - Oxygen.@post "/simulate" req -> simulate(process_request(req)) - Oxygen.@post "/calibrate" req -> calibrate(process_request(req)) - Oxygen.@post "/ensemble" req -> ensemble(process_request(req)) + Oxygen.@get "/status/{job_id}" req -> status(req, job_id) + Oxygen.@post "/operation/{operation}" req -> true # TODO Oxygen.serveparallel(; host, port, kw...) end @@ -32,7 +63,7 @@ end SIMSERVICE_HOST = get(ENV, "SIMSERVICE_HOST", "0.0.0.0") SIMSERVICE_PORT = parse(Int, get(ENV, "SIMSERVICE_PORT", "8000")) -# RabbitMQ +# RabbitMQ (host=localhost) SIMSERVICE_RABBITMQ_ENABLED = get(ENV, "SIMSERVICE_RABBITMQ_ENABLED", "false") == "true" SIMSERVICE_RABBITMQ_LOGIN = get(ENV, "SIMSERVICE_RABBITMQ_LOGIN", "guest") SIMSERVICE_RABBITMQ_PASSWORD = get(ENV, "SIMSERVICE_RABBITMQ_PASSWORD", "guest") @@ -44,111 +75,233 @@ SIMSERVICE_ENABLE_TDS = get(ENV, "SIMSERVICE_ENABLE_TDS", "true") == " SIMSERVICE_TDS_URL = get(ENV, "SIMSERVICE_TDS_URL", "http://localhost:8001") -#-----------------------------------------------------------------------------# S3 uploaders +#-----------------------------------------------------------------------------# utils JSON_HEADER = ["Content-Type" => "application/json"] -function get_upload_url(job_id::String, name::String, ext::String) - url = string(SIMSERVICE_TDS_URL, "/simulations/sciml-$job_id/upload-url?filename=$name.$ext") - res = HTTP.get(url, JSON_HEADER) - return JSON3.read(res.body).url -end +get_json(url::String)::JSON3.Object = JSON3.read(HTTP.get(url, JSON_HEADER).body) -# DataFrame -> CSV -# Other -> JSON -function upload(output, job_id::String; name::String="result") - if SIMSERVICE_ENABLE_TDS - return @warn "TDS is not enabled. `output::$(typeof(output))` will not be uploaded.))" +#--------------------------------------------------------------------------# Terrarium Data Service +# DataFrame saved as CSV +# Everything else saved as JSON +function tds_upload(x, job_id::String; name::String="result") + if !SIMSERVICE_ENABLE_TDS + return @warn "TDS is not enabled. `x::$(typeof(x))` will not be uploaded.))" end - ext = output isa DataFrame ? "csv" : "json" - body = output isa DataFrame ? CSV.write(output) : JSON3.write(output) - url = get_upload_url(job_id, name, ext) + ext = x isa DataFrame ? "csv" : "json" + body = x isa DataFrame ? CSV.write(x) : JSON3.write(x) + upload_url = "$SIMSERVICE_TDS_URL/simulations/sciml-$job_id/upload-url?filename=$name.$ext" + url = get_json(upload_url) HTTP.put(url, JSON_HEADER; body) return first(split(url, '?')) end +function tds_update_job(job_id::String, updated_fields::Dict{Symbol}) + uuid = gen_uuid(job_id) + response = nothing + remaining_retries = 10 # TODO(five)??: Set this with environment variable + while remaining_retries != 0 + remaining_retries -= 1 + sleep(2) + try + response = HTTP.get("$(settings["TDS_URL"])/simulations/$uuid", ["Content-Type" => "application/json"]) + break + catch exception + if isa(exception,HTTP.Exceptions.StatusError) && exception.status == 404 + response = nothing + else + throw(exception) + end + end + end + if isnothing(response) + throw("Job cannot finish because it does not exist in TDS") + end + body = response.body |> Dict ∘ JSON.read ∘ String + for field in updated_fields + body[field.first] = field.second + end + HTTP.put("$(settings["TDS_URL"])/simulations/$uuid", ["Content-Type" => "application/json"], body=JSON.write(body)) +end + #-----------------------------------------------------------------------------# health: "GET /" -function health(::HTTP.Request) - return (; status="ok", SIMSERVICE_RABBITMQ_ENABLED, SIMSERVICE_RABBITMQ_ROUTE) +health(::HTTP.Request) = (; status="ok", SIMSERVICE_RABBITMQ_ENABLED, SIMSERVICE_RABBITMQ_ROUTE) + +#-----------------------------------------------------------------------------# RabbitMQ +# Content sent to client as JSON3.write(content) +# If !SIMSERVICE_RABBITMQ_ENABLED, then just log the content +function publish_to_rabbitmq(content) + SIMSERVICE_RABBITMQ_ENABLED || return @info "publish_to_rabbitmq: $(JSON3.write(content)))" + json = Vector{UInt8}(codeunits(JSON3.write(content))) + message = AMQPClient.Message(json, content_type="application/json") + AMQPClient.basic_publish(rabbitmq_channel[], message; exchange="", routing_key=SIMSERVICE_RABBITMQ_ROUTE) +end +publish_to_rabbitmq(; kw...) = publish_to_rabbitmq(Dict(kw...)) + +#-----------------------------------------------------------------------------# IntermediateResults +# Publish intermediate results to RabbitMQ with at least `every` seconds inbetween callbacks +mutable struct IntermediateResults + last_callback::Dates.DateTime # Track the last time the callback was called + every::Dates.TimePeriod # Callback frequency e.g. `Dates.Second(5)` + job_id::String + + function IntermediateResults(job_id::String; every=Dates.Second(5)) + new(typemin(Dates.DateTime), every, job_id) + end +end + +function (o::IntermediateResults)(integrator) + if o.last_callback + o.every ≤ Dates.now() + o.last_callback = Dates.now() + (; iter, t, u, uprev) = integrator + publish_to_rabbitmq(; iter=iter, time=t, params=u, abserr=norm(u - uprev), job_id=o.jobid, + retcode=SciMLBase.check_error(integrator)) + end +end + +get_callback(job_id::String) = DiscreteCallback((args...) -> true, IntermediateResults(job_id)) + + +#-----------------------------------------------------------------------------# OperationRequest +### Example of `obj` inside an OperationRequest ### +# { +# "model_config_id": "22739963-0f82-4d6f-aecc-1082712ed299", +# "timespan": {"start":0, "end":90}, +# "engine": "sciml", +# "dataset": { +# "dataset_id": "adfasdf", +# "mappings": [], #optional column mappings... renames column headers +# "filename":"asdfa", +# } +# } + +# ASKEM Model Representation: https://github.com/DARPA-ASKEM/Model-Representations/blob/main/petrinet/petrinet_schema.json +struct OperationRequest{Operation} + obj::JSON3.Object # Untouched JSON from request body + model_config_ids::Vector{UUID} + amr::Vector{JSON3.Object} # ASKEM Model Representations + timespan::Tuple{Float64, Float64} + df::DataFrame # empty if !haskey(obj, :dataset) + job_id::String + + function OperationRequest(req::HTTP.Request) + obj = JSON3.read(req.body) + model_config_ids = get_model_config_ids(obj) + amr = map(id -> get_json("$SIMSERVICE_TDS_URL/model_configurations/$id"), model_config_ids) + timespan = get_timespan(obj) + df = get_df(obj) + operation = Symbol(split(req.url.path, "/")[end]) + job_id = "sciml-$(UUIDs.uuid4())" + + return new{operation}(obj, model_config_ids, amr, timespan, df, job_id) + end end -#-----------------------------------------------------------------------------# ModelRepresentation -struct ModelRepresentation - obj::JSON3.Object # Exact JSON object from the request - config::EasyConfig.Config # Like `obj` but with stuff filled in +function get_model_config_ids(obj::JSON3.Object) + if haskey(obj, :model_config_id) + return [UUID(obj.model_config_id)] + elseif haskey(obj, :model_config_ids) + return UUID.(obj.model_config_ids) + else + error("JSON request to have a `model_config_id` or `model_config_ids` key.") + end end -function ModelRepresentation(req::HTTP.Request) - obj = JSON3.read(req.body) - c = EasyConfig.Config(k => _get(Val(k), v) for (k, v) in pairs(obj)) - ModelRepresentation(obj, c) +function get_timespan(obj::JSON3.Object) + if haskey(obj, :timespan) + map(float, (obj.timespan.start, obj.timespan.end)) + else + @warn "JSON request doesn't contain `timespan`. Setting to (0.0, 100.0)." + (0.0, 100.0) + end end -# fallback to identity -_get(::Val, val) = val +function get_df(obj::JSON3.Object) + !haskey(obj, :dataset) && return DataFrame() + (; dataset_id, filename) = obj.dataset + data_url = string(SIMSERVICE_TDS_URL, "/datasets/$dataset_id/download-url?filename=$filename") + df = CSV.read(download(get_json(data_url).url), DataFrame) + rename!(df, Dict(obj.dataset.mappings)) + return df +end -# dataset -_get(::Val{:dataset}, val::String) = CSV.read(IOBuffer(val), DataFrame) +#-----------------------------------------------------------------------------# schedule +function Base.schedule(o::OperationRequest{T}) where {T} + if T ∉ [:simulate, :calibrate, :ensemble] + return Response(404, ["Content-Type" => "text/plain; charset=utf-8"], body="Operation $T not found.") + end + + body = JSON3.write((; simulation_id = o.job_id)) + return Response(201, ["Content-Type" => "application/json; charset=utf-8"]; body=body) + + # publish_hook = settings["RABBITMQ_ENABLED"] ? publish_to_rabbitmq : (_...) -> nothing + + # args = json(req, Dict{Symbol,Any}) + # context = Context( + # generate_id(), + # publish_hook, + # Symbol(operation), + # args + # ) + # prog = contextualize_prog(context) + # sim_run = Job(@task(prog(args))) + # sim_run.id = context.job_id + # submit!(sim_run) + # uuid = "sciml-" * string(UUID(sim_run.id)) + # Response( + # 201, + # ["Content-Type" => "application/json; charset=utf-8"], + # body=JSON.write("simulation_id" => uuid) + # ) + # end +end + +#-----------------------------------------------------------------------------# simulate +function run(o::OperationRequest{:simulate}) + sys = ode_system_from_amr(only(o.amr)) + callback = get_callback(o.job_id) + sol = solve(prob; progress = true, progress_steps = 1, callback) + return DataFrame(sol) +end -# models -_get(::Val{:models}, val) = _get.(Val{:model}, val) -# model -function _get(::Val{:model}, val) - return val - obj = JSON3.read(val) +function ode_system_from_amr(obj::JSON3.Object) model = obj.model ode = obj.semantics.ode t = only(@variables t) D = Differential(t) - statenames = [Symbol(s["id"]) for s in model["states"]] + statenames = [Symbol(s.id) for s in model.states] statevars = [only(@variables $s) for s in statenames] statefuncs = [only(@variables $s(t)) for s in statenames] # get parameter values and state initial values - paramnames = [Symbol(x["id"]) for x in ode["parameters"]] + paramnames = [Symbol(x.id) for x in ode.parameters] paramvars = [only(@parameters $x) for x in paramnames] - paramvals = [x["value"] for x in ode["parameters"]] + paramvals = [x.value for x in ode.parameters] sym_defs = paramvars .=> paramvals - initial_exprs = [MathML.parse_str(x["expression_mathml"]) for x in ode["initials"]] - initial_vals = map(x->substitute(x, sym_defs), initial_exprs) + initial_exprs = [MathML.parse_str(x.expression_mathml) for x in ode.initials] + initial_vals = map(x -> substitute(x, sym_defs), initial_exprs) # build equations from transitions and rate expressions - rates = Dict(Symbol(x["target"]) => MathML.parse_str(x["expression_mathml"]) for x in ode["rates"]) + rates = Dict(Symbol(x.target) => MathML.parse_str(x.expression_mathml) for x in ode.rates) eqs = Dict(s => Num(0) for s in statenames) - for tr in model["transitions"] - ratelaw = rates[Symbol(tr["id"])] - for s in tr["input"] + for tr in model.transitions + ratelaw = rates[Symbol(tr.id)] + for s in tr.input s = Symbol(s) eqs[s] = eqs[s] - ratelaw end - for s in tr["output"] + for s in tr.output s = Symbol(s) eqs[s] = eqs[s] + ratelaw end end - subst = Dict(zip(statevars, statefuncs)) - eqs = [D(statef) ~ substitute(eqs[state], subst) for (state, statef) in zip(statenames, statefuncs)] - - ODESystem(eqs, t, statefuncs, paramvars; defaults = [statefuncs .=> initial_vals; sym_defs], name=Symbol(obj["name"])) -end - - -#-----------------------------------------------------------------------------# simulate -function simulate(m::ModelRepresentation) - "TODO" -end - -#-----------------------------------------------------------------------------# calibrate -function calibrate(m::ModelRepresentation) - "TODO" -end + subst = Dict(statevars .=> statefuncs) + eqs = [D(statef) ~ substitute(eqs[state], subst) for (state, statef) in (statenames .=> statefuncs)] -#-----------------------------------------------------------------------------# ensemble -function ensemble(m::ModelRepresentation) - "TODO" + ODESystem(eqs, t, statefuncs, paramvars; defaults = [statefuncs .=> initial_vals; sym_defs], name=Symbol(obj.name)) end @@ -223,4 +376,4 @@ end # terminate() # end -end # module SimulationService +end # module From 1bc51c2b9685a54b24294319f22934745c5c5cd5 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Tue, 11 Jul 2023 00:05:43 -0400 Subject: [PATCH 08/31] test passing I think --- .github/workflows/julia-tests.yaml | 4 +- Manifest.toml | 285 +++++++++++++++++++++++++-- Project.toml | 12 +- src/Settings.jl | 71 ------- src/SimulationService.jl | 298 +++++++++++++++++------------ src/contracts/Available.jl | 70 ------- src/contracts/Interface.jl | 37 ---- src/contracts/ProblemInputs.jl | 87 --------- src/contracts/SystemInputs.jl | 30 --- src/operations/Operations.jl | 137 ------------- src/service/ArgIO.jl | 112 ----------- src/service/AssetManager.jl | 107 ----------- src/service/Execution.jl | 113 ----------- src/service/Queuing.jl | 55 ------ src/service/Service.jl | 12 -- test/ensemble.jl | 119 ------------ test/runtests.jl | 37 +++- test/sciml.jl | 58 ------ 18 files changed, 481 insertions(+), 1163 deletions(-) delete mode 100644 src/Settings.jl delete mode 100644 src/contracts/Available.jl delete mode 100644 src/contracts/Interface.jl delete mode 100644 src/contracts/ProblemInputs.jl delete mode 100644 src/contracts/SystemInputs.jl delete mode 100644 src/operations/Operations.jl delete mode 100644 src/service/ArgIO.jl delete mode 100644 src/service/AssetManager.jl delete mode 100644 src/service/Execution.jl delete mode 100644 src/service/Queuing.jl delete mode 100644 src/service/Service.jl delete mode 100644 test/ensemble.jl delete mode 100644 test/sciml.jl diff --git a/.github/workflows/julia-tests.yaml b/.github/workflows/julia-tests.yaml index 410ecd4..c84679d 100644 --- a/.github/workflows/julia-tests.yaml +++ b/.github/workflows/julia-tests.yaml @@ -15,7 +15,9 @@ jobs: - uses: actions/checkout@v2 - uses: julia-actions/setup-julia@v1 with: - version: '1.9.0' + version: '1.9' + env: + JULIA_NUM_THREADS: 2 - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 - uses: julia-actions/julia-processcoverage@v1 diff --git a/Manifest.toml b/Manifest.toml index 7b6b7ca..3fad001 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,7 +2,7 @@ julia_version = "1.9.2" manifest_format = "2.0" -project_hash = "e9ca95536fa37724ffbfa38e244074faf5ad3d31" +project_hash = "c402d690538fc75315d0bd02fb0cbfb2893c9ee1" [[deps.ADTypes]] git-tree-sha1 = "e58c18d2312749847a74f5be80bb0fa53da102bd" @@ -68,9 +68,27 @@ version = "7.4.11" 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 = "e047d3f758876fc984209b649399690e776a0b8f" +uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" +version = "1.0.10" + [[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" +[[deps.BandedMatrices]] +deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools", "SparseArrays"] +git-tree-sha1 = "206e78eb10c9aaee4e73962b1cbd0ecf688d4b49" +uuid = "aae01518-5342-5314-be14-df237901396f" +version = "0.17.30" + [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" @@ -90,6 +108,17 @@ git-tree-sha1 = "0c5f81f47bbbcf4aea7b2959135713459170798b" uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" version = "0.1.5" +[[deps.BoundaryValueDiffEq]] +deps = ["BandedMatrices", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "NLsolve", "Reexport", "SciMLBase", "SparseArrays"] +git-tree-sha1 = "ed8e837bfb3d1e3157022c9636ec1c722b637318" +uuid = "764a87c0-6b3e-53db-9096-fe964310641d" +version = "2.11.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 = "89e0654ed8c7aebad6d5ad235d6242c2d737a928" @@ -228,6 +257,12 @@ version = "1.0.0" deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" +[[deps.DelayDiffEq]] +deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "LinearAlgebra", "Logging", "OrdinaryDiffEq", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SimpleUnPack"] +git-tree-sha1 = "89f3fbfe78f9d116d1ed0721d65b0b2cf9b36169" +uuid = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb" +version = "5.42.0" + [[deps.DiffEqBase]] deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "DocStringExtensions", "EnumX", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces", "ZygoteRules"] git-tree-sha1 = "62c41421bd0facc43dfe4e9776135fe21fd1e1b9" @@ -262,6 +297,18 @@ git-tree-sha1 = "63b6be7b396ad395825f3cc48c56b53bfaf7e69d" uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" version = "2.26.1" +[[deps.DiffEqNoiseProcess]] +deps = ["DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "Optim", "PoissonRandom", "QuadGK", "Random", "Random123", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "Requires", "ResettableStacks", "SciMLBase", "StaticArraysCore", "Statistics"] +git-tree-sha1 = "26594c6ec8416fb6ef3ed8828fd29c98b10bfaad" +uuid = "77a26b50-5914-5dd7-bc55-306e6241c503" +version = "5.17.2" + + [deps.DiffEqNoiseProcess.extensions] + DiffEqNoiseProcessReverseDiffExt = "ReverseDiff" + + [deps.DiffEqNoiseProcess.weakdeps] + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + [[deps.DiffResults]] deps = ["StaticArraysCore"] git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" @@ -274,6 +321,12 @@ git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" version = "1.15.1" +[[deps.DifferentialEquations]] +deps = ["BoundaryValueDiffEq", "DelayDiffEq", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "JumpProcesses", "LinearAlgebra", "LinearSolve", "NonlinearSolve", "OrdinaryDiffEq", "Random", "RecursiveArrayTools", "Reexport", "SciMLBase", "SteadyStateDiffEq", "StochasticDiffEq", "Sundials"] +git-tree-sha1 = "1cfe0178410e1bb4b14058c537d0f347eb9d95dc" +uuid = "0c46a032-eb83-5123-abaf-570d42b7fbaa" +version = "7.8.0" + [[deps.Distances]] deps = ["LinearAlgebra", "SparseArrays", "Statistics", "StatsAPI"] git-tree-sha1 = "49eba9ad9f7ead780bfb7ee319f962c811c6d3b2" @@ -327,12 +380,6 @@ git-tree-sha1 = "8b84876e31fa39479050e2d3395c4b3b210db8b0" uuid = "7c1d4256-1411-5781-91ec-d7bc3513ac07" version = "0.4.6" -[[deps.EasyConfig]] -deps = ["JSON3", "OrderedCollections", "StructTypes"] -git-tree-sha1 = "8a5a451290aaa8bece132d16e557fae478ae55e0" -uuid = "acab07b0-f158-46d4-8913-50acef6d41fe" -version = "0.1.14" - [[deps.EnumX]] git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" @@ -344,6 +391,12 @@ git-tree-sha1 = "e90caa41f5a86296e014e148ee061bd6c3edec96" uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" version = "0.1.9" +[[deps.ExponentialUtilities]] +deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "Printf", "SnoopPrecompile", "SparseArrays", "libblastrampoline_jll"] +git-tree-sha1 = "fb7dbef7d2631e2d02c49e2750f7447648b0ec9b" +uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" +version = "1.24.0" + [[deps.ExprTools]] git-tree-sha1 = "c1d06d129da9f55715c6c212866f5b1bddc5fa00" uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" @@ -361,6 +414,17 @@ git-tree-sha1 = "d1248fceea0b26493fd33e8e9e8c553270da03bd" uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" version = "0.2.5" +[[deps.FastClosures]] +git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" +uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" +version = "0.3.2" + +[[deps.FastLapackInterface]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "b12f05108e405dadcc2aff0008db7f831374e051" +uuid = "29a986be-02c6-4525-aec4-84b980013641" +version = "2.0.0" + [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] git-tree-sha1 = "299dc33549f68299137e51e6d49a13b5b1da9673" @@ -435,6 +499,12 @@ git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" uuid = "46192b85-c4d5-4398-a991-12ede77f4527" version = "0.1.5" +[[deps.GenericSchur]] +deps = ["LinearAlgebra", "Printf"] +git-tree-sha1 = "fb69b2a645fa69ba5f474af09221b9308b160ce6" +uuid = "c145ed77-6b09-5dd9-b285-bf645a82121e" +version = "0.5.3" + [[deps.Glob]] git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" uuid = "c27321d9-0574-5035-807b-f59d2c89b15c" @@ -460,9 +530,9 @@ version = "0.4.0" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "2150ff91a4b3c566ff020c0c56e3c70d51249a2a" +git-tree-sha1 = "2ee0eb8746650f498ed9a109383aa399b2a0c515" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.9.9" +version = "1.9.10" [[deps.Highlights]] deps = ["DocStringExtensions", "InteractiveUtils", "REPL"] @@ -470,6 +540,12 @@ git-tree-sha1 = "0341077e8a6b9fc1c2ea5edc1e93a956d2aec0c7" uuid = "eafb193a-b7ab-5a9e-9068-77385905fa72" version = "0.5.2" +[[deps.HostCPUFeatures]] +deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] +git-tree-sha1 = "d38bd0d9759e3c6cfa19bdccc314eccf8ce596cc" +uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" +version = "0.1.15" + [[deps.HypergeometricFunctions]] deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] git-tree-sha1 = "ce7ea9cc5db29563b1fe20196b6d23ab3b111384" @@ -560,9 +636,21 @@ version = "1.0.34" [[deps.JumpProcesses]] deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "FunctionWrappers", "Graphs", "LinearAlgebra", "Markdown", "PoissonRandom", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays", "TreeViews", "UnPack"] -git-tree-sha1 = "50bd271af7f6cc23be7d24c8c4804809bb5d05ae" +git-tree-sha1 = "9eae998d01d31e4fc7d79dda8a6b7695d872eee8" uuid = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5" -version = "9.6.3" +version = "9.6.4" + +[[deps.KLU]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] +git-tree-sha1 = "764164ed65c30738750965d55652db9c94c59bfe" +uuid = "ef3ab10e-7fda-4108-b977-705223b18434" +version = "0.4.0" + +[[deps.Krylov]] +deps = ["LinearAlgebra", "Printf", "SparseArrays"] +git-tree-sha1 = "0356a64062656b0cbb43c504ad5de338251f4bda" +uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" +version = "0.9.1" [[deps.LaTeXStrings]] git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" @@ -606,6 +694,12 @@ git-tree-sha1 = "1370f8202dac30758f3c345f9909b97f53d87d3f" uuid = "50d2b5c4-7a5e-59d5-8109-a42b560f39c0" version = "0.15.1" +[[deps.LevyArea]] +deps = ["LinearAlgebra", "Random", "SpecialFunctions"] +git-tree-sha1 = "56513a09b8e0ae6485f34401ea9e2f31357958ec" +uuid = "2d8b4e74-eb68-11e8-0fb9-d5eb67b50637" +version = "1.0.0" + [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" @@ -644,6 +738,26 @@ version = "7.2.0" deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +[[deps.LinearSolve]] +deps = ["ArrayInterface", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "LinearAlgebra", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "SuiteSparse", "UnPack"] +git-tree-sha1 = "93f3a0d88c8f5498bed3ad37ddd844b939fdf899" +uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" +version = "2.3.0" + + [deps.LinearSolve.extensions] + LinearSolveCUDAExt = "CUDA" + LinearSolveHYPREExt = "HYPRE" + LinearSolveIterativeSolversExt = "IterativeSolvers" + LinearSolveKrylovKitExt = "KrylovKit" + LinearSolvePardisoExt = "Pardiso" + + [deps.LinearSolve.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" + IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" + KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" + Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" + [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] git-tree-sha1 = "c3ce8e7420b3a6e071e0fe4745f5d4300e37b13f" @@ -669,6 +783,17 @@ git-tree-sha1 = "cedb76b37bc5a6c702ade66be44f831fa23c681e" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" version = "1.0.0" +[[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 = "24e6c5697a6c93b5e10af2acf95f0b2e15303332" +uuid = "bdcacae8-1622-11e9-2a5c-532679323890" +version = "0.12.163" +weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] + + [deps.LoopVectorization.extensions] + ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] + SpecialFunctionsExt = "SpecialFunctions" + [[deps.MIMEs]] git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" @@ -780,6 +905,18 @@ version = "1.0.2" uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" +[[deps.NonlinearSolve]] +deps = ["ArrayInterface", "DiffEqBase", "EnumX", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "PrecompileTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "UnPack"] +git-tree-sha1 = "2a7f28c62eb2c16b9c375c38f664cdcf22313cf5" +uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" +version = "1.8.0" + +[[deps.OffsetArrays]] +deps = ["Adapt"] +git-tree-sha1 = "2ac17d29c523ce1cd38e27785a7d23024853a4bb" +uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" +version = "1.12.10" + [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" @@ -798,9 +935,9 @@ version = "1.4.1" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "1aa4b74f80b01c6bc2b89992b861b5f210e665b5" +git-tree-sha1 = "cae3153c7f6cf3f069a853883fd1919a6e5bab5b" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "1.1.21+0" +version = "3.0.9+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -808,11 +945,23 @@ 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 = "e3a6546c1577bfd701771b477b794a52949e7594" +uuid = "429524aa-4258-5aef-a3af-852621145aeb" +version = "1.7.6" + [[deps.OrderedCollections]] git-tree-sha1 = "d321bf2de576bf25ec4d3e4360faca399afca282" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" version = "1.6.0" +[[deps.OrdinaryDiffEq]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLNLSolve", "SciMLOperators", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] +git-tree-sha1 = "4f1ab68f236fa846d0c30718c6b29c1665b019c0" +uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +version = "6.53.3" + [[deps.Oxygen]] deps = ["Dates", "HTTP", "JSON3", "MIMEs", "Sockets"] git-tree-sha1 = "dca31e833aafb6277e5aff9fdcb5029be5045255" @@ -872,6 +1021,12 @@ git-tree-sha1 = "a6062fe4063cdafe78f4a0a81cfffb89721b30e7" uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" version = "1.4.2" +[[deps.PositiveFactorizations]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" +uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" +version = "0.2.4" + [[deps.PreallocationTools]] deps = ["Adapt", "ArrayInterface", "ForwardDiff", "Requires"] git-tree-sha1 = "f739b1b3cc7b9949af3b35089931f2b58c289163" @@ -932,6 +1087,12 @@ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" deps = ["SHA", "Serialization"] 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.RandomExtensions]] deps = ["Random", "SparseArrays"] git-tree-sha1 = "062986376ce6d394b23d5d90f01d81426113a3c9" @@ -966,6 +1127,12 @@ version = "2.38.5" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" +[[deps.RecursiveFactorization]] +deps = ["LinearAlgebra", "LoopVectorization", "Polyester", "SnoopPrecompile", "StrideArraysCore", "TriangularSolve"] +git-tree-sha1 = "9088515ad915c99026beb5436d0a09cd8c18163e" +uuid = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" +version = "0.2.18" + [[deps.Reexport]] git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" uuid = "189a3867-3050-52da-a836-e630ba90ab69" @@ -977,6 +1144,12 @@ git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" uuid = "ae029012-a4dd-5104-9daa-d747884805df" version = "1.3.0" +[[deps.ResettableStacks]] +deps = ["StaticArrays"] +git-tree-sha1 = "256eeeec186fa7f26f2801732774ccf277f05db9" +uuid = "ae5879a3-cd67-5da8-be7f-38c6eb64a37b" +version = "1.1.1" + [[deps.Rmath]] deps = ["Random", "Rmath_jll"] git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" @@ -1004,12 +1177,24 @@ git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" uuid = "94e857df-77ce-4151-89e5-788b33177be4" version = "0.1.0" +[[deps.SLEEFPirates]] +deps = ["IfElse", "Static", "VectorizationBase"] +git-tree-sha1 = "4b8586aece42bee682399c4c4aee95446aa5cd19" +uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" +version = "0.6.39" + [[deps.SciMLBase]] deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] git-tree-sha1 = "a22a12db91f6a921e28a7ae39a9546eed93fd92e" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" version = "1.93.0" +[[deps.SciMLNLSolve]] +deps = ["DiffEqBase", "LineSearches", "NLsolve", "Reexport", "SciMLBase"] +git-tree-sha1 = "9dfc8e9e3d58c0c74f1a821c762b5349da13eccf" +uuid = "e9a6253c-8580-4d32-9898-8661bb511710" +version = "0.1.8" + [[deps.SciMLOperators]] deps = ["ArrayInterface", "DocStringExtensions", "Lazy", "LinearAlgebra", "Setfield", "SparseArrays", "StaticArraysCore", "Tricks"] git-tree-sha1 = "b1fe33c9984c6789b58419e62e7a2b92f9aa813e" @@ -1058,6 +1243,11 @@ git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" version = "0.9.4" +[[deps.SimpleUnPack]] +git-tree-sha1 = "58e6353e72cde29b90a69527e56df1b5c3d8c437" +uuid = "ce78b400-467f-4804-87d8-8f486da07d0a" +version = "1.1.0" + [[deps.SnoopPrecompile]] deps = ["Preferences"] git-tree-sha1 = "e760a70afdcd461cf01a575947738d359234665c" @@ -1077,6 +1267,24 @@ version = "1.1.1" deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +[[deps.SparseDiffTools]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "Reexport", "Requires", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "VertexSafeGraphs"] +git-tree-sha1 = "4c1a57bcbc0b795fbfdc2009e70f9c2fd2815bfe" +uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" +version = "2.4.1" + + [deps.SparseDiffTools.extensions] + SparseDiffToolsZygoteExt = "Zygote" + + [deps.SparseDiffTools.weakdeps] + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.Sparspak]] +deps = ["Libdl", "LinearAlgebra", "Logging", "OffsetArrays", "Printf", "SparseArrays", "Test"] +git-tree-sha1 = "342cf4b449c299d8d1ceaf00b7a49f4fbc7940e7" +uuid = "e56a9233-b9d6-4f03-8d0f-1825330902ac" +version = "0.3.9" + [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] git-tree-sha1 = "7beb031cf8145577fbccacd94b8a8f4ce78428d3" @@ -1098,15 +1306,12 @@ deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "Requires", "Snoo git-tree-sha1 = "33040351d2403b84afce74dae2e22d3f5b18edcb" uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" version = "1.4.0" +weakdeps = ["OffsetArrays", "StaticArrays"] [deps.StaticArrayInterface.extensions] StaticArrayInterfaceOffsetArraysExt = "OffsetArrays" StaticArrayInterfaceStaticArraysExt = "StaticArrays" - [deps.StaticArrayInterface.weakdeps] - OffsetArrays = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - [[deps.StaticArrays]] deps = ["LinearAlgebra", "Random", "StaticArraysCore"] git-tree-sha1 = "0da7e6b70d1bb40b1ace3b576da9ea2992f76318" @@ -1153,11 +1358,23 @@ version = "1.3.0" ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" +[[deps.SteadyStateDiffEq]] +deps = ["DiffEqBase", "DiffEqCallbacks", "LinearAlgebra", "NLsolve", "Reexport", "SciMLBase"] +git-tree-sha1 = "6e801d0da4c81d9cd6a05d97340404f9892fba85" +uuid = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f" +version = "1.16.0" + +[[deps.StochasticDiffEq]] +deps = ["Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqNoiseProcess", "DocStringExtensions", "FillArrays", "FiniteDiff", "ForwardDiff", "JumpProcesses", "LevyArea", "LinearAlgebra", "Logging", "MuladdMacro", "NLsolve", "OrdinaryDiffEq", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] +git-tree-sha1 = "ccf744171b3a83879158a4b3f3a430c1bc585123" +uuid = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" +version = "6.61.1" + [[deps.StrideArraysCore]] deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] -git-tree-sha1 = "26316a9a43d32ecd0c5b342cb36dc86305c73e53" +git-tree-sha1 = "f02eb61eb5c97b48c153861c72fbbfdddc607e06" uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" -version = "0.4.16" +version = "0.4.17" [[deps.StringManipulation]] git-tree-sha1 = "46da2434b41f41ac3594ee9816ce5541c6096123" @@ -1179,6 +1396,18 @@ deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" version = "5.10.1+6" +[[deps.Sundials]] +deps = ["CEnum", "DataStructures", "DiffEqBase", "Libdl", "LinearAlgebra", "Logging", "PrecompileTools", "Reexport", "SciMLBase", "SparseArrays", "Sundials_jll"] +git-tree-sha1 = "4931f9013c53128337ce8df54a2d38c79fe58d4c" +uuid = "c3572dad-4567-51f8-b174-8c6c989267f4" +version = "4.19.3" + +[[deps.Sundials_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "OpenBLAS_jll", "Pkg", "SuiteSparse_jll"] +git-tree-sha1 = "04777432d74ec5bc91ca047c9e0e0fd7f81acdb6" +uuid = "fb77eaff-e24c-56d4-86b1-d163f2edb164" +version = "5.2.1+0" + [[deps.SymbolicIndexingInterface]] deps = ["DocStringExtensions"] git-tree-sha1 = "f8ab052bfcbdb9b48fad2c80c873aa0d0344dfe5" @@ -1264,6 +1493,12 @@ git-tree-sha1 = "8d0d7a3fe2f30d6a7f833a5f19f7c7a5b396eae6" uuid = "a2a6695c-b41b-5b7d-aed9-dbfdeacea5d7" version = "0.3.0" +[[deps.TriangularSolve]] +deps = ["CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "LoopVectorization", "Polyester", "Static", "VectorizationBase"] +git-tree-sha1 = "31eedbc0b6d07c08a700e26d31298ac27ef330eb" +uuid = "d5829a12-d9aa-46ab-831f-fb7c9ab06edf" +version = "0.1.19" + [[deps.Tricks]] git-tree-sha1 = "aadb748be58b492045b4f56166b5188aa63ce549" uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" @@ -1318,6 +1553,18 @@ git-tree-sha1 = "d5f4ec8c22db63bd3ccb239f640e895cfde145aa" uuid = "a7c27f48-0311-42f6-a7f8-2c11e75eb415" version = "0.1.2" +[[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.VertexSafeGraphs]] +deps = ["Graphs"] +git-tree-sha1 = "8351f8d73d7e880bfc042a8b6922684ebeafb35c" +uuid = "19fa3120-7c27-5ec5-8db8-b0b0aa330d6f" +version = "0.2.0" + [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"] git-tree-sha1 = "93c41695bc1c08c46c5899f4fe06d6ead504bb73" diff --git a/Project.toml b/Project.toml index aa90d6c..38c72fa 100644 --- a/Project.toml +++ b/Project.toml @@ -7,11 +7,21 @@ version = "0.6.0" AMQPClient = "79c8b4cd-a41a-55fa-907c-fab5288e1383" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" -EasyConfig = "acab07b0-f158-46d4-8913-50acef6d41fe" +DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3" JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" JobSchedulers = "eeff360b-c02d-44d3-ab26-4013c616a17e" MathML = "abcecc63-2b08-419c-80c4-c63dca6fa478" ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" Oxygen = "df9a0d86-3283-4920-82dc-4555fc0d1d8b" +SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[compat] +julia = "1.9" + +[extras] +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[targets] +test = ["Test"] diff --git a/src/Settings.jl b/src/Settings.jl deleted file mode 100644 index a18fc39..0000000 --- a/src/Settings.jl +++ /dev/null @@ -1,71 +0,0 @@ -""" -Project-wide environment settings -""" -module Settings - -""" -The current settings for the project -""" -settings = Dict{String, Any}() - -""" -Add a setting from the enviroment -""" -macro setting(name::Symbol, type::Union{DataType, Type}, default_value::Any) - fixed_default = isa(default_value, Symbol) ? eval(default_value) : default_value - if !isnothing(fixed_default) - @assert typeof(fixed_default) == type - end - - env_key = String(name) - - function grab_env() - if in(env_key, keys(ENV)) - if type == String - return ENV[env_key] - else - return parse(type, ENV[env_key]) - end - else - if !isnothing(fixed_default) - ENV[env_key] = fixed_default - return fixed_default - else - throw("Variable not in environment and no default provided!") - end - end - end - :(settings[$env_key] = ($grab_env)()) -end - -""" -Coerce `type` from `Symbol` to `Type` -""" -macro setting(name::Symbol, type::Symbol, default_value::Any) - :(@setting(name, eval(type), fixed_default)) -end - -""" -Set an option while inferring the type -""" -macro setting(name::Symbol, default_value::Any) - type = typeof(default_value) - :(@setting($name, $type, $default_value)) -end - -""" -Set a string option -""" -macro setting(name::Symbol) - :(@setting($name, String, nothing)) -end - -@setting RABBITMQ_ENABLED false -@setting RABBITMQ_LOGIN "guest" -@setting RABBITMQ_PASSWORD "guest" -@setting RABBITMQ_ROUTE "terarium" -@setting RABBITMQ_PORT 5672 -@setting ENABLE_TDS true -@setting TDS_URL "http://localhost:8001" - -end # module Settings diff --git a/src/SimulationService.jl b/src/SimulationService.jl index bd4c7ab..a257871 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -1,21 +1,22 @@ module SimulationService -using AMQPClient: AMQPClient -using DataFrames: DataFrame -using Dates: Dates -using EasyConfig: Config -using HTTP: HTTP -using JobSchedulers: JobSchedulers -using JSON3: JSON3 -using ModelingToolkit: @parameters, substitute, Differential, Num, @variables, ODESystem -using Oxygen: Oxygen -using SciMLBase: SciMLBase -using UUIDs +import AMQPClient +import DataFrames: DataFrame +import Dates +import DifferentialEquations +import HTTP +import JobSchedulers +import JSON3 +import MathML +import ModelingToolkit: @parameters, substitute, Differential, Num, @variables, ODESystem, ODEProblem +import Oxygen +import SciMLBase: SciMLBase, solve +import UUIDs export start!, stop! #-----------------------------------------------------------------------------# notes -# Example request to /operation/{op}: +# Example request to /operation/{operation}: # { # "model_config_id": "22739963-0f82-4d6f-aecc-1082712ed299", # "timespan": {"start":0, "end":90}, @@ -27,34 +28,46 @@ export start!, stop! # } # } +# ASKEM Model Representation: https://github.com/DARPA-ASKEM/Model-Representations/blob/main/petrinet/petrinet_schema.json + +# pre-rewrite commit: https://github.com/DARPA-ASKEM/simulation-service/commit/8e4dfc515fd6ddf53067fa535e37450daf1cd63c + #-----------------------------------------------------------------------------# __init__ -const rabbit_mq_channel = Ref{Any}() +const rabbit_mq_channel = Ref{Any}() # TODO: replace Any with what AMQPClient.channel returns function __init__() - # RabbitMQ Channel - auth_params = Dict{String,Any}( - "MECHANISM" => "AMQPLAIN", - "LOGIN" => SIMSERVICE_RABBITMQ_LOGIN, - "PASSWORD" => SIMSERVICE_RABBITMQ_PASSWORD, - ) - - conn = AMQPClient.connection(; virtualhost="/", host="localhost", port=SIMSERVICE_RABBITMQ_PORT, auth_params) - rabbitmq_channel[] = AMQPClient.channel(conn, AMQPClient.UNUSED_CHANNEL, true) + if Threads.nthreads() == 1 + @warn "SimulationService.jl requires `Threads.nthreads() > 1`. Use e.g. `julia --threads=auto`." + end + + # RabbitMQ Channel to reuse + if SIMSERVICE_RABBITMQ_ENABLED + auth_params = Dict{String,Any}( + "MECHANISM" => "AMQPLAIN", + "LOGIN" => SIMSERVICE_RABBITMQ_LOGIN, + "PASSWORD" => SIMSERVICE_RABBITMQ_PASSWORD, + ) + conn = AMQPClient.connection(; virtualhost="/", host="localhost", port=SIMSERVICE_RABBITMQ_PORT, auth_params) + rabbitmq_channel[] = AMQPClient.channel(conn, AMQPClient.UNUSED_CHANNEL, true) + end end #-----------------------------------------------------------------------------# start! function start!(; host=SIMSERVICE_HOST, port=SIMSERVICE_PORT, kw...) - stop!() Threads.nthreads() > 1 || error("Server require `Thread.nthreads() > 1`. Start Julia via `julia --threads=auto`.") + stop!() # Stop server if it's already running + JobSchedulers.scheduler_start() + JobSchedulers.set_scheduler(max_cpu=0.5, max_mem=0.5, update_second=0.05, max_job=5000) Oxygen.resetstate() Oxygen.@get "/" health - Oxygen.@get "/status/{job_id}" req -> status(req, job_id) - Oxygen.@post "/operation/{operation}" req -> true # TODO - Oxygen.serveparallel(; host, port, kw...) + Oxygen.@get "/status/{job_id}" (req,job_id) -> "TODO: Not Implemented yet." + Oxygen.@post "/operation/{op}" operation + Oxygen.serveparallel(; host, port, async=true, kw...) end #-----------------------------------------------------------------------------# stop! function stop!() + JobSchedulers.scheduler_stop() Oxygen.terminate() end @@ -70,9 +83,10 @@ SIMSERVICE_RABBITMQ_PASSWORD = get(ENV, "SIMSERVICE_RABBITMQ_PASSWORD", "gues SIMSERVICE_RABBITMQ_ROUTE = get(ENV, "SIMSERVICE_RABBITMQ_ROUTE", "terarium") SIMSERVICE_RABBITMQ_PORT = parse(Int, get(ENV, "SIMSERVICE_RABBITMQ_PORT", "5672")) -# Terrarium Data Service +# Terrarium Data Service (TDS) SIMSERVICE_ENABLE_TDS = get(ENV, "SIMSERVICE_ENABLE_TDS", "true") == "true" SIMSERVICE_TDS_URL = get(ENV, "SIMSERVICE_TDS_URL", "http://localhost:8001") +SIMSERVICE_TDS_UPDATE_RETRIES = parse(Int, get(ENV, "SIMSERVICE_TDS_RETRIES", "10")) #-----------------------------------------------------------------------------# utils @@ -80,6 +94,47 @@ JSON_HEADER = ["Content-Type" => "application/json"] get_json(url::String)::JSON3.Object = JSON3.read(HTTP.get(url, JSON_HEADER).body) +# TODO: more tests. This is an important function. +function ode_system_from_amr(obj::JSON3.Object) + model = obj.model + ode = obj.semantics.ode + + t = only(@variables t) + D = Differential(t) + + statenames = [Symbol(s.id) for s in model.states] + statevars = [only(@variables $s) for s in statenames] + statefuncs = [only(@variables $s(t)) for s in statenames] + + # get parameter values and state initial values + paramnames = [Symbol(x.id) for x in ode.parameters] + paramvars = [only(@parameters $x) for x in paramnames] + paramvals = [x.value for x in ode.parameters] + sym_defs = paramvars .=> paramvals + initial_exprs = [MathML.parse_str(x.expression_mathml) for x in ode.initials] + initial_vals = map(x -> substitute(x, sym_defs), initial_exprs) + + # build equations from transitions and rate expressions + rates = Dict(Symbol(x.target) => MathML.parse_str(x.expression_mathml) for x in ode.rates) + eqs = Dict(s => Num(0) for s in statenames) + for tr in model.transitions + ratelaw = rates[Symbol(tr.id)] + for s in tr.input + s = Symbol(s) + eqs[s] = eqs[s] - ratelaw + end + for s in tr.output + s = Symbol(s) + eqs[s] = eqs[s] + ratelaw + end + end + + subst = Dict(statevars .=> statefuncs) + eqs = [D(statef) ~ substitute(eqs[state], subst) for (state, statef) in (statenames .=> statefuncs)] + + ODESystem(eqs, t, statefuncs, paramvars; defaults = [statefuncs .=> initial_vals; sym_defs], name=Symbol(obj.name)) +end + #--------------------------------------------------------------------------# Terrarium Data Service # DataFrame saved as CSV # Everything else saved as JSON @@ -96,31 +151,22 @@ function tds_upload(x, job_id::String; name::String="result") end function tds_update_job(job_id::String, updated_fields::Dict{Symbol}) - uuid = gen_uuid(job_id) - response = nothing - remaining_retries = 10 # TODO(five)??: Set this with environment variable - while remaining_retries != 0 - remaining_retries -= 1 - sleep(2) + if !SIMSERVICE_ENABLE_TDS + return @warn "TDS is not enabled. Job $job_id will not be updated: $update_fields." + end + obj = nothing + url = "$SIMSERVICE_TDS_URL/simulations/$job_id" # joshday: rename simulations => jobs? + for _ in 1:SIMSERVICE_TDS_UPDATE_RETRIES try - response = HTTP.get("$(settings["TDS_URL"])/simulations/$uuid", ["Content-Type" => "application/json"]) - break - catch exception - if isa(exception,HTTP.Exceptions.StatusError) && exception.status == 404 - response = nothing - else - throw(exception) - end + obj = get_json(url) + catch ex + ex isa HTTP.Exceptions.StatusError && ex.status == 404 ? continue : rethrow(ex) end end - if isnothing(response) - throw("Job cannot finish because it does not exist in TDS") - end - body = response.body |> Dict ∘ JSON.read ∘ String - for field in updated_fields - body[field.first] = field.second - end - HTTP.put("$(settings["TDS_URL"])/simulations/$uuid", ["Content-Type" => "application/json"], body=JSON.write(body)) + isnothing(obj) && error("Cannot update. Job $job_id does not exist in TDS.") + + body = JSON3.write(merge(Dict(obj), updated_fields)) + HTTP.put(url, JSON_HEADER; body=body) end #-----------------------------------------------------------------------------# health: "GET /" @@ -161,8 +207,8 @@ end get_callback(job_id::String) = DiscreteCallback((args...) -> true, IntermediateResults(job_id)) -#-----------------------------------------------------------------------------# OperationRequest -### Example of `obj` inside an OperationRequest ### +#-----------------------------------------------------------------------------# Operations +### Example of `obj` inside an OperationRequest # { # "model_config_id": "22739963-0f82-4d6f-aecc-1082712ed299", # "timespan": {"start":0, "end":90}, @@ -174,14 +220,26 @@ get_callback(job_id::String) = DiscreteCallback((args...) -> true, IntermediateR # } # } -# ASKEM Model Representation: https://github.com/DARPA-ASKEM/Model-Representations/blob/main/petrinet/petrinet_schema.json -struct OperationRequest{Operation} + +# An Operation requires: +# 1) an Operation(::OperationRequest) constructor +# 2) a solve(::Operation; callback) method +# +# An Operation's fields should be separate from any request-specific things for ease of testing. +abstract type Operation end + + +#-----------------------------------------------------------------------------# OperationRequest +# An OperationRequest contains all the information required to run an Operation + +struct OperationRequest obj::JSON3.Object # Untouched JSON from request body - model_config_ids::Vector{UUID} - amr::Vector{JSON3.Object} # ASKEM Model Representations + model_config_ids::Vector{UUIDs.UUID} + amr::Vector{JSON3.Object} # ASKEM Model Representations associated with model_config_ids timespan::Tuple{Float64, Float64} df::DataFrame # empty if !haskey(obj, :dataset) - job_id::String + job_id::String # auto-generated in constructor + operation::String # e.g. "simulate" function OperationRequest(req::HTTP.Request) obj = JSON3.read(req.body) @@ -189,10 +247,10 @@ struct OperationRequest{Operation} amr = map(id -> get_json("$SIMSERVICE_TDS_URL/model_configurations/$id"), model_config_ids) timespan = get_timespan(obj) df = get_df(obj) - operation = Symbol(split(req.url.path, "/")[end]) job_id = "sciml-$(UUIDs.uuid4())" + operation = split(req.url.path, ",")[end] - return new{operation}(obj, model_config_ids, amr, timespan, df, job_id) + new(obj, model_config_ids, amr, timespan, df, job_id, operation) end end @@ -218,92 +276,78 @@ end function get_df(obj::JSON3.Object) !haskey(obj, :dataset) && return DataFrame() (; dataset_id, filename) = obj.dataset - data_url = string(SIMSERVICE_TDS_URL, "/datasets/$dataset_id/download-url?filename=$filename") + data_url = "$SIMSERVICE_TDS_URL/datasets/$dataset_id/download-url?filename=$filename" df = CSV.read(download(get_json(data_url).url), DataFrame) rename!(df, Dict(obj.dataset.mappings)) return df end -#-----------------------------------------------------------------------------# schedule -function Base.schedule(o::OperationRequest{T}) where {T} - if T ∉ [:simulate, :calibrate, :ensemble] - return Response(404, ["Content-Type" => "text/plain; charset=utf-8"], body="Operation $T not found.") +#-----------------------------------------------------------------------------# POST /operation/{operation} +function operation(req::HTTP.Request, op::String) + try + # Get T <: Operation from request + T = get_operation_type(op) + op_req = OperationRequest(req) + op = T(op_req) + callback = get_callback(op_req.job_id) + + # schedule job and update status when finished + tds_update_job(o.job_id, Dict(:status => "running", :start_time => time())) + t = @task function () + output = solve(op; callback) + prepare_output(output, op_req) + tds_update_job(o.job_id, Dict(:status => "complete", :completed_time => time())) + end + sim_run = JobSchedulers.Job(t) + sim_run.id = o.job_id + JobSchedulers.submit!(sim_run) + + body = JSON3.write((; simulation_id = o.job_id)) + return Response(201, ["Content-Type" => "application/json; charset=utf-8"]; body=body) + catch ex + return Response(500, ["Content-Type" => "application/json; charset=utf-8"]; body=JSON3.write((; error=string(ex)))) end - - body = JSON3.write((; simulation_id = o.job_id)) - return Response(201, ["Content-Type" => "application/json; charset=utf-8"]; body=body) - - # publish_hook = settings["RABBITMQ_ENABLED"] ? publish_to_rabbitmq : (_...) -> nothing - - # args = json(req, Dict{Symbol,Any}) - # context = Context( - # generate_id(), - # publish_hook, - # Symbol(operation), - # args - # ) - # prog = contextualize_prog(context) - # sim_run = Job(@task(prog(args))) - # sim_run.id = context.job_id - # submit!(sim_run) - # uuid = "sciml-" * string(UUID(sim_run.id)) - # Response( - # 201, - # ["Content-Type" => "application/json; charset=utf-8"], - # body=JSON.write("simulation_id" => uuid) - # ) - # end end -#-----------------------------------------------------------------------------# simulate -function run(o::OperationRequest{:simulate}) - sys = ode_system_from_amr(only(o.amr)) - callback = get_callback(o.job_id) - sol = solve(prob; progress = true, progress_steps = 1, callback) - return DataFrame(sol) +function get_operation_type(op::String) + d = Dict(lowercase(string(T)) => T for T in subtypes(Operation)) + return d[op] end +# joshday: What else needs to be handled by prepare_output? +function prepare_output(df::DataFrame, o::OperationRequest; name="0") + foreach(name -> rename!(df, name => replace(name, "(t)" => "")), names(df)) + SIMSERVICE_ENABLE_TDS ? tds_upload(df, o.job_id; name=name) : CSV.write(df) +end -function ode_system_from_amr(obj::JSON3.Object) - model = obj.model - ode = obj.semantics.ode - - t = only(@variables t) - D = Differential(t) - - statenames = [Symbol(s.id) for s in model.states] - statevars = [only(@variables $s) for s in statenames] - statefuncs = [only(@variables $s(t)) for s in statenames] - # get parameter values and state initial values - paramnames = [Symbol(x.id) for x in ode.parameters] - paramvars = [only(@parameters $x) for x in paramnames] - paramvals = [x.value for x in ode.parameters] - sym_defs = paramvars .=> paramvals - initial_exprs = [MathML.parse_str(x.expression_mathml) for x in ode.initials] - initial_vals = map(x -> substitute(x, sym_defs), initial_exprs) +#-----------------------------------------------------------------------------# simulate +struct Simulate <: Operation + sys::ODESystem + timespan::Tuple{Float64, Float64} +end - # build equations from transitions and rate expressions - rates = Dict(Symbol(x.target) => MathML.parse_str(x.expression_mathml) for x in ode.rates) - eqs = Dict(s => Num(0) for s in statenames) - for tr in model.transitions - ratelaw = rates[Symbol(tr.id)] - for s in tr.input - s = Symbol(s) - eqs[s] = eqs[s] - ratelaw - end - for s in tr.output - s = Symbol(s) - eqs[s] = eqs[s] + ratelaw - end - end +Simulate(o::OperationRequest) = Simulate(ode_system_from_amr(only(o.amr)), o.timespan) - subst = Dict(statevars .=> statefuncs) - eqs = [D(statef) ~ substitute(eqs[state], subst) for (state, statef) in (statenames .=> statefuncs)] +function solve(op::Simulate; kw...) + prob = ODEProblem(op.sys, [], op.timespan, saveat=1) + sol = solve(prob; progress = true, progress_steps = 1, kw...) + DataFrame(sol) +end - ODESystem(eqs, t, statefuncs, paramvars; defaults = [statefuncs .=> initial_vals; sym_defs], name=Symbol(obj.name)) +#-----------------------------------------------------------------------------# calibrate +struct Calibrate <: Operation + # TODO end +Calibrate(o::OperationRequest) = error("TODO") +solve(o::Calibrate; callback) = error("TODO") +#-----------------------------------------------------------------------------# ensemble +struct Ensemble <: Operation + # TODO +end +Ensemble(o::OperationRequest) = error("TODO") +solve(o::Ensemble; callback) = error("TODO") # import AlgebraicPetri: LabelledPetriNet # import Symbolics diff --git a/src/contracts/Available.jl b/src/contracts/Available.jl deleted file mode 100644 index 7dcead7..0000000 --- a/src/contracts/Available.jl +++ /dev/null @@ -1,70 +0,0 @@ -""" -Operations interface for the simulation service -""" -module Available - -import CSV -import AlgebraicPetri: LabelledPetriNet, AbstractPetriNet -import DataFrames: DataFrame - -include("./ProblemInputs.jl"); import .ProblemInputs: conversions_for_valid_inputs -include("./SystemInputs.jl"); import .SystemInputs: Context -include("../operations/Operations.jl"); import .Operations -include("../Settings.jl"); import .Settings: settings - -export available_operations - -available_operations = Dict{String, Function}() - -""" -Retrieve internal atomic operations -""" -function get_operation(operation::Symbol) - if in(operation, names(Operations; all=false, imported=true)) - return getfield(Operations, operation) - else - return nothing - end -end - -function simulate(; - model, - timespan=(0.0, 100.0)::Tuple{Float64,Float64}, - context -) - Dict("result" => get_operation(:simulate)(;model=model, timespan=timespan, context)) -end - -available_operations["simulate"] = simulate - -function calibrate_then_simulate(; - model, - dataset::DataFrame, - timespan::Union{Nothing, Tuple{Float64, Float64}} = nothing, - context, -) - results = Dict{String, Any}() - calibrated_params = get_operation(:calibrate)(;model=model, dataset=dataset, context=context) - results["parameters"] = calibrated_params - if in(NaN, values(calibrated_params)) - return results - end - for (sym, val) in calibrated_params - model.defaults[sym] = val - end - tmin, tmax = (dataset.timestep[1], dataset.timestep[end]) - results["simulation"] = get_operation(:simulate)(;model=model, timespan=(tmin, tmax), context=context) - if isnothing(timespan) - return results - end - results["extra-simulation"] = get_operation(:simulate)(;model=model, timespan=timespan, context=context) - results -end - -available_operations["calibrate"] = calibrate_then_simulate - - - - - -end # module Available diff --git a/src/contracts/Interface.jl b/src/contracts/Interface.jl deleted file mode 100644 index 1f97d3a..0000000 --- a/src/contracts/Interface.jl +++ /dev/null @@ -1,37 +0,0 @@ -""" -SciML Operations interface for the simulation service -""" -module Interface - -import CSV - -include("./ProblemInputs.jl"); import .ProblemInputs: conversions_for_valid_inputs -include("./SystemInputs.jl"); import .SystemInputs: Context -include("./Available.jl"); import .Available: available_operations -include("../operations/Operations.jl"); import .Operations -include("../Settings.jl"); import .Settings: settings - -export use_operation, available_operations, conversions_for_valid_inputs, Context - -""" -Return an operation wrapped with necessary handlers -""" -function use_operation(context::Context) - operation = available_operations[string(context.operation)] - - method = collect(methods(operation))[1] - inputs = ccall(:jl_uncompress_argnames, Vector{Symbol}, (Any,), method.slot_syms)[2:end] - - - # NOTE: This runs inside the job so we can't use it to validate on request ATM - function coerced_operation(arglist::Dict{Symbol, Any}) - # TODO(five): Fail properly on extra params - fixed_args = Dict( - name => conversions_for_valid_inputs[name](arglist[name]) - for name in inputs if name != :context - ) - operation(;fixed_args..., context=context) - end -end - -end # module Interface diff --git a/src/contracts/ProblemInputs.jl b/src/contracts/ProblemInputs.jl deleted file mode 100644 index 8034c5b..0000000 --- a/src/contracts/ProblemInputs.jl +++ /dev/null @@ -1,87 +0,0 @@ -""" -User-provided, problem-specific inputs -""" -module ProblemInputs - -import AlgebraicPetri: PropertyLabelledPetriNet, LabelledPetriNet, AbstractPetriNet -import Catlab.CategoricalAlgebra: parse_json_acset -import ModelingToolkit: @parameters, substitute, Differential, Num, @variables, ODESystem -import DataFrames: DataFrame -import CSV -import JSON -import MathML - -export conversions_for_valid_inputs - -""" -Transform string into dataframe before it is used as input -""" -coerce_dataset(val::String) = CSV.read(IOBuffer(val), DataFrame) - -""" -Act as identity since the value is already coerced -""" -coerce_dataset(val::DataFrame) = val - -""" -Transform payload in ASKEM model rep into an ODESystem -""" -function coerce_model(val) - obj = JSON.Parser.parse(val) - model = obj["model"] - ode = obj["semantics"]["ode"] - - t = only(@variables t) - D = Differential(t) - - statenames = [Symbol(s["id"]) for s in model["states"]] - statevars = [only(@variables $s) for s in statenames] - statefuncs = [only(@variables $s(t)) for s in statenames] - - # get parameter values and state initial values - paramnames = [Symbol(x["id"]) for x in ode["parameters"]] - paramvars = [only(@parameters $x) for x in paramnames] - paramvals = [x["value"] for x in ode["parameters"]] - sym_defs = paramvars .=> paramvals - initial_exprs = [MathML.parse_str(x["expression_mathml"]) for x in ode["initials"]] - initial_vals = map(x->substitute(x, sym_defs), initial_exprs) - - # build equations from transitions and rate expressions - rates = Dict(Symbol(x["target"]) => MathML.parse_str(x["expression_mathml"]) for x in ode["rates"]) - eqs = Dict(s => Num(0) for s in statenames) - for tr in model["transitions"] - ratelaw = rates[Symbol(tr["id"])] - for s in tr["input"] - s = Symbol(s) - eqs[s] = eqs[s] - ratelaw - end - for s in tr["output"] - s = Symbol(s) - eqs[s] = eqs[s] + ratelaw - end - end - - subst = Dict(zip(statevars, statefuncs)) - eqs = [D(statef) ~ substitute(eqs[state], subst) for (state, statef) in zip(statenames, statefuncs)] - - ODESystem(eqs, t, statefuncs, paramvars; defaults = [statefuncs .=> initial_vals; sym_defs], name=Symbol(obj["name"])) -end - -""" -Coerce timespan -""" -coerce_timespan(val) = !isnothing(val) ? Tuple{Float64,Float64}(val) : nothing - -""" -Inputs converted from payload to arguments expanded in operations. -""" -conversions_for_valid_inputs = Dict{Symbol,Function}( - :model => coerce_model, - :models => val -> coerce_model.(val), - :timespan => coerce_timespan, - :params => (val) -> Dict{String,Float64}(val), - :initials => (val) -> Dict{String,Float64}(val), - :dataset => coerce_dataset, -) - -end # module ProblemInputs diff --git a/src/contracts/SystemInputs.jl b/src/contracts/SystemInputs.jl deleted file mode 100644 index dba521c..0000000 --- a/src/contracts/SystemInputs.jl +++ /dev/null @@ -1,30 +0,0 @@ -""" -System provided information that is made available to operations -""" -module SystemInputs - -export Context - -struct Context - job_id::Int64 - interactivity_hook::Function - operation::Symbol - raw_args - function Context(job_id::Int64, interactivity_hook::Function, operation::Symbol, raw_args) - new(job_id, interactivity_hook, operation, deepcopy(raw_args)) - end -end - -function Base.iterate(context::Context, state=nothing) - if isnothing(state) - state = Set(fieldnames(Context)) - end - unused = intersect(Set(fieldnames(Context)), state) - if isempty(unused) - return nothing - end - chosen_field = pop!(unused) - (chosen_field=>getfield(context, chosen_field), unused) -end - -end # module SystemInputs \ No newline at end of file diff --git a/src/operations/Operations.jl b/src/operations/Operations.jl deleted file mode 100644 index 865e840..0000000 --- a/src/operations/Operations.jl +++ /dev/null @@ -1,137 +0,0 @@ -""" -SciML Operation definitions -""" -module Operations - -import AlgebraicPetri: LabelledPetriNet, AbstractPetriNet -import DataFrames: DataFrame, names -import DifferentialEquations: solve, DiscreteCallback -import ModelingToolkit: remake, ODESystem, ODEProblem -import Symbolics: Num, getname, @variables, substitute -import SymbolicIndexingInterface: states, parameters -import EasyModelAnalysis -import SciMLBase - -using LinearAlgebra: norm -using Dates: Dates, DateTime, now - -# import MathML - -# NOTE: Operations exposed to the rest of the Simulation Service -export simulate, calibrate, ensemble - - -#-----------------------------------------------------------------------------# utils - -# Transform model representation into a SciML ODEProblem -function to_prob(sys, tspan) - ODEProblem(sys, [], tspan, saveat=1) -end - -# Separate keys and values -unzip(d::Dict) = (collect(keys(d)), collect(values(d))) - -# Unzip a collection of pairs -unzip(ps) = first.(ps), last.(ps) - - -# Transform list of args into Symbolics variables -function symbolize_args(incoming_values, sys_vars) - pairs = collect(incoming_values) - ks, values = unzip(pairs) - symbols = Symbol.(ks) - vars_as_symbols = getname.(sys_vars) - symbols_to_vars = Dict(vars_as_symbols .=> sys_vars) - Dict( - [ - symbols_to_vars[vars_as_symbols[findfirst(x -> x == symbol, vars_as_symbols)]] - for symbol in symbols - ] .=> values - ) -end - - -# Generate data and timestep list from a dataframe -function select_data(df::DataFrame) - data = Dict( - key => df[!, key] - for key in names(df) if key != "timestep" - ) - df[!, "timestep"], data -end - -#-----------------------------------------------------------------------------# IntermediateReulsts callback -mutable struct IntermediateResults - last_callback::DateTime # Track the last time the callback was called - every::Dates.TimePeriod # Callback frequency e.g. `Dates.Second(5)` - context # ::Union{Nothing, Context} (context.interactivity_hook sends Dict to frontend via RabbitMQ) -end -IntermediateResults(context; every=Dates.Second(5)) = IntermediateResults(typemin(DateTime), every, context) - -intermediate_results_to_rabbitmq(integrator) = Dict( - :iter => integrator.iter, - :time => integrator.t, - :params => integrator.u, - :abserr => norm(integrator.u - integrator.uprev), - :retcode => Symbol(SciMLBase.check_error(integrator)), -) - -function (o::IntermediateResults)(integrator) - if o.last_callback + o.every ≤ now() - o.last_callback = now() - d = intermediate_results_to_rabbitmq(integrator) - if isnothing(o.context) - @info "IntermediateResults: $(NamedTuple(d))" - else - d[:job_id] = context.job_id - context.interactivity_hook(d) - end - end -end - -#-----------------------------------------------------------------------------# simulate -function simulate(; model::ODESystem, timespan::Tuple{Float64,Float64}=(0.0, 100.0), context=nothing) - prob = to_prob(model, timespan) - callback = DiscreteCallback((args...) -> true, IntermediateResults(context)) - sol = solve(prob; progress = true, progress_steps = 1, callback) - DataFrame(sol) -end - -#-----------------------------------------------------------------------------# calibrate -function calibrate(; model, dataset::DataFrame, context=nothing) - timesteps, data = select_data(dataset) - prob = to_prob(model, extrema(timesteps)) - p = Vector{Pair{Num, Float64}}([Num(param) => model.defaults[param] for param in parameters(model)]) - @show p - data = symbolize_args(data, states(model)) - fitp = EasyModelAnalysis.datafit(prob, p, timesteps, data) - @info fitp - # DataFrame(fitp) - fitp -end - -#-----------------------------------------------------------------------------# ensemble -function ensemble(; models::AbstractArray{AbstractPetriNet}, timespan::Tuple{Float64, Float64} = (0.0, 100.0), context=nothing) - throw("ENSEMBLE IS NOT YET IMPLEMENTED") -end - - -# joshday: what is this function? -"long running functions like global_datafit and sensitivity wrappers will need to be refactored to share callback info incrementally" -function _global_datafit(; model::LabelledPetriNet, - parameter_bounds::Dict{String,Tuple{Float64,Float64}}, - params::Dict{String,Float64}, - initials::Dict{String,Float64}, - t::Vector{Number}, - data::Dict{String,Vector{Float64}} -)::DataFrame - ks, vs = unzip(parameter_bounds) - @assert all(issorted.(vs)) - prob = to_prob(model, params, initials, extrema(t)) - sys = prob.f.sys - p = symbolize_args(params, parameters(sys)) # this ends up being a second call to symbolize_args 🤷 - fitp = global_datafit(prob, collect(p), t, data) - DataFrame(fitp) -end - -end # module Operations diff --git a/src/service/ArgIO.jl b/src/service/ArgIO.jl deleted file mode 100644 index fc3feb0..0000000 --- a/src/service/ArgIO.jl +++ /dev/null @@ -1,112 +0,0 @@ -""" -Provide external awareness / service-related side-effects to SciML operations -""" -module ArgIO - -import Symbolics -import DataFrames: rename!, transform!, DataFrame, ByRow -import CSV -import HTTP: Request -import JSON3 as JSON - -include("../Settings.jl"); import .Settings: settings -include("./AssetManager.jl"); import .AssetManager: fetch_dataset, fetch_model, update_simulation, upload - -export prepare_input, prepare_output - - -# """ -# Transform requests into arguments to be used by operation - -# Optionally, IDs are hydrated with the corresponding entity from TDS. -# """ -function prepare_input(args; context...) - if settings["ENABLE_TDS"] - update_simulation(context[:job_id], Dict([:status=>"running", :start_time => time()])) - end - if in(:timespan, keys(args)) - args[:timespan] = (args[:timespan]["start"], args[:timespan]["end"]) - end - if in(:model_config_id, keys(args)) - args[:model] = fetch_model(args[:model_config_id]) - end - if in(:dataset, keys(args)) && !isa(args[:dataset], String) - args[:dataset] = fetch_dataset(args[:dataset]["id"], args[:dataset]["filename"], get(args[:dataset], "mappings", Dict())) - end - if in(:model_config_ids, keys(args)) - args[:models] = fetch_model.(map(string, args[:model_ids])) - end - if !in(:timespan, keys(args)) - args[:timespan] = nothing - end - if in(:extra, keys(args)) - for (key, value) in Dict(args[:extra]) - args[Symbol(key)] = value - end - end - args -end - -# """ -# Generate a `prepare_input` function that is already contextualized -# """ -function prepare_input(context) - function contextualized_prepare_input(args) - prepare_input(args; context...) - end -end - -# """ -# Normalize the header of the resulting dataframe and return a CSV - -# Optionally, the CSV is saved to TDS instead an the coreresponding ID is returned. -# """ -function prepare_output(dataframe::DataFrame; name="0", context...) - stripped_names = names(dataframe) .=> (r -> replace(r, "(t)"=>"")).(names(dataframe)) - rename!(dataframe, stripped_names) - if !settings["ENABLE_TDS"] - io = IOBuffer() - # TODO(five): Write to remote server - CSV.write(io, dataframe) - return String(take!(io)) - else - return upload(dataframe, context[:job_id]; name=name) - end -end - -# """ -# Coerces NaN values to nothing for each parameter -# """ -function prepare_output(params::Vector{Pair{Symbolics.Num, Float64}}; name="0", context...) - nan_to_nothing(value) = isnan(value) ? nothing : value - fixed_params = Dict(key => nan_to_nothing(value) for (key, value) in params) - if settings["ENABLE_TDS"] - return upload(fixed_params, context[:job_id]; name=name) - end -end - - -# """ -# Coerces NaN values to nothing for each parameter -# """ -function prepare_output(results::Dict{String}; context...) - if settings["ENABLE_TDS"] - urls = [] - for (name, value) in results - append!(urls, [prepare_output(value; context..., name=name)]) - end - update_simulation(context[:job_id], Dict([:status => "complete", :result_files => urls, :completed_time => time()])) - end -end - -# """ -# Generate a `prepare_output` function that is already contextualized -# """ -function prepare_output(context) - function contextualized_prepare_output(arg) - prepare_output(arg; context...) - end -end - - -end diff --git a/src/service/AssetManager.jl b/src/service/AssetManager.jl deleted file mode 100644 index 03daa6c..0000000 --- a/src/service/AssetManager.jl +++ /dev/null @@ -1,107 +0,0 @@ -""" -Asset fetching from TDS -""" -module AssetManager - -import DataFrames: rename!, DataFrame -import CSV, Downloads, HTTP -import OpenAPI.Clients: Client -import JSON3 as JSON -import UUIDs: UUID -include("../Settings.jl"); import .Settings: settings - -export fetch_dataset, fetch_model, update_simulation, upload - -""" -Generate UUID with prefix -""" -function gen_uuid(job_id) - "sciml-" * string(UUID(job_id)) -end - -""" -Return model JSON as string from TDS by ID -""" -function fetch_model(model_id::String) - response = HTTP.get("$(settings["TDS_URL"])/model_configurations/$model_id", ["Content-Type" => "application/json"]) - body = response.body |> JSON.read ∘ String - JSON.write(body.configuration) -end - -""" -Return csv from TDS by ID -""" -function fetch_dataset(dataset_id::String, filename::String, mappings::Dict=Dict()) - # TODO(five): Select name dynamicially - url = "$(settings["TDS_URL"])/datasets/$dataset_id/download-url?filename=$filename" - response = HTTP.get(url, ["Content-Type" => "application/json"]) - body = response.body |> JSON.read ∘ String - io = IOBuffer() - Downloads.download(body.url, io) - seekstart(io) - dataframe = CSV.read(io, DataFrame) - for (from, to) in mappings rename!(dataframe, Symbol(from)=>Symbol(to)) end - dataframe -end - -""" -Report the job as completed -""" -function update_simulation(job_id::Int64, updated_fields::Dict{Symbol}) - uuid = gen_uuid(job_id) - response = nothing - remaining_retries = 10 # TODO(five)??: Set this with environment variable - while remaining_retries != 0 - remaining_retries -= 1 - sleep(2) - try - response = HTTP.get("$(settings["TDS_URL"])/simulations/$uuid", ["Content-Type" => "application/json"]) - break - catch exception - if isa(exception,HTTP.Exceptions.StatusError) && exception.status == 404 - response = nothing - else - throw(exception) - end - end - end - if isnothing(response) - throw("Job cannot finish because it does not exist in TDS") - end - body = response.body |> Dict ∘ JSON.read ∘ String - for field in updated_fields - body[field.first] = field.second - end - HTTP.put("$(settings["TDS_URL"])/simulations/$uuid", ["Content-Type" => "application/json"], body=JSON.write(body)) -end - -""" -Upload a CSV to S3/MinIO -""" -function upload(output::DataFrame, job_id; name="result") - uuid = gen_uuid(job_id) - response = HTTP.get("$(settings["TDS_URL"])/simulations/$uuid/upload-url?filename=$name.csv", ["Content-Type" => "application/json"]) - # TODO(five): Stream so there isn't duplication - io = IOBuffer() - CSV.write(io, output) - seekstart(io) - url = JSON.read(response.body)[:url] - HTTP.put(url, ["Content-Type" => "application/json"], body = take!(io)) - bare_url = split(url, "?")[1] - bare_url -end - - -""" -Upload a JSON to S3/MinIO -""" -function upload(output::Dict, job_id; name="result") - uuid = gen_uuid(job_id) - response = HTTP.get("$(settings["TDS_URL"])/simulations/$uuid/upload-url?filename=$name.json", ["Content-Type" => "application/json"]) - url = JSON.read(response.body)[:url] - HTTP.put(url, ["Content-Type" => "application/json"], body = JSON.write(output)) - bare_url = split(url, "?")[1] - bare_url -end - -end # module AssetManager diff --git a/src/service/Execution.jl b/src/service/Execution.jl deleted file mode 100644 index be9e3a0..0000000 --- a/src/service/Execution.jl +++ /dev/null @@ -1,113 +0,0 @@ -""" -Manage jobs -""" -module Execution - -import HTTP: Request, Response -import JSON3 as JSON -import Oxygen: json -import JobSchedulers: submit!, job_query, result, generate_id, Job, JobSchedulers -import UUIDs: UUID - -include("../contracts/Interface.jl"); import .Interface: available_operations, use_operation, Context -include("./AssetManager.jl"); import .AssetManager: update_simulation -include("./ArgIO.jl"); import .ArgIO: prepare_input, prepare_output -include("./Queuing.jl"); import .Queuing: publish_to_rabbitmq -include("../Settings.jl"); import .Settings: settings - -export make_deterministic_run, retrieve_job - -SCHEDULER_TO_API_STATUS_MAP = Dict( - JobSchedulers.QUEUING => :queued, - JobSchedulers.RUNNING => :running, - JobSchedulers.DONE => :complete, - JobSchedulers.FAILED => :error, - JobSchedulers.CANCELLED => :cancelled, -) - -""" -Generate the task to run with the correct context -""" -function contextualize_prog(context) - function prog(args) - try - (prepare_output(context) ∘ use_operation(context) ∘ prepare_input(context))(args) - catch exception - if settings["ENABLE_TDS"] - update_simulation(context.job_id, Dict([:status=>"error"])) - end - throw(exception) - end - end -end - -""" -Schedule a sim run given an operation -""" -function make_deterministic_run(req::Request, operation::String) - # TODO(five): Spawn remote workers and run jobs on them - if !in(operation, keys(available_operations)) - return Response( - 404, - ["Content-Type" => "text/plain; charset=utf-8"], - body="Operation not found" - ) - end - - publish_hook = settings["RABBITMQ_ENABLED"] ? publish_to_rabbitmq : (_...) -> nothing - - args = json(req, Dict{Symbol,Any}) - context = Context( - generate_id(), - publish_hook, - Symbol(operation), - args - ) - prog = contextualize_prog(context) - sim_run = Job(@task(prog(args))) - sim_run.id = context.job_id - submit!(sim_run) - uuid = "sciml-" * string(UUID(sim_run.id)) - Response( - 201, - ["Content-Type" => "application/json; charset=utf-8"], - body=JSON.write("simulation_id" => uuid) - ) -end - - -""" -Get status of sim -""" -function retrieve_job(_, uuid::String, element::String) - id = Int64(UUID(split(uuid, "sciml-")[2]).value) - job = job_query(id) - if isnothing(job) - return Response( - 404, - ["Content-Type" => "text/plain; charset=utf-8"], - body="Job does not exist" - ) - end - if element == "status" - return Dict("status" => SCHEDULER_TO_API_STATUS_MAP[job.state]) - elseif element == "result" - if job.state == :done - return result(job) - else - return Response( - 400, - ["Content-Type" => "text/plain; charset=utf-8"], - body="Job has not completed" - ) - end - else - return Response( - 404, - ["Content-Type" => "text/plain; charset=utf-8"], - body="Element not found" - ) - end -end - -end # module Execution diff --git a/src/service/Queuing.jl b/src/service/Queuing.jl deleted file mode 100644 index a4714fa..0000000 --- a/src/service/Queuing.jl +++ /dev/null @@ -1,55 +0,0 @@ -""" -RabbitMQ Integration -""" -module Queuing - -import Logging: AbstractLogger, LogLevel -import Logging -import AMQPClient: amqps_configure, basic_publish, channel, connection, Message, AMQPS_DEFAULT_PORT, UNUSED_CHANNEL -import JSON3 as JSON - -include("../Settings.jl"); import .Settings: settings - -""" -Connect to channel -""" -function get_channel() - conn = connection(; - virtualhost="/", - host="localhost", - port=settings["RABBITMQ_PORT"], - auth_params=Dict{String, Any}("MECHANISM"=>"AMQPLAIN", "LOGIN"=>settings["RABBITMQ_LOGIN"], "PASSWORD"=>settings["RABBITMQ_PASSWORD"]), - #amqps=amqps_configure() - ) - channel(conn, UNUSED_CHANNEL, true) -end - -""" -Publish JSON to RabbitMQ -""" -function publish_to_rabbitmq(content) - chan = get_channel() # TODO(five): Don't recreate for each call - json = convert(Vector{UInt8}, codeunits(JSON.write(content))) - message = Message(json, content_type="application/json") - # TODO(five): Regen channel - basic_publish(chan, message; exchange="", routing_key=settings["RABBITMQ_ROUTE"]) -end - -""" -Logger that calls an arbitrary hook on a message -""" -struct MQLogger <: AbstractLogger - publish_hook::Function -end - -""" -MQLogger preloaded with RabbitMQ publishing -""" -MQLogger() = MQLogger(publish_to_rabbitmq) - -Logging.shouldlog(::MQLogger, args...; kwargs...) = true -Logging.min_enabled_level(::MQLogger) = LogLevel(0) -Logging.handle_message(logger::MQLogger, level, message, args...; kwargs...) = logger.publish_hook(message) -Logging.catch_exceptions(::MQLogger) = true - -end # module Queuing diff --git a/src/service/Service.jl b/src/service/Service.jl deleted file mode 100644 index 167f604..0000000 --- a/src/service/Service.jl +++ /dev/null @@ -1,12 +0,0 @@ -module Service - -import Reexport: @reexport -include("../Settings.jl") - -include("./AssetManager.jl") -include("./ArgIO.jl") -include("./Queuing.jl") -include("./Execution.jl") -@reexport using .ArgIO, .AssetManager, .Queuing, .Execution - -end # module Service diff --git a/test/ensemble.jl b/test/ensemble.jl deleted file mode 100644 index 885dd73..0000000 --- a/test/ensemble.jl +++ /dev/null @@ -1,119 +0,0 @@ - -dfc = CSV.read("cases.csv", DataFrame) -dfd = CSV.read("deaths.csv", DataFrame) -dfh = CSV.read("hosp.csv", DataFrame) -function calibration_data(dfc, dfd, dfh; use_hosp=false) - - us_ = dfc[dfc.location.=="US", :] - usd_ = dfd[dfd.location.=="US", :] - ush_ = dfh[dfh.location.=="US", :] - - rename!(us_, :value => :cases) - rename!(usd_, :value => :deaths) - rename!(ush_, :value => :hosp) - - if use_hosp - d_ = innerjoin(us_, usd_, ush_, on=:date, makeunique=true) - d = d_[:, [:date, :cases, :deaths, :hosp]] - else - d_ = innerjoin(us_, usd_, on=:date, makeunique=true) - d = d_[:, [:date, :cases, :deaths]] - end - - us_ = d - sort!(us_, :date) - us = deepcopy(us_) - # us[!, :unix] = datetime2unix.(DateTime.(us.date)) - insertcols!(us, 1, :unix => datetime2unix.(DateTime.(us.date))) - # us -end -covidhub = calibration_data(dfc, dfh, dfd, use_hosp=true) -fitdata = covidhub[1:20, [:t, :cases, :deaths, :hosp]] -jdata = objecttable(fitdata) -write("fitdata.json", jdata) - -# todo global_datafit -sir_fn = "/Users/anand/.julia/dev/simulation-scheduler/examples/sir.json" -sird_fn = "/Users/anand/.julia/dev/simulation-scheduler/examples/sird.json" -sirh_fn = "/Users/anand/.julia/dev/simulation-scheduler/examples/sirh.json" -sirhd_fn = "/Users/anand/.julia/dev/simulation-scheduler/examples/sirhd.json" -pns = sir, sird, sirh, sirhd = [read_json_acset(T, fn) for fn in (sir_fn, sird_fn, sirh_fn, sirhd_fn)] - -syss = sys1, sys2, sys3, sys4 = ODESystem.(pns) - -strat_fn = "/Users/anand/.julia/dev/ASKEM_Evaluation_Staging/docs/src/Scenario3/sirhd_renew_vax.json" -sp = read_json_acset(LabelledPetriNet, strat_fn) -@which ODESystem(sp) -st_sys = ODESystem(sp) -st_sts = states(st_sys) -st_ps = parameters(st_sys) - -# this section demonstrates the difficulty of quickly building observed maps from stratified petrinets - -strat_st_vecs = eval.(Meta.parse.(String.(Symbolics.getname.(st_sts)))) -vsts = st_sts[findall(==("V"), last.(strat_st_vecs))] -usts = st_sts[findall(==("U"), last.(strat_st_vecs))] -ists = st_sts[findall(==("I"), first.(strat_st_vecs))] - -sidarthe = ODESystem(petri) -@unpack Susceptible, Infected, Diagnosed, Ailing, Recognized, Threatened, Healed, Extinct = sidarthe -S, I, D, A, R, T, H, E = Susceptible, Infected, Diagnosed, Ailing, Recognized, Threatened, -Healed, Extinct -Hospitalizations = Recognized + Threatened -Cases = Diagnosed + Recognized + Threatened -cases_data = map(sum, eachrow(df[:, ["Diagnosed(t)", "Recognized(t)", "Threatened(t)"]])) -hospitalizations_data = map(sum, eachrow(df[:, ["Recognized(t)", "Threatened(t)"]])) -df[!, "Cases(t)"] = cases_data -df[!, "Hospitalizations(t)"] = hospitalizations_data -df[!, "Extinct"] = hospitalizations_data -sym_data = [=> df[:, "Susceptible(t)"]] - - -sns = snames.(pns) -all_sns = map(x -> string.(x), sns) -tns = tnames.(pns) -all_tns = map(x -> string.(x), tns) -to_init(x) = x .=> rand(length(x)) -all_inits = to_init.(all_sns) -all_tspan = (0.0, 100.0) -all_params = to_init.(all_tns) - -mapping = Dict([ - "I" => "cases", - "H" => "hosp", - "D" => "deaths" -]) - -jd = (;) -sirhd_j = generate_json_acset(sirhd) -ensemble_nt = (; models=[(; petri=sirhd_j, params=Dict(all_params[4]), initials=Dict(all_inits[4]), tspan=all_tspan, mapping=mapping)], data=namedtuple(JSON3.read(jdata))) -ensemble_json = JSON3.write(ensemble_nt) -write(_log("ensemble.json"), ensemble_json) -b = JSON3.read(read(_log("ensemble.json"))) -models = b.models -m = b.models[1] -data = b.data -mp = collect(Dict(m.mapping)) -map_to_data(mp, d) = string.(first.(mp)) .=> map(x -> Float64.(collect(d[Symbol(x)])), last.(mp)) -# build_cali_nt -mpn = JSON3.write(m.petri) - -# write_json_acset("sirhd.json", m.petri) -parse_json_acset(TAny, mpn) -function ensemble_calibrate(; models, data) - # m = models[1] - fits = [] - for m in models - data_ = map_to_data(mp, data) - - params_ = collect(m.params) - paramsd = Dict(string.(first.(params_)) .=> last.(params_)) - - initials_ = collect(m.initials) - initialsd = Dict(string.(first.(initials_)) .=> last.(initials_)) - t = data.t - nt = (; model=parse_json_acset(TAny, mpn), params=paramsd, initials=initialsd, t=Float64.(collect(t)), data=Dict(data_)) - push!(fits, SimulationService.SciMLInterface.calibrate(; nt...)) - end - fits -end \ No newline at end of file diff --git a/test/runtests.jl b/test/runtests.jl index 3c143c7..1f74f66 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,17 +1,26 @@ using Test -using Downloads: download +using DataFrames using HTTP using JSON3 -using SimulationService +using Oxygen +using SciMLBase: solve + +# Required to run on machine without TDS/RabbitMQ +ENV["SIMSERVICE_ENABLE_TDS"] = "false" +ENV["SIMSERVICE_RABBITMQ_ENABLED"] = "false" +using SimulationService #-----------------------------------------------------------------------------# Operations @testset "Operations" begin @testset "simulate" begin url = "https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/main/petrinet/examples/sir.json" - json_string = read(download(url), String) - model = SimulationService._get(Val(:model), json_string) - f(; model, context=nothing) + obj = SimulationService.get_json(url) + sys = SimulationService.ode_system_from_amr(obj) + op = SimulationService.Simulate(sys, (0.0, 100.0)) + df = solve(op) + @test df isa DataFrame + @test extrema(df.timestamp) == (0.0, 100.0) end @testset "calibrate" begin @@ -27,9 +36,9 @@ end @testset "Routes" begin host = "172.0.0.1" port = 8080 - url = "$host:$port" + url = "http://$host:$port" - server = start!(; host, port, async=true) + server = start!(; host="127.0.0.1", port, async=true) sleep(5) @testset "/" begin @@ -37,4 +46,18 @@ end @test res.status == 200 @test JSON3.read(res.body).status == "ok" end + + @testset "/operations/simulate" begin + @test true # TODO + end + + @testset "/operations/calibrate" begin + @test true # TODO + end + + @testset "/operations/ensemble" begin + @test true # TODO + end + + Oxygen.terminate() end diff --git a/test/sciml.jl b/test/sciml.jl deleted file mode 100644 index 6a67aa9..0000000 --- a/test/sciml.jl +++ /dev/null @@ -1,58 +0,0 @@ -using SimulationService, AlgebraicPetri, DataFrames, DifferentialEquations, ModelingToolkit, Symbolics, EasyModelAnalysis, Catlab, Catlab.CategoricalAlgebra, JSON3, UnPack, SimulationService.Service.Execution.Interface.Operations -using CSV, DataFrames, JSONTables -using ForwardDiff - -_datadir() = joinpath(@__DIR__, "../examples") -_data(s) = joinpath(_datadir(), s) - -_logdir() = joinpath(@__DIR__, "logs") -_log(s) = joinpath(_logdir(), s) -mkpath(_logdir()) - -bn = "BIOMD0000000955_miranet.json" -fn = _data(bn) -T = PropertyLabelledReactionNet{Number,Number,Dict} -TAny = PropertyLabelledReactionNet{Any,Any,Any} - -# we should be able to assume that all concentration and rate are set (despite this not being the case for the other 2 Miras from ben) -petri = read_json_acset(T, fn) -ps = string.(tnames(petri)) .=> petri[:rate] -u0 = string.(snames(petri)) .=> petri[:concentration] - -params = Dict(ps) -initials = Dict(u0) -timespan = (0.0, 100.0) - -nt = (; model=petri, params, initials, timespan) -body = Dict(pairs(nt)) -j = JSON3.write(body) -forecast_fn = _log("forecast.json") -write(forecast_fn, j) - -df = SimulationService.Service.Execution.Interface.Available.get_operation(:simulate)(; nt..., context=nothing) -@test df isa DataFrame - -params["t1"] = 0.1 -nt = (; model = petri, params, initials, timespan) -df2 = SimulationService.Service.Execution.Interface.Available.get_operation(:simulate)(; nt..., context=nothing) - -timesteps = df.timestamp -data = Dict(["Susceptible" => df[:, 2]]) -rename!(df, Dict("Susceptible(t)" => "Susceptible", "timestamp" => "timestep")) -fit_args = (; model=petri, params, initials, dataset=df[:, ["timestep", "Susceptible"]]) -fit_body = Dict(pairs(fit_args)) -fit_j = JSON3.write(fit_body) -calibrate_fn = _log("calibrate.json") -write(calibrate_fn, fit_j) - -fitp = SimulationService.Service.Execution.Interface.Available.get_operation(:calibrate)(; fit_args..., context=nothing) -prob = SimulationService.Service.Execution.Interface.Operations.Utils.to_prob(petri, params, initials, extrema(timesteps)) -sys = prob.f.sys - -# example of dloss/dp -pkeys = parameters(sys) -pvals = [params[string(x)] for x in pkeys] -data = [states(sys)[1] => df[:, 2]] - -l = EasyModelAnalysis.l2loss(pvals, (prob, pkeys, timesteps, data)) -ForwardDiff.gradient(p -> EasyModelAnalysis.l2loss(p, (prob, pkeys, timesteps, data)), last.(fitp)) From a47330e917cfd0956aa9dfb8cb5ac477e761a6e1 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Tue, 11 Jul 2023 00:34:58 -0400 Subject: [PATCH 09/31] fix test, bring back paths.yml --- paths.yml | 176 +++++++++++++++++++++++++++++++++++++++ src/SimulationService.jl | 2 +- test/runtests.jl | 17 +++- 3 files changed, 190 insertions(+), 5 deletions(-) create mode 100644 paths.yml diff --git a/paths.yml b/paths.yml new file mode 100644 index 0000000..fab4b97 --- /dev/null +++ b/paths.yml @@ -0,0 +1,176 @@ +/simulate: + post: + summary: Perform a simulation + operationId: simulateModel + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + engine: + type: string + enum: [SciML, CIEMSS] + example: CIEMSS + model_config_id: + type: string + example: "ba8da8d4-047d-11ee-be56" + timespan: + type: object + properties: + start: + type: integer + example: 0 + end: + type: integer + example: 0 + items: + type: integer + example: [0, 90] + extra: + description: optional extra system specific arguments for advanced use cases + type: object + required: + - engine + - model_config_id + - timespan + responses: + '200': + description: Simulation created successfully + content: + application/json: + schema: + type: object + properties: + simulation_id: + type: string + example: fc5d80e4-0483-11ee-be56 + +/calibrate: + post: + summary: Calibrate a model to data then simulate + description: Calibrate a model and perform a "fitting" simulation over the time range of the calibration dataset and a simulation of a time range specified in `timespan` if `timespan` is specified. The SciML engine allows for calibration without additional simulation; in that case `timespan` is left off the payload. + operationId: calibratesimulateModel + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + engine: + type: string + enum: [SciML, CIEMSS] + example: CIEMSS + model_config_id: + type: string + example: "c1cd941a-047d-11ee-be56" + dataset: + type: object + properties: + id: + type: string + example: "cd339570-047d-11ee-be55" + filename: + type: string + example: "dataset.csv" + mappings: + type: object + timespan: + type: object + properties: + start: + type: integer + example: 0 + end: + type: integer + example: 0 + extra: + description: optional extra system specific arguments for advanced use cases + type: object + required: + - engine + - model_config_id + - dataset_id + responses: + '200': + description: Calibration/simulation created successfully + content: + application/json: + schema: + type: object + properties: + simulation_id: + type: string + example: fc5d80e4-0483-11ee-be56 +/ensemble: + post: + summary: Perform an ensemble simulation + operationId: createEnsemble + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + engine: + type: string + enum: [SciML, CIEMSS] + example: CIEMSS + model_config_ids: + type: array + items: + type: string + example: ["ba8da8d4-047d-11ee-be56", "c1cd941a-047d-11ee-be56", "c4b9f88a-047d-11ee-be56"] + timespan: + type: object + properties: + start: + type: integer + example: 0 + end: + type: integer + example: 0 + extra: + description: optional extra system specific arguments for advanced use cases + type: object + required: + - engine + - model_config_id + - timespan + responses: + '200': + description: Ensemble created successfully + content: + application/json: + schema: + type: object + properties: + simulation_id: + type: string + example: fc5d80e4-0483-11ee-be56 + +/status/{simulation_id}: + get: + summary: Retrieve the status of a simulation + operationId: getStatus + parameters: + - name: simulation_id + in: path + required: true + schema: + type: string + example: fc5d80e4-0483-11ee-be56 + responses: + '200': + description: Status retrieved successfully + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: [queued, running, complete, error] diff --git a/src/SimulationService.jl b/src/SimulationService.jl index a257871..23961a6 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -61,7 +61,7 @@ function start!(; host=SIMSERVICE_HOST, port=SIMSERVICE_PORT, kw...) Oxygen.resetstate() Oxygen.@get "/" health Oxygen.@get "/status/{job_id}" (req,job_id) -> "TODO: Not Implemented yet." - Oxygen.@post "/operation/{op}" operation + Oxygen.@post "/{op}" operation Oxygen.serveparallel(; host, port, async=true, kw...) end diff --git a/test/runtests.jl b/test/runtests.jl index 1f74f66..c0eaeb6 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -34,12 +34,21 @@ end #-----------------------------------------------------------------------------# test routes @testset "Routes" begin - host = "172.0.0.1" + host = "127.0.0.1" port = 8080 url = "http://$host:$port" - server = start!(; host="127.0.0.1", port, async=true) - sleep(5) + server = start!(; host, port, async=true) + + ready = false + while !ready + try + res = HTTP.get(url) + ready = true + catch + sleep(1) + end + end @testset "/" begin res = HTTP.get(url) @@ -59,5 +68,5 @@ end @test true # TODO end - Oxygen.terminate() + stop!() end From bf31487561049418eae97b4cd09778e1d7f32c5d Mon Sep 17 00:00:00 2001 From: Josh Day Date: Tue, 11 Jul 2023 00:36:15 -0400 Subject: [PATCH 10/31] remove comments --- src/SimulationService.jl | 71 ---------------------------------------- 1 file changed, 71 deletions(-) diff --git a/src/SimulationService.jl b/src/SimulationService.jl index 23961a6..57a2efa 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -349,75 +349,4 @@ end Ensemble(o::OperationRequest) = error("TODO") solve(o::Ensemble; callback) = error("TODO") -# import AlgebraicPetri: LabelledPetriNet -# import Symbolics -# import Oxygen: serveparallel, resetstate, json, setschema, terminate, @post, @get -# import SwaggerMarkdown: build, @swagger, OpenAPI, validate_spec, openApiToDict, DOCS -# import YAML -# import JSON3 as JSON -# import JobSchedulers: scheduler_start, set_scheduler, scheduler_stop, submit!, job_query, result, generate_id, update_queue!, Job, JobSchedulers - -# include("./service/Service.jl") -# import .Service: make_deterministic_run, retrieve_job -# include("./Settings.jl"); import .Settings: settings - -# export start!, stop! - -# OPENAPI_SPEC = "paths.yaml" - -# """ -# Print out settings -# """ -# function health_check() -# tds_url = settings["TDS_URL"] -# mq_route = settings["RABBITMQ_ROUTE"] - -# return "Simulation-service. TDS_URL=$tds_url, RABBITMQ_ROUTE=$mq_route" -# end - - -# """ -# Specify endpoint to function mappings -# """ -# function register!() -# @get "/" health_check -# @get "/{element}/{uuid}" retrieve_job -# @post "/{operation}" make_deterministic_run - -# info = Dict("title" => "Simulation Service", "version" => "0.6.0") -# openAPI = OpenAPI("3.0.0", info) -# openAPI.paths = YAML.load_file(OPENAPI_SPEC) -# documentation = build(openAPI) -# setschema(documentation) -# end - -# """ -# Load API endpoints and start listening for sim run jobs -# """ -# function start!() -# resetstate() -# register!() -# if Threads.nthreads() > 1 -# set_scheduler( -# max_cpu=0.5, -# max_mem=0.5, -# update_second=0.05, -# max_job=5000, -# ) -# scheduler_start() -# serveparallel(host="0.0.0.0", async=true) -# else -# throw("The server is not parallelized. You need to start the REPL like `julia --threads 5`") -# end -# nothing -# end - -# """ -# Shutdown server -# """ -# function stop!() -# scheduler_stop() -# terminate() -# end - end # module From 332bd22797b72f8e63afe82599be6ff9e98b2a5b Mon Sep 17 00:00:00 2001 From: Josh Day Date: Tue, 11 Jul 2023 09:48:26 -0400 Subject: [PATCH 11/31] wip --- ARCHITECTURE.md | 20 + README.md | 45 +- examples/BIOMD0000000955_askenet.json | 693 ++++++++++++++++++++++++++ examples/BIOMD0000000955_miranet.json | 523 ------------------- examples/dataset.csv | 92 ---- examples/example-model.json | 1 - examples/request-calibrate.json | 23 - examples/request-simulate.json | 19 - src/SimulationService.jl | 221 ++++---- 9 files changed, 880 insertions(+), 757 deletions(-) create mode 100644 ARCHITECTURE.md create mode 100644 examples/BIOMD0000000955_askenet.json delete mode 100644 examples/BIOMD0000000955_miranet.json delete mode 100644 examples/dataset.csv delete mode 100644 examples/example-model.json delete mode 100644 examples/request-calibrate.json delete mode 100644 examples/request-simulate.json diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md new file mode 100644 index 0000000..6ea86a9 --- /dev/null +++ b/ARCHITECTURE.md @@ -0,0 +1,20 @@ +# Architecture (Not current with re-write) + +The Simulation Service (soon to be renamed SciML Service) is a REST API that wraps +specific SciML tasks. The service should match the spec [here](https://github.com/DARPA-ASKEM/simulation-api-spec) +since PyCIEMSS Service and SciML Service ideally are hot swappable. + +The API creates a job using the JobSchedulers.jl library and updates the Terarium Data Service (TDS) with the status +of the job throughout its execution. Once the job completes, the results are written to S3. With most of the output artifacts, we do little postprocessing +after completing the SciML portion. + +## Layout + +Source is split into 5 major components: +- `SimulationService.jl`: Contains the start and stop functions for the service +- `Settings.jl`: Enumerates the environment variables used by the project +- `service`: Job scheduling, pre/post-processing, endpoints, etc. Handled by TA4. +- `contracts`: Location where TA3 and TA4 agree on an interface between the SciML Operations and the rest of the service. + - `Available.jl`: The operations available to the API are here. Generally, the operations just wrap around by the exposed SciML + operations. +- `operations`: JuliaHub primarily focuses here. diff --git a/README.md b/README.md index c84f4de..d72d83e 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # Simulation Service -Simulation Service provides an interface and job runner for [ASKEM models](https://github.com/DARPA-ASKEM/Model-Representations). +Simulation Service provides an interface and job runner for [ASKEM models](https://github.com/DARPA-ASKEM/Model-Representations). See example payload at [./examples/request.json](./examples/request.json) ## Usage -With docker compose: +With docker compose: ``` docker compose --file docker/docker-compose.yml up --build ``` @@ -13,9 +13,40 @@ docker compose --file docker/docker-compose.yml up --build With Julia REPL: ``` -julia> using SimulationService -julia> start!() -julia> # output of REST API and Scheduler -julia> stop!() -julia> # you may safely leave the repl or rerun `start!` +>> export ENABLE_TDS=false # Disable backend Terrarium Data Service +>> julia --project --threads=auto # Multithreading required for server +``` + +```julia +using SimulationService, HTTP, JSON3 + +# Start the server/job scheduler +start!() + +# Get where server is running ("http:/127.0.0.1:8000" by default) +url = SimulationService.server_url[] + +# JSON in ASKEM Model Representation +amr = JSON3.read(HTTP.get("./examples/BIOMD0000000955_askenet.json").body) + +# Kick off the simulation job +res = HTTP.post("$url/simulate", ["Content-Type" => "application/json"]; body=json) + +# Get the `job_id` so we can query the job status and get results +job_id = JSON3.read(res.body).job_id + +# Re-run this until `status_obj.status == "complete"` +status_obj = JSON3.read(HTTP.get("$url/status/$job_id").body) +while status_obj.status != "complete" + status_obj = JSON3.read(HTTP.get("$url/status/$job_id").body) +end + +# Get the result of the simulateion job +result = JSON3.read(HTTP.get("$url/results/$job_id").body) + +# close down server and scheduler +stop!() + ```` + +To check available endpoints, try checking [localhost:8080/docs](localhost:8080/docs) diff --git a/examples/BIOMD0000000955_askenet.json b/examples/BIOMD0000000955_askenet.json new file mode 100644 index 0000000..afa448f --- /dev/null +++ b/examples/BIOMD0000000955_askenet.json @@ -0,0 +1,693 @@ +{ + "name": "Giordano2020 - SIDARTHE model of COVID-19 spread in Italy", + "schema": "https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/petrinet_v0.5/petrinet/petrinet_schema.json", + "schema_name": "petrinet", + "description": "Giordano2020 - SIDARTHE model of COVID-19 spread in Italy", + "model_version": "0.1", + "properties": {}, + "model": { + "states": [ + { + "id": "Susceptible", + "name": "Susceptible", + "grounding": { + "identifiers": { + "ido": "0000514" + }, + "modifiers": {} + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "Diagnosed", + "name": "Diagnosed", + "grounding": { + "identifiers": { + "ido": "0000511" + }, + "modifiers": { + "diagnosis": "ncit:C15220" + } + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "Infected", + "name": "Infected", + "grounding": { + "identifiers": { + "ido": "0000511" + }, + "modifiers": {} + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "Ailing", + "name": "Ailing", + "grounding": { + "identifiers": { + "ido": "0000511" + }, + "modifiers": { + "disease_severity": "ncit:C25269", + "diagnosis": "ncit:C113725" + } + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "Recognized", + "name": "Recognized", + "grounding": { + "identifiers": { + "ido": "0000511" + }, + "modifiers": { + "diagnosis": "ncit:C15220" + } + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "Healed", + "name": "Healed", + "grounding": { + "identifiers": { + "ido": "0000592" + }, + "modifiers": {} + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "Threatened", + "name": "Threatened", + "grounding": { + "identifiers": { + "ido": "0000511" + }, + "modifiers": { + "disease_severity": "ncit:C25467" + } + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + }, + { + "id": "Extinct", + "name": "Extinct", + "grounding": { + "identifiers": { + "ncit": "C28554" + }, + "modifiers": {} + }, + "units": { + "expression": "1", + "expression_mathml": "1" + } + } + ], + "transitions": [ + { + "id": "t1", + "input": [ + "Diagnosed", + "Susceptible" + ], + "output": [ + "Diagnosed", + "Infected" + ], + "properties": { + "name": "t1" + } + }, + { + "id": "t2", + "input": [ + "Ailing", + "Susceptible" + ], + "output": [ + "Ailing", + "Infected" + ], + "properties": { + "name": "t2" + } + }, + { + "id": "t3", + "input": [ + "Recognized", + "Susceptible" + ], + "output": [ + "Recognized", + "Infected" + ], + "properties": { + "name": "t3" + } + }, + { + "id": "t4", + "input": [ + "Infected", + "Susceptible" + ], + "output": [ + "Infected", + "Infected" + ], + "properties": { + "name": "t4" + } + }, + { + "id": "t5", + "input": [ + "Infected" + ], + "output": [ + "Diagnosed" + ], + "properties": { + "name": "t5" + } + }, + { + "id": "t6", + "input": [ + "Infected" + ], + "output": [ + "Ailing" + ], + "properties": { + "name": "t6" + } + }, + { + "id": "t7", + "input": [ + "Infected" + ], + "output": [ + "Healed" + ], + "properties": { + "name": "t7" + } + }, + { + "id": "t8", + "input": [ + "Diagnosed" + ], + "output": [ + "Recognized" + ], + "properties": { + "name": "t8" + } + }, + { + "id": "t9", + "input": [ + "Diagnosed" + ], + "output": [ + "Healed" + ], + "properties": { + "name": "t9" + } + }, + { + "id": "t10", + "input": [ + "Ailing" + ], + "output": [ + "Recognized" + ], + "properties": { + "name": "t10" + } + }, + { + "id": "t11", + "input": [ + "Ailing" + ], + "output": [ + "Healed" + ], + "properties": { + "name": "t11" + } + }, + { + "id": "t12", + "input": [ + "Ailing" + ], + "output": [ + "Threatened" + ], + "properties": { + "name": "t12" + } + }, + { + "id": "t13", + "input": [ + "Recognized" + ], + "output": [ + "Threatened" + ], + "properties": { + "name": "t13" + } + }, + { + "id": "t14", + "input": [ + "Recognized" + ], + "output": [ + "Healed" + ], + "properties": { + "name": "t14" + } + }, + { + "id": "t15", + "input": [ + "Threatened" + ], + "output": [ + "Extinct" + ], + "properties": { + "name": "t15" + } + }, + { + "id": "t16", + "input": [ + "Threatened" + ], + "output": [ + "Healed" + ], + "properties": { + "name": "t16" + } + } + ] + }, + "semantics": { + "ode": { + "rates": [ + { + "target": "t1", + "expression": "Diagnosed*Susceptible*beta", + "expression_mathml": "DiagnosedSusceptiblebeta" + }, + { + "target": "t2", + "expression": "Ailing*Susceptible*gamma", + "expression_mathml": "AilingSusceptiblegamma" + }, + { + "target": "t3", + "expression": "Recognized*Susceptible*delta", + "expression_mathml": "RecognizedSusceptibledelta" + }, + { + "target": "t4", + "expression": "Infected*Susceptible*alpha", + "expression_mathml": "InfectedSusceptiblealpha" + }, + { + "target": "t5", + "expression": "Infected*epsilon", + "expression_mathml": "Infectedepsilon" + }, + { + "target": "t6", + "expression": "Infected*zeta", + "expression_mathml": "Infectedzeta" + }, + { + "target": "t7", + "expression": "Infected*lambda", + "expression_mathml": "Infectedlambda" + }, + { + "target": "t8", + "expression": "Diagnosed*eta", + "expression_mathml": "Diagnosedeta" + }, + { + "target": "t9", + "expression": "Diagnosed*rho", + "expression_mathml": "Diagnosedrho" + }, + { + "target": "t10", + "expression": "Ailing*theta", + "expression_mathml": "Ailingtheta" + }, + { + "target": "t11", + "expression": "Ailing*kappa", + "expression_mathml": "Ailingkappa" + }, + { + "target": "t12", + "expression": "Ailing*mu", + "expression_mathml": "Ailingmu" + }, + { + "target": "t13", + "expression": "Recognized*nu", + "expression_mathml": "Recognizednu" + }, + { + "target": "t14", + "expression": "Recognized*xi", + "expression_mathml": "Recognizedxi" + }, + { + "target": "t15", + "expression": "Threatened*tau", + "expression_mathml": "Threatenedtau" + }, + { + "target": "t16", + "expression": "Threatened*sigma", + "expression_mathml": "Threatenedsigma" + } + ], + "initials": [ + { + "target": "Susceptible", + "expression": "0.999996300000000", + "expression_mathml": "0.99999629999999995" + }, + { + "target": "Diagnosed", + "expression": "3.33333333000000e-7", + "expression_mathml": "3.33333333e-7" + }, + { + "target": "Infected", + "expression": "3.33333333000000e-6", + "expression_mathml": "3.3333333299999999e-6" + }, + { + "target": "Ailing", + "expression": "1.66666666000000e-8", + "expression_mathml": "1.6666666599999999e-8" + }, + { + "target": "Recognized", + "expression": "3.33333333000000e-8", + "expression_mathml": "3.33333333e-8" + }, + { + "target": "Healed", + "expression": "0.0", + "expression_mathml": "0.0" + }, + { + "target": "Threatened", + "expression": "0.0", + "expression_mathml": "0.0" + }, + { + "target": "Extinct", + "expression": "0.0", + "expression_mathml": "0.0" + } + ], + "parameters": [ + { + "id": "beta", + "value": 0.011, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.008799999999999999, + "maximum": 0.0132 + } + } + }, + { + "id": "gamma", + "value": 0.456, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.3648, + "maximum": 0.5472 + } + } + }, + { + "id": "delta", + "value": 0.011, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.008799999999999999, + "maximum": 0.0132 + } + } + }, + { + "id": "alpha", + "value": 0.57, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.45599999999999996, + "maximum": 0.6839999999999999 + } + } + }, + { + "id": "epsilon", + "value": 0.171, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.1368, + "maximum": 0.20520000000000002 + } + } + }, + { + "id": "zeta", + "value": 0.125, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.1, + "maximum": 0.15 + } + } + }, + { + "id": "lambda", + "value": 0.034, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.027200000000000002, + "maximum": 0.0408 + } + } + }, + { + "id": "eta", + "value": 0.125, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.1, + "maximum": 0.15 + } + } + }, + { + "id": "rho", + "value": 0.034, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.027200000000000002, + "maximum": 0.0408 + } + } + }, + { + "id": "theta", + "value": 0.371, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.2968, + "maximum": 0.4452 + } + } + }, + { + "id": "kappa", + "value": 0.017, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.013600000000000001, + "maximum": 0.0204 + } + } + }, + { + "id": "mu", + "value": 0.017, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.013600000000000001, + "maximum": 0.0204 + } + } + }, + { + "id": "nu", + "value": 0.027, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.0216, + "maximum": 0.0324 + } + } + }, + { + "id": "xi", + "value": 0.017, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.013600000000000001, + "maximum": 0.0204 + } + } + }, + { + "id": "tau", + "value": 0.01, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.008, + "maximum": 0.012 + } + } + }, + { + "id": "sigma", + "value": 0.017, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.013600000000000001, + "maximum": 0.0204 + } + } + } + ], + "observables": [ + { + "id": "Cases", + "name": "Cases", + "expression": "Diagnosed + Recognized + Threatened", + "expression_mathml": "DiagnosedRecognizedThreatened" + }, + { + "id": "Hospitalizations", + "name": "Hospitalizations", + "expression": "Recognized + Threatened", + "expression_mathml": "RecognizedThreatened" + }, + { + "id": "Deaths", + "name": "Deaths", + "expression": "Extinct", + "expression_mathml": "Extinct" + } + ], + "time": { + "id": "t", + "units": { + "expression": "day", + "expression_mathml": "day" + } + } + } + }, + "metadata": { + "annotations": { + "license": "CC0", + "authors": [], + "references": [ + "pubmed:32322102" + ], + "time_scale": null, + "time_start": null, + "time_end": null, + "locations": [], + "pathogens": [ + "ncbitaxon:2697049" + ], + "diseases": [ + "doid:0080600" + ], + "hosts": [ + "ncbitaxon:9606" + ], + "model_types": [ + "mamo:0000028" + ] + } + } + } diff --git a/examples/BIOMD0000000955_miranet.json b/examples/BIOMD0000000955_miranet.json deleted file mode 100644 index 9365197..0000000 --- a/examples/BIOMD0000000955_miranet.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "S": [ - { - "sname": "Susceptible", - "sprop": { - "is_observable": false, - "mira_ids": "[('identity', 'ido:0000514')]", - "mira_context": "[]", - "mira_concept": "{\"name\": \"Susceptible\", \"identifiers\": {\"ido\": \"0000514\"}, \"context\": {}}" - }, - "concentration": 0.9999963 - }, - { - "sname": "Infected", - "sprop": { - "is_observable": false, - "mira_ids": "[('identity', 'ido:0000511')]", - "mira_context": "[]", - "mira_concept": "{\"name\": \"Infected\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {}}" - }, - "concentration": 3.33333333e-06 - }, - { - "sname": "Diagnosed", - "sprop": { - "is_observable": false, - "mira_ids": "[('identity', 'ido:0000511')]", - "mira_context": "[('diagnosis', 'ncit:C15220')]", - "mira_concept": "{\"name\": \"Diagnosed\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"diagnosis\": \"ncit:C15220\"}}" - }, - "concentration": 3.33333333e-07 - }, - { - "sname": "Ailing", - "sprop": { - "is_observable": false, - "mira_ids": "[('identity', 'ido:0000511')]", - "mira_context": "[('diagnosis', 'ncit:C113725'), ('disease_severity', 'ncit:C25269')]", - "mira_concept": "{\"name\": \"Ailing\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"disease_severity\": \"ncit:C25269\", \"diagnosis\": \"ncit:C113725\"}}" - }, - "concentration": 1.66666666e-08 - }, - { - "sname": "Recognized", - "sprop": { - "is_observable": false, - "mira_ids": "[('identity', 'ido:0000511')]", - "mira_context": "[('diagnosis', 'ncit:C15220')]", - "mira_concept": "{\"name\": \"Recognized\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"diagnosis\": \"ncit:C15220\"}}" - }, - "concentration": 3.33333333e-08 - }, - { - "sname": "Healed", - "sprop": { - "is_observable": false, - "mira_ids": "[('identity', 'ido:0000592')]", - "mira_context": "[]", - "mira_concept": "{\"name\": \"Healed\", \"identifiers\": {\"ido\": \"0000592\"}, \"context\": {}}" - }, - "concentration": 0.0 - }, - { - "sname": "Threatened", - "sprop": { - "is_observable": false, - "mira_ids": "[('identity', 'ido:0000511')]", - "mira_context": "[('disease_severity', 'ncit:C25467')]", - "mira_concept": "{\"name\": \"Threatened\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"disease_severity\": \"ncit:C25467\"}}" - }, - "concentration": 0.0 - }, - { - "sname": "Extinct", - "sprop": { - "is_observable": false, - "mira_ids": "[('identity', 'ncit:C28554')]", - "mira_context": "[]", - "mira_concept": "{\"name\": \"Extinct\", \"identifiers\": {\"ncit\": \"C28554\"}, \"context\": {}}" - }, - "concentration": 0.0 - }, - { - "sname": "Cases", - "concentration": 0.0, - "sprop": { - "concept": "{\"name\": \"Cases\", \"mira_ids\": {}, \"mira_context\": {\"diagnosed\": \"ncit:C113725\"}}", - "expression": "Diagnosed + Recognized + Threatened", - "mira_parameters": "{}", - "mira_parameter_distributions": "{}", - "is_observable": true - } - }, - { - "sname": "Hospitalizations", - "concentration": 0.0, - "sprop": { - "concept": "{\"name\": \"Hospitalizations\", \"mira_ids\": {}, \"mira_context\": {\"hospitalization\": \"ncit:C25179\"}}", - "expression": "Recognized + Threatened", - "mira_parameters": "{}", - "mira_parameter_distributions": "{}", - "is_observable": true - } - }, - { - "sname": "Deaths", - "concentration": 0.0, - "sprop": { - "concept": "{\"name\": \"Deaths\", \"mira_ids\": {}, \"mira_context\": {}}", - "expression": "Extinct", - "mira_parameters": "{}", - "mira_parameter_distributions": "{}", - "is_observable": true - } - } - ], - "T": [ - { - "tname": "t1", - "tprop": { - "template_type": "ControlledConversion", - "parameter_name": "beta", - "parameter_value": 0.011, - "parameter_distribution": "{\"type\": \"StandardUniform1\", \"parameters\": {\"minimum\": 0.008799999999999999, \"maximum\": 0.0132}}", - "mira_template": "{\"rate_law\": \"Diagnosed*Susceptible*beta\", \"type\": \"ControlledConversion\", \"controller\": {\"name\": \"Diagnosed\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"diagnosis\": \"ncit:C15220\"}}, \"subject\": {\"name\": \"Susceptible\", \"identifiers\": {\"ido\": \"0000514\"}, \"context\": {}}, \"outcome\": {\"name\": \"Infected\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {}}, \"provenance\": []}", - "mira_rate_law": "Diagnosed*Susceptible*beta", - "mira_rate_law_mathml": "DiagnosedSusceptibleβ", - "mira_parameters": "{\"beta\": 0.011}", - "mira_parameter_distributions": "{\"beta\": {\"parameters\": {\"maximum\": 0.0132, \"minimum\": 0.008799999999999999}, \"type\": \"StandardUniform1\"}}" - }, - "rate": 0.011 - }, - { - "tname": "t2", - "tprop": { - "template_type": "ControlledConversion", - "parameter_name": "gamma", - "parameter_value": 0.456, - "parameter_distribution": "{\"type\": \"StandardUniform1\", \"parameters\": {\"minimum\": 0.3648, \"maximum\": 0.5472}}", - "mira_template": "{\"rate_law\": \"Ailing*Susceptible*gamma\", \"type\": \"ControlledConversion\", \"controller\": {\"name\": \"Ailing\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"disease_severity\": \"ncit:C25269\", \"diagnosis\": \"ncit:C113725\"}}, \"subject\": {\"name\": \"Susceptible\", \"identifiers\": {\"ido\": \"0000514\"}, \"context\": {}}, \"outcome\": {\"name\": \"Infected\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {}}, \"provenance\": []}", - "mira_rate_law": "Ailing*Susceptible*gamma", - "mira_rate_law_mathml": "AilingSusceptibleγ", - "mira_parameters": "{\"gamma\": 0.456}", - "mira_parameter_distributions": "{\"gamma\": {\"parameters\": {\"maximum\": 0.5472, \"minimum\": 0.3648}, \"type\": \"StandardUniform1\"}}" - }, - "rate": 0.456 - }, - { - "tname": "t3", - "tprop": { - "template_type": "ControlledConversion", - "parameter_name": "delta", - "parameter_value": 0.011, - "parameter_distribution": "{\"type\": \"StandardUniform1\", \"parameters\": {\"minimum\": 0.008799999999999999, \"maximum\": 0.0132}}", - "mira_template": "{\"rate_law\": \"Recognized*Susceptible*delta\", \"type\": \"ControlledConversion\", \"controller\": {\"name\": \"Recognized\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"diagnosis\": \"ncit:C15220\"}}, \"subject\": {\"name\": \"Susceptible\", \"identifiers\": {\"ido\": \"0000514\"}, \"context\": {}}, \"outcome\": {\"name\": \"Infected\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {}}, \"provenance\": []}", - "mira_rate_law": "Recognized*Susceptible*delta", - "mira_rate_law_mathml": "RecognizedSusceptibleδ", - "mira_parameters": "{\"delta\": 0.011}", - "mira_parameter_distributions": "{\"delta\": {\"parameters\": {\"maximum\": 0.0132, \"minimum\": 0.008799999999999999}, \"type\": \"StandardUniform1\"}}" - }, - "rate": 0.011 - }, - { - "tname": "t4", - "tprop": { - "template_type": "ControlledConversion", - "parameter_name": "alpha", - "parameter_value": 0.57, - "parameter_distribution": "{\"type\": \"StandardUniform1\", \"parameters\": {\"minimum\": 0.45599999999999996, \"maximum\": 0.6839999999999999}}", - "mira_template": "{\"rate_law\": \"Infected*Susceptible*alpha\", \"type\": \"ControlledConversion\", \"controller\": {\"name\": \"Infected\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {}}, \"subject\": {\"name\": \"Susceptible\", \"identifiers\": {\"ido\": \"0000514\"}, \"context\": {}}, \"outcome\": {\"name\": \"Infected\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {}}, \"provenance\": []}", - "mira_rate_law": "Infected*Susceptible*alpha", - "mira_rate_law_mathml": "InfectedSusceptibleα", - "mira_parameters": "{\"alpha\": 0.57}", - "mira_parameter_distributions": "{\"alpha\": {\"parameters\": {\"maximum\": 0.6839999999999999, \"minimum\": 0.45599999999999996}, \"type\": \"StandardUniform1\"}}" - }, - "rate": 0.57 - }, - { - "tname": "t5", - "tprop": { - "template_type": "NaturalConversion", - "parameter_name": "epsilon", - "parameter_value": 0.171, - "parameter_distribution": "{\"type\": \"StandardUniform1\", \"parameters\": {\"minimum\": 0.1368, \"maximum\": 0.20520000000000002}}", - "mira_template": "{\"rate_law\": \"Infected*epsilon\", \"type\": \"NaturalConversion\", \"subject\": {\"name\": \"Infected\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {}}, \"outcome\": {\"name\": \"Diagnosed\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"diagnosis\": \"ncit:C15220\"}}, \"provenance\": []}", - "mira_rate_law": "Infected*epsilon", - "mira_rate_law_mathml": "Infectedε", - "mira_parameters": "{\"epsilon\": 0.171}", - "mira_parameter_distributions": "{\"epsilon\": {\"parameters\": {\"maximum\": 0.20520000000000002, \"minimum\": 0.1368}, \"type\": \"StandardUniform1\"}}" - }, - "rate": 0.171 - }, - { - "tname": "t6", - "tprop": { - "template_type": "NaturalConversion", - "parameter_name": "zeta", - "parameter_value": 0.125, - "parameter_distribution": "{\"type\": \"StandardUniform1\", \"parameters\": {\"minimum\": 0.1, \"maximum\": 0.15}}", - "mira_template": "{\"rate_law\": \"Infected*zeta\", \"type\": \"NaturalConversion\", \"subject\": {\"name\": \"Infected\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {}}, \"outcome\": {\"name\": \"Ailing\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"disease_severity\": \"ncit:C25269\", \"diagnosis\": \"ncit:C113725\"}}, \"provenance\": []}", - "mira_rate_law": "Infected*zeta", - "mira_rate_law_mathml": "Infectedζ", - "mira_parameters": "{\"zeta\": 0.125}", - "mira_parameter_distributions": "{\"zeta\": {\"parameters\": {\"maximum\": 0.15, \"minimum\": 0.1}, \"type\": \"StandardUniform1\"}}" - }, - "rate": 0.125 - }, - { - "tname": "t7", - "tprop": { - "template_type": "NaturalConversion", - "parameter_name": "lambda", - "parameter_value": 0.034, - "parameter_distribution": "{\"type\": \"StandardUniform1\", \"parameters\": {\"minimum\": 0.027200000000000002, \"maximum\": 0.0408}}", - "mira_template": "{\"rate_law\": \"Infected*XXlambdaXX\", \"type\": \"NaturalConversion\", \"subject\": {\"name\": \"Infected\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {}}, \"outcome\": {\"name\": \"Healed\", \"identifiers\": {\"ido\": \"0000592\"}, \"context\": {}}, \"provenance\": []}", - "mira_rate_law": "Infected*XXlambdaXX", - "mira_rate_law_mathml": "InfectedXXlambdaXX", - "mira_parameters": "{\"lambda\": 0.034}", - "mira_parameter_distributions": "{\"lambda\": {\"parameters\": {\"maximum\": 0.0408, \"minimum\": 0.027200000000000002}, \"type\": \"StandardUniform1\"}}" - }, - "rate": 0.034 - }, - { - "tname": "t8", - "tprop": { - "template_type": "NaturalConversion", - "parameter_name": "eta", - "parameter_value": 0.125, - "parameter_distribution": "{\"type\": \"StandardUniform1\", \"parameters\": {\"minimum\": 0.1, \"maximum\": 0.15}}", - "mira_template": "{\"rate_law\": \"Diagnosed*eta\", \"type\": \"NaturalConversion\", \"subject\": {\"name\": \"Diagnosed\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"diagnosis\": \"ncit:C15220\"}}, \"outcome\": {\"name\": \"Recognized\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"diagnosis\": \"ncit:C15220\"}}, \"provenance\": []}", - "mira_rate_law": "Diagnosed*eta", - "mira_rate_law_mathml": "Diagnosedη", - "mira_parameters": "{\"eta\": 0.125}", - "mira_parameter_distributions": "{\"eta\": {\"parameters\": {\"maximum\": 0.15, \"minimum\": 0.1}, \"type\": \"StandardUniform1\"}}" - }, - "rate": 0.125 - }, - { - "tname": "t9", - "tprop": { - "template_type": "NaturalConversion", - "parameter_name": "rho", - "parameter_value": 0.034, - "parameter_distribution": "{\"type\": \"StandardUniform1\", \"parameters\": {\"minimum\": 0.027200000000000002, \"maximum\": 0.0408}}", - "mira_template": "{\"rate_law\": \"Diagnosed*rho\", \"type\": \"NaturalConversion\", \"subject\": {\"name\": \"Diagnosed\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"diagnosis\": \"ncit:C15220\"}}, \"outcome\": {\"name\": \"Healed\", \"identifiers\": {\"ido\": \"0000592\"}, \"context\": {}}, \"provenance\": []}", - "mira_rate_law": "Diagnosed*rho", - "mira_rate_law_mathml": "Diagnosedρ", - "mira_parameters": "{\"rho\": 0.034}", - "mira_parameter_distributions": "{\"rho\": {\"parameters\": {\"maximum\": 0.0408, \"minimum\": 0.027200000000000002}, \"type\": \"StandardUniform1\"}}" - }, - "rate": 0.034 - }, - { - "tname": "t10", - "tprop": { - "template_type": "NaturalConversion", - "parameter_name": "theta", - "parameter_value": 0.371, - "parameter_distribution": "{\"type\": \"StandardUniform1\", \"parameters\": {\"minimum\": 0.2968, \"maximum\": 0.4452}}", - "mira_template": "{\"rate_law\": \"Ailing*theta\", \"type\": \"NaturalConversion\", \"subject\": {\"name\": \"Ailing\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"disease_severity\": \"ncit:C25269\", \"diagnosis\": \"ncit:C113725\"}}, \"outcome\": {\"name\": \"Recognized\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"diagnosis\": \"ncit:C15220\"}}, \"provenance\": []}", - "mira_rate_law": "Ailing*theta", - "mira_rate_law_mathml": "Ailingθ", - "mira_parameters": "{\"theta\": 0.371}", - "mira_parameter_distributions": "{\"theta\": {\"parameters\": {\"maximum\": 0.4452, \"minimum\": 0.2968}, \"type\": \"StandardUniform1\"}}" - }, - "rate": 0.371 - }, - { - "tname": "t11", - "tprop": { - "template_type": "NaturalConversion", - "parameter_name": "kappa", - "parameter_value": 0.017, - "parameter_distribution": "{\"type\": \"StandardUniform1\", \"parameters\": {\"minimum\": 0.013600000000000001, \"maximum\": 0.0204}}", - "mira_template": "{\"rate_law\": \"Ailing*kappa\", \"type\": \"NaturalConversion\", \"subject\": {\"name\": \"Ailing\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"disease_severity\": \"ncit:C25269\", \"diagnosis\": \"ncit:C113725\"}}, \"outcome\": {\"name\": \"Healed\", \"identifiers\": {\"ido\": \"0000592\"}, \"context\": {}}, \"provenance\": []}", - "mira_rate_law": "Ailing*kappa", - "mira_rate_law_mathml": "Ailingκ", - "mira_parameters": "{\"kappa\": 0.017}", - "mira_parameter_distributions": "{\"kappa\": {\"parameters\": {\"maximum\": 0.0204, \"minimum\": 0.013600000000000001}, \"type\": \"StandardUniform1\"}}" - }, - "rate": 0.017 - }, - { - "tname": "t12", - "tprop": { - "template_type": "NaturalConversion", - "parameter_name": "mu", - "parameter_value": 0.017, - "parameter_distribution": "{\"type\": \"StandardUniform1\", \"parameters\": {\"minimum\": 0.013600000000000001, \"maximum\": 0.0204}}", - "mira_template": "{\"rate_law\": \"Ailing*mu\", \"type\": \"NaturalConversion\", \"subject\": {\"name\": \"Ailing\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"disease_severity\": \"ncit:C25269\", \"diagnosis\": \"ncit:C113725\"}}, \"outcome\": {\"name\": \"Threatened\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"disease_severity\": \"ncit:C25467\"}}, \"provenance\": []}", - "mira_rate_law": "Ailing*mu", - "mira_rate_law_mathml": "Ailingμ", - "mira_parameters": "{\"mu\": 0.017}", - "mira_parameter_distributions": "{\"mu\": {\"parameters\": {\"maximum\": 0.0204, \"minimum\": 0.013600000000000001}, \"type\": \"StandardUniform1\"}}" - }, - "rate": 0.017 - }, - { - "tname": "t13", - "tprop": { - "template_type": "NaturalConversion", - "parameter_name": "nu", - "parameter_value": 0.027, - "parameter_distribution": "{\"type\": \"StandardUniform1\", \"parameters\": {\"minimum\": 0.0216, \"maximum\": 0.0324}}", - "mira_template": "{\"rate_law\": \"Recognized*nu\", \"type\": \"NaturalConversion\", \"subject\": {\"name\": \"Recognized\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"diagnosis\": \"ncit:C15220\"}}, \"outcome\": {\"name\": \"Threatened\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"disease_severity\": \"ncit:C25467\"}}, \"provenance\": []}", - "mira_rate_law": "Recognized*nu", - "mira_rate_law_mathml": "Recognizedν", - "mira_parameters": "{\"nu\": 0.027}", - "mira_parameter_distributions": "{\"nu\": {\"parameters\": {\"maximum\": 0.0324, \"minimum\": 0.0216}, \"type\": \"StandardUniform1\"}}" - }, - "rate": 0.027 - }, - { - "tname": "t14", - "tprop": { - "template_type": "NaturalConversion", - "parameter_name": "xi", - "parameter_value": 0.017, - "parameter_distribution": "{\"type\": \"StandardUniform1\", \"parameters\": {\"minimum\": 0.013600000000000001, \"maximum\": 0.0204}}", - "mira_template": "{\"rate_law\": \"Recognized*xi\", \"type\": \"NaturalConversion\", \"subject\": {\"name\": \"Recognized\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"diagnosis\": \"ncit:C15220\"}}, \"outcome\": {\"name\": \"Healed\", \"identifiers\": {\"ido\": \"0000592\"}, \"context\": {}}, \"provenance\": []}", - "mira_rate_law": "Recognized*xi", - "mira_rate_law_mathml": "Recognizedξ", - "mira_parameters": "{\"xi\": 0.017}", - "mira_parameter_distributions": "{\"xi\": {\"parameters\": {\"maximum\": 0.0204, \"minimum\": 0.013600000000000001}, \"type\": \"StandardUniform1\"}}" - }, - "rate": 0.017 - }, - { - "tname": "t15", - "tprop": { - "template_type": "NaturalConversion", - "parameter_name": "tau", - "parameter_value": 0.01, - "parameter_distribution": "{\"type\": \"StandardUniform1\", \"parameters\": {\"minimum\": 0.008, \"maximum\": 0.012}}", - "mira_template": "{\"rate_law\": \"Threatened*tau\", \"type\": \"NaturalConversion\", \"subject\": {\"name\": \"Threatened\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"disease_severity\": \"ncit:C25467\"}}, \"outcome\": {\"name\": \"Extinct\", \"identifiers\": {\"ncit\": \"C28554\"}, \"context\": {}}, \"provenance\": []}", - "mira_rate_law": "Threatened*tau", - "mira_rate_law_mathml": "Threatenedτ", - "mira_parameters": "{\"tau\": 0.01}", - "mira_parameter_distributions": "{\"tau\": {\"parameters\": {\"maximum\": 0.012, \"minimum\": 0.008}, \"type\": \"StandardUniform1\"}}" - }, - "rate": 0.01 - }, - { - "tname": "t16", - "tprop": { - "template_type": "NaturalConversion", - "parameter_name": "sigma", - "parameter_value": 0.017, - "parameter_distribution": "{\"type\": \"StandardUniform1\", \"parameters\": {\"minimum\": 0.013600000000000001, \"maximum\": 0.0204}}", - "mira_template": "{\"rate_law\": \"Threatened*sigma\", \"type\": \"NaturalConversion\", \"subject\": {\"name\": \"Threatened\", \"identifiers\": {\"ido\": \"0000511\"}, \"context\": {\"disease_severity\": \"ncit:C25467\"}}, \"outcome\": {\"name\": \"Healed\", \"identifiers\": {\"ido\": \"0000592\"}, \"context\": {}}, \"provenance\": []}", - "mira_rate_law": "Threatened*sigma", - "mira_rate_law_mathml": "Threatenedσ", - "mira_parameters": "{\"sigma\": 0.017}", - "mira_parameter_distributions": "{\"sigma\": {\"parameters\": {\"maximum\": 0.0204, \"minimum\": 0.013600000000000001}, \"type\": \"StandardUniform1\"}}" - }, - "rate": 0.017 - } - ], - "I": [ - { - "is": 3, - "it": 1 - }, - { - "is": 1, - "it": 1 - }, - { - "is": 4, - "it": 2 - }, - { - "is": 1, - "it": 2 - }, - { - "is": 5, - "it": 3 - }, - { - "is": 1, - "it": 3 - }, - { - "is": 2, - "it": 4 - }, - { - "is": 1, - "it": 4 - }, - { - "is": 2, - "it": 5 - }, - { - "is": 2, - "it": 6 - }, - { - "is": 2, - "it": 7 - }, - { - "is": 3, - "it": 8 - }, - { - "is": 3, - "it": 9 - }, - { - "is": 4, - "it": 10 - }, - { - "is": 4, - "it": 11 - }, - { - "is": 4, - "it": 12 - }, - { - "is": 5, - "it": 13 - }, - { - "is": 5, - "it": 14 - }, - { - "is": 7, - "it": 15 - }, - { - "is": 7, - "it": 16 - } - ], - "O": [ - { - "os": 3, - "ot": 1 - }, - { - "os": 2, - "ot": 1 - }, - { - "os": 4, - "ot": 2 - }, - { - "os": 2, - "ot": 2 - }, - { - "os": 5, - "ot": 3 - }, - { - "os": 2, - "ot": 3 - }, - { - "os": 2, - "ot": 4 - }, - { - "os": 2, - "ot": 4 - }, - { - "os": 3, - "ot": 5 - }, - { - "os": 4, - "ot": 6 - }, - { - "os": 6, - "ot": 7 - }, - { - "os": 5, - "ot": 8 - }, - { - "os": 6, - "ot": 9 - }, - { - "os": 5, - "ot": 10 - }, - { - "os": 6, - "ot": 11 - }, - { - "os": 7, - "ot": 12 - }, - { - "os": 7, - "ot": 13 - }, - { - "os": 6, - "ot": 14 - }, - { - "os": 8, - "ot": 15 - }, - { - "os": 6, - "ot": 16 - } - ] -} \ No newline at end of file diff --git a/examples/dataset.csv b/examples/dataset.csv deleted file mode 100644 index d8818ec..0000000 --- a/examples/dataset.csv +++ /dev/null @@ -1,92 +0,0 @@ -timestep,S,E,I,R,D -0.0,0.49457800495224524,0.26745259325403603,0.4497387877393193,0.32807705995998604,0.8545934885162726 -1.0,0.4665022246157727,0.15226661609143755,0.282128632173281,0.5819467770808255,0.9115956844605425 -2.0,0.44995568708559147,0.0870753734907285,0.17176626841178605,0.7388229924583731,0.9468196129753799 -3.0,0.4402579969265885,0.049958082609506564,0.10268280170774824,0.8334700316632883,0.9680710215147275 -4.0,0.4345928780439725,0.02873264900876653,0.060681564306912315,0.8897296629609703,0.9807031801012375 -5.0,0.43129133897514976,0.016554961390151432,0.03559634907740039,0.9228561146017267,0.9881411703774309 -6.0,0.42937079614049717,0.00955084027561801,0.020781137104605475,0.9422429917414922,0.9924941691596463 -7.0,0.42825523174624236,0.005515226366193871,0.012094002808321005,0.9535438792052197,0.9950315942958823 -8.0,0.42760803965578864,0.003187203614737658,0.007024405738798128,0.9601135757214116,0.996506709691123 -9.0,0.42723286848143166,0.0018428391922203655,0.004074861364167079,0.9639265223459347,0.9973628430381053 -10.0,0.42701542110237617,0.001065625665672367,0.002361473964384682,0.966138016624911,0.997859397064515 -11.0,0.42688949053651354,0.0006163374574758091,0.0013677486708266896,0.9674192754645957,0.9981470822924473 -12.0,0.4268166164339979,0.0003566562089632792,0.0007921677242322537,0.968160893781643,0.9983136002730226 -13.0,0.426774399020502,0.00020632531989352596,0.0004585439285171233,0.9685905857420082,0.9984100804109383 -14.0,0.4267499641987114,0.00011936317441910912,0.00026537658614250037,0.9688393044325163,0.9984659260300698 -15.0,0.4267358390828414,6.911064486184507e-5,0.00015368573473018547,0.9689830886008763,0.9984982103585492 -16.0,0.42672764295323584,3.995637251879534e-5,8.886936321230337e-5,0.9690665218374893,0.9985169438954028 -17.0,0.42672291793839023,2.315252702782855e-5,5.149885891478391e-5,0.969114621277837,0.9985277438196892 -18.0,0.42672016837248206,1.3374421742842271e-5,2.975169371631378e-5,0.9691426114006284,0.9985340285332894 -19.0,0.4267185903383033,7.76324275234401e-6,1.72697551963783e-5,0.96915867560426,0.9985376354813472 -20.0,0.42671766524571453,4.473700806675521e-6,9.952514996761569e-6,0.9691680929676613,0.9985397499926799 -21.0,0.4267171396866097,2.605039389810057e-6,5.795292710617236e-6,0.9691734431227009,0.9985409512804482 -22.0,0.4267168292213564,1.5011076626621485e-6,3.339530654332321e-6,0.9691766036403886,0.9985416609217972 -23.0,0.4267166503308677,8.650367137104304e-7,1.9244997328791993e-6,0.9691784247361698,0.998542069818375 -24.0,0.4267165513975358,5.133018515249044e-7,1.1418963787668045e-6,0.9691794318721828,0.9985422959539103 -25.0,0.42671648849345345,2.8961248029392266e-7,6.443470300592253e-7,0.9691800722327397,0.9985424397361555 -26.0,0.4267164534150905,1.6488872179188643e-7,3.668730947050761e-7,0.9691804293288433,0.9985425199161089 -27.0,0.4267164363527159,1.0425224374051472e-7,2.3187776609803832e-7,0.9691806030229255,0.9985425589162079 -28.0,0.4267164237650669,5.94635822904114e-8,1.323403435661362e-7,0.969180731164592,0.9985425876882744 -29.0,0.42671641532016785,2.938997840309349e-8,6.558731960133238e-8,0.9691808171332872,0.9985426069911061 -30.0,0.4267164119320277,1.7383990307292018e-8,3.8745941399490847e-8,0.9691808516243932,0.9985426147355065 -31.0,0.42671641142993344,1.567980166379535e-8,3.4693296446806386e-8,0.9691808567356694,0.9985426158831582 -32.0,0.4267164097239014,9.397997811086657e-9,2.141426794359566e-8,0.9691808741029923,0.9985426197826998 -33.0,0.4267164077513253,1.6630451169718799e-9,6.5322673177872115e-9,0.9691808941837284,0.998542624291493 -34.0,0.4267164068327058,-1.7144298561756136e-9,-6.228678598180968e-10,0.969180903535234,0.998542626391217 -35.0,0.42671640713709813,1.995841690399913e-10,9.531889471946351e-10,0.9691809004365325,0.9985426256954555 -36.0,0.4267164080167858,4.441082888563269e-9,6.797923212261653e-9,0.9691808914813484,0.9985426236847188 -37.0,0.42671640835547514,3.2138485814499743e-9,1.190846777114169e-8,0.9691808880335046,0.9985426229105632 -38.0,0.42671641412844163,-2.6272280610911653e-8,1.0758565137248983e-7,0.9691808292649736,0.9985426097150731 -39.0,0.42671642043471775,-5.7124386784960156e-8,2.107435751597396e-7,0.9691807650673759,0.9985425953005771 -40.0,0.42671642069465143,-6.101555879931584e-8,2.1761506634755097e-7,0.9691807624212634,0.9985425947064368 -41.0,0.42671641308224717,-2.98748098503364e-8,9.919283597417899e-8,0.9691808399151859,0.9985426121064 -42.0,0.42671640052516574,2.41129225278762e-8,-9.87705210985136e-8,0.9691809677456914,0.9985426408086006 -43.0,0.4267163907047244,6.850677646347266e-8,-2.557625261850519e-7,0.9691810677173265,0.998542663255558 -44.0,0.42671639824152524,4.377942441187322e-8,-1.4462071904623285e-7,0.9691809909931911,0.9985426460284376 -45.0,0.4267165177761834,-3.5045943998565953e-7,1.6201571649468285e-6,0.9691797741428834,0.9985423728050674 -46.0,0.426716582914649,-5.657635155369028e-7,2.5823127375500367e-6,0.9691791110412861,0.9985422239167021 -47.0,0.426716469373307,-1.9999268662048253e-7,9.147186185214705e-7,0.9691802668813723,0.9985424834412481 -48.0,0.4267162674880653,4.53529758154388e-7,-2.0535417063955472e-6,0.9691823220506339,0.9985429448951083 -49.0,0.42671627788979505,4.201179072135318e-7,-1.900860288767501e-6,0.9691822161561675,0.9985429211182781 -50.0,0.42671649186340843,-2.7150027993614184e-7,1.2440747380756681e-6,0.9691800379462864,0.9985424320377062 -51.0,0.4267164371442758,-9.590264835717333e-8,4.410989446171615e-7,0.9691805949726369,0.9985425571086503 -52.0,0.42671627454943717,4.2799006477805363e-7,-1.9470013902130833e-6,0.9691822501358911,0.9985429287478564 -53.0,0.4267164118674504,-1.515429881156514e-8,7.058019617525471e-8,0.9691808522520705,0.998542614876441 -54.0,0.4267164314292611,-7.842218520117033e-8,3.5813674655576225e-7,0.9691806531145852,0.9985425701634516 -55.0,0.4267163402967335,2.1536057882219336e-7,-9.805249063054177e-7,0.9691815808243099,0.9985427784651432 -56.0,0.4267164064309929,2.026849024044358e-9,-8.917426690141202e-9,0.969180907581668,0.998542627299776 -57.0,0.4267164283592435,-6.872496312372469e-8,3.1325564224967763e-7,0.969180684354161,0.9985425771777755 -58.0,0.4267163726304823,1.1096730955813961e-7,-5.053996636778452e-7,0.9691812516656547,0.9985427045580763 -59.0,0.4267164022669418,1.5383256861379745e-8,-7.001281739503044e-8,0.9691809499676411,0.9985426368168369 -60.0,0.4267164303322644,-7.51289506815351e-8,3.42286373147847e-7,0.9691806642650668,0.9985425726671056 -61.0,0.42671639252407795,4.678946740843496e-8,-2.1312670437383657e-7,0.9691810491487283,0.9985426590862899 -62.0,0.4267163906803671,5.2732295751289435e-8,-2.40207629435881e-7,0.9691810679165382,0.9985426633002876 -63.0,0.42671643093445266,-7.707951798376247e-8,3.51143486333012e-7,0.9691806581331516,0.9985425712902867 -64.0,0.4267164128814658,-1.8863795872089294e-8,8.593863522149074e-8,0.9691808419110224,0.9985426125545317 -65.0,0.42671637686662756,9.727501741359907e-8,-4.4313284520207667e-7,0.9691812085384706,0.9985426948745889 -66.0,0.4267164200453857,-4.196688650706194e-8,1.9118201954589875e-7,0.9691807689818369,0.9985425961795036 -67.0,0.42671643358050243,-8.561468651784963e-8,3.900185546253598e-7,0.9691806311955823,0.9985425652419063 -68.0,0.4267163868830551,6.497344448890763e-8,-2.9598552756642434e-7,0.9691811065713162,0.9985426719795709 -69.0,0.4267163912524428,5.0882866998259076e-8,-2.317959767734765e-7,0.9691810620904003,0.9985426619921258 -70.0,0.42671644043115114,-1.0770701760595323e-7,4.906592850593068e-7,0.969180561455502,0.9985425495829385 -71.0,0.4267164167376279,-3.130102261908867e-8,1.425919497941743e-7,0.9691808026534119,0.9985426037398922 -72.0,0.4267163669919889,1.291167181759515e-7,-5.881901500074731e-7,0.9691813090586004,0.9985427174447016 -73.0,0.4267164200016294,-4.1827178724749095e-8,1.9054393033467677e-7,0.9691807694245668,0.9985425962789112 -74.0,0.42671644240995465,-1.1408876512607039e-7,5.19730932389067e-7,0.9691805413101093,0.9985425450596278 -75.0,0.4267163840322124,7.416555460008109e-8,-3.3786040346975136e-7,0.9691811355893997,0.9985426784950959 -76.0,0.42671638308439874,7.72215823075342e-8,-3.5178174842226147e-7,0.9691811452364474,0.998542680661179 -77.0,0.42671644336728115,-1.1717662911843815e-7,5.337977747629874e-7,0.969180531562473,0.9985425428709592 -78.0,0.42671641776404695,-3.461230115131663e-8,1.5767640473892867e-7,0.9691807922007798,0.9985426013929286 -79.0,0.4267163612928776,1.4749353363619526e-7,-6.719051144173975e-7,0.9691813670703036,0.9985427304702585 -80.0,0.4267164203694237,-4.3014784946728866e-8,1.9595428752147932e-7,0.9691807656757546,0.9985425954371782 -81.0,0.4267164406054988,-1.0827141116253247e-7,4.932300540646792e-7,0.9691805596746412,0.9985425491830761 -82.0,0.4267163787730171,9.112354076019481e-8,-4.151121391980163e-7,0.9691811891224043,0.9985426905150361 -83.0,0.42671638837990683,6.01430724791526e-8,-2.73980456025726e-7,0.9691810913234238,0.998542668555912 -84.0,0.4267164428101249,-1.1538169475281397e-7,5.256211091987005e-7,0.96918053722903,0.9985425441432898 -85.0,0.4267164096512028,-8.452095193740493e-9,3.85038789026454e-8,0.969180874783399,0.9985426199354737 -86.0,0.42671636500544596,1.3551953690584167e-7,-6.173575814057123e-7,0.9691813292713266,0.998542721983131 -87.0,0.42671642647384933,-6.270190499547489e-8,2.856388664368029e-7,0.9691807035280883,0.9985425814829599 -88.0,0.4267164339544428,-8.682512094420266e-8,3.9553170304887336e-7,0.96918062737645,0.998542564384384 -89.0,0.4267163734271133,1.083610174179625e-7,-4.936373932413709e-7,0.9691812435379789,0.9985427027331426 -90.0,0.42671638393595407,7.447198602603216e-8,-3.392558129647435e-7,0.9691811365573083,0.9985426787124235 diff --git a/examples/example-model.json b/examples/example-model.json deleted file mode 100644 index a0d0c27..0000000 --- a/examples/example-model.json +++ /dev/null @@ -1 +0,0 @@ -{"T":[{"tname":"exp"},{"tname":"conv"},{"tname":"rec"},{"tname":"death"}],"S":[{"sname":"S"},{"sname":"E"},{"sname":"I"},{"sname":"R"},{"sname":"D"}],"I":[{"it":1,"is":1},{"it":1,"is":3},{"it":2,"is":2},{"it":3,"is":3},{"it":4,"is":3}],"O":[{"ot":1,"os":2},{"ot":1,"os":3},{"ot":2,"os":3},{"ot":3,"os":4},{"ot":4,"os":5}]} diff --git a/examples/request-calibrate.json b/examples/request-calibrate.json deleted file mode 100644 index 53eb17a..0000000 --- a/examples/request-calibrate.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "model_config_id": "f20ea672-bfa4-422b-884f-0a4c09356fd0", - "dataset": { - "id": "2ea2d39f-866f-46f6-beec-972ed2136ed5", - "filename": "dataset.csv" - }, - "timespan": {"start": 101, "end": 190}, - "extra": { - "initials": { - "S": 0.49457800495224524, - "E": 0.26745259325403603, - "I": 0.4497387877393193, - "R": 0.32807705995998604, - "D": 0.8545934885162726 - }, - "params": { - "exp": 0.16207166221196045, - "conv": 0.7009195813964052, - "rec": 0.7040317196117394, - "death": 0.15807853921067516 - } - } -} diff --git a/examples/request-simulate.json b/examples/request-simulate.json deleted file mode 100644 index 1a696c6..0000000 --- a/examples/request-simulate.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "model_config_id": "f20ea672-bfa4-422b-884f-0a4c09356fd0", - "timespan": {"start": 0, "end": 90}, - "extra": { - "initials": { - "S": 0.49457800495224524, - "E": 0.26745259325403603, - "I": 0.4497387877393193, - "R": 0.32807705995998604, - "D": 0.8545934885162726 - }, - "params": { - "exp": 0.16207166221196045, - "conv": 0.7009195813964052, - "rec": 0.7040317196117394, - "death": 0.15807853921067516 - } - } -} diff --git a/src/SimulationService.jl b/src/SimulationService.jl index 57a2efa..ad72a87 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -30,10 +30,11 @@ export start!, stop! # ASKEM Model Representation: https://github.com/DARPA-ASKEM/Model-Representations/blob/main/petrinet/petrinet_schema.json -# pre-rewrite commit: https://github.com/DARPA-ASKEM/simulation-service/commit/8e4dfc515fd6ddf53067fa535e37450daf1cd63c +# pre-rewrite commit: https://github.com/DARPA-ASKEM/simulation-service/tree/8e4dfc515fd6ddf53067fa535e37450daf1cd63c #-----------------------------------------------------------------------------# __init__ const rabbit_mq_channel = Ref{Any}() # TODO: replace Any with what AMQPClient.channel returns +const server_url = Ref{String}() function __init__() if Threads.nthreads() == 1 @@ -50,18 +51,23 @@ function __init__() conn = AMQPClient.connection(; virtualhost="/", host="localhost", port=SIMSERVICE_RABBITMQ_PORT, auth_params) rabbitmq_channel[] = AMQPClient.channel(conn, AMQPClient.UNUSED_CHANNEL, true) end + + server_url[] = "http://$SIMSERVICE_HOST:$SIMSERVICE_PORT" end #-----------------------------------------------------------------------------# start! function start!(; host=SIMSERVICE_HOST, port=SIMSERVICE_PORT, kw...) Threads.nthreads() > 1 || error("Server require `Thread.nthreads() > 1`. Start Julia via `julia --threads=auto`.") stop!() # Stop server if it's already running + server_url[] = "http://$host:$port" JobSchedulers.scheduler_start() JobSchedulers.set_scheduler(max_cpu=0.5, max_mem=0.5, update_second=0.05, max_job=5000) Oxygen.resetstate() Oxygen.@get "/" health - Oxygen.@get "/status/{job_id}" (req,job_id) -> "TODO: Not Implemented yet." - Oxygen.@post "/{op}" operation + Oxygen.@post "/{operation_name}" operation + Oxygen.@get "/jobs/status/{job_id}" job_status + Oxygen.@get "/jobs/result/{job_id}" job_result + Oxygen.@post "/jobs/kill/{job_id}" job_kill Oxygen.serveparallel(; host, port, async=true, kw...) end @@ -86,7 +92,7 @@ SIMSERVICE_RABBITMQ_PORT = parse(Int, get(ENV, "SIMSERVICE_RABBITMQ_PORT" # Terrarium Data Service (TDS) SIMSERVICE_ENABLE_TDS = get(ENV, "SIMSERVICE_ENABLE_TDS", "true") == "true" SIMSERVICE_TDS_URL = get(ENV, "SIMSERVICE_TDS_URL", "http://localhost:8001") -SIMSERVICE_TDS_UPDATE_RETRIES = parse(Int, get(ENV, "SIMSERVICE_TDS_RETRIES", "10")) +SIMSERVICE_TDS_RETRIES = parse(Int, get(ENV, "SIMSERVICE_TDS_RETRIES", "10")) #-----------------------------------------------------------------------------# utils @@ -135,42 +141,28 @@ function ode_system_from_amr(obj::JSON3.Object) ODESystem(eqs, t, statefuncs, paramvars; defaults = [statefuncs .=> initial_vals; sym_defs], name=Symbol(obj.name)) end -#--------------------------------------------------------------------------# Terrarium Data Service -# DataFrame saved as CSV -# Everything else saved as JSON -function tds_upload(x, job_id::String; name::String="result") - if !SIMSERVICE_ENABLE_TDS - return @warn "TDS is not enabled. `x::$(typeof(x))` will not be uploaded.))" - end - ext = x isa DataFrame ? "csv" : "json" - body = x isa DataFrame ? CSV.write(x) : JSON3.write(x) - upload_url = "$SIMSERVICE_TDS_URL/simulations/sciml-$job_id/upload-url?filename=$name.$ext" - url = get_json(upload_url) - HTTP.put(url, JSON_HEADER; body) - return first(split(url, '?')) -end +#-----------------------------------------------------------------------------# health: "GET /" +health(::HTTP.Request) = (; status="ok", SIMSERVICE_RABBITMQ_ENABLED, SIMSERVICE_RABBITMQ_ROUTE) -function tds_update_job(job_id::String, updated_fields::Dict{Symbol}) - if !SIMSERVICE_ENABLE_TDS - return @warn "TDS is not enabled. Job $job_id will not be updated: $update_fields." - end - obj = nothing - url = "$SIMSERVICE_TDS_URL/simulations/$job_id" # joshday: rename simulations => jobs? - for _ in 1:SIMSERVICE_TDS_UPDATE_RETRIES - try - obj = get_json(url) - catch ex - ex isa HTTP.Exceptions.StatusError && ex.status == 404 ? continue : rethrow(ex) - end - end - isnothing(obj) && error("Cannot update. Job $job_id does not exist in TDS.") +function job_status(::HTTP.Request, job_id::String) + job = JobSchedulers.job_query(job_id) + return job.state +end - body = JSON3.write(merge(Dict(obj), updated_fields)) - HTTP.put(url, JSON_HEADER; body=body) +function job_result(::HTTP.Request, job_id::String) + job = JobSchedulers.job_query(job_id) + JobSchedulers.result(job) end -#-----------------------------------------------------------------------------# health: "GET /" -health(::HTTP.Request) = (; status="ok", SIMSERVICE_RABBITMQ_ENABLED, SIMSERVICE_RABBITMQ_ROUTE) +function job_kill(::HTTP.Request, job_id::String) + try + job = JobSchedulers.job_query(job_id) + JobSchedulers.cancel!(job) + return HTTP.Response(200) + catch + return HTTP.Response(500) + end +end #-----------------------------------------------------------------------------# RabbitMQ # Content sent to client as JSON3.write(content) @@ -183,28 +175,7 @@ function publish_to_rabbitmq(content) end publish_to_rabbitmq(; kw...) = publish_to_rabbitmq(Dict(kw...)) -#-----------------------------------------------------------------------------# IntermediateResults -# Publish intermediate results to RabbitMQ with at least `every` seconds inbetween callbacks -mutable struct IntermediateResults - last_callback::Dates.DateTime # Track the last time the callback was called - every::Dates.TimePeriod # Callback frequency e.g. `Dates.Second(5)` - job_id::String - - function IntermediateResults(job_id::String; every=Dates.Second(5)) - new(typemin(Dates.DateTime), every, job_id) - end -end - -function (o::IntermediateResults)(integrator) - if o.last_callback + o.every ≤ Dates.now() - o.last_callback = Dates.now() - (; iter, t, u, uprev) = integrator - publish_to_rabbitmq(; iter=iter, time=t, params=u, abserr=norm(u - uprev), job_id=o.jobid, - retcode=SciMLBase.check_error(integrator)) - end -end -get_callback(job_id::String) = DiscreteCallback((args...) -> true, IntermediateResults(job_id)) #-----------------------------------------------------------------------------# Operations @@ -231,15 +202,16 @@ abstract type Operation end #-----------------------------------------------------------------------------# OperationRequest # An OperationRequest contains all the information required to run an Operation - -struct OperationRequest +# It's created immediately from a client request and we pass it around to keep all info together +mutable struct OperationRequest{T <: Operation} obj::JSON3.Object # Untouched JSON from request body model_config_ids::Vector{UUIDs.UUID} amr::Vector{JSON3.Object} # ASKEM Model Representations associated with model_config_ids timespan::Tuple{Float64, Float64} df::DataFrame # empty if !haskey(obj, :dataset) job_id::String # auto-generated in constructor - operation::String # e.g. "simulate" + operation_type::Type{T} + results::Any # results of solve(operation(::OperationRequest)) function OperationRequest(req::HTTP.Request) obj = JSON3.read(req.body) @@ -248,9 +220,11 @@ struct OperationRequest timespan = get_timespan(obj) df = get_df(obj) job_id = "sciml-$(UUIDs.uuid4())" - operation = split(req.url.path, ",")[end] + operation_name = split(req.url.path, ",")[end] + operation_dict = Dict(lowercase(string(T)) => T for T in subtypes(Operation)) + operation_type = operation_dict[operation_name] - new(obj, model_config_ids, amr, timespan, df, job_id, operation) + new{operation_type}(obj, model_config_ids, amr, timespan, df, job_id, operation_type, nothing) end end @@ -260,7 +234,7 @@ function get_model_config_ids(obj::JSON3.Object) elseif haskey(obj, :model_config_ids) return UUID.(obj.model_config_ids) else - error("JSON request to have a `model_config_id` or `model_config_ids` key.") + @warn "JSON request expected to have a `model_config_id` or `model_config_ids` key." end end @@ -282,42 +256,105 @@ function get_df(obj::JSON3.Object) return df end -#-----------------------------------------------------------------------------# POST /operation/{operation} -function operation(req::HTTP.Request, op::String) - try - # Get T <: Operation from request - T = get_operation_type(op) - op_req = OperationRequest(req) - op = T(op_req) - callback = get_callback(op_req.job_id) - - # schedule job and update status when finished - tds_update_job(o.job_id, Dict(:status => "running", :start_time => time())) - t = @task function () - output = solve(op; callback) - prepare_output(output, op_req) - tds_update_job(o.job_id, Dict(:status => "complete", :completed_time => time())) +#--------------------------------------------------------------------# IntermediateResults callback +# Publish intermediate results to RabbitMQ with at least `every` seconds inbetween callbacks +mutable struct IntermediateResults + last_callback::Dates.DateTime # Track the last time the callback was called + every::Dates.TimePeriod # Callback frequency e.g. `Dates.Second(5)` + job_id::String + function IntermediateResults(job_id::String; every=Dates.Second(5)) + new(typemin(Dates.DateTime), every, job_id) + end +end +function (o::IntermediateResults)(integrator) + if o.last_callback + o.every ≤ Dates.now() + o.last_callback = Dates.now() + (; iter, t, u, uprev) = integrator + publish_to_rabbitmq(; iter=iter, time=t, params=u, abserr=norm(u - uprev), job_id=o.jobid, + retcode=SciMLBase.check_error(integrator)) + end +end +get_callback(o::OperationRequest) = DiscreteCallback((args...) -> true, IntermediateResults(o.job_id)) + +#--------------------------------------------------------------------------# Terrarium Data Service +# Retry a function `n` times if error is HTTP 404 +default_retry_contion(ex) = ex isa HTTP.Exceptions.StatusError && ex.status == 404 + +function retry_n(f; n::Int=SIMSERVICE_TDS_RETRIES, sleep_between::Int=1, condition=default_retry_contion) + res = nothing + for _ in 1:SIMSERVICE_TDS_UPDATE_RETRIES + try + res = f() + break + catch ex + if condition(ex) + sleep(sleep_between) + continue + else + rethrow(ex) + end end - sim_run = JobSchedulers.Job(t) - sim_run.id = o.job_id - JobSchedulers.submit!(sim_run) + end + return res +end - body = JSON3.write((; simulation_id = o.job_id)) - return Response(201, ["Content-Type" => "application/json; charset=utf-8"]; body=body) - catch ex - return Response(500, ["Content-Type" => "application/json; charset=utf-8"]; body=JSON3.write((; error=string(ex)))) +function update_job_status!(o::OperationRequest; kw...) + SIMSERVICE_ENABLE_TDS || return @info "update_job_status!: $kw" + job_id = o.job_id + url = "$SIMSERVICE_TDS_URL/simulations/$job_id" # joshday: rename simulations => jobs? + obj = retry_n(() -> get_json(url)) + # If JobID is not found in the TDS, we will create it + obj = isnothing(obj) ? Dict() : Dict(obj) + + body = JSON3.write(merge(Dict(obj), Dict(kw))) + HTTP.put(url, JSON_HEADER; body=body) +end + + +function upload_results!(o::OperationRequest) + isnothing(o.results) && error("No results. Run `solve!(o)` first.") + + if o.results isa DataFrame + body = CSV.write(o.results) + filename = "result.csv" + header = ["Content-Type" => "text/csv"] + else + body = JSON3.write(o.results) + filename = "result.json" + header = JSON_HEADER + end + + upload_url = "$SIMSERVICE_TDS_URL/simulations/sciml-$job_id/upload-url?filename=$filename" + url = get_json(upload_url).url + if SIMSERVICE_ENABLE_TDS + HTTP.put(url, header; body=body) + else + @info "upload_results!: $body" end end -function get_operation_type(op::String) - d = Dict(lowercase(string(T)) => T for T in subtypes(Operation)) - return d[op] +#-----------------------------------------------------------------------------# solve! +function solve!(o::OperationRequest) + update_job_status!(o; status="running", start_time=time()) + operation = o.operation_type(o) + callback = get_callback(o) + o.results = solve(operation; callback) + upload_results!(o) + update_job_status!(o; status="complete", complete_time=time()) + return o.result end -# joshday: What else needs to be handled by prepare_output? -function prepare_output(df::DataFrame, o::OperationRequest; name="0") - foreach(name -> rename!(df, name => replace(name, "(t)" => "")), names(df)) - SIMSERVICE_ENABLE_TDS ? tds_upload(df, o.job_id; name=name) : CSV.write(df) +#-----------------------------------------------------------------------------# POST /operation/{operation} +function operation(req::HTTP.Request, operation_name::String) + try + o = OperationRequest(req) + job = JobSchedulers.Job(@task(solve!(o)); id=o.job_id) + JobSchedulers.submit!(job) + body = JSON3.write((; simulation_id = o.job_id)) + return Response(201, ["Content-Type" => "application/json; charset=utf-8"]; body=body) + catch ex + return Response(500, ["Content-Type" => "application/json; charset=utf-8"]; body=JSON3.write((; error=string(ex)))) + end end From 7ae9c89b5e0badc4df74f5f881e495bfdb0e4e31 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Tue, 11 Jul 2023 10:57:00 -0400 Subject: [PATCH 12/31] add some packages, parse openapispec yaml --- Manifest.toml | 1483 +++++++++++++++++++++++++++++++++++++- Project.toml | 3 + src/SimulationService.jl | 8 +- test/runtests.jl | 1 + 4 files changed, 1462 insertions(+), 33 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index 3fad001..1796f2e 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,7 +2,7 @@ julia_version = "1.9.2" manifest_format = "2.0" -project_hash = "c402d690538fc75315d0bd02fb0cbfb2893c9ee1" +project_hash = "ae974fa9e2b2e95595d9b9f7febdf5128c27004c" [[deps.ADTypes]] git-tree-sha1 = "e58c18d2312749847a74f5be80bb0fa53da102bd" @@ -15,17 +15,63 @@ git-tree-sha1 = "508457ed7a2afb432590247dc363fffc51f242fc" uuid = "79c8b4cd-a41a-55fa-907c-fab5288e1383" version = "0.5.1" +[[deps.ASL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6252039f98492252f9e47c312c8ffda0e3b9e78d" +uuid = "ae81ac8f-d209-56e5-92de-9978fef736f9" +version = "0.1.3+0" + [[deps.AbstractAlgebra]] deps = ["GroupsCore", "InteractiveUtils", "LinearAlgebra", "MacroTools", "Preferences", "Random", "RandomExtensions", "SparseArrays", "Test"] git-tree-sha1 = "1bd8a536c949eb3de9b58042d57790ded6b70fa6" uuid = "c3fe647b-3220-5bb0-a1ea-a7954cac585d" version = "0.30.9" +[[deps.AbstractFFTs]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "cad4c758c0038eea30394b1b671526921ca85b21" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "1.4.0" +weakdeps = ["ChainRulesCore"] + + [deps.AbstractFFTs.extensions] + AbstractFFTsChainRulesCoreExt = "ChainRulesCore" + +[[deps.AbstractMCMC]] +deps = ["BangBang", "ConsoleProgressMonitor", "Distributed", "LogDensityProblems", "Logging", "LoggingExtras", "ProgressLogging", "Random", "StatsBase", "TerminalLoggers", "Transducers"] +git-tree-sha1 = "87e63dcb990029346b091b170252f3c416568afc" +uuid = "80f14c24-f653-4e6a-9b94-39d6b0f70001" +version = "4.4.2" + +[[deps.AbstractPPL]] +deps = ["AbstractMCMC", "DensityInterface", "Random", "Setfield", "SparseArrays"] +git-tree-sha1 = "33ea6c6837332395dbf3ba336f273c9f7fcf4db9" +uuid = "7a57a42e-76ec-4ea3-a279-07e840d6d9cf" +version = "0.5.4" + [[deps.AbstractTrees]] git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c" uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" version = "0.4.4" +[[deps.Accessors]] +deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "MacroTools", "Requires", "Test"] +git-tree-sha1 = "954634616d5846d8e216df1298be2298d55280b2" +uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" +version = "0.1.32" + + [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 = "76289dc51920fdc6e0013c872ba9551d54961c24" @@ -36,6 +82,57 @@ weakdeps = ["StaticArrays"] [deps.Adapt.extensions] AdaptStaticArraysExt = "StaticArrays" +[[deps.AdvancedHMC]] +deps = ["AbstractMCMC", "ArgCheck", "DocStringExtensions", "InplaceOps", "LinearAlgebra", "LogDensityProblems", "LogDensityProblemsAD", "ProgressMeter", "Random", "Requires", "Setfield", "SimpleUnPack", "Statistics", "StatsBase", "StatsFuns"] +git-tree-sha1 = "3bf24030e85b1d6d298e4f483f6aeff6f38462db" +uuid = "0bf59076-c3b1-5ca4-86bd-e02cd72cde3d" +version = "0.4.6" + + [deps.AdvancedHMC.extensions] + AdvancedHMCCUDAExt = "CUDA" + AdvancedHMCMCMCChainsExt = "MCMCChains" + AdvancedHMCOrdinaryDiffEqExt = "OrdinaryDiffEq" + + [deps.AdvancedHMC.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" + OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" + +[[deps.AdvancedMH]] +deps = ["AbstractMCMC", "Distributions", "LogDensityProblems", "Random", "Requires"] +git-tree-sha1 = "165af834eee68d0a96c58daa950ddf0b3f45f608" +uuid = "5b7e9947-ddc0-4b3f-9b55-0d8042f74170" +version = "0.7.4" +weakdeps = ["DiffResults", "ForwardDiff", "MCMCChains", "StructArrays"] + + [deps.AdvancedMH.extensions] + AdvancedMHForwardDiffExt = ["DiffResults", "ForwardDiff"] + AdvancedMHMCMCChainsExt = "MCMCChains" + AdvancedMHStructArraysExt = "StructArrays" + +[[deps.AdvancedPS]] +deps = ["AbstractMCMC", "Distributions", "Libtask", "Random", "Random123", "StatsFuns"] +git-tree-sha1 = "4d73400b3583147b1b639794696c78202a226584" +uuid = "576499cb-2369-40b2-a588-c64705576edc" +version = "0.4.3" + +[[deps.AdvancedVI]] +deps = ["Bijectors", "Distributions", "DistributionsAD", "DocStringExtensions", "ForwardDiff", "LinearAlgebra", "ProgressMeter", "Random", "Requires", "StatsBase", "StatsFuns", "Tracker"] +git-tree-sha1 = "67fcc7d46c26250e89fc62798fbe07b5ee264c6f" +uuid = "b5ca4192-6429-45e5-a2d9-87aec30a685c" +version = "0.1.6" + +[[deps.AlphaStableDistributions]] +deps = ["Distributions", "FileIO", "Interpolations", "JLD2", "LinearAlgebra", "Random", "SpecialFunctions", "StaticArrays", "Statistics", "StatsBase", "ToeplitzMatrices"] +git-tree-sha1 = "ad5789d4d1a7e38a9fb1e5e02369eeb799833b2e" +uuid = "f20549b4-2d50-407f-863c-cdd202ba59a3" +version = "1.1.6" + +[[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" @@ -83,20 +180,75 @@ version = "1.0.10" [[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.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.BandedMatrices]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools", "SparseArrays"] git-tree-sha1 = "206e78eb10c9aaee4e73962b1cbd0ecf688d4b49" uuid = "aae01518-5342-5314-be14-df237901396f" version = "0.17.30" +[[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.BenchmarkTools]] +deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] +git-tree-sha1 = "d9a9701b899b30332bbcb3e1679c41cce81fb0e8" +uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +version = "1.3.2" + [[deps.Bijections]] git-tree-sha1 = "fe4f8c5ee7f76f2198d5c2a06d3961c249cce7bd" uuid = "e2ed5e7c-b2de-5872-ae92-c73ca462fb04" version = "0.1.4" +[[deps.Bijectors]] +deps = ["ArgCheck", "ChainRulesCore", "ChangesOfVariables", "Compat", "Distributions", "Functors", "InverseFunctions", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "MappedArrays", "Random", "Reexport", "Requires", "Roots", "SparseArrays", "Statistics"] +git-tree-sha1 = "1234b03e94938e6f2b14834dfd3ef45698d5e14f" +uuid = "76274a88-744f-5084-9051-94815aaf08c4" +version = "0.10.8" + [[deps.BitFlags]] git-tree-sha1 = "43b1a4a8f797c1cddadf60499a8a077d4af2cd2d" uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" @@ -108,12 +260,24 @@ git-tree-sha1 = "0c5f81f47bbbcf4aea7b2959135713459170798b" uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" version = "0.1.5" +[[deps.BlackBoxOptim]] +deps = ["CPUTime", "Compat", "Distributed", "Distributions", "HTTP", "JSON", "LinearAlgebra", "Printf", "Random", "SpatialIndexing", "StatsBase"] +git-tree-sha1 = "136079f37e3514ec691926093924b591a8842f5d" +uuid = "a134a8b2-14d6-55f6-9291-3336d3ab0209" +version = "0.6.2" + [[deps.BoundaryValueDiffEq]] deps = ["BandedMatrices", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "NLsolve", "Reexport", "SciMLBase", "SparseArrays"] git-tree-sha1 = "ed8e837bfb3d1e3157022c9636ec1c722b637318" uuid = "764a87c0-6b3e-53db-9096-fe964310641d" version = "2.11.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" @@ -125,24 +289,63 @@ git-tree-sha1 = "89e0654ed8c7aebad6d5ad235d6242c2d737a928" uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" version = "0.2.3" +[[deps.CPUTime]] +git-tree-sha1 = "2dcc50ea6a0a1ef6440d6eecd0fe3813e5671f45" +uuid = "a9c8d775-2e2e-55fc-8582-045d282d599e" +version = "1.0.0" + +[[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.CSTParser]] deps = ["Tokenize"] git-tree-sha1 = "3ddd48d200eb8ddf9cb3e0189fc059fd49b97c1f" uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f" version = "3.3.6" +[[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", "Statistics", "StructArrays"] +git-tree-sha1 = "2afc496e94d15a1af5502625246d172361542133" +uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" +version = "1.52.0" + [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra", "SparseArrays"] git-tree-sha1 = "e30f2f4e20f7f186dc36529910beaedc60cfa644" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" version = "1.16.0" +[[deps.ChangesOfVariables]] +deps = ["LinearAlgebra", "Test"] +git-tree-sha1 = "2fba81a302a7be671aefe194f0525ef231104e7f" +uuid = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" +version = "0.1.8" +weakdeps = ["InverseFunctions"] + + [deps.ChangesOfVariables.extensions] + ChangesOfVariablesInverseFunctionsExt = "InverseFunctions" + [[deps.CloseOpenIntervals]] deps = ["Static", "StaticArrayInterface"] git-tree-sha1 = "70232f82ffaab9dc52585e0dd043b5e0c6b714f1" @@ -155,12 +358,42 @@ git-tree-sha1 = "d730914ef30a06732bdd9f763f6cc32e92ffbff1" uuid = "da1fd8a2-8d9e-5ec2-8556-3022fb5608a2" version = "1.3.1" +[[deps.CodecBzip2]] +deps = ["Bzip2_jll", "Libdl", "TranscodingStreams"] +git-tree-sha1 = "2e62a725210ce3c3c2e1a3080190e7ca491f18d7" +uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" +version = "0.7.2" + [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] git-tree-sha1 = "9c209fb7536406834aa938fb149964b985de6c83" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" version = "0.7.1" +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "be6ab11021cd29f0344d5c4357b163af05a48cba" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.21.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.Combinatorics]] git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" @@ -203,12 +436,32 @@ git-tree-sha1 = "02d2316b7ffceff992f3096ae48c7829a8aa0638" uuid = "b152e2b5-7a66-4b01-a709-34e65c35f657" version = "0.1.3" +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" +weakdeps = ["InverseFunctions"] + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + +[[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" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" version = "2.2.0" +[[deps.ConsoleProgressMonitor]] +deps = ["Logging", "ProgressMeter"] +git-tree-sha1 = "3ab7b2136722890b9af903859afcf457fa3059e8" +uuid = "88cd18e8-d9cc-4ea6-8889-5259c0d15c8b" +version = "0.1.2" + [[deps.ConstructionBase]] deps = ["LinearAlgebra"] git-tree-sha1 = "738fec4d684a9a6ee9598a8bfee305b26831f28c" @@ -220,6 +473,17 @@ weakdeps = ["IntervalSets", "StaticArrays"] ConstructionBaseIntervalSetsExt = "IntervalSets" ConstructionBaseStaticArraysExt = "StaticArrays" +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.Copulas]] +deps = ["AlphaStableDistributions", "Cubature", "Distributions", "ForwardDiff", "GSL", "MvNormalCDF", "Random", "Roots", "SpecialFunctions", "StatsBase", "TaylorSeries"] +git-tree-sha1 = "bf5b74cd9b240eea4b713bf3b04211dabf827688" +uuid = "ae264745-0b69-425e-9d9d-cf662c5eec93" +version = "0.1.10" + [[deps.CpuId]] deps = ["Markdown"] git-tree-sha1 = "fcbb72b032692610bfbdb15018ac16a36cf2e406" @@ -231,6 +495,24 @@ git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" version = "4.1.1" +[[deps.Cubature]] +deps = ["Cubature_jll"] +git-tree-sha1 = "c3f4b3b38abd7b5c3ccf59adab2568212e7530d3" +uuid = "667455a9-e2ce-5579-9412-b964f529a492" +version = "1.5.1" + +[[deps.Cubature_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0fe9efb84e3eb7b14f885a95aaa0ed50c7e839c8" +uuid = "7bc98958-0e37-5d67-a6ac-a3a19030071a" +version = "1.0.5+0" + +[[deps.DSP]] +deps = ["Compat", "FFTW", "IterTools", "LinearAlgebra", "Polynomials", "Random", "Reexport", "SpecialFunctions", "Statistics"] +git-tree-sha1 = "da8b06f89fce9996443010ef92572b193f8dca1f" +uuid = "717857b8-e6f2-59f4-9121-6e50c889abd2" +version = "0.7.8" + [[deps.DataAPI]] git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" @@ -257,12 +539,29 @@ version = "1.0.0" 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.DelayDiffEq]] deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "LinearAlgebra", "Logging", "OrdinaryDiffEq", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SimpleUnPack"] git-tree-sha1 = "89f3fbfe78f9d116d1ed0721d65b0b2cf9b36169" uuid = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb" version = "5.42.0" +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.DensityInterface]] +deps = ["InverseFunctions", "Test"] +git-tree-sha1 = "80c3e8639e3353e5d2912fb3a1916b8455e2494b" +uuid = "b429d917-457f-4dbc-8f4c-0cc954292b1d" +version = "0.4.0" + [[deps.DiffEqBase]] deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "DocStringExtensions", "EnumX", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces", "ZygoteRules"] git-tree-sha1 = "62c41421bd0facc43dfe4e9776135fe21fd1e1b9" @@ -342,14 +641,29 @@ deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", " git-tree-sha1 = "e76a3281de2719d7c81ed62c6ea7057380c87b1d" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" version = "0.25.98" +weakdeps = ["ChainRulesCore", "DensityInterface"] [deps.Distributions.extensions] DistributionsChainRulesCoreExt = "ChainRulesCore" DistributionsDensityInterfaceExt = "DensityInterface" - [deps.Distributions.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" +[[deps.DistributionsAD]] +deps = ["Adapt", "ChainRules", "ChainRulesCore", "Compat", "Distributions", "FillArrays", "LinearAlgebra", "PDMats", "Random", "Requires", "SpecialFunctions", "StaticArrays", "StatsFuns", "ZygoteRules"] +git-tree-sha1 = "1fb4fedd5a407243d535cc50c8c803c2fce0dc26" +uuid = "ced4e74d-a319-5a8a-b0ac-84af2272839c" +version = "0.6.49" + + [deps.DistributionsAD.extensions] + DistributionsADForwardDiffExt = "ForwardDiff" + DistributionsADLazyArraysExt = "LazyArrays" + DistributionsADReverseDiffExt = "ReverseDiff" + DistributionsADTrackerExt = "Tracker" + + [deps.DistributionsAD.weakdeps] + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" [[deps.DocStringExtensions]] deps = ["LibGit2"] @@ -374,23 +688,52 @@ git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" version = "0.6.8" +[[deps.DynamicPPL]] +deps = ["AbstractMCMC", "AbstractPPL", "BangBang", "Bijectors", "ChainRulesCore", "ConstructionBase", "Distributions", "DocStringExtensions", "LinearAlgebra", "LogDensityProblems", "MacroTools", "OrderedCollections", "Random", "Setfield", "Test", "ZygoteRules"] +git-tree-sha1 = "932f5f977b04db019cc72ebd1f4161a6e7bded14" +uuid = "366bfd00-2699-11ea-058f-f148b4cae6d8" +version = "0.21.6" + [[deps.DynamicPolynomials]] deps = ["DataStructures", "Future", "LinearAlgebra", "MultivariatePolynomials", "MutableArithmetics", "Pkg", "Reexport", "Test"] git-tree-sha1 = "8b84876e31fa39479050e2d3395c4b3b210db8b0" uuid = "7c1d4256-1411-5781-91ec-d7bc3513ac07" version = "0.4.6" +[[deps.EasyModelAnalysis]] +deps = ["DifferentialEquations", "Distributions", "GlobalSensitivity", "LinearAlgebra", "ModelingToolkit", "NLopt", "Optimization", "OptimizationBBO", "OptimizationMOI", "OptimizationNLopt", "Plots", "Reexport", "SciMLBase", "SciMLExpectations", "Turing"] +git-tree-sha1 = "62ccc0ec19dff1ce722810b78b01ab459e47d1b6" +uuid = "ef4b24a4-a090-4686-a932-e7e56a5a83bd" +version = "0.1.9" + +[[deps.EllipticalSliceSampling]] +deps = ["AbstractMCMC", "ArrayInterface", "Distributions", "Random", "Statistics"] +git-tree-sha1 = "973b4927d112559dc737f55d6bf06503a5b3fc14" +uuid = "cad2338a-1db2-11e9-3401-43bc07c9ede2" +version = "1.1.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.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.ExponentialUtilities]] deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "Printf", "SnoopPrecompile", "SparseArrays", "libblastrampoline_jll"] git-tree-sha1 = "fb7dbef7d2631e2d02c49e2750f7447648b0ec9b" @@ -408,6 +751,30 @@ git-tree-sha1 = "0fa3b52a04a4e210aeb1626def9c90df3ae65268" uuid = "8f5d6c58-4d21-5cfd-889c-e3ad7ee6a615" version = "1.1.0" +[[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.FFTW]] +deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] +git-tree-sha1 = "b4fbdd20c889804969571cc589900803edda16b7" +uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" +version = "1.7.1" + +[[deps.FFTW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" +uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" +version = "3.3.10+0" + [[deps.FastBroadcast]] deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] git-tree-sha1 = "d1248fceea0b26493fd33e8e9e8c553270da03bd" @@ -425,6 +792,12 @@ git-tree-sha1 = "b12f05108e405dadcc2aff0008db7f831374e051" uuid = "29a986be-02c6-4525-aec4-84b980013641" version = "2.0.0" +[[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" @@ -462,6 +835,18 @@ version = "2.21.1" 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" @@ -478,6 +863,18 @@ weakdeps = ["StaticArrays"] [deps.ForwardDiff.extensions] ForwardDiffStaticArraysExt = "StaticArrays" +[[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.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" @@ -489,33 +886,104 @@ git-tree-sha1 = "b104d487b34566608f8b4e1c39fb0b10aa279ff8" uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" version = "0.1.3" +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "a2657dd0f3e8a61dbe70fc7c122038bd33790af5" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.3.0" + [[deps.Future]] deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" +[[deps.GLFW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pkg", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] +git-tree-sha1 = "d972031d28c8c8d9d7b41a536ad7bb0c2579caca" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.3.8+0" + +[[deps.GPUArrays]] +deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] +git-tree-sha1 = "2e57b4a4f9cc15e85a24d603256fe08e527f48d1" +uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" +version = "8.8.1" + [[deps.GPUArraysCore]] deps = ["Adapt"] git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" uuid = "46192b85-c4d5-4398-a991-12ede77f4527" version = "0.1.5" +[[deps.GR]] +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] +git-tree-sha1 = "8b8a2fd4536ece6e554168c21860b6820a8a83db" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.72.7" + +[[deps.GR_jll]] +deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt5Base_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "19fad9cd9ae44847fe842558a744748084a722d1" +uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" +version = "0.72.7+0" + +[[deps.GSL]] +deps = ["GSL_jll", "Libdl", "Markdown"] +git-tree-sha1 = "3ebd07d519f5ec318d5bc1b4971e2472e14bd1f0" +uuid = "92c85e6c-cbff-5e0c-80f7-495c94daaecd" +version = "1.0.1" + +[[deps.GSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "56f1e2c9e083e0bb7cf9a7055c280beb08a924c0" +uuid = "1b77fbbe-d8ee-58f0-85f9-836ddc23a7a4" +version = "2.7.2+0" + [[deps.GenericSchur]] deps = ["LinearAlgebra", "Printf"] git-tree-sha1 = "fb69b2a645fa69ba5f474af09221b9308b160ce6" uuid = "c145ed77-6b09-5dd9-b285-bf645a82121e" version = "0.5.3" +[[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", "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.GlobalSensitivity]] +deps = ["Combinatorics", "Copulas", "Distributions", "FFTW", "ForwardDiff", "KernelDensity", "LinearAlgebra", "Parameters", "QuasiMonteCarlo", "Random", "RecursiveArrayTools", "Statistics", "StatsBase", "ThreadsX", "Trapz"] +git-tree-sha1 = "e5484bc811d0335814e3f7d3815dcea19d261fbc" +uuid = "af5da776-676b-467e-8baf-acd8249e4f0f" +version = "2.2.1" + +[[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.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + [[deps.Groebner]] deps = ["AbstractAlgebra", "Combinatorics", "Logging", "MultivariatePolynomials", "Primes", "Random", "SnoopPrecompile"] git-tree-sha1 = "c8b55b624a83f60bcd6574cc999ad148d0a47dd6" @@ -528,12 +996,24 @@ git-tree-sha1 = "9e1a5e9f3b81ad6a5c613d181664a0efc6fe6dd7" uuid = "d5909c97-4eac-4ecc-a3dc-fdd0858a4120" version = "0.4.0" +[[deps.HCubature]] +deps = ["Combinatorics", "DataStructures", "LinearAlgebra", "QuadGK", "StaticArrays"] +git-tree-sha1 = "e95b36755023def6ebc3d269e6483efa8b2f7f65" +uuid = "19dc6840-f33b-545b-b366-655c7e3ffd49" +version = "1.5.1" + [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] git-tree-sha1 = "2ee0eb8746650f498ed9a109383aa399b2a0c515" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" version = "1.9.10" +[[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.Highlights]] deps = ["DocStringExtensions", "InteractiveUtils", "REPL"] git-tree-sha1 = "0341077e8a6b9fc1c2ea5edc1e93a956d2aec0c7" @@ -552,6 +1032,12 @@ git-tree-sha1 = "ce7ea9cc5db29563b1fe20196b6d23ab3b111384" uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" version = "0.3.18" +[[deps.IRTools]] +deps = ["InteractiveUtils", "MacroTools", "Test"] +git-tree-sha1 = "eac00994ce3229a464c2847e956d77a2c64ad3a5" +uuid = "7869d1d1-7146-5819-86e3-90919afe41df" +version = "0.4.10" + [[deps.IfElse]] git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" @@ -562,37 +1048,100 @@ git-tree-sha1 = "5cd07aab533df5170988219191dfad0519391428" uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" version = "0.1.3" +[[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.InplaceOps]] +deps = ["LinearAlgebra", "Test"] +git-tree-sha1 = "50b41d59e7164ab6fda65e71049fee9d890731ff" +uuid = "505f98c9-085e-5b2c-8e89-488be7bf1f34" +version = "0.3.0" + [[deps.IntegerMathUtils]] git-tree-sha1 = "b8ffb903da9f7b8cf695a8bead8e01814aa24b30" uuid = "18e54dd8-cb9d-406c-a71d-865a43cbb235" version = "0.1.2" +[[deps.Integrals]] +deps = ["CommonSolve", "HCubature", "LinearAlgebra", "MonteCarloIntegration", "QuadGK", "Reexport", "Requires", "SciMLBase"] +git-tree-sha1 = "f8f24a73621e9063f696ffeaa83f7a725ab5ae23" +uuid = "de52edbc-65ea-441a-8357-d3a637375a31" +version = "3.8.0" + + [deps.Integrals.extensions] + IntegralsFastGaussQuadratureExt = "FastGaussQuadrature" + IntegralsForwardDiffExt = "ForwardDiff" + IntegralsZygoteExt = ["Zygote", "ChainRulesCore"] + + [deps.Integrals.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + FastGaussQuadrature = "442a2c76-b920-505d-bb47-c5924d526838" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.IntelOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0cb9352ef2e01574eeebdb102948a58740dcaf83" +uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" +version = "2023.1.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 = "721ec2cf720536ad005cb38f50dbba7b02419a15" +uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" +version = "0.14.7" + +[[deps.IntervalArithmetic]] +deps = ["CRlibm", "FastRounding", "LinearAlgebra", "Markdown", "Random", "RecipesBase", "RoundingEmulator", "SetRounding", "StaticArrays"] +git-tree-sha1 = "5ab7744289be503d76a944784bac3f2df7b809af" +uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" +version = "0.20.9" + [[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 = "eabe3125edba5c9c10b60a160b1779a000dc8b29" +uuid = "3587e190-3f89-42d0-90ee-14403ec27112" +version = "0.1.11" + [[deps.InvertedIndices]] git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" version = "1.3.0" +[[deps.Ipopt_jll]] +deps = ["ASL_jll", "Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "MUMPS_seq_jll", "OpenBLAS32_jll", "Pkg"] +git-tree-sha1 = "e3e202237d93f18856b6ff1016166b0f172a49a8" +uuid = "9cc047cb-c261-5740-88fc-0cf96f7bdcc7" +version = "300.1400.400+0" + [[deps.IrrationalConstants]] git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" version = "0.2.2" +[[deps.IterTools]] +git-tree-sha1 = "4ced6667f9974fc5c5943fa5e2ef1ca43ea9e450" +uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" +version = "1.8.0" + [[deps.IteratorInterfaceExtensions]] git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" uuid = "82899510-4779-5014-852e-03e436cf321d" @@ -604,6 +1153,12 @@ git-tree-sha1 = "5df8278ad24772c0c6dbbeb97b162ccf29ced2a9" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" version = "0.4.32" +[[deps.JLFzf]] +deps = ["Pipe", "REPL", "Random", "fzf_jll"] +git-tree-sha1 = "f377670cda23b6b7c1c0b3893e37451c5c1a2185" +uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" +version = "0.1.5" + [[deps.JLLWrappers]] deps = ["Preferences"] git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1" @@ -628,6 +1183,12 @@ git-tree-sha1 = "568c4fe4c1ae76ada68604c9a1ea6f76e6030104" uuid = "eeff360b-c02d-44d3-ab26-4013c616a17e" version = "0.8.1" +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "2.1.91+0" + [[deps.JuliaFormatter]] deps = ["CSTParser", "CommonMark", "DataStructures", "Glob", "Pkg", "PrecompileTools", "Tokenize"] git-tree-sha1 = "60567b51bd9e1e19ae2fd8a54dcd6bc5994727f0" @@ -646,12 +1207,65 @@ git-tree-sha1 = "764164ed65c30738750965d55652db9c94c59bfe" uuid = "ef3ab10e-7fda-4108-b977-705223b18434" version = "0.4.0" +[[deps.KernelAbstractions]] +deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "b48617c5d764908b5fac493cd907cf33cc11eec1" +uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" +version = "0.9.6" + +[[deps.KernelDensity]] +deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] +git-tree-sha1 = "90442c50e202a5cdf21a7899c66b240fdef14035" +uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" +version = "0.6.7" + [[deps.Krylov]] deps = ["LinearAlgebra", "Printf", "SparseArrays"] git-tree-sha1 = "0356a64062656b0cbb43c504ad5de338251f4bda" uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" version = "0.9.1" +[[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 = "8695a49bfe05a2dc0feeefd06b4ca6361a018729" +uuid = "929cbde3-209d-540e-8aea-75f648917ca0" +version = "6.1.0" + +[[deps.LLVMExtra_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "c35203c1e1002747da220ffc3c0762ce7754b08c" +uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" +version = "0.0.23+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.LRUCache]] +git-tree-sha1 = "48c10e3cc27e30de82463c27bef0b8bdbd1dc634" +uuid = "8ac3fa9e-de4c-5943-b1dc-09c6b5f20637" +version = "1.4.1" + +[[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" @@ -682,6 +1296,12 @@ version = "0.16.1" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" +[[deps.LatticeRules]] +deps = ["Random"] +git-tree-sha1 = "7f5b02258a3ca0221a6a9710b0a0a2e8fb4957fe" +uuid = "73f95e8e-ec14-4e6a-8b18-0d2e271c4e55" +version = "0.0.1" + [[deps.LayoutPointers]] deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] git-tree-sha1 = "88b8f66b604da079a627b6fb2860d3704a6729a1" @@ -694,6 +1314,16 @@ git-tree-sha1 = "1370f8202dac30758f3c345f9909b97f53d87d3f" uuid = "50d2b5c4-7a5e-59d5-8109-a42b560f39c0" version = "0.15.1" +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" + +[[deps.LeftChildRightSiblingTrees]] +deps = ["AbstractTrees"] +git-tree-sha1 = "fb6803dafae4a5d62ea5cab204b1e657d9737e7f" +uuid = "1d6d02ad-be62-4b6b-8a6d-2f90e265016e" +version = "0.2.0" + [[deps.LevyArea]] deps = ["LinearAlgebra", "Random", "SpecialFunctions"] git-tree-sha1 = "56513a09b8e0ae6485f34401ea9e2f31357958ec" @@ -722,12 +1352,60 @@ 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.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.6.0+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.Libtask]] +deps = ["FunctionWrappers", "LRUCache", "LinearAlgebra", "Statistics"] +git-tree-sha1 = "345a40c746404dd9cb1bbc368715856838ab96f2" +uuid = "6f1fad26-d15e-5dc8-ae53-837a1d7b8c9f" +version = "0.8.6" + +[[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.LineSearches]] deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] git-tree-sha1 = "7bbea35cec17305fc70a0e5b4641477dc0789d9d" @@ -758,22 +1436,48 @@ version = "2.3.0" KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" +[[deps.LogDensityProblems]] +deps = ["ArgCheck", "DocStringExtensions", "Random"] +git-tree-sha1 = "f9a11237204bc137617194d79d813069838fcf61" +uuid = "6fdf6af0-433a-55f7-b3ed-c6c6e0b8df7c" +version = "2.1.1" + +[[deps.LogDensityProblemsAD]] +deps = ["DocStringExtensions", "LogDensityProblems", "Requires", "SimpleUnPack"] +git-tree-sha1 = "a0512ad65f849536b5a52e59b05c59c25cdad943" +uuid = "996a588d-648d-4e1f-a8f0-a84b347e47b1" +version = "1.5.0" + + [deps.LogDensityProblemsAD.extensions] + LogDensityProblemsADEnzymeExt = "Enzyme" + LogDensityProblemsADFiniteDifferencesExt = "FiniteDifferences" + LogDensityProblemsADForwardDiffBenchmarkToolsExt = ["BenchmarkTools", "ForwardDiff"] + LogDensityProblemsADForwardDiffExt = "ForwardDiff" + LogDensityProblemsADReverseDiffExt = "ReverseDiff" + LogDensityProblemsADTrackerExt = "Tracker" + LogDensityProblemsADZygoteExt = "Zygote" + + [deps.LogDensityProblemsAD.weakdeps] + BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + FiniteDifferences = "26cc04aa-876d-5657-8c51-4c34ba976000" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] git-tree-sha1 = "c3ce8e7420b3a6e071e0fe4745f5d4300e37b13f" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" version = "0.3.24" +weakdeps = ["ChainRulesCore", "ChangesOfVariables", "InverseFunctions"] [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" @@ -794,16 +1498,52 @@ weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] SpecialFunctionsExt = "SpecialFunctions" +[[deps.MCMCChains]] +deps = ["AbstractMCMC", "AxisArrays", "Dates", "Distributions", "Formatting", "IteratorInterfaceExtensions", "KernelDensity", "LinearAlgebra", "MCMCDiagnosticTools", "MLJModelInterface", "NaturalSort", "OrderedCollections", "PrettyTables", "Random", "RecipesBase", "Statistics", "StatsBase", "StatsFuns", "TableTraits", "Tables"] +git-tree-sha1 = "8778ea7283a0bf0d7e507a0235adfff38071493b" +uuid = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" +version = "6.0.3" + +[[deps.MCMCDiagnosticTools]] +deps = ["AbstractFFTs", "DataAPI", "DataStructures", "Distributions", "LinearAlgebra", "MLJModelInterface", "Random", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "Tables"] +git-tree-sha1 = "695e91605361d1932c3e89a812be78480a4a4595" +uuid = "be115224-59cd-429b-ad48-344e309966f0" +version = "0.3.4" + +[[deps.METIS_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "1fd0a97409e418b78c53fac671cf4622efdf0f21" +uuid = "d00139f3-1899-568f-a2f0-47f597d42d70" +version = "5.1.2+0" + [[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 = "154d7aaa82d24db6d8f7e4ffcfe596f40bff214b" +uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" +version = "2023.1.0+0" + +[[deps.MLJModelInterface]] +deps = ["Random", "ScientificTypesBase", "StatisticalTraits"] +git-tree-sha1 = "c8b7e632d6754a5e36c0d94a4b466a5ba3a30128" +uuid = "e80e1ace-859a-464e-9ed9-23947d8ae3ea" +version = "1.8.0" + [[deps.MLStyle]] git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" uuid = "d8e11817-5142-5d16-987a-aa16d5891078" version = "0.4.17" +[[deps.MUMPS_seq_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "METIS_jll", "OpenBLAS32_jll", "Pkg"] +git-tree-sha1 = "29de2841fa5aefe615dea179fcde48bb87b58f57" +uuid = "d7ed1dd3-d0ae-5e8e-bfb4-87a502085b8d" +version = "5.4.1+0" + [[deps.MacroTools]] deps = ["Markdown", "Random"] git-tree-sha1 = "42324d08725e200c23d4dfb549e0d5d89dede2d2" @@ -815,6 +1555,11 @@ 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" @@ -825,6 +1570,18 @@ git-tree-sha1 = "f9d5b2895734a699b51249ebb90ca9b4b6a6e12c" uuid = "abcecc63-2b08-419c-80c4-c63dca6fa478" version = "0.1.14" +[[deps.MathOptInterface]] +deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test", "Unicode"] +git-tree-sha1 = "5c5cd501ae1d76d3ccd7c7e6b4325a15dde7f31c" +uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" +version = "1.18.0" + +[[deps.MathProgBase]] +deps = ["LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "9abbe463a1e9fc507f12a69e7f29346c2cdc472c" +uuid = "fdba3010-5040-5b88-9595-932c9decdf73" +version = "0.7.8" + [[deps.MbedTLS]] deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "Random", "Sockets"] git-tree-sha1 = "03a9b9718f5682ecb107ac9f7308991db4ce395b" @@ -836,6 +1593,17 @@ deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" version = "2.28.2+0" +[[deps.Measures]] +git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.2" + +[[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" @@ -845,6 +1613,12 @@ version = "1.1.0" [[deps.Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" +[[deps.Mocking]] +deps = ["Compat", "ExprTools"] +git-tree-sha1 = "4cc0c5a83933648b615c36c2b956d94fda70641e" +uuid = "78c3b35d-d492-501b-9361-3d52fe80e533" +version = "0.7.7" + [[deps.ModelingToolkit]] deps = ["AbstractTrees", "ArrayInterface", "Combinatorics", "Compat", "ConstructionBase", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "DiffRules", "Distributed", "Distributions", "DocStringExtensions", "DomainSets", "ForwardDiff", "FunctionWrappersWrappers", "Graphs", "IfElse", "InteractiveUtils", "JuliaFormatter", "JumpProcesses", "LabelledArrays", "Latexify", "Libdl", "LinearAlgebra", "MLStyle", "MacroTools", "NaNMath", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLBase", "Serialization", "Setfield", "SimpleNonlinearSolve", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicIndexingInterface", "SymbolicUtils", "Symbolics", "URIs", "UnPack", "Unitful"] git-tree-sha1 = "cad27947bc85b1a3136f395f22a7dd5c382b7209" @@ -857,6 +1631,12 @@ version = "8.62.0" [deps.ModelingToolkit.weakdeps] DeepDiffs = "ab62b9b5-e342-54a8-a765-a90f495de1a6" +[[deps.MonteCarloIntegration]] +deps = ["Distributions", "Random"] +git-tree-sha1 = "3f78ebce296c927d5c854e83cccdb5dcb1845629" +uuid = "4886b29c-78c9-11e9-0a6e-41e1f4161f7b" +version = "0.0.3" + [[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" version = "2022.10.11" @@ -878,6 +1658,12 @@ git-tree-sha1 = "964cb1a7069723727025ae295408747a0b36a854" uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" version = "1.3.0" +[[deps.MvNormalCDF]] +deps = ["Distributions", "FillArrays", "LinearAlgebra", "Primes", "Random", "StatsBase"] +git-tree-sha1 = "e472ed20dfe9f68d9aebc02258dfe31d69deb8eb" +uuid = "37188c8d-bc69-4638-b057-733e744175ec" +version = "0.2.6" + [[deps.MyterialColors]] git-tree-sha1 = "01d8466fb449436348999d7c6ad740f8f853a579" uuid = "1c23619d-4212-4747-83aa-717207fae70f" @@ -889,18 +1675,57 @@ git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" version = "7.8.3" +[[deps.NLopt]] +deps = ["MathOptInterface", "MathProgBase", "NLopt_jll"] +git-tree-sha1 = "5a7e32c569200a8a03c3d55d286254b0321cd262" +uuid = "76087f3c-5699-56af-9a33-bf431cd00edd" +version = "0.6.5" + +[[deps.NLopt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9b1f15a08f9d00cdb2761dcfa6f453f5d0d6f973" +uuid = "079eb43e-fd8e-5478-9966-2cf3e3edb778" +version = "2.7.1+0" + [[deps.NLsolve]] deps = ["Distances", "LineSearches", "LinearAlgebra", "NLSolversBase", "Printf", "Reexport"] git-tree-sha1 = "019f12e9a1a7880459d0173c182e6a99365d7ac1" uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" version = "4.5.1" +[[deps.NNlib]] +deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] +git-tree-sha1 = "8c2cd30e6d6158761163df5c4562014245eead5b" +uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" +version = "0.9.3" + + [deps.NNlib.extensions] + NNlibAMDGPUExt = "AMDGPU" + NNlibCUDACUDNNExt = ["CUDA", "cuDNN"] + NNlibCUDAExt = "CUDA" + + [deps.NNlib.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" + [[deps.NaNMath]] deps = ["OpenLibm_jll"] git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" version = "1.0.2" +[[deps.NamedArrays]] +deps = ["Combinatorics", "DataStructures", "DelimitedFiles", "InvertedIndices", "LinearAlgebra", "Random", "Requires", "SparseArrays", "Statistics"] +git-tree-sha1 = "b84e17976a40cb2bfe3ae7edb3673a8c630d4f95" +uuid = "86f7a689-2022-50b4-a561-43c23ac3c673" +version = "0.9.8" + +[[deps.NaturalSort]] +git-tree-sha1 = "eda490d06b9f7c00752ee81cfa451efe55521e21" +uuid = "c020b1a1-e9b0-503a-9c33-f039bfc54a85" +version = "1.0.0" + [[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" @@ -917,6 +1742,24 @@ git-tree-sha1 = "2ac17d29c523ce1cd38e27785a7d23024853a4bb" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" version = "1.12.10" +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OpenAPI]] +deps = ["Base64", "Dates", "Downloads", "HTTP", "JSON", "LibCURL", "MbedTLS", "TimeZones", "URIs"] +git-tree-sha1 = "6e497e6245770817a7821a2d1d32f8f465166a99" +uuid = "d5e62ea6-ddf3-4d43-8e4c-ad5e6c8bfd7d" +version = "0.1.11" + +[[deps.OpenBLAS32_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "2fb9ee2dc14d555a6df2a714b86b7125178344c2" +uuid = "656ef2d0-ae68-5445-9ca0-591084a874a2" +version = "0.3.21+0" + [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" @@ -935,9 +1778,9 @@ version = "1.4.1" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "cae3153c7f6cf3f069a853883fd1919a6e5bab5b" +git-tree-sha1 = "1aa4b74f80b01c6bc2b89992b861b5f210e665b5" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.0.9+0" +version = "1.1.21+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -951,6 +1794,60 @@ git-tree-sha1 = "e3a6546c1577bfd701771b477b794a52949e7594" uuid = "429524aa-4258-5aef-a3af-852621145aeb" version = "1.7.6" +[[deps.Optimisers]] +deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] +git-tree-sha1 = "e5a1825d3d53aa4ad4fb42bd4927011ad4a78c3d" +uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" +version = "0.2.15" + +[[deps.Optimization]] +deps = ["ADTypes", "ArrayInterface", "ConsoleProgressMonitor", "DocStringExtensions", "LinearAlgebra", "Logging", "LoggingExtras", "Pkg", "Printf", "ProgressLogging", "Reexport", "Requires", "SciMLBase", "SparseArrays", "TerminalLoggers"] +git-tree-sha1 = "80005bc7d96d4d00e56b8a58c5240a35bd638d4a" +uuid = "7f7a1694-90dd-40f0-9382-eb1efda571ba" +version = "3.15.2" + + [deps.Optimization.extensions] + OptimizationEnzymeExt = "Enzyme" + OptimizationFinitediffExt = "FiniteDiff" + OptimizationForwarddiffExt = "ForwardDiff" + OptimizationMTKExt = "ModelingToolkit" + OptimizationReversediffExt = "ReverseDiff" + OptimizationTrackerExt = "Tracker" + OptimizationZygoteExt = "Zygote" + + [deps.Optimization.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.OptimizationBBO]] +deps = ["BlackBoxOptim", "Optimization", "Reexport"] +git-tree-sha1 = "5f653f29459f2aba3c1961dff265b727bd1ed5be" +uuid = "3e6eede4-6085-4f62-9a71-46d9bc1eb92b" +version = "0.1.4" + +[[deps.OptimizationMOI]] +deps = ["Ipopt_jll", "MathOptInterface", "ModelingToolkit", "Optimization", "Reexport", "SparseArrays", "Symbolics"] +git-tree-sha1 = "32c99127e8caf6b50856d676b56a9382bd5650c6" +uuid = "fd9f6733-72f4-499f-8506-86b2bdd0dea1" +version = "0.1.14" + +[[deps.OptimizationNLopt]] +deps = ["NLopt", "Optimization", "Reexport"] +git-tree-sha1 = "105de2db4fad2750921fb59507b8ebf3ccebdd91" +uuid = "4e6fcdb7-1186-4e1f-a706-475e75c168bb" +version = "0.1.6" + +[[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" @@ -968,6 +1865,11 @@ git-tree-sha1 = "dca31e833aafb6277e5aff9fdcb5029be5045255" uuid = "df9a0d86-3283-4920-82dc-4555fc0d1d8b" version = "1.1.11" +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+0" + [[deps.PDMats]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] git-tree-sha1 = "67eae2738d63117a196f497d7db789821bce61d1" @@ -986,17 +1888,60 @@ git-tree-sha1 = "4b2e829ee66d4218e0cef22c0a64ee37cf258c29" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" version = "2.7.1" +[[deps.Pipe]] +git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" +uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" +version = "1.3.0" + [[deps.Pipelines]] deps = ["Dates", "FilePathsBase", "Logging", "OrderedCollections", "Printf", "Reexport", "Test", "UUIDs"] git-tree-sha1 = "b870d8e0354361e38b0d9fc1997e96c299e948ae" uuid = "ef544631-5c6f-4e9b-994c-12e7a4cd724c" version = "0.10.4" +[[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.9.2" +[[deps.PlotThemes]] +deps = ["PlotUtils", "Statistics"] +git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "3.1.0" + +[[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.Plots]] +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Preferences", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "75ca67b2c6512ad2d0c767a7cfc55e75075f8bbc" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "1.38.16" + + [deps.Plots.extensions] + FileIOExt = "FileIO" + GeometryBasicsExt = "GeometryBasics" + IJuliaExt = "IJulia" + ImageInTerminalExt = "ImageInTerminal" + UnitfulExt = "Unitful" + + [deps.Plots.weakdeps] + FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" + GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" + IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" + ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + [[deps.PoissonRandom]] deps = ["Random"] git-tree-sha1 = "a0f1159c33f846aa77c3f30ebbc69795e5327152" @@ -1015,6 +1960,22 @@ git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" version = "0.2.1" +[[deps.Polynomials]] +deps = ["LinearAlgebra", "RecipesBase"] +git-tree-sha1 = "3aa2bb4982e575acd7583f01531f241af077b163" +uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" +version = "3.2.13" + + [deps.Polynomials.extensions] + PolynomialsChainRulesCoreExt = "ChainRulesCore" + PolynomialsMakieCoreExt = "MakieCore" + PolynomialsMutableArithmeticsExt = "MutableArithmetics" + + [deps.Polynomials.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + MakieCore = "20f20a25-4f0e-4fdf-b5d1-57303727442b" + MutableArithmetics = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" + [[deps.PooledArrays]] deps = ["DataAPI", "Future"] git-tree-sha1 = "a6062fe4063cdafe78f4a0a81cfffb89721b30e7" @@ -1067,18 +2028,40 @@ version = "0.5.3" 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.Qt5Base_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "xkbcommon_jll"] +git-tree-sha1 = "0c03844e2231e12fda4d0086fd7cbe4098ee8dc5" +uuid = "ea2cea3b-5b76-57ae-a6ef-0a8af62496e1" +version = "5.15.3+2" + [[deps.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] git-tree-sha1 = "6ec7ac8412e83d57e313393220879ede1740f9ee" uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" version = "2.8.2" +[[deps.QuasiMonteCarlo]] +deps = ["Accessors", "ConcreteStructs", "Distributions", "LatticeRules", "LinearAlgebra", "Primes", "Random", "Sobol", "StatsBase"] +git-tree-sha1 = "5654ee2631b0b291c639b2e6c81bbf06128bce85" +uuid = "8a4e6c94-4038-4cdc-81c3-7e6ffdb2a71b" +version = "0.3.2" + [[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" @@ -1105,12 +2088,39 @@ 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.RecipesPipeline]] +deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] +git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" +uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" +version = "0.6.12" + [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "Requires", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] git-tree-sha1 = "02ef02926f30d53b94be443bfaea010c47f6b556" @@ -1138,6 +2148,18 @@ git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" uuid = "189a3867-3050-52da-a836-e630ba90ab69" version = "1.2.2" +[[deps.Referenceables]] +deps = ["Adapt"] +git-tree-sha1 = "e681d3bfa49cd46c3c161505caddf20f0e62aaa9" +uuid = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" +version = "0.1.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" @@ -1162,6 +2184,27 @@ 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 = "de432823e8aab4dd1a985be4be768f95acf152d4" +uuid = "f2b01f46-fcfa-551c-844a-d8ac1e96c665" +version = "2.0.17" + + [deps.Roots.extensions] + RootsForwardDiffExt = "ForwardDiff" + RootsIntervalRootFindingExt = "IntervalRootFinding" + RootsSymPyExt = "SymPy" + + [deps.Roots.weakdeps] + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + IntervalRootFinding = "d2bf35a9-74e0-55ec-b149-d360ff49b807" + SymPy = "24249f21-da20-56a4-8eb1-6a02cf4ae2e6" + +[[deps.RoundingEmulator]] +git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" +uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" +version = "0.2.1" + [[deps.RuntimeGeneratedFunctions]] deps = ["ExprTools", "SHA", "Serialization"] git-tree-sha1 = "0b9b18d6236e9ab2b092defaacdffd929d572642" @@ -1189,6 +2232,12 @@ git-tree-sha1 = "a22a12db91f6a921e28a7ae39a9546eed93fd92e" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" version = "1.93.0" +[[deps.SciMLExpectations]] +deps = ["DiffEqBase", "Distributions", "Integrals", "KernelDensity", "LinearAlgebra", "Parameters", "Random", "RecursiveArrayTools", "Reexport", "StaticArrays", "Statistics", "Zygote"] +git-tree-sha1 = "6b784198e634859eced71c782115853b9f58b6d3" +uuid = "afe9f18d-7609-4d0e-b7b7-af0cb72b8ea8" +version = "2.0.1" + [[deps.SciMLNLSolve]] deps = ["DiffEqBase", "LineSearches", "NLsolve", "Reexport", "SciMLBase"] git-tree-sha1 = "9dfc8e9e3d58c0c74f1a821c762b5349da13eccf" @@ -1201,6 +2250,17 @@ git-tree-sha1 = "b1fe33c9984c6789b58419e62e7a2b92f9aa813e" uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" version = "0.3.3" +[[deps.ScientificTypesBase]] +git-tree-sha1 = "a8e18eb383b5ecf1b5e6fc237eb39255044fd92b" +uuid = "30f210dd-8aff-4c5f-94ba-8e64358c1161" +version = "3.0.0" + +[[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 = "04bdff0b09c65ff3e06a05e3eb7b120223da3d39" @@ -1210,6 +2270,11 @@ version = "1.4.0" [[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" @@ -1220,22 +2285,22 @@ version = "1.1.1" deps = ["Distributed", "Mmap", "Random", "Serialization"] uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + [[deps.SimpleBufferStream]] git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" version = "1.1.0" [[deps.SimpleNonlinearSolve]] -deps = ["ArrayInterface", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "PrecompileTools", "Reexport", "Requires", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "56aa73a93cdca493af5155a0338a864ed314222b" +deps = ["ArrayInterfaceCore", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "Reexport", "SciMLBase", "SnoopPrecompile", "StaticArraysCore"] +git-tree-sha1 = "3f558105e8ef4aac1e22bf30bd1f1e95698bfc95" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "0.1.16" - - [deps.SimpleNonlinearSolve.extensions] - SimpleBatchedNonlinearSolveExt = "NNlib" - - [deps.SimpleNonlinearSolve.weakdeps] - NNlib = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" +version = "0.1.10" [[deps.SimpleTraits]] deps = ["InteractiveUtils", "MacroTools"] @@ -1254,6 +2319,12 @@ git-tree-sha1 = "e760a70afdcd461cf01a575947738d359234665c" uuid = "66db9d55-30c0-4569-8b51-7e840670fc0c" version = "1.0.3" +[[deps.Sobol]] +deps = ["DelimitedFiles", "Random"] +git-tree-sha1 = "5a74ac22a9daef23705f010f72c81d6925b19df8" +uuid = "ed01d8cd-4d21-5b2a-85b4-cc3bdc58bad4" +version = "1.5.0" + [[deps.Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" @@ -1272,19 +2343,22 @@ deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "Finit git-tree-sha1 = "4c1a57bcbc0b795fbfdc2009e70f9c2fd2815bfe" uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" version = "2.4.1" +weakdeps = ["Zygote"] [deps.SparseDiffTools.extensions] SparseDiffToolsZygoteExt = "Zygote" - [deps.SparseDiffTools.weakdeps] - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" - [[deps.Sparspak]] deps = ["Libdl", "LinearAlgebra", "Logging", "OffsetArrays", "Printf", "SparseArrays", "Test"] git-tree-sha1 = "342cf4b449c299d8d1ceaf00b7a49f4fbc7940e7" uuid = "e56a9233-b9d6-4f03-8d0f-1825330902ac" version = "0.3.9" +[[deps.SpatialIndexing]] +git-tree-sha1 = "bacf5065cd7c0d6449b8bba6fa8e75b3087356b0" +uuid = "d4ead438-fe20-5cc5-a293-4fd39a41b74c" +version = "0.1.5" + [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] git-tree-sha1 = "7beb031cf8145577fbccacd94b8a8f4ce78428d3" @@ -1295,6 +2369,12 @@ 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.Static]] deps = ["IfElse"] git-tree-sha1 = "dbde6766fc677423598138a5951269432b0fcc90" @@ -1327,6 +2407,12 @@ git-tree-sha1 = "6b7ba252635a5eff6a0b0664a41ee140a1c9e72a" 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" + [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" @@ -1340,24 +2426,21 @@ version = "1.6.0" [[deps.StatsBase]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] -git-tree-sha1 = "75ebe04c5bed70b91614d684259b661c9e6274a4" +git-tree-sha1 = "d1bf48bfcc554a3761a133fe3a9bb01488e06916" uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -version = "0.34.0" +version = "0.33.21" [[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.StatsFuns.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" - [[deps.SteadyStateDiffEq]] deps = ["DiffEqBase", "DiffEqCallbacks", "LinearAlgebra", "NLsolve", "Reexport", "SciMLBase"] git-tree-sha1 = "6e801d0da4c81d9cd6a05d97340404f9892fba85" @@ -1376,11 +2459,23 @@ git-tree-sha1 = "f02eb61eb5c97b48c153861c72fbbfdddc607e06" uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" version = "0.4.17" +[[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" @@ -1448,12 +2543,30 @@ deps = ["ArgTools", "SHA"] uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" version = "1.10.0" +[[deps.TaylorSeries]] +deps = ["IntervalArithmetic", "LinearAlgebra", "Markdown", "Requires", "SparseArrays"] +git-tree-sha1 = "b123e0614b0f366e2073c4da7b1367cebda3f579" +uuid = "6aa5eb33-94cf-58f4-a9d0-e4b2c4fc25ea" +version = "0.14.0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + [[deps.Term]] deps = ["AbstractTrees", "CodeTracking", "Dates", "Highlights", "InteractiveUtils", "Logging", "Markdown", "MyterialColors", "OrderedCollections", "Parameters", "PrecompileTools", "ProgressLogging", "REPL", "Tables", "UUIDs", "Unicode", "UnicodeFun"] git-tree-sha1 = "ffac67f6fbcbb32027d924b93ba91b7633af9220" uuid = "22787eb5-b846-44ae-b979-8e399b8463ab" version = "2.0.5" +[[deps.TerminalLoggers]] +deps = ["LeftChildRightSiblingTrees", "Logging", "Markdown", "Printf", "ProgressLogging", "UUIDs"] +git-tree-sha1 = "f133fab380933d042f6796eda4e130272ba520ca" +uuid = "5d786b92-1e48-4d6f-9151-6b4477ca9bed" +version = "0.1.7" + [[deps.Terming]] deps = ["REPL", "Test"] git-tree-sha1 = "9ef2648010c3a74ab4ea44a88e8640f0d1034d1f" @@ -1470,23 +2583,76 @@ git-tree-sha1 = "eda08f7e9818eb53661b3deb74e3159460dfbc27" uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" version = "0.5.2" +[[deps.ThreadsX]] +deps = ["ArgCheck", "BangBang", "ConstructionBase", "InitialValues", "MicroCollections", "Referenceables", "Setfield", "SplittablesBase", "Transducers"] +git-tree-sha1 = "34e6bcf36b9ed5d56489600cf9f3c16843fa2aa2" +uuid = "ac1d9e8a-700a-412c-b207-f0111f4b6c0d" +version = "0.1.11" + +[[deps.TimeZones]] +deps = ["Dates", "Downloads", "InlineStrings", "LazyArtifacts", "Mocking", "Printf", "RecipesBase", "Scratch", "Unicode"] +git-tree-sha1 = "cdaa0c2a4449724aded839550eca7d7240bb6938" +uuid = "f269a46b-ccf7-5d73-abea-4c690281aa53" +version = "1.10.0" + [[deps.TimerOutputs]] deps = ["ExprTools", "Printf"] git-tree-sha1 = "f548a9e9c490030e545f72074a41edfd0e5bcdd7" uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" version = "0.5.23" +[[deps.ToeplitzMatrices]] +deps = ["AbstractFFTs", "DSP", "LinearAlgebra", "StatsBase"] +git-tree-sha1 = "326388c0c53565fb21eecafb6176b1cc5d225d34" +uuid = "c751599d-da0a-543b-9d20-d0a503d91d24" +version = "0.8.1" + [[deps.Tokenize]] git-tree-sha1 = "90538bf898832b6ebd900fa40f223e695970e3a5" uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624" version = "0.5.25" +[[deps.Tracker]] +deps = ["Adapt", "DiffRules", "ForwardDiff", "Functors", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NNlib", "NaNMath", "Optimisers", "Printf", "Random", "Requires", "SpecialFunctions", "Statistics"] +git-tree-sha1 = "92364c27aa35c0ee36e6e010b704adaade6c409c" +uuid = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" +version = "0.2.26" +weakdeps = ["PDMats"] + + [deps.Tracker.extensions] + TrackerPDMatsExt = "PDMats" + [[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", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] +git-tree-sha1 = "a66fb81baec325cf6ccafa243af573b031e87b00" +uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" +version = "0.4.77" + + [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.Trapz]] +git-tree-sha1 = "79eb0ed763084a3e7de81fe1838379ac6a23b6a0" +uuid = "592b5752-818d-11e9-1e9a-2b8ca4a44cd1" +version = "2.0.3" + [[deps.TreeViews]] deps = ["Test"] git-tree-sha1 = "8d0d7a3fe2f30d6a7f833a5f19f7c7a5b396eae6" @@ -1510,6 +2676,12 @@ git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" uuid = "781d530d-4396-4725-bb49-402e4bee1e77" version = "1.4.0" +[[deps.Turing]] +deps = ["AbstractMCMC", "AdvancedHMC", "AdvancedMH", "AdvancedPS", "AdvancedVI", "BangBang", "Bijectors", "DataStructures", "Distributions", "DistributionsAD", "DocStringExtensions", "DynamicPPL", "EllipticalSliceSampling", "ForwardDiff", "Libtask", "LinearAlgebra", "LogDensityProblems", "LogDensityProblemsAD", "MCMCChains", "NamedArrays", "Printf", "Random", "Reexport", "Requires", "SciMLBase", "Setfield", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "Tracker"] +git-tree-sha1 = "26cdfce1cc0301fe832eaa419a5d0edd6a554004" +uuid = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" +version = "0.24.4" + [[deps.URIs]] git-tree-sha1 = "074f993b0ca030848b897beff716d93aca60f06a" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" @@ -1538,14 +2710,17 @@ deps = ["Dates", "LinearAlgebra", "Random"] git-tree-sha1 = "c4d2a349259c8eba66a00a540d550f122a3ab228" uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" version = "1.15.0" +weakdeps = ["ConstructionBase", "InverseFunctions"] [deps.Unitful.extensions] ConstructionBaseUnitfulExt = "ConstructionBase" InverseFunctionsUnitfulExt = "InverseFunctions" - [deps.Unitful.weakdeps] - ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" - InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" +[[deps.UnitfulLatexify]] +deps = ["LaTeXStrings", "Latexify", "Unitful"] +git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" +uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" +version = "1.6.3" [[deps.Unityper]] deps = ["ConstructionBase"] @@ -1553,6 +2728,22 @@ git-tree-sha1 = "d5f4ec8c22db63bd3ccb239f640e895cfde145aa" uuid = "a7c27f48-0311-42f6-a7f8-2c11e75eb415" version = "0.1.2" +[[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.Unzip]] +git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" +uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" +version = "0.2.0" + [[deps.VectorizationBase]] deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"] git-tree-sha1 = "b182207d4af54ac64cbc71797765068fdeff475d" @@ -1565,28 +2756,238 @@ git-tree-sha1 = "8351f8d73d7e880bfc042a8b6922684ebeafb35c" uuid = "19fa3120-7c27-5ec5-8db8-b0b0aa330d6f" version = "0.2.0" +[[deps.Wayland_jll]] +deps = ["Artifacts", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "ed8d92d9774b077c53e1da50fd81a36af3744c1c" +uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" +version = "1.21.0+0" + +[[deps.Wayland_protocols_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4528479aa01ee1b3b4cd0e6faef0e04cf16466da" +uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" +version = "1.25.0+0" + +[[deps.WoodburyMatrices]] +deps = ["LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "de67fa59e33ad156a590055375a30b23c40299d3" +uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" +version = "0.5.5" + [[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", "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_libXcursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" +uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" +version = "1.2.0+4" + +[[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_libXfixes_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" +uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" +version = "5.0.3+4" + +[[deps.Xorg_libXi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] +git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" +uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" +version = "1.7.10+4" + +[[deps.Xorg_libXinerama_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] +git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" +uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" +version = "1.1.4+4" + +[[deps.Xorg_libXrandr_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" +uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" +version = "1.5.2+4" + +[[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_libxkbfile_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "730eeca102434283c50ccf7d1ecdadf521a765a4" +uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" +version = "1.1.2+0" + +[[deps.Xorg_xcb_util_image_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" +uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] +git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" +uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_keysyms_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" +uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_renderutil_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" +uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" +version = "0.3.9+1" + +[[deps.Xorg_xcb_util_wm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" +uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" +version = "0.4.1+1" + +[[deps.Xorg_xkbcomp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] +git-tree-sha1 = "330f955bc41bb8f5270a369c473fc4a5a4e4d3cb" +uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" +version = "1.4.6+0" + +[[deps.Xorg_xkeyboard_config_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] +git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" +uuid = "33bec58e-1273-512f-9401-5d533626f822" +version = "2.39.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.YAML]] +deps = ["Base64", "Dates", "Printf", "StringEncodings"] +git-tree-sha1 = "e6330e4b731a6af7959673621e91645eb1356884" +uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" +version = "0.4.9" + [[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" + +[[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 = "5be3ddb88fc992a7d8ea96c3f10a49a7e98ebc7b" +uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" +version = "0.6.62" +weakdeps = ["Colors", "Distances", "Tracker"] + + [deps.Zygote.extensions] + ZygoteColorsExt = "Colors" + ZygoteDistancesExt = "Distances" + ZygoteTrackerExt = "Tracker" + [[deps.ZygoteRules]] deps = ["ChainRulesCore", "MacroTools"] git-tree-sha1 = "977aed5d006b840e2e40c0b48984f7463109046d" uuid = "700de1a5-db45-46bc-99cf-38207098b444" version = "0.2.3" +[[deps.fzf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "868e669ccb12ba16eaf50cb2957ee2ff61261c56" +uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" +version = "0.29.0+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+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.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" @@ -1596,3 +2997,21 @@ version = "1.48.0+0" deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" version = "17.4.0+0" + +[[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" + +[[deps.xkbcommon_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] +git-tree-sha1 = "9ebfc140cc56e8c2156a15ceac2f0302e327ac0a" +uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" +version = "1.4.1+0" diff --git a/Project.toml b/Project.toml index 38c72fa..db1f69b 100644 --- a/Project.toml +++ b/Project.toml @@ -8,14 +8,17 @@ AMQPClient = "79c8b4cd-a41a-55fa-907c-fab5288e1383" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" +EasyModelAnalysis = "ef4b24a4-a090-4686-a932-e7e56a5a83bd" HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3" JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" JobSchedulers = "eeff360b-c02d-44d3-ab26-4013c616a17e" MathML = "abcecc63-2b08-419c-80c4-c63dca6fa478" ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" +OpenAPI = "d5e62ea6-ddf3-4d43-8e4c-ad5e6c8bfd7d" Oxygen = "df9a0d86-3283-4920-82dc-4555fc0d1d8b" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" +YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" [compat] julia = "1.9" diff --git a/src/SimulationService.jl b/src/SimulationService.jl index ad72a87..def8b8e 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -4,14 +4,17 @@ import AMQPClient import DataFrames: DataFrame import Dates import DifferentialEquations +import EasyModelAnalysis import HTTP import JobSchedulers import JSON3 import MathML import ModelingToolkit: @parameters, substitute, Differential, Num, @variables, ODESystem, ODEProblem +import OpenAPI import Oxygen import SciMLBase: SciMLBase, solve import UUIDs +import YAML export start!, stop! @@ -35,6 +38,7 @@ export start!, stop! #-----------------------------------------------------------------------------# __init__ const rabbit_mq_channel = Ref{Any}() # TODO: replace Any with what AMQPClient.channel returns const server_url = Ref{String}() +const openapi_spec = Ref{Dict{Any,Any}}() # populated from https://github.com/DARPA-ASKEM/simulation-api-spec function __init__() if Threads.nthreads() == 1 @@ -53,6 +57,8 @@ function __init__() end server_url[] = "http://$SIMSERVICE_HOST:$SIMSERVICE_PORT" + + openapi_spec[] = YAML.load_file(download("https://raw.githubusercontent.com/DARPA-ASKEM/simulation-api-spec/main/openapi.yaml")) end #-----------------------------------------------------------------------------# start! @@ -92,7 +98,7 @@ SIMSERVICE_RABBITMQ_PORT = parse(Int, get(ENV, "SIMSERVICE_RABBITMQ_PORT" # Terrarium Data Service (TDS) SIMSERVICE_ENABLE_TDS = get(ENV, "SIMSERVICE_ENABLE_TDS", "true") == "true" SIMSERVICE_TDS_URL = get(ENV, "SIMSERVICE_TDS_URL", "http://localhost:8001") -SIMSERVICE_TDS_RETRIES = parse(Int, get(ENV, "SIMSERVICE_TDS_RETRIES", "10")) +SIMSERVICE_TDS_RETRIES = parse(Int, get(ENV, "SIMSERVICE_TDS_RETRIES", "10")) #-----------------------------------------------------------------------------# utils diff --git a/test/runtests.jl b/test/runtests.jl index c0eaeb6..9490a8a 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -33,6 +33,7 @@ using SimulationService end #-----------------------------------------------------------------------------# test routes +# TODO: test that the openapi spec is valid @testset "Routes" begin host = "127.0.0.1" port = 8080 From 4e3577f3d09b35945b2dc128408a65563217b1e9 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Tue, 11 Jul 2023 11:09:29 -0400 Subject: [PATCH 13/31] open api docs --- Manifest.toml | 20 +++++++++++++++++++- Project.toml | 2 ++ README.md | 2 +- src/SimulationService.jl | 13 +++++++++++-- 4 files changed, 33 insertions(+), 4 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index 1796f2e..18c1c85 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,7 +2,7 @@ julia_version = "1.9.2" manifest_format = "2.0" -project_hash = "ae974fa9e2b2e95595d9b9f7febdf5128c27004c" +project_hash = "4ebded23773e7e1a7ddfe028f526e2e8e4287e0c" [[deps.ADTypes]] git-tree-sha1 = "e58c18d2312749847a74f5be80bb0fa53da102bd" @@ -700,6 +700,12 @@ git-tree-sha1 = "8b84876e31fa39479050e2d3395c4b3b210db8b0" uuid = "7c1d4256-1411-5781-91ec-d7bc3513ac07" version = "0.4.6" +[[deps.EasyConfig]] +deps = ["JSON3", "OrderedCollections", "StructTypes"] +git-tree-sha1 = "8a5a451290aaa8bece132d16e557fae478ae55e0" +uuid = "acab07b0-f158-46d4-8913-50acef6d41fe" +version = "0.1.14" + [[deps.EasyModelAnalysis]] deps = ["DifferentialEquations", "Distributions", "GlobalSensitivity", "LinearAlgebra", "ModelingToolkit", "NLopt", "Optimization", "OptimizationBBO", "OptimizationMOI", "OptimizationNLopt", "Plots", "Reexport", "SciMLBase", "SciMLExpectations", "Turing"] git-tree-sha1 = "62ccc0ec19dff1ce722810b78b01ab459e47d1b6" @@ -1177,6 +1183,12 @@ git-tree-sha1 = "5b62d93f2582b09e469b3099d839c2d2ebf5066d" uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" version = "1.13.1" +[[deps.JSONSchema]] +deps = ["Downloads", "HTTP", "JSON", "URIs"] +git-tree-sha1 = "58cb291b01508293f7a9dc88325bc00d797cf04d" +uuid = "7d188eb4-7ad8-530c-ae41-71a32a6d4692" +version = "1.1.0" + [[deps.JobSchedulers]] deps = ["Dates", "JLD2", "JSON", "Logging", "OrderedCollections", "Pipelines", "PrettyTables", "Printf", "Reexport", "Term", "Terming", "Test"] git-tree-sha1 = "568c4fe4c1ae76ada68604c9a1ea6f76e6030104" @@ -2503,6 +2515,12 @@ git-tree-sha1 = "04777432d74ec5bc91ca047c9e0e0fd7f81acdb6" uuid = "fb77eaff-e24c-56d4-86b1-d163f2edb164" version = "5.2.1+0" +[[deps.SwaggerMarkdown]] +deps = ["JSON", "JSONSchema", "Test", "UUIDs", "YAML"] +git-tree-sha1 = "ea2513768e67b5ca27bbbab19e34179714a78cab" +uuid = "1b6eb727-ad4b-44eb-9669-b9596a6e760f" +version = "0.2.1" + [[deps.SymbolicIndexingInterface]] deps = ["DocStringExtensions"] git-tree-sha1 = "f8ab052bfcbdb9b48fad2c80c873aa0d0344dfe5" diff --git a/Project.toml b/Project.toml index db1f69b..fa4b3e6 100644 --- a/Project.toml +++ b/Project.toml @@ -8,6 +8,7 @@ AMQPClient = "79c8b4cd-a41a-55fa-907c-fab5288e1383" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" +EasyConfig = "acab07b0-f158-46d4-8913-50acef6d41fe" EasyModelAnalysis = "ef4b24a4-a090-4686-a932-e7e56a5a83bd" HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3" JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" @@ -17,6 +18,7 @@ ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" OpenAPI = "d5e62ea6-ddf3-4d43-8e4c-ad5e6c8bfd7d" Oxygen = "df9a0d86-3283-4920-82dc-4555fc0d1d8b" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SwaggerMarkdown = "1b6eb727-ad4b-44eb-9669-b9596a6e760f" UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" diff --git a/README.md b/README.md index d72d83e..f235434 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ start!() url = SimulationService.server_url[] # JSON in ASKEM Model Representation -amr = JSON3.read(HTTP.get("./examples/BIOMD0000000955_askenet.json").body) +amr = JSON3.read(read("./examples/BIOMD0000000955_askenet.json")) # Kick off the simulation job res = HTTP.post("$url/simulate", ["Content-Type" => "application/json"]; body=json) diff --git a/src/SimulationService.jl b/src/SimulationService.jl index def8b8e..523cd60 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -4,6 +4,7 @@ import AMQPClient import DataFrames: DataFrame import Dates import DifferentialEquations +import EasyConfig: Config import EasyModelAnalysis import HTTP import JobSchedulers @@ -13,6 +14,7 @@ import ModelingToolkit: @parameters, substitute, Differential, Num, @variables, import OpenAPI import Oxygen import SciMLBase: SciMLBase, solve +import SwaggerMarkdown import UUIDs import YAML @@ -38,7 +40,7 @@ export start!, stop! #-----------------------------------------------------------------------------# __init__ const rabbit_mq_channel = Ref{Any}() # TODO: replace Any with what AMQPClient.channel returns const server_url = Ref{String}() -const openapi_spec = Ref{Dict{Any,Any}}() # populated from https://github.com/DARPA-ASKEM/simulation-api-spec +const openapi_spec = Ref{Config}() # populated from https://github.com/DARPA-ASKEM/simulation-api-spec function __init__() if Threads.nthreads() == 1 @@ -58,7 +60,8 @@ function __init__() server_url[] = "http://$SIMSERVICE_HOST:$SIMSERVICE_PORT" - openapi_spec[] = YAML.load_file(download("https://raw.githubusercontent.com/DARPA-ASKEM/simulation-api-spec/main/openapi.yaml")) + spec = download("https://raw.githubusercontent.com/DARPA-ASKEM/simulation-api-spec/main/openapi.yaml") + openapi_spec[] = Config(YAML.load_file(spec)) end #-----------------------------------------------------------------------------# start! @@ -69,11 +72,17 @@ function start!(; host=SIMSERVICE_HOST, port=SIMSERVICE_PORT, kw...) JobSchedulers.scheduler_start() JobSchedulers.set_scheduler(max_cpu=0.5, max_mem=0.5, update_second=0.05, max_job=5000) Oxygen.resetstate() + # routes: Oxygen.@get "/" health Oxygen.@post "/{operation_name}" operation Oxygen.@get "/jobs/status/{job_id}" job_status Oxygen.@get "/jobs/result/{job_id}" job_result Oxygen.@post "/jobs/kill/{job_id}" job_kill + # docs: + api = SwaggerMarkdown.OpenAPI("3.0", openapi_spec[]) + swagger = SwaggerMarkdown.build(api) + Oxygen.mergeschema(swagger) + # server: Oxygen.serveparallel(; host, port, async=true, kw...) end From 74e74404724a7f8733fd8696cc309cfba0f20e75 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Tue, 11 Jul 2023 16:01:37 -0400 Subject: [PATCH 14/31] wip. Jobs submit successfully but fail... --- ARCHITECTURE.md | 6 ++ Manifest.toml | 2 +- Project.toml | 1 + README.md | 31 ++++--- src/SimulationService.jl | 183 ++++++++++++++++++++++----------------- 5 files changed, 131 insertions(+), 92 deletions(-) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 6ea86a9..5201c12 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -18,3 +18,9 @@ Source is split into 5 major components: - `Available.jl`: The operations available to the API are here. Generally, the operations just wrap around by the exposed SciML operations. - `operations`: JuliaHub primarily focuses here. + +## Requests + +An incoming request + + diff --git a/Manifest.toml b/Manifest.toml index 18c1c85..42a03bb 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,7 +2,7 @@ julia_version = "1.9.2" manifest_format = "2.0" -project_hash = "4ebded23773e7e1a7ddfe028f526e2e8e4287e0c" +project_hash = "fd1f24c4633cdc8ca8f31204e08a8ca59ab21a3d" [[deps.ADTypes]] git-tree-sha1 = "e58c18d2312749847a74f5be80bb0fa53da102bd" diff --git a/Project.toml b/Project.toml index fa4b3e6..164817f 100644 --- a/Project.toml +++ b/Project.toml @@ -11,6 +11,7 @@ DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" EasyConfig = "acab07b0-f158-46d4-8913-50acef6d41fe" EasyModelAnalysis = "ef4b24a4-a090-4686-a932-e7e56a5a83bd" HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3" +InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" JobSchedulers = "eeff360b-c02d-44d3-ab26-4013c616a17e" MathML = "abcecc63-2b08-419c-80c4-c63dca6fa478" diff --git a/README.md b/README.md index f235434..e68235f 100644 --- a/README.md +++ b/README.md @@ -13,40 +13,47 @@ docker compose --file docker/docker-compose.yml up --build With Julia REPL: ``` ->> export ENABLE_TDS=false # Disable backend Terrarium Data Service >> julia --project --threads=auto # Multithreading required for server ``` ```julia -using SimulationService, HTTP, JSON3 +# Settings to run locally (without Terrarium Data Service) +ENV["SIMSERVICE_ENABLE_TDS"] = "false" + +using SimulationService, HTTP, JSON3, EasyConfig # Start the server/job scheduler start!() -# Get where server is running ("http:/127.0.0.1:8000" by default) -url = SimulationService.server_url[] +url = SimulationService.server_url[] # server url +@info JSON3.read(HTTP.get(url).body).status # Is server running? (status == "ok") # JSON in ASKEM Model Representation -amr = JSON3.read(read("./examples/BIOMD0000000955_askenet.json")) +amr = JSON3.read(read("./examples/BIOMD0000000955_askenet.json"), Config) + +# You can directly provide AMR JSON with the `test_amr` key +# (Note: this does not look like a request that would be seen in production) +json = Config(test_amr = amr, timespan=(0, 90)) + +body = JSON3.write(json) + # Kick off the simulation job -res = HTTP.post("$url/simulate", ["Content-Type" => "application/json"]; body=json) +res = HTTP.post("$url/simulate", ["Content-Type" => "application/json"]; body=body) # Get the `job_id` so we can query the job status and get results -job_id = JSON3.read(res.body).job_id +job_id = JSON3.read(res.body).simulation_id + + # Re-run this until `status_obj.status == "complete"` -status_obj = JSON3.read(HTTP.get("$url/status/$job_id").body) -while status_obj.status != "complete" - status_obj = JSON3.read(HTTP.get("$url/status/$job_id").body) -end +status = JSON3.read(HTTP.get("$url/jobs/status/$job_id").body) # Get the result of the simulateion job result = JSON3.read(HTTP.get("$url/results/$job_id").body) # close down server and scheduler stop!() - ```` To check available endpoints, try checking [localhost:8080/docs](localhost:8080/docs) diff --git a/src/SimulationService.jl b/src/SimulationService.jl index 523cd60..fda59aa 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -4,9 +4,10 @@ import AMQPClient import DataFrames: DataFrame import Dates import DifferentialEquations -import EasyConfig: Config +import EasyConfig: EasyConfig, Config import EasyModelAnalysis import HTTP +import InteractiveUtils: subtypes import JobSchedulers import JSON3 import MathML @@ -67,21 +68,25 @@ end #-----------------------------------------------------------------------------# start! function start!(; host=SIMSERVICE_HOST, port=SIMSERVICE_PORT, kw...) Threads.nthreads() > 1 || error("Server require `Thread.nthreads() > 1`. Start Julia via `julia --threads=auto`.") + SIMSERVICE_ENABLE_TDS || @warn "TDS is disabled. Some features will not work." stop!() # Stop server if it's already running server_url[] = "http://$host:$port" JobSchedulers.scheduler_start() JobSchedulers.set_scheduler(max_cpu=0.5, max_mem=0.5, update_second=0.05, max_job=5000) Oxygen.resetstate() # routes: - Oxygen.@get "/" health - Oxygen.@post "/{operation_name}" operation - Oxygen.@get "/jobs/status/{job_id}" job_status - Oxygen.@get "/jobs/result/{job_id}" job_result - Oxygen.@post "/jobs/kill/{job_id}" job_kill + Oxygen.@get "/" health + Oxygen.@post "/{operation_name}" operation + Oxygen.@get "/jobs/status/{job_id}" job_status + Oxygen.@get "/jobs/results/{job_id}" job_result + Oxygen.@post "/jobs/kill/{job_id}" job_kill # docs: - api = SwaggerMarkdown.OpenAPI("3.0", openapi_spec[]) - swagger = SwaggerMarkdown.build(api) - Oxygen.mergeschema(swagger) + api = SwaggerMarkdown.OpenAPI("3.0", Dict(string(k) => v for (k,v) in openapi_spec[])) + + # Below commented out because of: https://github.com/JuliaData/YAML.jl/issues/117 + # swagger = SwaggerMarkdown.build(api) + # Oxygen.mergeschema(swagger) + # server: Oxygen.serveparallel(; host, port, async=true, kw...) end @@ -97,26 +102,29 @@ end SIMSERVICE_HOST = get(ENV, "SIMSERVICE_HOST", "0.0.0.0") SIMSERVICE_PORT = parse(Int, get(ENV, "SIMSERVICE_PORT", "8000")) +# Terrarium Data Service (TDS) +SIMSERVICE_ENABLE_TDS = get(ENV, "SIMSERVICE_ENABLE_TDS", "true") == "true" +SIMSERVICE_TDS_URL = get(ENV, "SIMSERVICE_TDS_URL", "http://localhost:8001") +SIMSERVICE_TDS_RETRIES = parse(Int, get(ENV, "SIMSERVICE_TDS_RETRIES", "10")) + # RabbitMQ (host=localhost) -SIMSERVICE_RABBITMQ_ENABLED = get(ENV, "SIMSERVICE_RABBITMQ_ENABLED", "false") == "true" +SIMSERVICE_RABBITMQ_ENABLED = get(ENV, "SIMSERVICE_RABBITMQ_ENABLED", "false") == "true" && SIMSERVICE_ENABLE_TDS SIMSERVICE_RABBITMQ_LOGIN = get(ENV, "SIMSERVICE_RABBITMQ_LOGIN", "guest") SIMSERVICE_RABBITMQ_PASSWORD = get(ENV, "SIMSERVICE_RABBITMQ_PASSWORD", "guest") SIMSERVICE_RABBITMQ_ROUTE = get(ENV, "SIMSERVICE_RABBITMQ_ROUTE", "terarium") SIMSERVICE_RABBITMQ_PORT = parse(Int, get(ENV, "SIMSERVICE_RABBITMQ_PORT", "5672")) -# Terrarium Data Service (TDS) -SIMSERVICE_ENABLE_TDS = get(ENV, "SIMSERVICE_ENABLE_TDS", "true") == "true" -SIMSERVICE_TDS_URL = get(ENV, "SIMSERVICE_TDS_URL", "http://localhost:8001") -SIMSERVICE_TDS_RETRIES = parse(Int, get(ENV, "SIMSERVICE_TDS_RETRIES", "10")) #-----------------------------------------------------------------------------# utils JSON_HEADER = ["Content-Type" => "application/json"] -get_json(url::String)::JSON3.Object = JSON3.read(HTTP.get(url, JSON_HEADER).body) +get_json(url::String, T::Type=JSON3.Object) = JSON3.read(HTTP.get(url, JSON_HEADER).body, T) + +jobhash(x::String) = reinterpret(Int, hash(x)) # TODO: more tests. This is an important function. -function ode_system_from_amr(obj::JSON3.Object) +function ode_system_from_amr(obj::Config) model = obj.model ode = obj.semantics.ode @@ -157,25 +165,26 @@ function ode_system_from_amr(obj::JSON3.Object) end #-----------------------------------------------------------------------------# health: "GET /" -health(::HTTP.Request) = (; status="ok", SIMSERVICE_RABBITMQ_ENABLED, SIMSERVICE_RABBITMQ_ROUTE) +health(::HTTP.Request) = (; status="ok", SIMSERVICE_RABBITMQ_ENABLED, SIMSERVICE_RABBITMQ_ROUTE, + SIMSERVICE_ENABLE_TDS) function job_status(::HTTP.Request, job_id::String) - job = JobSchedulers.job_query(job_id) + job = JobSchedulers.job_query(jobhash(job_id)) return job.state end function job_result(::HTTP.Request, job_id::String) - job = JobSchedulers.job_query(job_id) + job = JobSchedulers.job_query(jobhash(job_id)) JobSchedulers.result(job) end -function job_kill(::HTTP.Request, job_id::String) +function job_kill(request::HTTP.Request, job_id::String) try - job = JobSchedulers.job_query(job_id) + job = JobSchedulers.job_query(jobhash(job_id)) JobSchedulers.cancel!(job) - return HTTP.Response(200) + return HTTP.Response(200; request) catch - return HTTP.Response(500) + return HTTP.Response(500; request) end end @@ -218,59 +227,69 @@ abstract type Operation end #-----------------------------------------------------------------------------# OperationRequest # An OperationRequest contains all the information required to run an Operation # It's created immediately from a client request and we pass it around to keep all info together + +# endpoint: required_keys... | optional_keys... + # /simulate: (engine, model_config_id, timespan) | extra + # /calibrate: (engine, model_config_id, dataset_id) | extra, timespan + # /ensemble: (engine, model_config_ids, timespan) | extra mutable struct OperationRequest{T <: Operation} - obj::JSON3.Object # Untouched JSON from request body - model_config_ids::Vector{UUIDs.UUID} - amr::Vector{JSON3.Object} # ASKEM Model Representations associated with model_config_ids - timespan::Tuple{Float64, Float64} - df::DataFrame # empty if !haskey(obj, :dataset) - job_id::String # auto-generated in constructor + obj::Config # untouched JSON from request body + required::Config # required keys for endpoint + optional::Config # optional keys for endpoint + amr::Union{Config, Vector{Config}} # ASKEM Model Representation(s) + df::Union{Nothing, DataFrame} + timespan::Union{Nothing, Tuple{Float64, Float64}} + job_id::String operation_type::Type{T} - results::Any # results of solve(operation(::OperationRequest)) - - function OperationRequest(req::HTTP.Request) - obj = JSON3.read(req.body) - model_config_ids = get_model_config_ids(obj) - amr = map(id -> get_json("$SIMSERVICE_TDS_URL/model_configurations/$id"), model_config_ids) - timespan = get_timespan(obj) - df = get_df(obj) - job_id = "sciml-$(UUIDs.uuid4())" - operation_name = split(req.url.path, ",")[end] - operation_dict = Dict(lowercase(string(T)) => T for T in subtypes(Operation)) - operation_type = operation_dict[operation_name] + results::Any - new{operation_type}(obj, model_config_ids, amr, timespan, df, job_id, operation_type, nothing) - end -end - -function get_model_config_ids(obj::JSON3.Object) - if haskey(obj, :model_config_id) - return [UUID(obj.model_config_id)] - elseif haskey(obj, :model_config_ids) - return UUID.(obj.model_config_ids) - else - @warn "JSON request expected to have a `model_config_id` or `model_config_ids` key." - end -end - -function get_timespan(obj::JSON3.Object) - if haskey(obj, :timespan) - map(float, (obj.timespan.start, obj.timespan.end)) - else - @warn "JSON request doesn't contain `timespan`. Setting to (0.0, 100.0)." - (0.0, 100.0) + function OperationRequest(req::HTTP.Request, route::String) + @info "Creating OperationRequest: POST $route" + job_id = "sciml-$(UUIDs.uuid4())" + # TODO: make operation_dict const + operation_dict = Dict(replace(lowercase(string(T)), "simulationservice." => "") => T for T in subtypes(Operation)) + operation_type = operation_dict[route] + obj = JSON3.read(req.body, Config) + schema = openapi_spec[].paths["/$route"].post.requestBody.content."application/json".schema + required = Config(k => obj[k] for k in schema.required) + optional = Config(k => obj[k] for k in setdiff(schema.properties, schema.required)) + amr = Config() + df = nothing + timespan = nothing + # EasyConfig.delete_empty!(obj) + for (k,v) in obj + if k == :model_config_id + amr = SIMSERVICE_ENABLE_TDS ? + get_json("$SIMSERVICE_TDS_URL/model_configurations/$v", Config) : + Config() + elseif k == :model_config_ids + amr = map(v) do id + SIMSERVICE_ENABLE_TDS ? + get_json("$SIMSERVICE_TDS_URL/model_configurations/$id", Config) : + Config() + end + elseif k == :timespan + timespan = Tuple{Float64,Float64}(v) + elseif k == :dataset # calibrate only. keys(v) = (:id, :filename, :mappings) + if SIMSERVICE_ENABLE_TDS + data_url = "$SIMSERVICE_TDS_URL/datasets/$(v.id)/download-url?filename=$(v.filename)" + df = CSV.read(download(get_json(data_url).url), DataFrame) + rename!(df, v.mappings) + else + df = DataFrame() + end + + # Keys for testing only: + elseif k == :test_dataset # local CSV file + df = CSV.read(v, DataFrame) + elseif k == :test_amr # JSON + amr = v + end + end + new{operation_type}(obj, required, optional, amr, df, timespan, job_id, operation_type, nothing) end end -function get_df(obj::JSON3.Object) - !haskey(obj, :dataset) && return DataFrame() - (; dataset_id, filename) = obj.dataset - data_url = "$SIMSERVICE_TDS_URL/datasets/$dataset_id/download-url?filename=$filename" - df = CSV.read(download(get_json(data_url).url), DataFrame) - rename!(df, Dict(obj.dataset.mappings)) - return df -end - #--------------------------------------------------------------------# IntermediateResults callback # Publish intermediate results to RabbitMQ with at least `every` seconds inbetween callbacks mutable struct IntermediateResults @@ -297,7 +316,7 @@ default_retry_contion(ex) = ex isa HTTP.Exceptions.StatusError && ex.status == 4 function retry_n(f; n::Int=SIMSERVICE_TDS_RETRIES, sleep_between::Int=1, condition=default_retry_contion) res = nothing - for _ in 1:SIMSERVICE_TDS_UPDATE_RETRIES + for _ in 1:n try res = f() break @@ -360,16 +379,22 @@ function solve!(o::OperationRequest) end #-----------------------------------------------------------------------------# POST /operation/{operation} +last_operation = Ref{OperationRequest}() + function operation(req::HTTP.Request, operation_name::String) - try - o = OperationRequest(req) - job = JobSchedulers.Job(@task(solve!(o)); id=o.job_id) + # try + o = OperationRequest(req, operation_name) + last_operation[] = o # DEBUGGING + @info "Scheduling Job: $(o.job_id)" + job = JobSchedulers.Job(@task(solve!(o))) + job.id = jobhash(o.job_id) JobSchedulers.submit!(job) + body = JSON3.write((; simulation_id = o.job_id)) - return Response(201, ["Content-Type" => "application/json; charset=utf-8"]; body=body) - catch ex - return Response(500, ["Content-Type" => "application/json; charset=utf-8"]; body=JSON3.write((; error=string(ex)))) - end + return HTTP.Response(201, ["Content-Type" => "application/json; charset=utf-8"], body; request=req) + # catch ex + # return HTTP.Response(500, ["Content-Type" => "application/json; charset=utf-8"], JSON3.write((; error=string(ex)))) + # end end @@ -379,7 +404,7 @@ struct Simulate <: Operation timespan::Tuple{Float64, Float64} end -Simulate(o::OperationRequest) = Simulate(ode_system_from_amr(only(o.amr)), o.timespan) +Simulate(o::OperationRequest) = Simulate(ode_system_from_amr(o.amr), o.timespan) function solve(op::Simulate; kw...) prob = ODEProblem(op.sys, [], op.timespan, saveat=1) From 65cce8f7316369d9fc99f4703e539f4df81a29e3 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Tue, 11 Jul 2023 19:23:26 -0400 Subject: [PATCH 15/31] just results endpoint broken now --- Manifest.toml | 19 +++++++++++- Project.toml | 1 + README.md | 17 ++++------- src/SimulationService.jl | 62 ++++++++++++++++++++++------------------ 4 files changed, 59 insertions(+), 40 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index 42a03bb..d9399b3 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,7 +2,7 @@ julia_version = "1.9.2" manifest_format = "2.0" -project_hash = "fd1f24c4633cdc8ca8f31204e08a8ca59ab21a3d" +project_hash = "684faf27f64b9f8942896b29e633521bd6b01eb1" [[deps.ADTypes]] git-tree-sha1 = "e58c18d2312749847a74f5be80bb0fa53da102bd" @@ -312,6 +312,12 @@ git-tree-sha1 = "3ddd48d200eb8ddf9cb3e0189fc059fd49b97c1f" uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f" version = "3.3.6" +[[deps.CSV]] +deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] +git-tree-sha1 = "44dbf560808d49041989b8a96cae4cffbeb7966a" +uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" +version = "0.10.11" + [[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" @@ -2786,12 +2792,23 @@ git-tree-sha1 = "4528479aa01ee1b3b4cd0e6faef0e04cf16466da" uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" version = "1.25.0+0" +[[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.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" diff --git a/Project.toml b/Project.toml index 164817f..cb70fae 100644 --- a/Project.toml +++ b/Project.toml @@ -5,6 +5,7 @@ version = "0.6.0" [deps] AMQPClient = "79c8b4cd-a41a-55fa-907c-fab5288e1383" +CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" diff --git a/README.md b/README.md index e68235f..ce16b21 100644 --- a/README.md +++ b/README.md @@ -17,16 +17,14 @@ With Julia REPL: ``` ```julia -# Settings to run locally (without Terrarium Data Service) -ENV["SIMSERVICE_ENABLE_TDS"] = "false" - using SimulationService, HTTP, JSON3, EasyConfig -# Start the server/job scheduler +# Start the server/job scheduler without Terrarium Data Service +SimulationService.SIMSERVICE_ENABLE_TDS = false start!() url = SimulationService.server_url[] # server url -@info JSON3.read(HTTP.get(url).body).status # Is server running? (status == "ok") +@info JSON3.read(HTTP.get(url).body) # Is server running? (status == "ok") # JSON in ASKEM Model Representation amr = JSON3.read(read("./examples/BIOMD0000000955_askenet.json"), Config) @@ -37,20 +35,17 @@ json = Config(test_amr = amr, timespan=(0, 90)) body = JSON3.write(json) - # Kick off the simulation job res = HTTP.post("$url/simulate", ["Content-Type" => "application/json"]; body=body) # Get the `job_id` so we can query the job status and get results job_id = JSON3.read(res.body).simulation_id - - -# Re-run this until `status_obj.status == "complete"` +# Re-run this until `status_obj.status == "done"` status = JSON3.read(HTTP.get("$url/jobs/status/$job_id").body) -# Get the result of the simulateion job -result = JSON3.read(HTTP.get("$url/results/$job_id").body) +# Get the result of the simulation job +result = JSON3.read(HTTP.get("$url/jobs/results/$job_id").body) # close down server and scheduler stop!() diff --git a/src/SimulationService.jl b/src/SimulationService.jl index fda59aa..0fd7fbb 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -1,6 +1,7 @@ module SimulationService import AMQPClient +import CSV import DataFrames: DataFrame import Dates import DifferentialEquations @@ -14,7 +15,7 @@ import MathML import ModelingToolkit: @parameters, substitute, Differential, Num, @variables, ODESystem, ODEProblem import OpenAPI import Oxygen -import SciMLBase: SciMLBase, solve +import SciMLBase: SciMLBase, DiscreteCallback, solve import SwaggerMarkdown import UUIDs import YAML @@ -103,19 +104,17 @@ SIMSERVICE_HOST = get(ENV, "SIMSERVICE_HOST", "0.0.0.0") SIMSERVICE_PORT = parse(Int, get(ENV, "SIMSERVICE_PORT", "8000")) # Terrarium Data Service (TDS) -SIMSERVICE_ENABLE_TDS = get(ENV, "SIMSERVICE_ENABLE_TDS", "true") == "true" +SIMSERVICE_ENABLE_TDS = get(ENV, "SIMSERVICE_ENABLE_TDS", "true") == "true" # SIMSERVICE_TDS_URL = get(ENV, "SIMSERVICE_TDS_URL", "http://localhost:8001") SIMSERVICE_TDS_RETRIES = parse(Int, get(ENV, "SIMSERVICE_TDS_RETRIES", "10")) -# RabbitMQ (host=localhost) +# RabbitMQ (Note: assumes running on localhost) SIMSERVICE_RABBITMQ_ENABLED = get(ENV, "SIMSERVICE_RABBITMQ_ENABLED", "false") == "true" && SIMSERVICE_ENABLE_TDS SIMSERVICE_RABBITMQ_LOGIN = get(ENV, "SIMSERVICE_RABBITMQ_LOGIN", "guest") SIMSERVICE_RABBITMQ_PASSWORD = get(ENV, "SIMSERVICE_RABBITMQ_PASSWORD", "guest") SIMSERVICE_RABBITMQ_ROUTE = get(ENV, "SIMSERVICE_RABBITMQ_ROUTE", "terarium") SIMSERVICE_RABBITMQ_PORT = parse(Int, get(ENV, "SIMSERVICE_RABBITMQ_PORT", "5672")) - - #-----------------------------------------------------------------------------# utils JSON_HEADER = ["Content-Type" => "application/json"] @@ -123,6 +122,15 @@ get_json(url::String, T::Type=JSON3.Object) = JSON3.read(HTTP.get(url, JSON_HEAD jobhash(x::String) = reinterpret(Int, hash(x)) +# Print message when TDS unavailable, e.g. SIMSERVICE_ENABLE_TDS || no_tds(:myfunc; id="id", filename="result.csv") +function no_tds(f; kw...) + msg = "TDS unavailable in function: `$f`\n" + for (k, v) in kw + msg *= "\n$k = $v" + end + @info msg +end + # TODO: more tests. This is an important function. function ode_system_from_amr(obj::Config) model = obj.model @@ -173,9 +181,11 @@ function job_status(::HTTP.Request, job_id::String) return job.state end -function job_result(::HTTP.Request, job_id::String) +function job_result(request::HTTP.Request, job_id::String) job = JobSchedulers.job_query(jobhash(job_id)) - JobSchedulers.result(job) + r = JobSchedulers.result(job) + HTTP.Response(200, r.header, r.body; request) + end function job_kill(request::HTTP.Request, job_id::String) @@ -192,7 +202,7 @@ end # Content sent to client as JSON3.write(content) # If !SIMSERVICE_RABBITMQ_ENABLED, then just log the content function publish_to_rabbitmq(content) - SIMSERVICE_RABBITMQ_ENABLED || return @info "publish_to_rabbitmq: $(JSON3.write(content)))" + SIMSERVICE_RABBITMQ_ENABLED || return no_tds(:publish_to_rabbitmq; content) json = Vector{UInt8}(codeunits(JSON3.write(content))) message = AMQPClient.Message(json, content_type="application/json") AMQPClient.basic_publish(rabbitmq_channel[], message; exchange="", routing_key=SIMSERVICE_RABBITMQ_ROUTE) @@ -241,7 +251,8 @@ mutable struct OperationRequest{T <: Operation} timespan::Union{Nothing, Tuple{Float64, Float64}} job_id::String operation_type::Type{T} - results::Any + results::Any # result of solving operaiont + results_to_upload::Any # processed results to send back to client (body, header, filename) function OperationRequest(req::HTTP.Request, route::String) @info "Creating OperationRequest: POST $route" @@ -286,7 +297,7 @@ mutable struct OperationRequest{T <: Operation} amr = v end end - new{operation_type}(obj, required, optional, amr, df, timespan, job_id, operation_type, nothing) + new{operation_type}(obj, required, optional, amr, df, timespan, job_id, operation_type, nothing, nothing) end end @@ -333,7 +344,7 @@ function retry_n(f; n::Int=SIMSERVICE_TDS_RETRIES, sleep_between::Int=1, conditi end function update_job_status!(o::OperationRequest; kw...) - SIMSERVICE_ENABLE_TDS || return @info "update_job_status!: $kw" + SIMSERVICE_ENABLE_TDS || return no_tds(:update_job_status!; kw...) job_id = o.job_id url = "$SIMSERVICE_TDS_URL/simulations/$job_id" # joshday: rename simulations => jobs? obj = retry_n(() -> get_json(url)) @@ -347,24 +358,14 @@ end function upload_results!(o::OperationRequest) isnothing(o.results) && error("No results. Run `solve!(o)` first.") + isnothing(o.results_to_upload) && error("results_to_upload has not been set.") - if o.results isa DataFrame - body = CSV.write(o.results) - filename = "result.csv" - header = ["Content-Type" => "text/csv"] - else - body = JSON3.write(o.results) - filename = "result.json" - header = JSON_HEADER - end + (; filename, header, body) = o.results_to_upload + SIMSERVICE_ENABLE_TDS || return no_tds(:upload_results!; filename, header, body) - upload_url = "$SIMSERVICE_TDS_URL/simulations/sciml-$job_id/upload-url?filename=$filename" + upload_url = "$SIMSERVICE_TDS_URL/simulations/sciml-$(o.job_id)/upload-url?filename=$filename)" url = get_json(upload_url).url - if SIMSERVICE_ENABLE_TDS - HTTP.put(url, header; body=body) - else - @info "upload_results!: $body" - end + HTTP.put(url, header; body=body) end #-----------------------------------------------------------------------------# solve! @@ -373,9 +374,14 @@ function solve!(o::OperationRequest) operation = o.operation_type(o) callback = get_callback(o) o.results = solve(operation; callback) - upload_results!(o) update_job_status!(o; status="complete", complete_time=time()) - return o.result + o.results_to_upload = if o.results isa DataFrame + (body = CSV.write(o.results), filename = "result.csv", header = ["Content-Type" => "text/csv"]) + else + (body = JSON3.write(o.results), filename = "result.json", header = JSON_HEADER) + end + upload_results!(o) + return o.results_to_upload end #-----------------------------------------------------------------------------# POST /operation/{operation} From ac042cb846dacf50e93df63314860955a9764542 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Tue, 11 Jul 2023 19:41:11 -0400 Subject: [PATCH 16/31] simulate job runs successfully --- Manifest.toml | 58 ++++++++++++++++++++++------------------ README.md | 5 ---- src/SimulationService.jl | 20 +++++++------- 3 files changed, 41 insertions(+), 42 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index d9399b3..f03fb5b 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -99,10 +99,10 @@ version = "0.4.6" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" [[deps.AdvancedMH]] -deps = ["AbstractMCMC", "Distributions", "LogDensityProblems", "Random", "Requires"] -git-tree-sha1 = "165af834eee68d0a96c58daa950ddf0b3f45f608" +deps = ["AbstractMCMC", "Distributions", "FillArrays", "LinearAlgebra", "LogDensityProblems", "Random", "Requires"] +git-tree-sha1 = "b2a1602952739e589cf5e2daff1274a49f22c9a4" uuid = "5b7e9947-ddc0-4b3f-9b55-0d8042f74170" -version = "0.7.4" +version = "0.7.5" weakdeps = ["DiffResults", "ForwardDiff", "MCMCChains", "StructArrays"] [deps.AdvancedMH.extensions] @@ -173,9 +173,9 @@ version = "0.1.29" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "e047d3f758876fc984209b649399690e776a0b8f" +git-tree-sha1 = "f86b3bed71295314311c5628dc8d4a22c352e5f8" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.0.10" +version = "1.0.11" [[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" @@ -332,9 +332,9 @@ version = "0.5.1" [[deps.ChainRules]] deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "Statistics", "StructArrays"] -git-tree-sha1 = "2afc496e94d15a1af5502625246d172361542133" +git-tree-sha1 = "f8edb069394ef3b9accee299ef3692a485f28d85" uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.52.0" +version = "1.52.1" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra", "SparseArrays"] @@ -708,15 +708,15 @@ version = "0.4.6" [[deps.EasyConfig]] deps = ["JSON3", "OrderedCollections", "StructTypes"] -git-tree-sha1 = "8a5a451290aaa8bece132d16e557fae478ae55e0" +git-tree-sha1 = "d22224e636afcb14de0cb5a0a7039095e2238aee" uuid = "acab07b0-f158-46d4-8913-50acef6d41fe" -version = "0.1.14" +version = "0.1.15" [[deps.EasyModelAnalysis]] deps = ["DifferentialEquations", "Distributions", "GlobalSensitivity", "LinearAlgebra", "ModelingToolkit", "NLopt", "Optimization", "OptimizationBBO", "OptimizationMOI", "OptimizationNLopt", "Plots", "Reexport", "SciMLBase", "SciMLExpectations", "Turing"] -git-tree-sha1 = "62ccc0ec19dff1ce722810b78b01ab459e47d1b6" +git-tree-sha1 = "dee5682fe50288b87ac7092f8160917029305c23" uuid = "ef4b24a4-a090-4686-a932-e7e56a5a83bd" -version = "0.1.9" +version = "0.1.10" [[deps.EllipticalSliceSampling]] deps = ["AbstractMCMC", "ArrayInterface", "Distributions", "Random", "Statistics"] @@ -827,9 +827,9 @@ uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[deps.FillArrays]] deps = ["LinearAlgebra", "Random", "SparseArrays", "Statistics"] -git-tree-sha1 = "2250347838b28a108d1967663cba57bfb3c02a58" +git-tree-sha1 = "e5556303fd8c9ad4a8fceccd406ef3433ddb4c45" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.3.0" +version = "1.4.0" [[deps.FiniteDiff]] deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] @@ -1016,9 +1016,9 @@ version = "1.5.1" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "2ee0eb8746650f498ed9a109383aa399b2a0c515" +git-tree-sha1 = "c206f345c5cee9da7bdf87cb540085a43acffca4" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.9.10" +version = "1.9.11" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -1226,10 +1226,16 @@ uuid = "ef3ab10e-7fda-4108-b977-705223b18434" version = "0.4.0" [[deps.KernelAbstractions]] -deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "b48617c5d764908b5fac493cd907cf33cc11eec1" +deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "6d08ca80b621635fed9cdfeb9a4280a574020bf3" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.6" +version = "0.9.7" + + [deps.KernelAbstractions.extensions] + EnzymeExt = "EnzymeCore" + + [deps.KernelAbstractions.weakdeps] + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" [[deps.KernelDensity]] deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] @@ -1856,9 +1862,9 @@ version = "0.1.14" [[deps.OptimizationNLopt]] deps = ["NLopt", "Optimization", "Reexport"] -git-tree-sha1 = "105de2db4fad2750921fb59507b8ebf3ccebdd91" +git-tree-sha1 = "e957c68dabb518cb4c7d3d3697968850e86789ef" uuid = "4e6fcdb7-1186-4e1f-a706-475e75c168bb" -version = "0.1.6" +version = "0.1.7" [[deps.Opus_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -2032,9 +2038,9 @@ version = "1.4.0" [[deps.PrettyTables]] deps = ["Crayons", "Formatting", "LaTeXStrings", "Markdown", "Reexport", "StringManipulation", "Tables"] -git-tree-sha1 = "213579618ec1f42dea7dd637a42785a608b1ea9c" +git-tree-sha1 = "331cc8048cba270591eab381e7aa3e2e3fef7f5e" uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" -version = "2.2.4" +version = "2.2.5" [[deps.Primes]] deps = ["IntegerMathUtils"] @@ -2246,9 +2252,9 @@ version = "0.6.39" [[deps.SciMLBase]] deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] -git-tree-sha1 = "a22a12db91f6a921e28a7ae39a9546eed93fd92e" +git-tree-sha1 = "8251ee4b3e4dde75ea0c2a251d167a60631800a3" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "1.93.0" +version = "1.93.1" [[deps.SciMLExpectations]] deps = ["DiffEqBase", "Distributions", "Integrals", "KernelDensity", "LinearAlgebra", "Parameters", "Random", "RecursiveArrayTools", "Reexport", "StaticArrays", "Statistics", "Zygote"] @@ -2748,9 +2754,9 @@ version = "1.6.3" [[deps.Unityper]] deps = ["ConstructionBase"] -git-tree-sha1 = "d5f4ec8c22db63bd3ccb239f640e895cfde145aa" +git-tree-sha1 = "7c7a5d1387719bc7aff7c7d78dc233fffa750be9" uuid = "a7c27f48-0311-42f6-a7f8-2c11e75eb415" -version = "0.1.2" +version = "0.1.4" [[deps.UnsafeAtomics]] git-tree-sha1 = "6331ac3440856ea1988316b46045303bef658278" diff --git a/README.md b/README.md index ce16b21..fcd5cff 100644 --- a/README.md +++ b/README.md @@ -44,11 +44,6 @@ job_id = JSON3.read(res.body).simulation_id # Re-run this until `status_obj.status == "done"` status = JSON3.read(HTTP.get("$url/jobs/status/$job_id").body) -# Get the result of the simulation job -result = JSON3.read(HTTP.get("$url/jobs/results/$job_id").body) - # close down server and scheduler stop!() ```` - -To check available endpoints, try checking [localhost:8080/docs](localhost:8080/docs) diff --git a/src/SimulationService.jl b/src/SimulationService.jl index 0fd7fbb..e0b9152 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -79,7 +79,6 @@ function start!(; host=SIMSERVICE_HOST, port=SIMSERVICE_PORT, kw...) Oxygen.@get "/" health Oxygen.@post "/{operation_name}" operation Oxygen.@get "/jobs/status/{job_id}" job_status - Oxygen.@get "/jobs/results/{job_id}" job_result Oxygen.@post "/jobs/kill/{job_id}" job_kill # docs: api = SwaggerMarkdown.OpenAPI("3.0", Dict(string(k) => v for (k,v) in openapi_spec[])) @@ -181,13 +180,6 @@ function job_status(::HTTP.Request, job_id::String) return job.state end -function job_result(request::HTTP.Request, job_id::String) - job = JobSchedulers.job_query(jobhash(job_id)) - r = JobSchedulers.result(job) - HTTP.Response(200, r.header, r.body; request) - -end - function job_kill(request::HTTP.Request, job_id::String) try job = JobSchedulers.job_query(jobhash(job_id)) @@ -361,7 +353,7 @@ function upload_results!(o::OperationRequest) isnothing(o.results_to_upload) && error("results_to_upload has not been set.") (; filename, header, body) = o.results_to_upload - SIMSERVICE_ENABLE_TDS || return no_tds(:upload_results!; filename, header, body) + SIMSERVICE_ENABLE_TDS || return no_tds(:upload_results!; filename, header, bodysummary=repr(summary(body))) upload_url = "$SIMSERVICE_TDS_URL/simulations/sciml-$(o.job_id)/upload-url?filename=$filename)" url = get_json(upload_url).url @@ -376,7 +368,9 @@ function solve!(o::OperationRequest) o.results = solve(operation; callback) update_job_status!(o; status="complete", complete_time=time()) o.results_to_upload = if o.results isa DataFrame - (body = CSV.write(o.results), filename = "result.csv", header = ["Content-Type" => "text/csv"]) + io = IOBuffer() + CSV.write(io, o.results) + (body = String(take!(io)), filename = "result.csv", header = ["Content-Type" => "text/csv"]) else (body = JSON3.write(o.results), filename = "result.json", header = JSON_HEADER) end @@ -385,17 +379,21 @@ function solve!(o::OperationRequest) end #-----------------------------------------------------------------------------# POST /operation/{operation} +# For debugging last_operation = Ref{OperationRequest}() +last_job = Ref{JobSchedulers.Job}() function operation(req::HTTP.Request, operation_name::String) # try o = OperationRequest(req, operation_name) - last_operation[] = o # DEBUGGING @info "Scheduling Job: $(o.job_id)" job = JobSchedulers.Job(@task(solve!(o))) job.id = jobhash(o.job_id) JobSchedulers.submit!(job) + last_operation[] = o # For debugging + last_job[] = job # For debugging + body = JSON3.write((; simulation_id = o.job_id)) return HTTP.Response(201, ["Content-Type" => "application/json; charset=utf-8"], body; request=req) # catch ex From 285e8ade35aee5e0a48180b9a3189e3188286b57 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Tue, 11 Jul 2023 21:55:00 -0400 Subject: [PATCH 17/31] passing tests woo woo --- Manifest.toml | 2 +- Project.toml | 1 + src/SimulationService.jl | 66 +++++++++++++++++++++++++++------------- test/runtests.jl | 54 ++++++++++++++++++-------------- 4 files changed, 78 insertions(+), 45 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index f03fb5b..32da6e6 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,7 +2,7 @@ julia_version = "1.9.2" manifest_format = "2.0" -project_hash = "684faf27f64b9f8942896b29e633521bd6b01eb1" +project_hash = "ea674b8b09da2290311366cb67e8826e056877c5" [[deps.ADTypes]] git-tree-sha1 = "e58c18d2312749847a74f5be80bb0fa53da102bd" diff --git a/Project.toml b/Project.toml index cb70fae..fc71c5e 100644 --- a/Project.toml +++ b/Project.toml @@ -9,6 +9,7 @@ CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" +Downloads = "f43a241f-c20a-4ad4-852c-f6b1247861c6" EasyConfig = "acab07b0-f158-46d4-8913-50acef6d41fe" EasyModelAnalysis = "ef4b24a4-a090-4686-a932-e7e56a5a83bd" HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3" diff --git a/src/SimulationService.jl b/src/SimulationService.jl index e0b9152..548eb28 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -5,6 +5,7 @@ import CSV import DataFrames: DataFrame import Dates import DifferentialEquations +import Downloads: download import EasyConfig: EasyConfig, Config import EasyModelAnalysis import HTTP @@ -23,7 +24,7 @@ import YAML export start!, stop! #-----------------------------------------------------------------------------# notes -# Example request to /operation/{operation}: +# Example request to /{operation}: # { # "model_config_id": "22739963-0f82-4d6f-aecc-1082712ed299", # "timespan": {"start":0, "end":90}, @@ -76,14 +77,14 @@ function start!(; host=SIMSERVICE_HOST, port=SIMSERVICE_PORT, kw...) JobSchedulers.set_scheduler(max_cpu=0.5, max_mem=0.5, update_second=0.05, max_job=5000) Oxygen.resetstate() # routes: - Oxygen.@get "/" health - Oxygen.@post "/{operation_name}" operation - Oxygen.@get "/jobs/status/{job_id}" job_status - Oxygen.@post "/jobs/kill/{job_id}" job_kill - # docs: - api = SwaggerMarkdown.OpenAPI("3.0", Dict(string(k) => v for (k,v) in openapi_spec[])) - - # Below commented out because of: https://github.com/JuliaData/YAML.jl/issues/117 + Oxygen.@get "/" health + Oxygen.@get "/status/{job_id}" job_status + Oxygen.@get "/result/{job_id}" job_result + Oxygen.@post "/{operation_name}" operation + Oxygen.@post "/kill/{job_id}" job_kill + + # Below commented out because of: https://github.com/JuliaData/YAML.jl/issues/117 ???? + # api = SwaggerMarkdown.OpenAPI("3.0", Dict(string(k) => v for (k,v) in openapi_spec[])) # swagger = SwaggerMarkdown.build(api) # Oxygen.mergeschema(swagger) @@ -117,7 +118,7 @@ SIMSERVICE_RABBITMQ_PORT = parse(Int, get(ENV, "SIMSERVICE_RABBITMQ_PORT" #-----------------------------------------------------------------------------# utils JSON_HEADER = ["Content-Type" => "application/json"] -get_json(url::String, T::Type=JSON3.Object) = JSON3.read(HTTP.get(url, JSON_HEADER).body, T) +get_json(url::String)::Config = JSON3.read(HTTP.get(url, JSON_HEADER).body, Config) jobhash(x::String) = reinterpret(Int, hash(x)) @@ -171,23 +172,45 @@ function ode_system_from_amr(obj::Config) ODESystem(eqs, t, statefuncs, paramvars; defaults = [statefuncs .=> initial_vals; sym_defs], name=Symbol(obj.name)) end -#-----------------------------------------------------------------------------# health: "GET /" +#-----------------------------------------------------------------------------# health: GET / health(::HTTP.Request) = (; status="ok", SIMSERVICE_RABBITMQ_ENABLED, SIMSERVICE_RABBITMQ_ROUTE, SIMSERVICE_ENABLE_TDS) +#-----------------------------------------------------------------------------# job endpoints +get_job(job_id::String) = JobSchedulers.job_query(jobhash(job_id)) + +const NO_JOB = + HTTP.Response(404, ["Content-Type" => "text/plain; charset=utf-8"], body="Job does not exist") + +# /status/{job_id} function job_status(::HTTP.Request, job_id::String) - job = JobSchedulers.job_query(jobhash(job_id)) - return job.state + job = get_job(job_id) + isnothing(job) && return NO_JOB + SCHEDULER_TO_API_STATUS_MAP = Dict( + JobSchedulers.QUEUING => :queued, + JobSchedulers.RUNNING => :running, + JobSchedulers.DONE => :complete, + JobSchedulers.FAILED => :error, + JobSchedulers.CANCELLED => :cancelled, + ) + return (; status = SCHEDULER_TO_API_STATUS_MAP[job.state]) end +# /result/{job_id} +function job_result(request::HTTP.Request, job_id::String) + job = get_job(job_id) + isnothing(job) && return NO_JOB + job.state == :done ? + JobSchedulers.result(job) : + Response(400, ["Content-Type" => "text/plain; charset=utf-8"], body="Job has not completed") +end + +# /kill/{job_id} function job_kill(request::HTTP.Request, job_id::String) - try - job = JobSchedulers.job_query(jobhash(job_id)) - JobSchedulers.cancel!(job) - return HTTP.Response(200; request) - catch - return HTTP.Response(500; request) - end + job = JobSchedulers.job_query(jobhash(job_id)) + isnothing(job) && return NO_JOB + JobSchedulers.cancel!(job) + return HTTP.Response(200) end #-----------------------------------------------------------------------------# RabbitMQ @@ -378,11 +401,12 @@ function solve!(o::OperationRequest) return o.results_to_upload end -#-----------------------------------------------------------------------------# POST /operation/{operation} +#-----------------------------------------------------------------------------# POST /{operation} # For debugging last_operation = Ref{OperationRequest}() last_job = Ref{JobSchedulers.Job}() +# TODO: add try-catch back in. It's useful for debugging to leave it out. function operation(req::HTTP.Request, operation_name::String) # try o = OperationRequest(req, operation_name) diff --git a/test/runtests.jl b/test/runtests.jl index 9490a8a..a0ca2d6 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,16 +1,15 @@ using Test using DataFrames +using EasyConfig using HTTP using JSON3 using Oxygen using SciMLBase: solve -# Required to run on machine without TDS/RabbitMQ -ENV["SIMSERVICE_ENABLE_TDS"] = "false" -ENV["SIMSERVICE_RABBITMQ_ENABLED"] = "false" - using SimulationService +SimulationService.SIMSERVICE_ENABLE_TDS = false + #-----------------------------------------------------------------------------# Operations @testset "Operations" begin @testset "simulate" begin @@ -33,23 +32,13 @@ using SimulationService end #-----------------------------------------------------------------------------# test routes -# TODO: test that the openapi spec is valid -@testset "Routes" begin - host = "127.0.0.1" - port = 8080 - url = "http://$host:$port" +@testset "Server Routes" begin + SimulationService.SIMSERVICE_ENABLE_TDS = false + start!() - server = start!(; host, port, async=true) + url = SimulationService.server_url[] - ready = false - while !ready - try - res = HTTP.get(url) - ready = true - catch - sleep(1) - end - end + sleep(1) # wait for server to start @testset "/" begin res = HTTP.get(url) @@ -57,15 +46,34 @@ end @test JSON3.read(res.body).status == "ok" end - @testset "/operations/simulate" begin - @test true # TODO + @testset "/simulate" begin + file = joinpath(@__DIR__, "..", "examples", "BIOMD0000000955_askenet.json") + amr = JSON3.read(read(file), Config) + json = Config(test_amr = amr, timespan=(0, 90)) + body = JSON3.write(json) + res = HTTP.post("$url/simulate", ["Content-Type" => "application/json"]; body=body) + @test res.status == 201 + + done_or_failed = false + job_id = JSON3.read(res.body).simulation_id + while !done_or_failed + status = JSON3.read(HTTP.get("$url/status/$job_id").body) + if status.status == "complete" + @test true + done_or_failed = true + elseif status.status == "error" + @test false + done_or_failed = true + end + sleep(1) + end end - @testset "/operations/calibrate" begin + @testset "/calibrate" begin @test true # TODO end - @testset "/operations/ensemble" begin + @testset "/ensemble" begin @test true # TODO end From da7546dc6ebe0ccddfd487e49dd26e55a03bfb70 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Wed, 12 Jul 2023 09:00:42 -0400 Subject: [PATCH 18/31] add test files, fill in readme a bit --- README.md | 49 ++++- .../request-calibrate-no-integration.json | 8 + examples/request-simulate-integrated.json | 19 ++ examples/request-simulate-no-integration.json | 4 + paths.yml | 176 ------------------ src/SimulationService.jl | 8 +- 6 files changed, 77 insertions(+), 187 deletions(-) create mode 100644 examples/request-calibrate-no-integration.json create mode 100644 examples/request-simulate-integrated.json create mode 100644 examples/request-simulate-no-integration.json delete mode 100644 paths.yml diff --git a/README.md b/README.md index fcd5cff..af9bb2a 100644 --- a/README.md +++ b/README.md @@ -3,19 +3,28 @@ Simulation Service provides an interface and job runner for [ASKEM models](https See example payload at [./examples/request.json](./examples/request.json) -## Usage +## Development Environment -With docker compose: -``` -docker compose --file docker/docker-compose.yml up --build +```julia +using Revise # auto-update the server with your changes +using SimulationService +SimulationService.SIMSERVICE_ENABLE_TDS = false # opt out of Terrarium Data Service + +start!() # run server + +# make code changes that you want to test... + +start!() # Replaces the running server with your changes ``` -With Julia REPL: +## Run Server via Docker ``` ->> julia --project --threads=auto # Multithreading required for server +docker compose --file docker/docker-compose.yml up --build ``` +## Example Request with Local Server in Julia + ```julia using SimulationService, HTTP, JSON3, EasyConfig @@ -27,11 +36,11 @@ url = SimulationService.server_url[] # server url @info JSON3.read(HTTP.get(url).body) # Is server running? (status == "ok") # JSON in ASKEM Model Representation -amr = JSON3.read(read("./examples/BIOMD0000000955_askenet.json"), Config) +model = JSON3.read(read("./examples/BIOMD0000000955_askenet.json"), Config) # You can directly provide AMR JSON with the `test_amr` key # (Note: this does not look like a request that would be seen in production) -json = Config(test_amr = amr, timespan=(0, 90)) +json = Config(model = model, timespan=(0, 90)) body = JSON3.write(json) @@ -46,4 +55,26 @@ status = JSON3.read(HTTP.get("$url/jobs/status/$job_id").body) # close down server and scheduler stop!() -```` +``` + +## Incoming Requests + +The OpenAPI spec [here](https://raw.githubusercontent.com/DARPA-ASKEM/simulation-api-spec/main/openapi.yaml) is the source of truth. See the JSON files in `./examples` that begin with `request-...`. + +Here's a summary of what the JSON should like in a request: + +1. Every request should contain `"engine": "sciml"` +2. Endpoint-specific keys: + - `/simulate` + - Required: `model_config_id`, `timespan` + - Optional: `extra` + - `/calibrate` + - Required: `model_config_id`: `dataset` + - Optional: `extra`, `timespan` + - `/ensemble` + - Required: `model_config_ids`, `timespan` + - Optional: `extra` +3. Additional keys (for testing/when TDS is disabled). + - `csv`: A String containing the contents of a CSV file. + - `local_csv`: The file path of a CSV file. + - `model`: JSON object in the The ASKEM Model Representation (AMR) format. diff --git a/examples/request-calibrate-no-integration.json b/examples/request-calibrate-no-integration.json new file mode 100644 index 0000000..1cb9b4a --- /dev/null +++ b/examples/request-calibrate-no-integration.json @@ -0,0 +1,8 @@ +{ + "model": "{\"name\": \"Giordano2020 - SIDARTHE model of COVID-19 spread in Italy\",\"schema\": \"https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/petrinet_v0.5/petrinet/petrinet_schema.json\",\"schema_name\": \"petrinet\",\"description\": \"Giordano2020 - SIDARTHE model of COVID-19 spread in Italy\",\"model_version\": \"0.1\",\"properties\": {},\"model\": { \"states\": [ { \"id\": \"Susceptible\", \"name\": \"Susceptible\", \"grounding\": { \"identifiers\": { \"ido\": \"0000514\" }, \"modifiers\": {} }, \"units\": { \"expression\": \"1\", \"expression_mathml\": \"1\" } }, { \"id\": \"Diagnosed\", \"name\": \"Diagnosed\", \"grounding\": { \"identifiers\": { \"ido\": \"0000511\" }, \"modifiers\": { \"diagnosis\": \"ncit:C15220\" } }, \"units\": { \"expression\": \"1\", \"expression_mathml\": \"1\" } }, { \"id\": \"Infected\", \"name\": \"Infected\", \"grounding\": { \"identifiers\": { \"ido\": \"0000511\" }, \"modifiers\": {} }, \"units\": { \"expression\": \"1\", \"expression_mathml\": \"1\" } }, { \"id\": \"Ailing\", \"name\": \"Ailing\", \"grounding\": { \"identifiers\": { \"ido\": \"0000511\" }, \"modifiers\": { \"disease_severity\": \"ncit:C25269\", \"diagnosis\": \"ncit:C113725\" } }, \"units\": { \"expression\": \"1\", \"expression_mathml\": \"1\" } }, { \"id\": \"Recognized\", \"name\": \"Recognized\", \"grounding\": { \"identifiers\": { \"ido\": \"0000511\" }, \"modifiers\": { \"diagnosis\": \"ncit:C15220\" } }, \"units\": { \"expression\": \"1\", \"expression_mathml\": \"1\" } }, { \"id\": \"Healed\", \"name\": \"Healed\", \"grounding\": { \"identifiers\": { \"ido\": \"0000592\" }, \"modifiers\": {} }, \"units\": { \"expression\": \"1\", \"expression_mathml\": \"1\" } }, { \"id\": \"Threatened\", \"name\": \"Threatened\", \"grounding\": { \"identifiers\": { \"ido\": \"0000511\" }, \"modifiers\": { \"disease_severity\": \"ncit:C25467\" } }, \"units\": { \"expression\": \"1\", \"expression_mathml\": \"1\" } }, { \"id\": \"Extinct\", \"name\": \"Extinct\", \"grounding\": { \"identifiers\": { \"ncit\": \"C28554\" }, \"modifiers\": {} }, \"units\": { \"expression\": \"1\", \"expression_mathml\": \"1\" } } ], \"transitions\": [ { \"id\": \"t1\", \"input\": [ \"Diagnosed\", \"Susceptible\" ], \"output\": [ \"Diagnosed\", \"Infected\" ], \"properties\": { \"name\": \"t1\" } }, { \"id\": \"t2\", \"input\": [ \"Ailing\", \"Susceptible\" ], \"output\": [ \"Ailing\", \"Infected\" ], \"properties\": { \"name\": \"t2\" } }, { \"id\": \"t3\", \"input\": [ \"Recognized\", \"Susceptible\" ], \"output\": [ \"Recognized\", \"Infected\" ], \"properties\": { \"name\": \"t3\" } }, { \"id\": \"t4\", \"input\": [ \"Infected\", \"Susceptible\" ], \"output\": [ \"Infected\", \"Infected\" ], \"properties\": { \"name\": \"t4\" } }, { \"id\": \"t5\", \"input\": [ \"Infected\" ], \"output\": [ \"Diagnosed\" ], \"properties\": { \"name\": \"t5\" } }, { \"id\": \"t6\", \"input\": [ \"Infected\" ], \"output\": [ \"Ailing\" ], \"properties\": { \"name\": \"t6\" } }, { \"id\": \"t7\", \"input\": [ \"Infected\" ], \"output\": [ \"Healed\" ], \"properties\": { \"name\": \"t7\" } }, { \"id\": \"t8\", \"input\": [ \"Diagnosed\" ], \"output\": [ \"Recognized\" ], \"properties\": { \"name\": \"t8\" } }, { \"id\": \"t9\", \"input\": [ \"Diagnosed\" ], \"output\": [ \"Healed\" ], \"properties\": { \"name\": \"t9\" } }, { \"id\": \"t10\", \"input\": [ \"Ailing\" ], \"output\": [ \"Recognized\" ], \"properties\": { \"name\": \"t10\" } }, { \"id\": \"t11\", \"input\": [ \"Ailing\" ], \"output\": [ \"Healed\" ], \"properties\": { \"name\": \"t11\" } }, { \"id\": \"t12\", \"input\": [ \"Ailing\" ], \"output\": [ \"Threatened\" ], \"properties\": { \"name\": \"t12\" } }, { \"id\": \"t13\", \"input\": [ \"Recognized\" ], \"output\": [ \"Threatened\" ], \"properties\": { \"name\": \"t13\" } }, { \"id\": \"t14\", \"input\": [ \"Recognized\" ], \"output\": [ \"Healed\" ], \"properties\": { \"name\": \"t14\" } }, { \"id\": \"t15\", \"input\": [ \"Threatened\" ], \"output\": [ \"Extinct\" ], \"properties\": { \"name\": \"t15\" } }, { \"id\": \"t16\", \"input\": [ \"Threatened\" ], \"output\": [ \"Healed\" ], \"properties\": { \"name\": \"t16\" } } ] }, \"semantics\": { \"ode\": { \"rates\": [ { \"target\": \"t1\", \"expression\": \"Diagnosed*Susceptible*beta\", \"expression_mathml\": \"DiagnosedSusceptiblebeta\" }, { \"target\": \"t2\", \"expression\": \"Ailing*Susceptible*gamma\", \"expression_mathml\": \"AilingSusceptiblegamma\" }, { \"target\": \"t3\", \"expression\": \"Recognized*Susceptible*delta\", \"expression_mathml\": \"RecognizedSusceptibledelta\" }, { \"target\": \"t4\", \"expression\": \"Infected*Susceptible*alpha\", \"expression_mathml\": \"InfectedSusceptiblealpha\" }, { \"target\": \"t5\", \"expression\": \"Infected*epsilon\", \"expression_mathml\": \"Infectedepsilon\" }, { \"target\": \"t6\", \"expression\": \"Infected*zeta\", \"expression_mathml\": \"Infectedzeta\" }, { \"target\": \"t7\", \"expression\": \"Infected*lambda\", \"expression_mathml\": \"Infectedlambda\" }, { \"target\": \"t8\", \"expression\": \"Diagnosed*eta\", \"expression_mathml\": \"Diagnosedeta\" }, { \"target\": \"t9\", \"expression\": \"Diagnosed*rho\", \"expression_mathml\": \"Diagnosedrho\" }, { \"target\": \"t10\", \"expression\": \"Ailing*theta\", \"expression_mathml\": \"Ailingtheta\" }, { \"target\": \"t11\", \"expression\": \"Ailing*kappa\", \"expression_mathml\": \"Ailingkappa\" }, { \"target\": \"t12\", \"expression\": \"Ailing*mu\", \"expression_mathml\": \"Ailingmu\" }, { \"target\": \"t13\", \"expression\": \"Recognized*nu\", \"expression_mathml\": \"Recognizednu\" }, { \"target\": \"t14\", \"expression\": \"Recognized*xi\", \"expression_mathml\": \"Recognizedxi\" }, { \"target\": \"t15\", \"expression\": \"Threatened*tau\", \"expression_mathml\": \"Threatenedtau\" }, { \"target\": \"t16\", \"expression\": \"Threatened*sigma\", \"expression_mathml\": \"Threatenedsigma\" } ], \"initials\": [ { \"target\": \"Susceptible\", \"expression\": \"0.999996300000000\", \"expression_mathml\": \"0.99999629999999995\" }, { \"target\": \"Diagnosed\", \"expression\": \"3.33333333000000e-7\", \"expression_mathml\": \"3.33333333e-7\" }, { \"target\": \"Infected\", \"expression\": \"3.33333333000000e-6\", \"expression_mathml\": \"3.3333333299999999e-6\" }, { \"target\": \"Ailing\", \"expression\": \"1.66666666000000e-8\", \"expression_mathml\": \"1.6666666599999999e-8\" }, { \"target\": \"Recognized\", \"expression\": \"3.33333333000000e-8\", \"expression_mathml\": \"3.33333333e-8\" }, { \"target\": \"Healed\", \"expression\": \"0.0\", \"expression_mathml\": \"0.0\" }, { \"target\": \"Threatened\", \"expression\": \"0.0\", \"expression_mathml\": \"0.0\" }, { \"target\": \"Extinct\", \"expression\": \"0.0\", \"expression_mathml\": \"0.0\" } ], \"parameters\": [ { \"id\": \"beta\", \"value\": 0.011, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.008799999999999999, \"maximum\": 0.0132 } } }, { \"id\": \"gamma\", \"value\": 0.456, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.3648, \"maximum\": 0.5472 } } }, { \"id\": \"delta\", \"value\": 0.011, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.008799999999999999, \"maximum\": 0.0132 } } }, { \"id\": \"alpha\", \"value\": 0.57, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.45599999999999996, \"maximum\": 0.6839999999999999 } } }, { \"id\": \"epsilon\", \"value\": 0.171, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.1368, \"maximum\": 0.20520000000000002 } } }, { \"id\": \"zeta\", \"value\": 0.125, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.1, \"maximum\": 0.15 } } }, { \"id\": \"lambda\", \"value\": 0.034, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.027200000000000002, \"maximum\": 0.0408 } } }, { \"id\": \"eta\", \"value\": 0.125, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.1, \"maximum\": 0.15 } } }, { \"id\": \"rho\", \"value\": 0.034, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.027200000000000002, \"maximum\": 0.0408 } } }, { \"id\": \"theta\", \"value\": 0.371, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.2968, \"maximum\": 0.4452 } } }, { \"id\": \"kappa\", \"value\": 0.017, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.013600000000000001, \"maximum\": 0.0204 } } }, { \"id\": \"mu\", \"value\": 0.017, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.013600000000000001, \"maximum\": 0.0204 } } }, { \"id\": \"nu\", \"value\": 0.027, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.0216, \"maximum\": 0.0324 } } }, { \"id\": \"xi\", \"value\": 0.017, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.013600000000000001, \"maximum\": 0.0204 } } }, { \"id\": \"tau\", \"value\": 0.01, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.008, \"maximum\": 0.012 } } }, { \"id\": \"sigma\", \"value\": 0.017, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.013600000000000001, \"maximum\": 0.0204 } } } ], \"observables\": [ { \"id\": \"Cases\", \"name\": \"Cases\", \"expression\": \"Diagnosed + Recognized + Threatened\", \"expression_mathml\": \"DiagnosedRecognizedThreatened\" }, { \"id\": \"Hospitalizations\", \"name\": \"Hospitalizations\", \"expression\": \"Recognized + Threatened\", \"expression_mathml\": \"RecognizedThreatened\" }, { \"id\": \"Deaths\", \"name\": \"Deaths\", \"expression\": \"Extinct\", \"expression_mathml\": \"Extinct\" } ], \"time\": { \"id\": \"t\", \"units\": { \"expression\": \"day\", \"expression_mathml\": \"day\" } } } }, \"metadata\": { \"annotations\": { \"license\": \"CC0\", \"authors\": [], \"references\": [ \"pubmed:32322102\" ], \"time_scale\": null, \"time_start\": null, \"time_end\": null, \"locations\": [], \"pathogens\": [ \"ncbitaxon:2697049\" ], \"diseases\": [ \"doid:0080600\" ], \"hosts\": [ \"ncbitaxon:9606\" ], \"model_types\": [ \"mamo:0000028\" ] } }}", + "dataset": { + "id": "2ea2d39f-866f-46f6-beec-972ed2136ed5", + "filename": "dataset.csv" + }, + "timespan": {"start": 101, "end": 190} + } diff --git a/examples/request-simulate-integrated.json b/examples/request-simulate-integrated.json new file mode 100644 index 0000000..c597ae0 --- /dev/null +++ b/examples/request-simulate-integrated.json @@ -0,0 +1,19 @@ +{ + "model_config_id": "f20ea672-bfa4-422b-884f-0a4c09356fd0", + "timespan": {"start": 0, "end": 90}, + "extra": { + "initials": { + "S": 0.49457800495224524, + "E": 0.26745259325403603, + "I": 0.4497387877393193, + "R": 0.32807705995998604, + "D": 0.8545934885162726 + }, + "params": { + "exp": 0.16207166221196045, + "conv": 0.7009195813964052, + "rec": 0.7040317196117394, + "death": 0.15807853921067516 + } + } + } diff --git a/examples/request-simulate-no-integration.json b/examples/request-simulate-no-integration.json new file mode 100644 index 0000000..ea659df --- /dev/null +++ b/examples/request-simulate-no-integration.json @@ -0,0 +1,4 @@ +{ + "model": "{\"name\": \"Giordano2020 - SIDARTHE model of COVID-19 spread in Italy\",\"schema\": \"https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/petrinet_v0.5/petrinet/petrinet_schema.json\",\"schema_name\": \"petrinet\",\"description\": \"Giordano2020 - SIDARTHE model of COVID-19 spread in Italy\",\"model_version\": \"0.1\",\"properties\": {},\"model\": { \"states\": [ { \"id\": \"Susceptible\", \"name\": \"Susceptible\", \"grounding\": { \"identifiers\": { \"ido\": \"0000514\" }, \"modifiers\": {} }, \"units\": { \"expression\": \"1\", \"expression_mathml\": \"1\" } }, { \"id\": \"Diagnosed\", \"name\": \"Diagnosed\", \"grounding\": { \"identifiers\": { \"ido\": \"0000511\" }, \"modifiers\": { \"diagnosis\": \"ncit:C15220\" } }, \"units\": { \"expression\": \"1\", \"expression_mathml\": \"1\" } }, { \"id\": \"Infected\", \"name\": \"Infected\", \"grounding\": { \"identifiers\": { \"ido\": \"0000511\" }, \"modifiers\": {} }, \"units\": { \"expression\": \"1\", \"expression_mathml\": \"1\" } }, { \"id\": \"Ailing\", \"name\": \"Ailing\", \"grounding\": { \"identifiers\": { \"ido\": \"0000511\" }, \"modifiers\": { \"disease_severity\": \"ncit:C25269\", \"diagnosis\": \"ncit:C113725\" } }, \"units\": { \"expression\": \"1\", \"expression_mathml\": \"1\" } }, { \"id\": \"Recognized\", \"name\": \"Recognized\", \"grounding\": { \"identifiers\": { \"ido\": \"0000511\" }, \"modifiers\": { \"diagnosis\": \"ncit:C15220\" } }, \"units\": { \"expression\": \"1\", \"expression_mathml\": \"1\" } }, { \"id\": \"Healed\", \"name\": \"Healed\", \"grounding\": { \"identifiers\": { \"ido\": \"0000592\" }, \"modifiers\": {} }, \"units\": { \"expression\": \"1\", \"expression_mathml\": \"1\" } }, { \"id\": \"Threatened\", \"name\": \"Threatened\", \"grounding\": { \"identifiers\": { \"ido\": \"0000511\" }, \"modifiers\": { \"disease_severity\": \"ncit:C25467\" } }, \"units\": { \"expression\": \"1\", \"expression_mathml\": \"1\" } }, { \"id\": \"Extinct\", \"name\": \"Extinct\", \"grounding\": { \"identifiers\": { \"ncit\": \"C28554\" }, \"modifiers\": {} }, \"units\": { \"expression\": \"1\", \"expression_mathml\": \"1\" } } ], \"transitions\": [ { \"id\": \"t1\", \"input\": [ \"Diagnosed\", \"Susceptible\" ], \"output\": [ \"Diagnosed\", \"Infected\" ], \"properties\": { \"name\": \"t1\" } }, { \"id\": \"t2\", \"input\": [ \"Ailing\", \"Susceptible\" ], \"output\": [ \"Ailing\", \"Infected\" ], \"properties\": { \"name\": \"t2\" } }, { \"id\": \"t3\", \"input\": [ \"Recognized\", \"Susceptible\" ], \"output\": [ \"Recognized\", \"Infected\" ], \"properties\": { \"name\": \"t3\" } }, { \"id\": \"t4\", \"input\": [ \"Infected\", \"Susceptible\" ], \"output\": [ \"Infected\", \"Infected\" ], \"properties\": { \"name\": \"t4\" } }, { \"id\": \"t5\", \"input\": [ \"Infected\" ], \"output\": [ \"Diagnosed\" ], \"properties\": { \"name\": \"t5\" } }, { \"id\": \"t6\", \"input\": [ \"Infected\" ], \"output\": [ \"Ailing\" ], \"properties\": { \"name\": \"t6\" } }, { \"id\": \"t7\", \"input\": [ \"Infected\" ], \"output\": [ \"Healed\" ], \"properties\": { \"name\": \"t7\" } }, { \"id\": \"t8\", \"input\": [ \"Diagnosed\" ], \"output\": [ \"Recognized\" ], \"properties\": { \"name\": \"t8\" } }, { \"id\": \"t9\", \"input\": [ \"Diagnosed\" ], \"output\": [ \"Healed\" ], \"properties\": { \"name\": \"t9\" } }, { \"id\": \"t10\", \"input\": [ \"Ailing\" ], \"output\": [ \"Recognized\" ], \"properties\": { \"name\": \"t10\" } }, { \"id\": \"t11\", \"input\": [ \"Ailing\" ], \"output\": [ \"Healed\" ], \"properties\": { \"name\": \"t11\" } }, { \"id\": \"t12\", \"input\": [ \"Ailing\" ], \"output\": [ \"Threatened\" ], \"properties\": { \"name\": \"t12\" } }, { \"id\": \"t13\", \"input\": [ \"Recognized\" ], \"output\": [ \"Threatened\" ], \"properties\": { \"name\": \"t13\" } }, { \"id\": \"t14\", \"input\": [ \"Recognized\" ], \"output\": [ \"Healed\" ], \"properties\": { \"name\": \"t14\" } }, { \"id\": \"t15\", \"input\": [ \"Threatened\" ], \"output\": [ \"Extinct\" ], \"properties\": { \"name\": \"t15\" } }, { \"id\": \"t16\", \"input\": [ \"Threatened\" ], \"output\": [ \"Healed\" ], \"properties\": { \"name\": \"t16\" } } ] }, \"semantics\": { \"ode\": { \"rates\": [ { \"target\": \"t1\", \"expression\": \"Diagnosed*Susceptible*beta\", \"expression_mathml\": \"DiagnosedSusceptiblebeta\" }, { \"target\": \"t2\", \"expression\": \"Ailing*Susceptible*gamma\", \"expression_mathml\": \"AilingSusceptiblegamma\" }, { \"target\": \"t3\", \"expression\": \"Recognized*Susceptible*delta\", \"expression_mathml\": \"RecognizedSusceptibledelta\" }, { \"target\": \"t4\", \"expression\": \"Infected*Susceptible*alpha\", \"expression_mathml\": \"InfectedSusceptiblealpha\" }, { \"target\": \"t5\", \"expression\": \"Infected*epsilon\", \"expression_mathml\": \"Infectedepsilon\" }, { \"target\": \"t6\", \"expression\": \"Infected*zeta\", \"expression_mathml\": \"Infectedzeta\" }, { \"target\": \"t7\", \"expression\": \"Infected*lambda\", \"expression_mathml\": \"Infectedlambda\" }, { \"target\": \"t8\", \"expression\": \"Diagnosed*eta\", \"expression_mathml\": \"Diagnosedeta\" }, { \"target\": \"t9\", \"expression\": \"Diagnosed*rho\", \"expression_mathml\": \"Diagnosedrho\" }, { \"target\": \"t10\", \"expression\": \"Ailing*theta\", \"expression_mathml\": \"Ailingtheta\" }, { \"target\": \"t11\", \"expression\": \"Ailing*kappa\", \"expression_mathml\": \"Ailingkappa\" }, { \"target\": \"t12\", \"expression\": \"Ailing*mu\", \"expression_mathml\": \"Ailingmu\" }, { \"target\": \"t13\", \"expression\": \"Recognized*nu\", \"expression_mathml\": \"Recognizednu\" }, { \"target\": \"t14\", \"expression\": \"Recognized*xi\", \"expression_mathml\": \"Recognizedxi\" }, { \"target\": \"t15\", \"expression\": \"Threatened*tau\", \"expression_mathml\": \"Threatenedtau\" }, { \"target\": \"t16\", \"expression\": \"Threatened*sigma\", \"expression_mathml\": \"Threatenedsigma\" } ], \"initials\": [ { \"target\": \"Susceptible\", \"expression\": \"0.999996300000000\", \"expression_mathml\": \"0.99999629999999995\" }, { \"target\": \"Diagnosed\", \"expression\": \"3.33333333000000e-7\", \"expression_mathml\": \"3.33333333e-7\" }, { \"target\": \"Infected\", \"expression\": \"3.33333333000000e-6\", \"expression_mathml\": \"3.3333333299999999e-6\" }, { \"target\": \"Ailing\", \"expression\": \"1.66666666000000e-8\", \"expression_mathml\": \"1.6666666599999999e-8\" }, { \"target\": \"Recognized\", \"expression\": \"3.33333333000000e-8\", \"expression_mathml\": \"3.33333333e-8\" }, { \"target\": \"Healed\", \"expression\": \"0.0\", \"expression_mathml\": \"0.0\" }, { \"target\": \"Threatened\", \"expression\": \"0.0\", \"expression_mathml\": \"0.0\" }, { \"target\": \"Extinct\", \"expression\": \"0.0\", \"expression_mathml\": \"0.0\" } ], \"parameters\": [ { \"id\": \"beta\", \"value\": 0.011, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.008799999999999999, \"maximum\": 0.0132 } } }, { \"id\": \"gamma\", \"value\": 0.456, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.3648, \"maximum\": 0.5472 } } }, { \"id\": \"delta\", \"value\": 0.011, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.008799999999999999, \"maximum\": 0.0132 } } }, { \"id\": \"alpha\", \"value\": 0.57, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.45599999999999996, \"maximum\": 0.6839999999999999 } } }, { \"id\": \"epsilon\", \"value\": 0.171, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.1368, \"maximum\": 0.20520000000000002 } } }, { \"id\": \"zeta\", \"value\": 0.125, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.1, \"maximum\": 0.15 } } }, { \"id\": \"lambda\", \"value\": 0.034, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.027200000000000002, \"maximum\": 0.0408 } } }, { \"id\": \"eta\", \"value\": 0.125, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.1, \"maximum\": 0.15 } } }, { \"id\": \"rho\", \"value\": 0.034, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.027200000000000002, \"maximum\": 0.0408 } } }, { \"id\": \"theta\", \"value\": 0.371, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.2968, \"maximum\": 0.4452 } } }, { \"id\": \"kappa\", \"value\": 0.017, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.013600000000000001, \"maximum\": 0.0204 } } }, { \"id\": \"mu\", \"value\": 0.017, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.013600000000000001, \"maximum\": 0.0204 } } }, { \"id\": \"nu\", \"value\": 0.027, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.0216, \"maximum\": 0.0324 } } }, { \"id\": \"xi\", \"value\": 0.017, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.013600000000000001, \"maximum\": 0.0204 } } }, { \"id\": \"tau\", \"value\": 0.01, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.008, \"maximum\": 0.012 } } }, { \"id\": \"sigma\", \"value\": 0.017, \"distribution\": { \"type\": \"StandardUniform1\", \"parameters\": { \"minimum\": 0.013600000000000001, \"maximum\": 0.0204 } } } ], \"observables\": [ { \"id\": \"Cases\", \"name\": \"Cases\", \"expression\": \"Diagnosed + Recognized + Threatened\", \"expression_mathml\": \"DiagnosedRecognizedThreatened\" }, { \"id\": \"Hospitalizations\", \"name\": \"Hospitalizations\", \"expression\": \"Recognized + Threatened\", \"expression_mathml\": \"RecognizedThreatened\" }, { \"id\": \"Deaths\", \"name\": \"Deaths\", \"expression\": \"Extinct\", \"expression_mathml\": \"Extinct\" } ], \"time\": { \"id\": \"t\", \"units\": { \"expression\": \"day\", \"expression_mathml\": \"day\" } } } }, \"metadata\": { \"annotations\": { \"license\": \"CC0\", \"authors\": [], \"references\": [ \"pubmed:32322102\" ], \"time_scale\": null, \"time_start\": null, \"time_end\": null, \"locations\": [], \"pathogens\": [ \"ncbitaxon:2697049\" ], \"diseases\": [ \"doid:0080600\" ], \"hosts\": [ \"ncbitaxon:9606\" ], \"model_types\": [ \"mamo:0000028\" ] } }}", + "timespan": {"start": 0, "end": 90} + } diff --git a/paths.yml b/paths.yml deleted file mode 100644 index fab4b97..0000000 --- a/paths.yml +++ /dev/null @@ -1,176 +0,0 @@ -/simulate: - post: - summary: Perform a simulation - operationId: simulateModel - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - engine: - type: string - enum: [SciML, CIEMSS] - example: CIEMSS - model_config_id: - type: string - example: "ba8da8d4-047d-11ee-be56" - timespan: - type: object - properties: - start: - type: integer - example: 0 - end: - type: integer - example: 0 - items: - type: integer - example: [0, 90] - extra: - description: optional extra system specific arguments for advanced use cases - type: object - required: - - engine - - model_config_id - - timespan - responses: - '200': - description: Simulation created successfully - content: - application/json: - schema: - type: object - properties: - simulation_id: - type: string - example: fc5d80e4-0483-11ee-be56 - -/calibrate: - post: - summary: Calibrate a model to data then simulate - description: Calibrate a model and perform a "fitting" simulation over the time range of the calibration dataset and a simulation of a time range specified in `timespan` if `timespan` is specified. The SciML engine allows for calibration without additional simulation; in that case `timespan` is left off the payload. - operationId: calibratesimulateModel - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - engine: - type: string - enum: [SciML, CIEMSS] - example: CIEMSS - model_config_id: - type: string - example: "c1cd941a-047d-11ee-be56" - dataset: - type: object - properties: - id: - type: string - example: "cd339570-047d-11ee-be55" - filename: - type: string - example: "dataset.csv" - mappings: - type: object - timespan: - type: object - properties: - start: - type: integer - example: 0 - end: - type: integer - example: 0 - extra: - description: optional extra system specific arguments for advanced use cases - type: object - required: - - engine - - model_config_id - - dataset_id - responses: - '200': - description: Calibration/simulation created successfully - content: - application/json: - schema: - type: object - properties: - simulation_id: - type: string - example: fc5d80e4-0483-11ee-be56 -/ensemble: - post: - summary: Perform an ensemble simulation - operationId: createEnsemble - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - engine: - type: string - enum: [SciML, CIEMSS] - example: CIEMSS - model_config_ids: - type: array - items: - type: string - example: ["ba8da8d4-047d-11ee-be56", "c1cd941a-047d-11ee-be56", "c4b9f88a-047d-11ee-be56"] - timespan: - type: object - properties: - start: - type: integer - example: 0 - end: - type: integer - example: 0 - extra: - description: optional extra system specific arguments for advanced use cases - type: object - required: - - engine - - model_config_id - - timespan - responses: - '200': - description: Ensemble created successfully - content: - application/json: - schema: - type: object - properties: - simulation_id: - type: string - example: fc5d80e4-0483-11ee-be56 - -/status/{simulation_id}: - get: - summary: Retrieve the status of a simulation - operationId: getStatus - parameters: - - name: simulation_id - in: path - required: true - schema: - type: string - example: fc5d80e4-0483-11ee-be56 - responses: - '200': - description: Status retrieved successfully - content: - application/json: - schema: - type: object - properties: - status: - type: string - enum: [queued, running, complete, error] diff --git a/src/SimulationService.jl b/src/SimulationService.jl index 548eb28..dc45e6e 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -40,6 +40,8 @@ export start!, stop! # pre-rewrite commit: https://github.com/DARPA-ASKEM/simulation-service/tree/8e4dfc515fd6ddf53067fa535e37450daf1cd63c +# OpenAPI spec: https://raw.githubusercontent.com/DARPA-ASKEM/simulation-api-spec/main/openapi.yaml + #-----------------------------------------------------------------------------# __init__ const rabbit_mq_channel = Ref{Any}() # TODO: replace Any with what AMQPClient.channel returns const server_url = Ref{String}() @@ -306,9 +308,11 @@ mutable struct OperationRequest{T <: Operation} end # Keys for testing only: - elseif k == :test_dataset # local CSV file + elseif k == :csv + df = CSV.read(codeunits(v), DataFrame) + elseif k == :local_csv # local CSV file df = CSV.read(v, DataFrame) - elseif k == :test_amr # JSON + elseif k == :model # JSON amr = v end end From db47c8d82ebdfd49c6d93410ce4b1a7340a2fb57 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Wed, 12 Jul 2023 09:21:41 -0400 Subject: [PATCH 19/31] readme and minor OperationRequest changes --- README.md | 21 ++++++++++++-- examples/request-simulate-integrated.json | 21 ++------------ src/SimulationService.jl | 34 +++++++++++------------ 3 files changed, 39 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index af9bb2a..12771b2 100644 --- a/README.md +++ b/README.md @@ -69,12 +69,29 @@ Here's a summary of what the JSON should like in a request: - Required: `model_config_id`, `timespan` - Optional: `extra` - `/calibrate` - - Required: `model_config_id`: `dataset` + - Required: `model_config_id`, `dataset` - Optional: `extra`, `timespan` - `/ensemble` - Required: `model_config_ids`, `timespan` - Optional: `extra` 3. Additional keys (for testing/when TDS is disabled). - `csv`: A String containing the contents of a CSV file. - - `local_csv`: The file path of a CSV file. + - `local_csv`: The file path of a CSV file, local to where the server is running. - `model`: JSON object in the The ASKEM Model Representation (AMR) format. + +### How Incoming Requests are Processed + +An incoming `HTTP.Request` gets turned into a `SimulationService.OperationRequest` object that holds +all the necessary info for running/solving the model and returning results. + + +1. Request arrives +2. We process the keys into useful things for `OperationRequest` + - `model_config_id(s)` --> Retrieve model(s) in AMR format from TDS (`model::Config` in `OperationRequest`). + - `dataset` --> Retrieve dataset from TDS (`df::DataFrame` in `OperationRequest`). +3. We start the job, which performs: + a. Update job status in TDS to "running". + b. Run/solve the model/simulation. + c. Upload results to TDS. + d. Update job status in TDS to "complete". +4. Return a 201 response (above job runs async) with JSON that holds the `simulation_id` (client's term), which we call `job_id`. diff --git a/examples/request-simulate-integrated.json b/examples/request-simulate-integrated.json index c597ae0..c17f616 100644 --- a/examples/request-simulate-integrated.json +++ b/examples/request-simulate-integrated.json @@ -1,19 +1,4 @@ { - "model_config_id": "f20ea672-bfa4-422b-884f-0a4c09356fd0", - "timespan": {"start": 0, "end": 90}, - "extra": { - "initials": { - "S": 0.49457800495224524, - "E": 0.26745259325403603, - "I": 0.4497387877393193, - "R": 0.32807705995998604, - "D": 0.8545934885162726 - }, - "params": { - "exp": 0.16207166221196045, - "conv": 0.7009195813964052, - "rec": 0.7040317196117394, - "death": 0.15807853921067516 - } - } - } + "model_config_id": "f20ea672-bfa4-422b-884f-0a4c09356fd0", + "timespan": {"start": 0, "end": 90}, +} diff --git a/src/SimulationService.jl b/src/SimulationService.jl index dc45e6e..586080e 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -263,7 +263,7 @@ mutable struct OperationRequest{T <: Operation} obj::Config # untouched JSON from request body required::Config # required keys for endpoint optional::Config # optional keys for endpoint - amr::Union{Config, Vector{Config}} # ASKEM Model Representation(s) + model::Union{Config, Vector{Config}} # ASKEM Model Representation(s) df::Union{Nothing, DataFrame} timespan::Union{Nothing, Tuple{Float64, Float64}} job_id::String @@ -281,17 +281,17 @@ mutable struct OperationRequest{T <: Operation} schema = openapi_spec[].paths["/$route"].post.requestBody.content."application/json".schema required = Config(k => obj[k] for k in schema.required) optional = Config(k => obj[k] for k in setdiff(schema.properties, schema.required)) - amr = Config() + model = Config() df = nothing timespan = nothing # EasyConfig.delete_empty!(obj) for (k,v) in obj if k == :model_config_id - amr = SIMSERVICE_ENABLE_TDS ? + model = SIMSERVICE_ENABLE_TDS ? get_json("$SIMSERVICE_TDS_URL/model_configurations/$v", Config) : Config() elseif k == :model_config_ids - amr = map(v) do id + model = map(v) do id SIMSERVICE_ENABLE_TDS ? get_json("$SIMSERVICE_TDS_URL/model_configurations/$id", Config) : Config() @@ -313,10 +313,10 @@ mutable struct OperationRequest{T <: Operation} elseif k == :local_csv # local CSV file df = CSV.read(v, DataFrame) elseif k == :model # JSON - amr = v + model = v end end - new{operation_type}(obj, required, optional, amr, df, timespan, job_id, operation_type, nothing, nothing) + new{operation_type}(obj, required, optional, model, df, timespan, job_id, operation_type, nothing, nothing) end end @@ -377,9 +377,16 @@ end function upload_results!(o::OperationRequest) isnothing(o.results) && error("No results. Run `solve!(o)` first.") - isnothing(o.results_to_upload) && error("results_to_upload has not been set.") - (; filename, header, body) = o.results_to_upload + # DataFrame result saved as CSV. Everything else saved as JSON. + o.results_to_upload = if o.results isa DataFrame + io = IOBuffer() + CSV.write(io, o.results) + (body = String(take!(io)), filename = "result.csv", header = ["Content-Type" => "text/csv"]) + else + (body = JSON3.write(o.results), filename = "result.json", header = JSON_HEADER) + end + SIMSERVICE_ENABLE_TDS || return no_tds(:upload_results!; filename, header, bodysummary=repr(summary(body))) upload_url = "$SIMSERVICE_TDS_URL/simulations/sciml-$(o.job_id)/upload-url?filename=$filename)" @@ -393,15 +400,8 @@ function solve!(o::OperationRequest) operation = o.operation_type(o) callback = get_callback(o) o.results = solve(operation; callback) - update_job_status!(o; status="complete", complete_time=time()) - o.results_to_upload = if o.results isa DataFrame - io = IOBuffer() - CSV.write(io, o.results) - (body = String(take!(io)), filename = "result.csv", header = ["Content-Type" => "text/csv"]) - else - (body = JSON3.write(o.results), filename = "result.json", header = JSON_HEADER) - end upload_results!(o) + update_job_status!(o; status="complete", complete_time=time()) return o.results_to_upload end @@ -436,7 +436,7 @@ struct Simulate <: Operation timespan::Tuple{Float64, Float64} end -Simulate(o::OperationRequest) = Simulate(ode_system_from_amr(o.amr), o.timespan) +Simulate(o::OperationRequest) = Simulate(ode_system_from_amr(o.model), o.timespan) function solve(op::Simulate; kw...) prob = ODEProblem(op.sys, [], op.timespan, saveat=1) From 1434d4ce092e24a7d7820405b39005b611d0453e Mon Sep 17 00:00:00 2001 From: Josh Day Date: Wed, 12 Jul 2023 09:27:36 -0400 Subject: [PATCH 20/31] ready to merge I think --- src/SimulationService.jl | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/src/SimulationService.jl b/src/SimulationService.jl index 586080e..d35e2ff 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -382,12 +382,18 @@ function upload_results!(o::OperationRequest) o.results_to_upload = if o.results isa DataFrame io = IOBuffer() CSV.write(io, o.results) - (body = String(take!(io)), filename = "result.csv", header = ["Content-Type" => "text/csv"]) + body = String(take!(io)) + filename = "result.csv" + header = ["Content-Type" => "text/csv"] else - (body = JSON3.write(o.results), filename = "result.json", header = JSON_HEADER) + body = JSON3.write(o.results) + filename = "result.json" + header = JSON_HEADER end - SIMSERVICE_ENABLE_TDS || return no_tds(:upload_results!; filename, header, bodysummary=repr(summary(body))) + if !SIMSERVICE_ENABLE_TDS + return no_tds(:upload_results!; filename, header, bodysummary=repr(summary(body))) + end upload_url = "$SIMSERVICE_TDS_URL/simulations/sciml-$(o.job_id)/upload-url?filename=$filename)" url = get_json(upload_url).url @@ -396,21 +402,25 @@ end #-----------------------------------------------------------------------------# solve! function solve!(o::OperationRequest) - update_job_status!(o; status="running", start_time=time()) - operation = o.operation_type(o) - callback = get_callback(o) - o.results = solve(operation; callback) - upload_results!(o) - update_job_status!(o; status="complete", complete_time=time()) - return o.results_to_upload + try + update_job_status!(o; status="running", start_time=time()) + operation = o.operation_type(o) + callback = get_callback(o) + o.results = solve(operation; callback) + upload_results!(o) + update_job_status!(o; status="complete", complete_time=time()) + return o.results_to_upload + catch ex + update_job_status!(o; status="error", error=string(ex)) + end end #-----------------------------------------------------------------------------# POST /{operation} -# For debugging +# For debugging. When a job fails, you can check out last_operation[] and last_job[]. last_operation = Ref{OperationRequest}() last_job = Ref{JobSchedulers.Job}() -# TODO: add try-catch back in. It's useful for debugging to leave it out. +# TODO: add try-catch back in? It's useful for debugging to leave it out. function operation(req::HTTP.Request, operation_name::String) # try o = OperationRequest(req, operation_name) @@ -439,6 +449,7 @@ end Simulate(o::OperationRequest) = Simulate(ode_system_from_amr(o.model), o.timespan) function solve(op::Simulate; kw...) + # joshday: What does providing `u0 = []` do? Don't we know what u0 is from AMR? prob = ODEProblem(op.sys, [], op.timespan, saveat=1) sol = solve(prob; progress = true, progress_steps = 1, kw...) DataFrame(sol) From f42066d8f36016fd997007ce796109d400d6364a Mon Sep 17 00:00:00 2001 From: Josh Day Date: Wed, 12 Jul 2023 09:44:54 -0400 Subject: [PATCH 21/31] compat entry for EasyConfig --- Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Project.toml b/Project.toml index fc71c5e..0e0559c 100644 --- a/Project.toml +++ b/Project.toml @@ -26,6 +26,7 @@ UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" [compat] +EasyConfig = "0.1.15" julia = "1.9" [extras] From 8048b9715089bc37316f8b6e67b83eb353010b01 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Wed, 12 Jul 2023 09:51:02 -0400 Subject: [PATCH 22/31] bump version --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 0e0559c..8766500 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "SimulationService" uuid = "e66378d9-a322-4933-8764-0ce0bcab4993" authors = ["Five Grant <5@fivegrant.com>"] -version = "0.6.0" +version = "0.7.0" [deps] AMQPClient = "79c8b4cd-a41a-55fa-907c-fab5288e1383" From ab8dd199220db760ecf2dbb92eebb01d55440192 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Wed, 12 Jul 2023 09:56:53 -0400 Subject: [PATCH 23/31] cleanup, add compat --- .gitignore | 1 + Manifest.toml | 3058 -------------------------------------- Project.toml | 15 + README.md | 2 +- src/SimulationService.jl | 10 +- 5 files changed, 22 insertions(+), 3064 deletions(-) delete mode 100644 Manifest.toml diff --git a/.gitignore b/.gitignore index 42afd83..f8ddecf 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,7 @@ api.env ### Julia ### test/logs/ +Manifest.toml ### Project ### # Config diff --git a/Manifest.toml b/Manifest.toml deleted file mode 100644 index 32da6e6..0000000 --- a/Manifest.toml +++ /dev/null @@ -1,3058 +0,0 @@ -# This file is machine-generated - editing it directly is not advised - -julia_version = "1.9.2" -manifest_format = "2.0" -project_hash = "ea674b8b09da2290311366cb67e8826e056877c5" - -[[deps.ADTypes]] -git-tree-sha1 = "e58c18d2312749847a74f5be80bb0fa53da102bd" -uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "0.1.5" - -[[deps.AMQPClient]] -deps = ["Logging", "MbedTLS", "Sockets"] -git-tree-sha1 = "508457ed7a2afb432590247dc363fffc51f242fc" -uuid = "79c8b4cd-a41a-55fa-907c-fab5288e1383" -version = "0.5.1" - -[[deps.ASL_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "6252039f98492252f9e47c312c8ffda0e3b9e78d" -uuid = "ae81ac8f-d209-56e5-92de-9978fef736f9" -version = "0.1.3+0" - -[[deps.AbstractAlgebra]] -deps = ["GroupsCore", "InteractiveUtils", "LinearAlgebra", "MacroTools", "Preferences", "Random", "RandomExtensions", "SparseArrays", "Test"] -git-tree-sha1 = "1bd8a536c949eb3de9b58042d57790ded6b70fa6" -uuid = "c3fe647b-3220-5bb0-a1ea-a7954cac585d" -version = "0.30.9" - -[[deps.AbstractFFTs]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "cad4c758c0038eea30394b1b671526921ca85b21" -uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" -version = "1.4.0" -weakdeps = ["ChainRulesCore"] - - [deps.AbstractFFTs.extensions] - AbstractFFTsChainRulesCoreExt = "ChainRulesCore" - -[[deps.AbstractMCMC]] -deps = ["BangBang", "ConsoleProgressMonitor", "Distributed", "LogDensityProblems", "Logging", "LoggingExtras", "ProgressLogging", "Random", "StatsBase", "TerminalLoggers", "Transducers"] -git-tree-sha1 = "87e63dcb990029346b091b170252f3c416568afc" -uuid = "80f14c24-f653-4e6a-9b94-39d6b0f70001" -version = "4.4.2" - -[[deps.AbstractPPL]] -deps = ["AbstractMCMC", "DensityInterface", "Random", "Setfield", "SparseArrays"] -git-tree-sha1 = "33ea6c6837332395dbf3ba336f273c9f7fcf4db9" -uuid = "7a57a42e-76ec-4ea3-a279-07e840d6d9cf" -version = "0.5.4" - -[[deps.AbstractTrees]] -git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c" -uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" -version = "0.4.4" - -[[deps.Accessors]] -deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "MacroTools", "Requires", "Test"] -git-tree-sha1 = "954634616d5846d8e216df1298be2298d55280b2" -uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" -version = "0.1.32" - - [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 = "76289dc51920fdc6e0013c872ba9551d54961c24" -uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.6.2" -weakdeps = ["StaticArrays"] - - [deps.Adapt.extensions] - AdaptStaticArraysExt = "StaticArrays" - -[[deps.AdvancedHMC]] -deps = ["AbstractMCMC", "ArgCheck", "DocStringExtensions", "InplaceOps", "LinearAlgebra", "LogDensityProblems", "LogDensityProblemsAD", "ProgressMeter", "Random", "Requires", "Setfield", "SimpleUnPack", "Statistics", "StatsBase", "StatsFuns"] -git-tree-sha1 = "3bf24030e85b1d6d298e4f483f6aeff6f38462db" -uuid = "0bf59076-c3b1-5ca4-86bd-e02cd72cde3d" -version = "0.4.6" - - [deps.AdvancedHMC.extensions] - AdvancedHMCCUDAExt = "CUDA" - AdvancedHMCMCMCChainsExt = "MCMCChains" - AdvancedHMCOrdinaryDiffEqExt = "OrdinaryDiffEq" - - [deps.AdvancedHMC.weakdeps] - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" - MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" - OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" - -[[deps.AdvancedMH]] -deps = ["AbstractMCMC", "Distributions", "FillArrays", "LinearAlgebra", "LogDensityProblems", "Random", "Requires"] -git-tree-sha1 = "b2a1602952739e589cf5e2daff1274a49f22c9a4" -uuid = "5b7e9947-ddc0-4b3f-9b55-0d8042f74170" -version = "0.7.5" -weakdeps = ["DiffResults", "ForwardDiff", "MCMCChains", "StructArrays"] - - [deps.AdvancedMH.extensions] - AdvancedMHForwardDiffExt = ["DiffResults", "ForwardDiff"] - AdvancedMHMCMCChainsExt = "MCMCChains" - AdvancedMHStructArraysExt = "StructArrays" - -[[deps.AdvancedPS]] -deps = ["AbstractMCMC", "Distributions", "Libtask", "Random", "Random123", "StatsFuns"] -git-tree-sha1 = "4d73400b3583147b1b639794696c78202a226584" -uuid = "576499cb-2369-40b2-a588-c64705576edc" -version = "0.4.3" - -[[deps.AdvancedVI]] -deps = ["Bijectors", "Distributions", "DistributionsAD", "DocStringExtensions", "ForwardDiff", "LinearAlgebra", "ProgressMeter", "Random", "Requires", "StatsBase", "StatsFuns", "Tracker"] -git-tree-sha1 = "67fcc7d46c26250e89fc62798fbe07b5ee264c6f" -uuid = "b5ca4192-6429-45e5-a2d9-87aec30a685c" -version = "0.1.6" - -[[deps.AlphaStableDistributions]] -deps = ["Distributions", "FileIO", "Interpolations", "JLD2", "LinearAlgebra", "Random", "SpecialFunctions", "StaticArrays", "Statistics", "StatsBase", "ToeplitzMatrices"] -git-tree-sha1 = "ad5789d4d1a7e38a9fb1e5e02369eeb799833b2e" -uuid = "f20549b4-2d50-407f-863c-cdd202ba59a3" -version = "1.1.6" - -[[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", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "f83ec24f76d4c8f525099b2ac475fc098138ec31" -uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.4.11" - - [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.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 = "f86b3bed71295314311c5628dc8d4a22c352e5f8" -uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.0.11" - -[[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.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.BandedMatrices]] -deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools", "SparseArrays"] -git-tree-sha1 = "206e78eb10c9aaee4e73962b1cbd0ecf688d4b49" -uuid = "aae01518-5342-5314-be14-df237901396f" -version = "0.17.30" - -[[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.BenchmarkTools]] -deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] -git-tree-sha1 = "d9a9701b899b30332bbcb3e1679c41cce81fb0e8" -uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" -version = "1.3.2" - -[[deps.Bijections]] -git-tree-sha1 = "fe4f8c5ee7f76f2198d5c2a06d3961c249cce7bd" -uuid = "e2ed5e7c-b2de-5872-ae92-c73ca462fb04" -version = "0.1.4" - -[[deps.Bijectors]] -deps = ["ArgCheck", "ChainRulesCore", "ChangesOfVariables", "Compat", "Distributions", "Functors", "InverseFunctions", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "MappedArrays", "Random", "Reexport", "Requires", "Roots", "SparseArrays", "Statistics"] -git-tree-sha1 = "1234b03e94938e6f2b14834dfd3ef45698d5e14f" -uuid = "76274a88-744f-5084-9051-94815aaf08c4" -version = "0.10.8" - -[[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.BlackBoxOptim]] -deps = ["CPUTime", "Compat", "Distributed", "Distributions", "HTTP", "JSON", "LinearAlgebra", "Printf", "Random", "SpatialIndexing", "StatsBase"] -git-tree-sha1 = "136079f37e3514ec691926093924b591a8842f5d" -uuid = "a134a8b2-14d6-55f6-9291-3336d3ab0209" -version = "0.6.2" - -[[deps.BoundaryValueDiffEq]] -deps = ["BandedMatrices", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "NLsolve", "Reexport", "SciMLBase", "SparseArrays"] -git-tree-sha1 = "ed8e837bfb3d1e3157022c9636ec1c722b637318" -uuid = "764a87c0-6b3e-53db-9096-fe964310641d" -version = "2.11.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", "PrecompileTools", "Static"] -git-tree-sha1 = "89e0654ed8c7aebad6d5ad235d6242c2d737a928" -uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.2.3" - -[[deps.CPUTime]] -git-tree-sha1 = "2dcc50ea6a0a1ef6440d6eecd0fe3813e5671f45" -uuid = "a9c8d775-2e2e-55fc-8582-045d282d599e" -version = "1.0.0" - -[[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.CSTParser]] -deps = ["Tokenize"] -git-tree-sha1 = "3ddd48d200eb8ddf9cb3e0189fc059fd49b97c1f" -uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f" -version = "3.3.6" - -[[deps.CSV]] -deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] -git-tree-sha1 = "44dbf560808d49041989b8a96cae4cffbeb7966a" -uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" -version = "0.10.11" - -[[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", "Statistics", "StructArrays"] -git-tree-sha1 = "f8edb069394ef3b9accee299ef3692a485f28d85" -uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.52.1" - -[[deps.ChainRulesCore]] -deps = ["Compat", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "e30f2f4e20f7f186dc36529910beaedc60cfa644" -uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.16.0" - -[[deps.ChangesOfVariables]] -deps = ["LinearAlgebra", "Test"] -git-tree-sha1 = "2fba81a302a7be671aefe194f0525ef231104e7f" -uuid = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" -version = "0.1.8" -weakdeps = ["InverseFunctions"] - - [deps.ChangesOfVariables.extensions] - ChangesOfVariablesInverseFunctionsExt = "InverseFunctions" - -[[deps.CloseOpenIntervals]] -deps = ["Static", "StaticArrayInterface"] -git-tree-sha1 = "70232f82ffaab9dc52585e0dd043b5e0c6b714f1" -uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" -version = "0.1.12" - -[[deps.CodeTracking]] -deps = ["InteractiveUtils", "UUIDs"] -git-tree-sha1 = "d730914ef30a06732bdd9f763f6cc32e92ffbff1" -uuid = "da1fd8a2-8d9e-5ec2-8556-3022fb5608a2" -version = "1.3.1" - -[[deps.CodecBzip2]] -deps = ["Bzip2_jll", "Libdl", "TranscodingStreams"] -git-tree-sha1 = "2e62a725210ce3c3c2e1a3080190e7ca491f18d7" -uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" -version = "0.7.2" - -[[deps.CodecZlib]] -deps = ["TranscodingStreams", "Zlib_jll"] -git-tree-sha1 = "9c209fb7536406834aa938fb149964b985de6c83" -uuid = "944b1d66-785c-5afd-91f1-9de20f533193" -version = "0.7.1" - -[[deps.ColorSchemes]] -deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] -git-tree-sha1 = "be6ab11021cd29f0344d5c4357b163af05a48cba" -uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" -version = "3.21.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.Combinatorics]] -git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" -uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" -version = "1.0.2" - -[[deps.CommonMark]] -deps = ["Crayons", "JSON", "PrecompileTools", "URIs"] -git-tree-sha1 = "532c4185d3c9037c0237546d817858b23cf9e071" -uuid = "a80b9123-70ca-4bc0-993e-6e3bcb318db6" -version = "0.8.12" - -[[deps.CommonSolve]] -git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" -uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" -version = "0.2.4" - -[[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 = "4e88377ae7ebeaf29a047aa1ee40826e0b708a5d" -uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.7.0" -weakdeps = ["Dates", "LinearAlgebra"] - - [deps.Compat.extensions] - CompatLinearAlgebraExt = "LinearAlgebra" - -[[deps.CompilerSupportLibraries_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.0.5+0" - -[[deps.CompositeTypes]] -git-tree-sha1 = "02d2316b7ffceff992f3096ae48c7829a8aa0638" -uuid = "b152e2b5-7a66-4b01-a709-34e65c35f657" -version = "0.1.3" - -[[deps.CompositionsBase]] -git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" -uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" -version = "0.1.2" -weakdeps = ["InverseFunctions"] - - [deps.CompositionsBase.extensions] - CompositionsBaseInverseFunctionsExt = "InverseFunctions" - -[[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" -uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" -version = "2.2.0" - -[[deps.ConsoleProgressMonitor]] -deps = ["Logging", "ProgressMeter"] -git-tree-sha1 = "3ab7b2136722890b9af903859afcf457fa3059e8" -uuid = "88cd18e8-d9cc-4ea6-8889-5259c0d15c8b" -version = "0.1.2" - -[[deps.ConstructionBase]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "738fec4d684a9a6ee9598a8bfee305b26831f28c" -uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.2" -weakdeps = ["IntervalSets", "StaticArrays"] - - [deps.ConstructionBase.extensions] - ConstructionBaseIntervalSetsExt = "IntervalSets" - ConstructionBaseStaticArraysExt = "StaticArrays" - -[[deps.Contour]] -git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" -uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" -version = "0.6.2" - -[[deps.Copulas]] -deps = ["AlphaStableDistributions", "Cubature", "Distributions", "ForwardDiff", "GSL", "MvNormalCDF", "Random", "Roots", "SpecialFunctions", "StatsBase", "TaylorSeries"] -git-tree-sha1 = "bf5b74cd9b240eea4b713bf3b04211dabf827688" -uuid = "ae264745-0b69-425e-9d9d-cf662c5eec93" -version = "0.1.10" - -[[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.Cubature]] -deps = ["Cubature_jll"] -git-tree-sha1 = "c3f4b3b38abd7b5c3ccf59adab2568212e7530d3" -uuid = "667455a9-e2ce-5579-9412-b964f529a492" -version = "1.5.1" - -[[deps.Cubature_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "0fe9efb84e3eb7b14f885a95aaa0ed50c7e839c8" -uuid = "7bc98958-0e37-5d67-a6ac-a3a19030071a" -version = "1.0.5+0" - -[[deps.DSP]] -deps = ["Compat", "FFTW", "IterTools", "LinearAlgebra", "Polynomials", "Random", "Reexport", "SpecialFunctions", "Statistics"] -git-tree-sha1 = "da8b06f89fce9996443010ef92572b193f8dca1f" -uuid = "717857b8-e6f2-59f4-9121-6e50c889abd2" -version = "0.7.8" - -[[deps.DataAPI]] -git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" -uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" -version = "1.15.0" - -[[deps.DataFrames]] -deps = ["Compat", "DataAPI", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] -git-tree-sha1 = "089d29c0fc00a190661517e4f3cba5dcb3fd0c08" -uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" -version = "1.6.0" - -[[deps.DataStructures]] -deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "cf25ccb972fec4e4817764d01c82386ae94f77b4" -uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.14" - -[[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.DelayDiffEq]] -deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "LinearAlgebra", "Logging", "OrdinaryDiffEq", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SimpleUnPack"] -git-tree-sha1 = "89f3fbfe78f9d116d1ed0721d65b0b2cf9b36169" -uuid = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb" -version = "5.42.0" - -[[deps.DelimitedFiles]] -deps = ["Mmap"] -git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" -uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" -version = "1.9.1" - -[[deps.DensityInterface]] -deps = ["InverseFunctions", "Test"] -git-tree-sha1 = "80c3e8639e3353e5d2912fb3a1916b8455e2494b" -uuid = "b429d917-457f-4dbc-8f4c-0cc954292b1d" -version = "0.4.0" - -[[deps.DiffEqBase]] -deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "DocStringExtensions", "EnumX", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces", "ZygoteRules"] -git-tree-sha1 = "62c41421bd0facc43dfe4e9776135fe21fd1e1b9" -uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.126.0" - - [deps.DiffEqBase.extensions] - DiffEqBaseDistributionsExt = "Distributions" - DiffEqBaseGeneralizedGeneratedExt = "GeneralizedGenerated" - DiffEqBaseMPIExt = "MPI" - DiffEqBaseMeasurementsExt = "Measurements" - DiffEqBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements" - DiffEqBaseReverseDiffExt = "ReverseDiff" - DiffEqBaseTrackerExt = "Tracker" - DiffEqBaseUnitfulExt = "Unitful" - DiffEqBaseZygoteExt = "Zygote" - - [deps.DiffEqBase.weakdeps] - Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" - GeneralizedGenerated = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb" - MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" - Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" - MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" - -[[deps.DiffEqCallbacks]] -deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "63b6be7b396ad395825f3cc48c56b53bfaf7e69d" -uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" -version = "2.26.1" - -[[deps.DiffEqNoiseProcess]] -deps = ["DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "Optim", "PoissonRandom", "QuadGK", "Random", "Random123", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "Requires", "ResettableStacks", "SciMLBase", "StaticArraysCore", "Statistics"] -git-tree-sha1 = "26594c6ec8416fb6ef3ed8828fd29c98b10bfaad" -uuid = "77a26b50-5914-5dd7-bc55-306e6241c503" -version = "5.17.2" - - [deps.DiffEqNoiseProcess.extensions] - DiffEqNoiseProcessReverseDiffExt = "ReverseDiff" - - [deps.DiffEqNoiseProcess.weakdeps] - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - -[[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.DifferentialEquations]] -deps = ["BoundaryValueDiffEq", "DelayDiffEq", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "JumpProcesses", "LinearAlgebra", "LinearSolve", "NonlinearSolve", "OrdinaryDiffEq", "Random", "RecursiveArrayTools", "Reexport", "SciMLBase", "SteadyStateDiffEq", "StochasticDiffEq", "Sundials"] -git-tree-sha1 = "1cfe0178410e1bb4b14058c537d0f347eb9d95dc" -uuid = "0c46a032-eb83-5123-abaf-570d42b7fbaa" -version = "7.8.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 = "e76a3281de2719d7c81ed62c6ea7057380c87b1d" -uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.98" -weakdeps = ["ChainRulesCore", "DensityInterface"] - - [deps.Distributions.extensions] - DistributionsChainRulesCoreExt = "ChainRulesCore" - DistributionsDensityInterfaceExt = "DensityInterface" - -[[deps.DistributionsAD]] -deps = ["Adapt", "ChainRules", "ChainRulesCore", "Compat", "Distributions", "FillArrays", "LinearAlgebra", "PDMats", "Random", "Requires", "SpecialFunctions", "StaticArrays", "StatsFuns", "ZygoteRules"] -git-tree-sha1 = "1fb4fedd5a407243d535cc50c8c803c2fce0dc26" -uuid = "ced4e74d-a319-5a8a-b0ac-84af2272839c" -version = "0.6.49" - - [deps.DistributionsAD.extensions] - DistributionsADForwardDiffExt = "ForwardDiff" - DistributionsADLazyArraysExt = "LazyArrays" - DistributionsADReverseDiffExt = "ReverseDiff" - DistributionsADTrackerExt = "Tracker" - - [deps.DistributionsAD.weakdeps] - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - -[[deps.DocStringExtensions]] -deps = ["LibGit2"] -git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" -uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" -version = "0.9.3" - -[[deps.DomainSets]] -deps = ["CompositeTypes", "IntervalSets", "LinearAlgebra", "Random", "StaticArrays", "Statistics"] -git-tree-sha1 = "51b4b84d33ec5e0955b55ff4b748b99ce2c3faa9" -uuid = "5b8099bc-c8ec-5219-889f-1d9e522a28bf" -version = "0.6.7" - -[[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.DynamicPPL]] -deps = ["AbstractMCMC", "AbstractPPL", "BangBang", "Bijectors", "ChainRulesCore", "ConstructionBase", "Distributions", "DocStringExtensions", "LinearAlgebra", "LogDensityProblems", "MacroTools", "OrderedCollections", "Random", "Setfield", "Test", "ZygoteRules"] -git-tree-sha1 = "932f5f977b04db019cc72ebd1f4161a6e7bded14" -uuid = "366bfd00-2699-11ea-058f-f148b4cae6d8" -version = "0.21.6" - -[[deps.DynamicPolynomials]] -deps = ["DataStructures", "Future", "LinearAlgebra", "MultivariatePolynomials", "MutableArithmetics", "Pkg", "Reexport", "Test"] -git-tree-sha1 = "8b84876e31fa39479050e2d3395c4b3b210db8b0" -uuid = "7c1d4256-1411-5781-91ec-d7bc3513ac07" -version = "0.4.6" - -[[deps.EasyConfig]] -deps = ["JSON3", "OrderedCollections", "StructTypes"] -git-tree-sha1 = "d22224e636afcb14de0cb5a0a7039095e2238aee" -uuid = "acab07b0-f158-46d4-8913-50acef6d41fe" -version = "0.1.15" - -[[deps.EasyModelAnalysis]] -deps = ["DifferentialEquations", "Distributions", "GlobalSensitivity", "LinearAlgebra", "ModelingToolkit", "NLopt", "Optimization", "OptimizationBBO", "OptimizationMOI", "OptimizationNLopt", "Plots", "Reexport", "SciMLBase", "SciMLExpectations", "Turing"] -git-tree-sha1 = "dee5682fe50288b87ac7092f8160917029305c23" -uuid = "ef4b24a4-a090-4686-a932-e7e56a5a83bd" -version = "0.1.10" - -[[deps.EllipticalSliceSampling]] -deps = ["AbstractMCMC", "ArrayInterface", "Distributions", "Random", "Statistics"] -git-tree-sha1 = "973b4927d112559dc737f55d6bf06503a5b3fc14" -uuid = "cad2338a-1db2-11e9-3401-43bc07c9ede2" -version = "1.1.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.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.ExponentialUtilities]] -deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "Printf", "SnoopPrecompile", "SparseArrays", "libblastrampoline_jll"] -git-tree-sha1 = "fb7dbef7d2631e2d02c49e2750f7447648b0ec9b" -uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" -version = "1.24.0" - -[[deps.ExprTools]] -git-tree-sha1 = "c1d06d129da9f55715c6c212866f5b1bddc5fa00" -uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" -version = "0.1.9" - -[[deps.EzXML]] -deps = ["Printf", "XML2_jll"] -git-tree-sha1 = "0fa3b52a04a4e210aeb1626def9c90df3ae65268" -uuid = "8f5d6c58-4d21-5cfd-889c-e3ad7ee6a615" -version = "1.1.0" - -[[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.FFTW]] -deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] -git-tree-sha1 = "b4fbdd20c889804969571cc589900803edda16b7" -uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" -version = "1.7.1" - -[[deps.FFTW_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" -uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" -version = "3.3.10+0" - -[[deps.FastBroadcast]] -deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] -git-tree-sha1 = "d1248fceea0b26493fd33e8e9e8c553270da03bd" -uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" -version = "0.2.5" - -[[deps.FastClosures]] -git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" -uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" -version = "0.3.2" - -[[deps.FastLapackInterface]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "b12f05108e405dadcc2aff0008db7f831374e051" -uuid = "29a986be-02c6-4525-aec4-84b980013641" -version = "2.0.0" - -[[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.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 = "e5556303fd8c9ad4a8fceccd406ef3433ddb4c45" -uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.4.0" - -[[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 = "00e252f4d706b3d55a8863432e742bf5717b498d" -uuid = "f6369f11-7733-5829-9624-2563aa707210" -version = "0.10.35" -weakdeps = ["StaticArrays"] - - [deps.ForwardDiff.extensions] - ForwardDiffStaticArraysExt = "StaticArrays" - -[[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.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.FunctionWrappersWrappers]] -deps = ["FunctionWrappers"] -git-tree-sha1 = "b104d487b34566608f8b4e1c39fb0b10aa279ff8" -uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" -version = "0.1.3" - -[[deps.Functors]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "a2657dd0f3e8a61dbe70fc7c122038bd33790af5" -uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" -version = "0.3.0" - -[[deps.Future]] -deps = ["Random"] -uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" - -[[deps.GLFW_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pkg", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] -git-tree-sha1 = "d972031d28c8c8d9d7b41a536ad7bb0c2579caca" -uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" -version = "3.3.8+0" - -[[deps.GPUArrays]] -deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] -git-tree-sha1 = "2e57b4a4f9cc15e85a24d603256fe08e527f48d1" -uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "8.8.1" - -[[deps.GPUArraysCore]] -deps = ["Adapt"] -git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" -uuid = "46192b85-c4d5-4398-a991-12ede77f4527" -version = "0.1.5" - -[[deps.GR]] -deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] -git-tree-sha1 = "8b8a2fd4536ece6e554168c21860b6820a8a83db" -uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.72.7" - -[[deps.GR_jll]] -deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt5Base_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "19fad9cd9ae44847fe842558a744748084a722d1" -uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.72.7+0" - -[[deps.GSL]] -deps = ["GSL_jll", "Libdl", "Markdown"] -git-tree-sha1 = "3ebd07d519f5ec318d5bc1b4971e2472e14bd1f0" -uuid = "92c85e6c-cbff-5e0c-80f7-495c94daaecd" -version = "1.0.1" - -[[deps.GSL_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "56f1e2c9e083e0bb7cf9a7055c280beb08a924c0" -uuid = "1b77fbbe-d8ee-58f0-85f9-836ddc23a7a4" -version = "2.7.2+0" - -[[deps.GenericSchur]] -deps = ["LinearAlgebra", "Printf"] -git-tree-sha1 = "fb69b2a645fa69ba5f474af09221b9308b160ce6" -uuid = "c145ed77-6b09-5dd9-b285-bf645a82121e" -version = "0.5.3" - -[[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", "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.GlobalSensitivity]] -deps = ["Combinatorics", "Copulas", "Distributions", "FFTW", "ForwardDiff", "KernelDensity", "LinearAlgebra", "Parameters", "QuasiMonteCarlo", "Random", "RecursiveArrayTools", "Statistics", "StatsBase", "ThreadsX", "Trapz"] -git-tree-sha1 = "e5484bc811d0335814e3f7d3815dcea19d261fbc" -uuid = "af5da776-676b-467e-8baf-acd8249e4f0f" -version = "2.2.1" - -[[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.Grisu]] -git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" -uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" -version = "1.0.2" - -[[deps.Groebner]] -deps = ["AbstractAlgebra", "Combinatorics", "Logging", "MultivariatePolynomials", "Primes", "Random", "SnoopPrecompile"] -git-tree-sha1 = "c8b55b624a83f60bcd6574cc999ad148d0a47dd6" -uuid = "0b43b601-686d-58a3-8a1c-6623616c7cd4" -version = "0.3.6" - -[[deps.GroupsCore]] -deps = ["Markdown", "Random"] -git-tree-sha1 = "9e1a5e9f3b81ad6a5c613d181664a0efc6fe6dd7" -uuid = "d5909c97-4eac-4ecc-a3dc-fdd0858a4120" -version = "0.4.0" - -[[deps.HCubature]] -deps = ["Combinatorics", "DataStructures", "LinearAlgebra", "QuadGK", "StaticArrays"] -git-tree-sha1 = "e95b36755023def6ebc3d269e6483efa8b2f7f65" -uuid = "19dc6840-f33b-545b-b366-655c7e3ffd49" -version = "1.5.1" - -[[deps.HTTP]] -deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "c206f345c5cee9da7bdf87cb540085a43acffca4" -uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.9.11" - -[[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.Highlights]] -deps = ["DocStringExtensions", "InteractiveUtils", "REPL"] -git-tree-sha1 = "0341077e8a6b9fc1c2ea5edc1e93a956d2aec0c7" -uuid = "eafb193a-b7ab-5a9e-9068-77385905fa72" -version = "0.5.2" - -[[deps.HostCPUFeatures]] -deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] -git-tree-sha1 = "d38bd0d9759e3c6cfa19bdccc314eccf8ce596cc" -uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" -version = "0.1.15" - -[[deps.HypergeometricFunctions]] -deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] -git-tree-sha1 = "ce7ea9cc5db29563b1fe20196b6d23ab3b111384" -uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" -version = "0.3.18" - -[[deps.IRTools]] -deps = ["InteractiveUtils", "MacroTools", "Test"] -git-tree-sha1 = "eac00994ce3229a464c2847e956d77a2c64ad3a5" -uuid = "7869d1d1-7146-5819-86e3-90919afe41df" -version = "0.4.10" - -[[deps.IfElse]] -git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" -uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" -version = "0.1.1" - -[[deps.Inflate]] -git-tree-sha1 = "5cd07aab533df5170988219191dfad0519391428" -uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" -version = "0.1.3" - -[[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.InplaceOps]] -deps = ["LinearAlgebra", "Test"] -git-tree-sha1 = "50b41d59e7164ab6fda65e71049fee9d890731ff" -uuid = "505f98c9-085e-5b2c-8e89-488be7bf1f34" -version = "0.3.0" - -[[deps.IntegerMathUtils]] -git-tree-sha1 = "b8ffb903da9f7b8cf695a8bead8e01814aa24b30" -uuid = "18e54dd8-cb9d-406c-a71d-865a43cbb235" -version = "0.1.2" - -[[deps.Integrals]] -deps = ["CommonSolve", "HCubature", "LinearAlgebra", "MonteCarloIntegration", "QuadGK", "Reexport", "Requires", "SciMLBase"] -git-tree-sha1 = "f8f24a73621e9063f696ffeaa83f7a725ab5ae23" -uuid = "de52edbc-65ea-441a-8357-d3a637375a31" -version = "3.8.0" - - [deps.Integrals.extensions] - IntegralsFastGaussQuadratureExt = "FastGaussQuadrature" - IntegralsForwardDiffExt = "ForwardDiff" - IntegralsZygoteExt = ["Zygote", "ChainRulesCore"] - - [deps.Integrals.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - FastGaussQuadrature = "442a2c76-b920-505d-bb47-c5924d526838" - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" - -[[deps.IntelOpenMP_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "0cb9352ef2e01574eeebdb102948a58740dcaf83" -uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2023.1.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 = "721ec2cf720536ad005cb38f50dbba7b02419a15" -uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" -version = "0.14.7" - -[[deps.IntervalArithmetic]] -deps = ["CRlibm", "FastRounding", "LinearAlgebra", "Markdown", "Random", "RecipesBase", "RoundingEmulator", "SetRounding", "StaticArrays"] -git-tree-sha1 = "5ab7744289be503d76a944784bac3f2df7b809af" -uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" -version = "0.20.9" - -[[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 = "eabe3125edba5c9c10b60a160b1779a000dc8b29" -uuid = "3587e190-3f89-42d0-90ee-14403ec27112" -version = "0.1.11" - -[[deps.InvertedIndices]] -git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" -uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" -version = "1.3.0" - -[[deps.Ipopt_jll]] -deps = ["ASL_jll", "Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "MUMPS_seq_jll", "OpenBLAS32_jll", "Pkg"] -git-tree-sha1 = "e3e202237d93f18856b6ff1016166b0f172a49a8" -uuid = "9cc047cb-c261-5740-88fc-0cf96f7bdcc7" -version = "300.1400.400+0" - -[[deps.IrrationalConstants]] -git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" -uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" -version = "0.2.2" - -[[deps.IterTools]] -git-tree-sha1 = "4ced6667f9974fc5c5943fa5e2ef1ca43ea9e450" -uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" -version = "1.8.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 = "5df8278ad24772c0c6dbbeb97b162ccf29ced2a9" -uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.4.32" - -[[deps.JLFzf]] -deps = ["Pipe", "REPL", "Random", "fzf_jll"] -git-tree-sha1 = "f377670cda23b6b7c1c0b3893e37451c5c1a2185" -uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" -version = "0.1.5" - -[[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", "PrecompileTools", "StructTypes", "UUIDs"] -git-tree-sha1 = "5b62d93f2582b09e469b3099d839c2d2ebf5066d" -uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" -version = "1.13.1" - -[[deps.JSONSchema]] -deps = ["Downloads", "HTTP", "JSON", "URIs"] -git-tree-sha1 = "58cb291b01508293f7a9dc88325bc00d797cf04d" -uuid = "7d188eb4-7ad8-530c-ae41-71a32a6d4692" -version = "1.1.0" - -[[deps.JobSchedulers]] -deps = ["Dates", "JLD2", "JSON", "Logging", "OrderedCollections", "Pipelines", "PrettyTables", "Printf", "Reexport", "Term", "Terming", "Test"] -git-tree-sha1 = "568c4fe4c1ae76ada68604c9a1ea6f76e6030104" -uuid = "eeff360b-c02d-44d3-ab26-4013c616a17e" -version = "0.8.1" - -[[deps.JpegTurbo_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc" -uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" -version = "2.1.91+0" - -[[deps.JuliaFormatter]] -deps = ["CSTParser", "CommonMark", "DataStructures", "Glob", "Pkg", "PrecompileTools", "Tokenize"] -git-tree-sha1 = "60567b51bd9e1e19ae2fd8a54dcd6bc5994727f0" -uuid = "98e50ef6-434e-11e9-1051-2b60c6c9e899" -version = "1.0.34" - -[[deps.JumpProcesses]] -deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "FunctionWrappers", "Graphs", "LinearAlgebra", "Markdown", "PoissonRandom", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays", "TreeViews", "UnPack"] -git-tree-sha1 = "9eae998d01d31e4fc7d79dda8a6b7695d872eee8" -uuid = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5" -version = "9.6.4" - -[[deps.KLU]] -deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] -git-tree-sha1 = "764164ed65c30738750965d55652db9c94c59bfe" -uuid = "ef3ab10e-7fda-4108-b977-705223b18434" -version = "0.4.0" - -[[deps.KernelAbstractions]] -deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "6d08ca80b621635fed9cdfeb9a4280a574020bf3" -uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.7" - - [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 = "90442c50e202a5cdf21a7899c66b240fdef14035" -uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" -version = "0.6.7" - -[[deps.Krylov]] -deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "0356a64062656b0cbb43c504ad5de338251f4bda" -uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.9.1" - -[[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 = "8695a49bfe05a2dc0feeefd06b4ca6361a018729" -uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "6.1.0" - -[[deps.LLVMExtra_jll]] -deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "c35203c1e1002747da220ffc3c0762ce7754b08c" -uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.23+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.LRUCache]] -git-tree-sha1 = "48c10e3cc27e30de82463c27bef0b8bdbd1dc634" -uuid = "8ac3fa9e-de4c-5943-b1dc-09c6b5f20637" -version = "1.4.1" - -[[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.LabelledArrays]] -deps = ["ArrayInterface", "ChainRulesCore", "ForwardDiff", "LinearAlgebra", "MacroTools", "PreallocationTools", "RecursiveArrayTools", "StaticArrays"] -git-tree-sha1 = "cd04158424635efd05ff38d5f55843397b7416a9" -uuid = "2ee39098-c373-598a-b85f-a56591580800" -version = "1.14.0" - -[[deps.LambertW]] -git-tree-sha1 = "c5ffc834de5d61d00d2b0e18c96267cffc21f648" -uuid = "984bce1d-4616-540c-a9ee-88d1112d94c9" -version = "0.4.6" - -[[deps.Latexify]] -deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] -git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" -uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" -version = "0.16.1" - - [deps.Latexify.extensions] - DataFramesExt = "DataFrames" - SymEngineExt = "SymEngine" - - [deps.Latexify.weakdeps] - DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" - SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" - -[[deps.LatticeRules]] -deps = ["Random"] -git-tree-sha1 = "7f5b02258a3ca0221a6a9710b0a0a2e8fb4957fe" -uuid = "73f95e8e-ec14-4e6a-8b18-0d2e271c4e55" -version = "0.0.1" - -[[deps.LayoutPointers]] -deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] -git-tree-sha1 = "88b8f66b604da079a627b6fb2860d3704a6729a1" -uuid = "10f19ff3-798f-405d-979b-55457f8fc047" -version = "0.1.14" - -[[deps.Lazy]] -deps = ["MacroTools"] -git-tree-sha1 = "1370f8202dac30758f3c345f9909b97f53d87d3f" -uuid = "50d2b5c4-7a5e-59d5-8109-a42b560f39c0" -version = "0.15.1" - -[[deps.LazyArtifacts]] -deps = ["Artifacts", "Pkg"] -uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" - -[[deps.LeftChildRightSiblingTrees]] -deps = ["AbstractTrees"] -git-tree-sha1 = "fb6803dafae4a5d62ea5cab204b1e657d9737e7f" -uuid = "1d6d02ad-be62-4b6b-8a6d-2f90e265016e" -version = "0.2.0" - -[[deps.LevyArea]] -deps = ["LinearAlgebra", "Random", "SpecialFunctions"] -git-tree-sha1 = "56513a09b8e0ae6485f34401ea9e2f31357958ec" -uuid = "2d8b4e74-eb68-11e8-0fb9-d5eb67b50637" -version = "1.0.0" - -[[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.Libglvnd_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] -git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" -uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" -version = "1.6.0+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.Libtask]] -deps = ["FunctionWrappers", "LRUCache", "LinearAlgebra", "Statistics"] -git-tree-sha1 = "345a40c746404dd9cb1bbc368715856838ab96f2" -uuid = "6f1fad26-d15e-5dc8-ae53-837a1d7b8c9f" -version = "0.8.6" - -[[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.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.LinearSolve]] -deps = ["ArrayInterface", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "LinearAlgebra", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "SuiteSparse", "UnPack"] -git-tree-sha1 = "93f3a0d88c8f5498bed3ad37ddd844b939fdf899" -uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "2.3.0" - - [deps.LinearSolve.extensions] - LinearSolveCUDAExt = "CUDA" - LinearSolveHYPREExt = "HYPRE" - LinearSolveIterativeSolversExt = "IterativeSolvers" - LinearSolveKrylovKitExt = "KrylovKit" - LinearSolvePardisoExt = "Pardiso" - - [deps.LinearSolve.weakdeps] - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" - HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" - IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" - KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" - Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" - -[[deps.LogDensityProblems]] -deps = ["ArgCheck", "DocStringExtensions", "Random"] -git-tree-sha1 = "f9a11237204bc137617194d79d813069838fcf61" -uuid = "6fdf6af0-433a-55f7-b3ed-c6c6e0b8df7c" -version = "2.1.1" - -[[deps.LogDensityProblemsAD]] -deps = ["DocStringExtensions", "LogDensityProblems", "Requires", "SimpleUnPack"] -git-tree-sha1 = "a0512ad65f849536b5a52e59b05c59c25cdad943" -uuid = "996a588d-648d-4e1f-a8f0-a84b347e47b1" -version = "1.5.0" - - [deps.LogDensityProblemsAD.extensions] - LogDensityProblemsADEnzymeExt = "Enzyme" - LogDensityProblemsADFiniteDifferencesExt = "FiniteDifferences" - LogDensityProblemsADForwardDiffBenchmarkToolsExt = ["BenchmarkTools", "ForwardDiff"] - LogDensityProblemsADForwardDiffExt = "ForwardDiff" - LogDensityProblemsADReverseDiffExt = "ReverseDiff" - LogDensityProblemsADTrackerExt = "Tracker" - LogDensityProblemsADZygoteExt = "Zygote" - - [deps.LogDensityProblemsAD.weakdeps] - BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" - Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" - FiniteDifferences = "26cc04aa-876d-5657-8c51-4c34ba976000" - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" - -[[deps.LogExpFunctions]] -deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "c3ce8e7420b3a6e071e0fe4745f5d4300e37b13f" -uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.24" -weakdeps = ["ChainRulesCore", "ChangesOfVariables", "InverseFunctions"] - - [deps.LogExpFunctions.extensions] - LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" - LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" - LogExpFunctionsInverseFunctionsExt = "InverseFunctions" - -[[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", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] -git-tree-sha1 = "24e6c5697a6c93b5e10af2acf95f0b2e15303332" -uuid = "bdcacae8-1622-11e9-2a5c-532679323890" -version = "0.12.163" -weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] - - [deps.LoopVectorization.extensions] - ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] - SpecialFunctionsExt = "SpecialFunctions" - -[[deps.MCMCChains]] -deps = ["AbstractMCMC", "AxisArrays", "Dates", "Distributions", "Formatting", "IteratorInterfaceExtensions", "KernelDensity", "LinearAlgebra", "MCMCDiagnosticTools", "MLJModelInterface", "NaturalSort", "OrderedCollections", "PrettyTables", "Random", "RecipesBase", "Statistics", "StatsBase", "StatsFuns", "TableTraits", "Tables"] -git-tree-sha1 = "8778ea7283a0bf0d7e507a0235adfff38071493b" -uuid = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" -version = "6.0.3" - -[[deps.MCMCDiagnosticTools]] -deps = ["AbstractFFTs", "DataAPI", "DataStructures", "Distributions", "LinearAlgebra", "MLJModelInterface", "Random", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "Tables"] -git-tree-sha1 = "695e91605361d1932c3e89a812be78480a4a4595" -uuid = "be115224-59cd-429b-ad48-344e309966f0" -version = "0.3.4" - -[[deps.METIS_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "1fd0a97409e418b78c53fac671cf4622efdf0f21" -uuid = "d00139f3-1899-568f-a2f0-47f597d42d70" -version = "5.1.2+0" - -[[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 = "154d7aaa82d24db6d8f7e4ffcfe596f40bff214b" -uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2023.1.0+0" - -[[deps.MLJModelInterface]] -deps = ["Random", "ScientificTypesBase", "StatisticalTraits"] -git-tree-sha1 = "c8b7e632d6754a5e36c0d94a4b466a5ba3a30128" -uuid = "e80e1ace-859a-464e-9ed9-23947d8ae3ea" -version = "1.8.0" - -[[deps.MLStyle]] -git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" -uuid = "d8e11817-5142-5d16-987a-aa16d5891078" -version = "0.4.17" - -[[deps.MUMPS_seq_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "METIS_jll", "OpenBLAS32_jll", "Pkg"] -git-tree-sha1 = "29de2841fa5aefe615dea179fcde48bb87b58f57" -uuid = "d7ed1dd3-d0ae-5e8e-bfb4-87a502085b8d" -version = "5.4.1+0" - -[[deps.MacroTools]] -deps = ["Markdown", "Random"] -git-tree-sha1 = "42324d08725e200c23d4dfb549e0d5d89dede2d2" -uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" -version = "0.5.10" - -[[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.MathML]] -deps = ["AbstractTrees", "DocStringExtensions", "EzXML", "IfElse", "SpecialFunctions", "Statistics", "Symbolics"] -git-tree-sha1 = "f9d5b2895734a699b51249ebb90ca9b4b6a6e12c" -uuid = "abcecc63-2b08-419c-80c4-c63dca6fa478" -version = "0.1.14" - -[[deps.MathOptInterface]] -deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test", "Unicode"] -git-tree-sha1 = "5c5cd501ae1d76d3ccd7c7e6b4325a15dde7f31c" -uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" -version = "1.18.0" - -[[deps.MathProgBase]] -deps = ["LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "9abbe463a1e9fc507f12a69e7f29346c2cdc472c" -uuid = "fdba3010-5040-5b88-9595-932c9decdf73" -version = "0.7.8" - -[[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.2+0" - -[[deps.Measures]] -git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" -uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" -version = "0.3.2" - -[[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.Mocking]] -deps = ["Compat", "ExprTools"] -git-tree-sha1 = "4cc0c5a83933648b615c36c2b956d94fda70641e" -uuid = "78c3b35d-d492-501b-9361-3d52fe80e533" -version = "0.7.7" - -[[deps.ModelingToolkit]] -deps = ["AbstractTrees", "ArrayInterface", "Combinatorics", "Compat", "ConstructionBase", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "DiffRules", "Distributed", "Distributions", "DocStringExtensions", "DomainSets", "ForwardDiff", "FunctionWrappersWrappers", "Graphs", "IfElse", "InteractiveUtils", "JuliaFormatter", "JumpProcesses", "LabelledArrays", "Latexify", "Libdl", "LinearAlgebra", "MLStyle", "MacroTools", "NaNMath", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLBase", "Serialization", "Setfield", "SimpleNonlinearSolve", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicIndexingInterface", "SymbolicUtils", "Symbolics", "URIs", "UnPack", "Unitful"] -git-tree-sha1 = "cad27947bc85b1a3136f395f22a7dd5c382b7209" -uuid = "961ee093-0014-501f-94e3-6117800e7a78" -version = "8.62.0" - - [deps.ModelingToolkit.extensions] - MTKDeepDiffsExt = "DeepDiffs" - - [deps.ModelingToolkit.weakdeps] - DeepDiffs = "ab62b9b5-e342-54a8-a765-a90f495de1a6" - -[[deps.MonteCarloIntegration]] -deps = ["Distributions", "Random"] -git-tree-sha1 = "3f78ebce296c927d5c854e83cccdb5dcb1845629" -uuid = "4886b29c-78c9-11e9-0a6e-41e1f4161f7b" -version = "0.0.3" - -[[deps.MozillaCACerts_jll]] -uuid = "14a3606d-f60d-562e-9121-12d972cd8159" -version = "2022.10.11" - -[[deps.MuladdMacro]] -git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" -uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" -version = "0.2.4" - -[[deps.MultivariatePolynomials]] -deps = ["ChainRulesCore", "DataStructures", "LinearAlgebra", "MutableArithmetics"] -git-tree-sha1 = "eaa98afe2033ffc0629f9d0d83961d66a021dfcc" -uuid = "102ac46a-7ee4-5c85-9060-abc95bfdeaa3" -version = "0.4.7" - -[[deps.MutableArithmetics]] -deps = ["LinearAlgebra", "SparseArrays", "Test"] -git-tree-sha1 = "964cb1a7069723727025ae295408747a0b36a854" -uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" -version = "1.3.0" - -[[deps.MvNormalCDF]] -deps = ["Distributions", "FillArrays", "LinearAlgebra", "Primes", "Random", "StatsBase"] -git-tree-sha1 = "e472ed20dfe9f68d9aebc02258dfe31d69deb8eb" -uuid = "37188c8d-bc69-4638-b057-733e744175ec" -version = "0.2.6" - -[[deps.MyterialColors]] -git-tree-sha1 = "01d8466fb449436348999d7c6ad740f8f853a579" -uuid = "1c23619d-4212-4747-83aa-717207fae70f" -version = "0.3.0" - -[[deps.NLSolversBase]] -deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] -git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" -uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" -version = "7.8.3" - -[[deps.NLopt]] -deps = ["MathOptInterface", "MathProgBase", "NLopt_jll"] -git-tree-sha1 = "5a7e32c569200a8a03c3d55d286254b0321cd262" -uuid = "76087f3c-5699-56af-9a33-bf431cd00edd" -version = "0.6.5" - -[[deps.NLopt_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "9b1f15a08f9d00cdb2761dcfa6f453f5d0d6f973" -uuid = "079eb43e-fd8e-5478-9966-2cf3e3edb778" -version = "2.7.1+0" - -[[deps.NLsolve]] -deps = ["Distances", "LineSearches", "LinearAlgebra", "NLSolversBase", "Printf", "Reexport"] -git-tree-sha1 = "019f12e9a1a7880459d0173c182e6a99365d7ac1" -uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" -version = "4.5.1" - -[[deps.NNlib]] -deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] -git-tree-sha1 = "8c2cd30e6d6158761163df5c4562014245eead5b" -uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -version = "0.9.3" - - [deps.NNlib.extensions] - NNlibAMDGPUExt = "AMDGPU" - NNlibCUDACUDNNExt = ["CUDA", "cuDNN"] - NNlibCUDAExt = "CUDA" - - [deps.NNlib.weakdeps] - AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" - cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" - -[[deps.NaNMath]] -deps = ["OpenLibm_jll"] -git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" -uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" -version = "1.0.2" - -[[deps.NamedArrays]] -deps = ["Combinatorics", "DataStructures", "DelimitedFiles", "InvertedIndices", "LinearAlgebra", "Random", "Requires", "SparseArrays", "Statistics"] -git-tree-sha1 = "b84e17976a40cb2bfe3ae7edb3673a8c630d4f95" -uuid = "86f7a689-2022-50b4-a561-43c23ac3c673" -version = "0.9.8" - -[[deps.NaturalSort]] -git-tree-sha1 = "eda490d06b9f7c00752ee81cfa451efe55521e21" -uuid = "c020b1a1-e9b0-503a-9c33-f039bfc54a85" -version = "1.0.0" - -[[deps.NetworkOptions]] -uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" -version = "1.2.0" - -[[deps.NonlinearSolve]] -deps = ["ArrayInterface", "DiffEqBase", "EnumX", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "PrecompileTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "UnPack"] -git-tree-sha1 = "2a7f28c62eb2c16b9c375c38f664cdcf22313cf5" -uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "1.8.0" - -[[deps.OffsetArrays]] -deps = ["Adapt"] -git-tree-sha1 = "2ac17d29c523ce1cd38e27785a7d23024853a4bb" -uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.12.10" - -[[deps.Ogg_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" -uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" -version = "1.3.5+1" - -[[deps.OpenAPI]] -deps = ["Base64", "Dates", "Downloads", "HTTP", "JSON", "LibCURL", "MbedTLS", "TimeZones", "URIs"] -git-tree-sha1 = "6e497e6245770817a7821a2d1d32f8f465166a99" -uuid = "d5e62ea6-ddf3-4d43-8e4c-ad5e6c8bfd7d" -version = "0.1.11" - -[[deps.OpenBLAS32_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "2fb9ee2dc14d555a6df2a714b86b7125178344c2" -uuid = "656ef2d0-ae68-5445-9ca0-591084a874a2" -version = "0.3.21+0" - -[[deps.OpenBLAS_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] -uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.21+4" - -[[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 = "51901a49222b09e3743c65b8847687ae5fc78eb2" -uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" -version = "1.4.1" - -[[deps.OpenSSL_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "1aa4b74f80b01c6bc2b89992b861b5f210e665b5" -uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "1.1.21+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 = "e3a6546c1577bfd701771b477b794a52949e7594" -uuid = "429524aa-4258-5aef-a3af-852621145aeb" -version = "1.7.6" - -[[deps.Optimisers]] -deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] -git-tree-sha1 = "e5a1825d3d53aa4ad4fb42bd4927011ad4a78c3d" -uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" -version = "0.2.15" - -[[deps.Optimization]] -deps = ["ADTypes", "ArrayInterface", "ConsoleProgressMonitor", "DocStringExtensions", "LinearAlgebra", "Logging", "LoggingExtras", "Pkg", "Printf", "ProgressLogging", "Reexport", "Requires", "SciMLBase", "SparseArrays", "TerminalLoggers"] -git-tree-sha1 = "80005bc7d96d4d00e56b8a58c5240a35bd638d4a" -uuid = "7f7a1694-90dd-40f0-9382-eb1efda571ba" -version = "3.15.2" - - [deps.Optimization.extensions] - OptimizationEnzymeExt = "Enzyme" - OptimizationFinitediffExt = "FiniteDiff" - OptimizationForwarddiffExt = "ForwardDiff" - OptimizationMTKExt = "ModelingToolkit" - OptimizationReversediffExt = "ReverseDiff" - OptimizationTrackerExt = "Tracker" - OptimizationZygoteExt = "Zygote" - - [deps.Optimization.weakdeps] - Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" - FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" - -[[deps.OptimizationBBO]] -deps = ["BlackBoxOptim", "Optimization", "Reexport"] -git-tree-sha1 = "5f653f29459f2aba3c1961dff265b727bd1ed5be" -uuid = "3e6eede4-6085-4f62-9a71-46d9bc1eb92b" -version = "0.1.4" - -[[deps.OptimizationMOI]] -deps = ["Ipopt_jll", "MathOptInterface", "ModelingToolkit", "Optimization", "Reexport", "SparseArrays", "Symbolics"] -git-tree-sha1 = "32c99127e8caf6b50856d676b56a9382bd5650c6" -uuid = "fd9f6733-72f4-499f-8506-86b2bdd0dea1" -version = "0.1.14" - -[[deps.OptimizationNLopt]] -deps = ["NLopt", "Optimization", "Reexport"] -git-tree-sha1 = "e957c68dabb518cb4c7d3d3697968850e86789ef" -uuid = "4e6fcdb7-1186-4e1f-a706-475e75c168bb" -version = "0.1.7" - -[[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.OrdinaryDiffEq]] -deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLNLSolve", "SciMLOperators", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "4f1ab68f236fa846d0c30718c6b29c1665b019c0" -uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.53.3" - -[[deps.Oxygen]] -deps = ["Dates", "HTTP", "JSON3", "MIMEs", "Sockets"] -git-tree-sha1 = "dca31e833aafb6277e5aff9fdcb5029be5045255" -uuid = "df9a0d86-3283-4920-82dc-4555fc0d1d8b" -version = "1.1.11" - -[[deps.PCRE2_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" -version = "10.42.0+0" - -[[deps.PDMats]] -deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "67eae2738d63117a196f497d7db789821bce61d1" -uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" -version = "0.11.17" - -[[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 = "4b2e829ee66d4218e0cef22c0a64ee37cf258c29" -uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.7.1" - -[[deps.Pipe]] -git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" -uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" -version = "1.3.0" - -[[deps.Pipelines]] -deps = ["Dates", "FilePathsBase", "Logging", "OrderedCollections", "Printf", "Reexport", "Test", "UUIDs"] -git-tree-sha1 = "b870d8e0354361e38b0d9fc1997e96c299e948ae" -uuid = "ef544631-5c6f-4e9b-994c-12e7a4cd724c" -version = "0.10.4" - -[[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.9.2" - -[[deps.PlotThemes]] -deps = ["PlotUtils", "Statistics"] -git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" -uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" -version = "3.1.0" - -[[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.Plots]] -deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Preferences", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] -git-tree-sha1 = "75ca67b2c6512ad2d0c767a7cfc55e75075f8bbc" -uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.38.16" - - [deps.Plots.extensions] - FileIOExt = "FileIO" - GeometryBasicsExt = "GeometryBasics" - IJuliaExt = "IJulia" - ImageInTerminalExt = "ImageInTerminal" - UnitfulExt = "Unitful" - - [deps.Plots.weakdeps] - FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" - GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" - IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" - ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" - Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" - -[[deps.PoissonRandom]] -deps = ["Random"] -git-tree-sha1 = "a0f1159c33f846aa77c3f30ebbc69795e5327152" -uuid = "e409e4f3-bfea-5376-8464-e040bb5c01ab" -version = "0.4.4" - -[[deps.Polyester]] -deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] -git-tree-sha1 = "0fe4e7c4d8ff4c70bfa507f0dd96fa161b115777" -uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" -version = "0.7.3" - -[[deps.PolyesterWeave]] -deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] -git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" -uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" -version = "0.2.1" - -[[deps.Polynomials]] -deps = ["LinearAlgebra", "RecipesBase"] -git-tree-sha1 = "3aa2bb4982e575acd7583f01531f241af077b163" -uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" -version = "3.2.13" - - [deps.Polynomials.extensions] - PolynomialsChainRulesCoreExt = "ChainRulesCore" - PolynomialsMakieCoreExt = "MakieCore" - PolynomialsMutableArithmeticsExt = "MutableArithmetics" - - [deps.Polynomials.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - MakieCore = "20f20a25-4f0e-4fdf-b5d1-57303727442b" - MutableArithmetics = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" - -[[deps.PooledArrays]] -deps = ["DataAPI", "Future"] -git-tree-sha1 = "a6062fe4063cdafe78f4a0a81cfffb89721b30e7" -uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" -version = "1.4.2" - -[[deps.PositiveFactorizations]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" -uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" -version = "0.2.4" - -[[deps.PreallocationTools]] -deps = ["Adapt", "ArrayInterface", "ForwardDiff", "Requires"] -git-tree-sha1 = "f739b1b3cc7b9949af3b35089931f2b58c289163" -uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -version = "0.4.12" - - [deps.PreallocationTools.extensions] - PreallocationToolsReverseDiffExt = "ReverseDiff" - - [deps.PreallocationTools.weakdeps] - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - -[[deps.PrecompileTools]] -deps = ["Preferences"] -git-tree-sha1 = "9673d39decc5feece56ef3940e5dafba15ba0f81" -uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -version = "1.1.2" - -[[deps.Preferences]] -deps = ["TOML"] -git-tree-sha1 = "7eb1686b4f04b82f96ed7a4ea5890a4f0c7a09f1" -uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.4.0" - -[[deps.PrettyTables]] -deps = ["Crayons", "Formatting", "LaTeXStrings", "Markdown", "Reexport", "StringManipulation", "Tables"] -git-tree-sha1 = "331cc8048cba270591eab381e7aa3e2e3fef7f5e" -uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" -version = "2.2.5" - -[[deps.Primes]] -deps = ["IntegerMathUtils"] -git-tree-sha1 = "311a2aa90a64076ea0fac2ad7492e914e6feeb81" -uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" -version = "0.5.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.Qt5Base_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "xkbcommon_jll"] -git-tree-sha1 = "0c03844e2231e12fda4d0086fd7cbe4098ee8dc5" -uuid = "ea2cea3b-5b76-57ae-a6ef-0a8af62496e1" -version = "5.15.3+2" - -[[deps.QuadGK]] -deps = ["DataStructures", "LinearAlgebra"] -git-tree-sha1 = "6ec7ac8412e83d57e313393220879ede1740f9ee" -uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" -version = "2.8.2" - -[[deps.QuasiMonteCarlo]] -deps = ["Accessors", "ConcreteStructs", "Distributions", "LatticeRules", "LinearAlgebra", "Primes", "Random", "Sobol", "StatsBase"] -git-tree-sha1 = "5654ee2631b0b291c639b2e6c81bbf06128bce85" -uuid = "8a4e6c94-4038-4cdc-81c3-7e6ffdb2a71b" -version = "0.3.2" - -[[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 = "552f30e847641591ba3f39fd1bed559b9deb0ef3" -uuid = "74087812-796a-5b5d-8853-05524746bad3" -version = "1.6.1" - -[[deps.RandomExtensions]] -deps = ["Random", "SparseArrays"] -git-tree-sha1 = "062986376ce6d394b23d5d90f01d81426113a3c9" -uuid = "fb686558-2515-59ef-acaa-46db3789a887" -version = "0.4.3" - -[[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.RecipesPipeline]] -deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] -git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" -uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" -version = "0.6.12" - -[[deps.RecursiveArrayTools]] -deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "Requires", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "02ef02926f30d53b94be443bfaea010c47f6b556" -uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "2.38.5" - - [deps.RecursiveArrayTools.extensions] - RecursiveArrayToolsMeasurementsExt = "Measurements" - RecursiveArrayToolsTrackerExt = "Tracker" - RecursiveArrayToolsZygoteExt = "Zygote" - - [deps.RecursiveArrayTools.weakdeps] - Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" - -[[deps.RecursiveFactorization]] -deps = ["LinearAlgebra", "LoopVectorization", "Polyester", "SnoopPrecompile", "StrideArraysCore", "TriangularSolve"] -git-tree-sha1 = "9088515ad915c99026beb5436d0a09cd8c18163e" -uuid = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" -version = "0.2.18" - -[[deps.Reexport]] -git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" -uuid = "189a3867-3050-52da-a836-e630ba90ab69" -version = "1.2.2" - -[[deps.Referenceables]] -deps = ["Adapt"] -git-tree-sha1 = "e681d3bfa49cd46c3c161505caddf20f0e62aaa9" -uuid = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" -version = "0.1.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.ResettableStacks]] -deps = ["StaticArrays"] -git-tree-sha1 = "256eeeec186fa7f26f2801732774ccf277f05db9" -uuid = "ae5879a3-cd67-5da8-be7f-38c6eb64a37b" -version = "1.1.1" - -[[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.Roots]] -deps = ["ChainRulesCore", "CommonSolve", "Printf", "Setfield"] -git-tree-sha1 = "de432823e8aab4dd1a985be4be768f95acf152d4" -uuid = "f2b01f46-fcfa-551c-844a-d8ac1e96c665" -version = "2.0.17" - - [deps.Roots.extensions] - RootsForwardDiffExt = "ForwardDiff" - RootsIntervalRootFindingExt = "IntervalRootFinding" - RootsSymPyExt = "SymPy" - - [deps.Roots.weakdeps] - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - IntervalRootFinding = "d2bf35a9-74e0-55ec-b149-d360ff49b807" - SymPy = "24249f21-da20-56a4-8eb1-6a02cf4ae2e6" - -[[deps.RoundingEmulator]] -git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" -uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" -version = "0.2.1" - -[[deps.RuntimeGeneratedFunctions]] -deps = ["ExprTools", "SHA", "Serialization"] -git-tree-sha1 = "0b9b18d6236e9ab2b092defaacdffd929d572642" -uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" -version = "0.5.9" - -[[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 = "4b8586aece42bee682399c4c4aee95446aa5cd19" -uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" -version = "0.6.39" - -[[deps.SciMLBase]] -deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] -git-tree-sha1 = "8251ee4b3e4dde75ea0c2a251d167a60631800a3" -uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "1.93.1" - -[[deps.SciMLExpectations]] -deps = ["DiffEqBase", "Distributions", "Integrals", "KernelDensity", "LinearAlgebra", "Parameters", "Random", "RecursiveArrayTools", "Reexport", "StaticArrays", "Statistics", "Zygote"] -git-tree-sha1 = "6b784198e634859eced71c782115853b9f58b6d3" -uuid = "afe9f18d-7609-4d0e-b7b7-af0cb72b8ea8" -version = "2.0.1" - -[[deps.SciMLNLSolve]] -deps = ["DiffEqBase", "LineSearches", "NLsolve", "Reexport", "SciMLBase"] -git-tree-sha1 = "9dfc8e9e3d58c0c74f1a821c762b5349da13eccf" -uuid = "e9a6253c-8580-4d32-9898-8661bb511710" -version = "0.1.8" - -[[deps.SciMLOperators]] -deps = ["ArrayInterface", "DocStringExtensions", "Lazy", "LinearAlgebra", "Setfield", "SparseArrays", "StaticArraysCore", "Tricks"] -git-tree-sha1 = "b1fe33c9984c6789b58419e62e7a2b92f9aa813e" -uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" -version = "0.3.3" - -[[deps.ScientificTypesBase]] -git-tree-sha1 = "a8e18eb383b5ecf1b5e6fc237eb39255044fd92b" -uuid = "30f210dd-8aff-4c5f-94ba-8e64358c1161" -version = "3.0.0" - -[[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 = "04bdff0b09c65ff3e06a05e3eb7b120223da3d39" -uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" -version = "1.4.0" - -[[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.SharedArrays]] -deps = ["Distributed", "Mmap", "Random", "Serialization"] -uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" - -[[deps.Showoff]] -deps = ["Dates", "Grisu"] -git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" -uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" -version = "1.0.3" - -[[deps.SimpleBufferStream]] -git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" -uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" -version = "1.1.0" - -[[deps.SimpleNonlinearSolve]] -deps = ["ArrayInterfaceCore", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "Reexport", "SciMLBase", "SnoopPrecompile", "StaticArraysCore"] -git-tree-sha1 = "3f558105e8ef4aac1e22bf30bd1f1e95698bfc95" -uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "0.1.10" - -[[deps.SimpleTraits]] -deps = ["InteractiveUtils", "MacroTools"] -git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" -uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" -version = "0.9.4" - -[[deps.SimpleUnPack]] -git-tree-sha1 = "58e6353e72cde29b90a69527e56df1b5c3d8c437" -uuid = "ce78b400-467f-4804-87d8-8f486da07d0a" -version = "1.1.0" - -[[deps.SnoopPrecompile]] -deps = ["Preferences"] -git-tree-sha1 = "e760a70afdcd461cf01a575947738d359234665c" -uuid = "66db9d55-30c0-4569-8b51-7e840670fc0c" -version = "1.0.3" - -[[deps.Sobol]] -deps = ["DelimitedFiles", "Random"] -git-tree-sha1 = "5a74ac22a9daef23705f010f72c81d6925b19df8" -uuid = "ed01d8cd-4d21-5b2a-85b4-cc3bdc58bad4" -version = "1.5.0" - -[[deps.Sockets]] -uuid = "6462fe0b-24de-5631-8697-dd941f90decc" - -[[deps.SortingAlgorithms]] -deps = ["DataStructures"] -git-tree-sha1 = "c60ec5c62180f27efea3ba2908480f8055e17cee" -uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" -version = "1.1.1" - -[[deps.SparseArrays]] -deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] -uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - -[[deps.SparseDiffTools]] -deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "Reexport", "Requires", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "VertexSafeGraphs"] -git-tree-sha1 = "4c1a57bcbc0b795fbfdc2009e70f9c2fd2815bfe" -uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" -version = "2.4.1" -weakdeps = ["Zygote"] - - [deps.SparseDiffTools.extensions] - SparseDiffToolsZygoteExt = "Zygote" - -[[deps.Sparspak]] -deps = ["Libdl", "LinearAlgebra", "Logging", "OffsetArrays", "Printf", "SparseArrays", "Test"] -git-tree-sha1 = "342cf4b449c299d8d1ceaf00b7a49f4fbc7940e7" -uuid = "e56a9233-b9d6-4f03-8d0f-1825330902ac" -version = "0.3.9" - -[[deps.SpatialIndexing]] -git-tree-sha1 = "bacf5065cd7c0d6449b8bba6fa8e75b3087356b0" -uuid = "d4ead438-fe20-5cc5-a293-4fd39a41b74c" -version = "0.1.5" - -[[deps.SpecialFunctions]] -deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "7beb031cf8145577fbccacd94b8a8f4ce78428d3" -uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.3.0" -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.Static]] -deps = ["IfElse"] -git-tree-sha1 = "dbde6766fc677423598138a5951269432b0fcc90" -uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" -version = "0.8.7" - -[[deps.StaticArrayInterface]] -deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "Requires", "SnoopPrecompile", "SparseArrays", "Static", "SuiteSparse"] -git-tree-sha1 = "33040351d2403b84afce74dae2e22d3f5b18edcb" -uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.4.0" -weakdeps = ["OffsetArrays", "StaticArrays"] - - [deps.StaticArrayInterface.extensions] - StaticArrayInterfaceOffsetArraysExt = "OffsetArrays" - StaticArrayInterfaceStaticArraysExt = "StaticArrays" - -[[deps.StaticArrays]] -deps = ["LinearAlgebra", "Random", "StaticArraysCore"] -git-tree-sha1 = "0da7e6b70d1bb40b1ace3b576da9ea2992f76318" -uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.6.0" -weakdeps = ["Statistics"] - - [deps.StaticArrays.extensions] - StaticArraysStatisticsExt = "Statistics" - -[[deps.StaticArraysCore]] -git-tree-sha1 = "6b7ba252635a5eff6a0b0664a41ee140a1c9e72a" -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" - -[[deps.Statistics]] -deps = ["LinearAlgebra", "SparseArrays"] -uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" -version = "1.9.0" - -[[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 = ["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.SteadyStateDiffEq]] -deps = ["DiffEqBase", "DiffEqCallbacks", "LinearAlgebra", "NLsolve", "Reexport", "SciMLBase"] -git-tree-sha1 = "6e801d0da4c81d9cd6a05d97340404f9892fba85" -uuid = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f" -version = "1.16.0" - -[[deps.StochasticDiffEq]] -deps = ["Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqNoiseProcess", "DocStringExtensions", "FillArrays", "FiniteDiff", "ForwardDiff", "JumpProcesses", "LevyArea", "LinearAlgebra", "Logging", "MuladdMacro", "NLsolve", "OrdinaryDiffEq", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] -git-tree-sha1 = "ccf744171b3a83879158a4b3f3a430c1bc585123" -uuid = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" -version = "6.61.1" - -[[deps.StrideArraysCore]] -deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] -git-tree-sha1 = "f02eb61eb5c97b48c153861c72fbbfdddc607e06" -uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" -version = "0.4.17" - -[[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.SuiteSparse_jll]] -deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] -uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" -version = "5.10.1+6" - -[[deps.Sundials]] -deps = ["CEnum", "DataStructures", "DiffEqBase", "Libdl", "LinearAlgebra", "Logging", "PrecompileTools", "Reexport", "SciMLBase", "SparseArrays", "Sundials_jll"] -git-tree-sha1 = "4931f9013c53128337ce8df54a2d38c79fe58d4c" -uuid = "c3572dad-4567-51f8-b174-8c6c989267f4" -version = "4.19.3" - -[[deps.Sundials_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "OpenBLAS_jll", "Pkg", "SuiteSparse_jll"] -git-tree-sha1 = "04777432d74ec5bc91ca047c9e0e0fd7f81acdb6" -uuid = "fb77eaff-e24c-56d4-86b1-d163f2edb164" -version = "5.2.1+0" - -[[deps.SwaggerMarkdown]] -deps = ["JSON", "JSONSchema", "Test", "UUIDs", "YAML"] -git-tree-sha1 = "ea2513768e67b5ca27bbbab19e34179714a78cab" -uuid = "1b6eb727-ad4b-44eb-9669-b9596a6e760f" -version = "0.2.1" - -[[deps.SymbolicIndexingInterface]] -deps = ["DocStringExtensions"] -git-tree-sha1 = "f8ab052bfcbdb9b48fad2c80c873aa0d0344dfe5" -uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.2.2" - -[[deps.SymbolicUtils]] -deps = ["AbstractTrees", "Bijections", "ChainRulesCore", "Combinatorics", "ConstructionBase", "DataStructures", "DocStringExtensions", "DynamicPolynomials", "IfElse", "LabelledArrays", "LinearAlgebra", "MultivariatePolynomials", "NaNMath", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArrays", "TimerOutputs", "Unityper"] -git-tree-sha1 = "5cb1f963f82e7b81305102dd69472fcd3e0e1483" -uuid = "d1185830-fcd6-423d-90d6-eec64667417b" -version = "1.0.5" - -[[deps.Symbolics]] -deps = ["ArrayInterface", "ConstructionBase", "DataStructures", "DiffRules", "Distributions", "DocStringExtensions", "DomainSets", "Groebner", "IfElse", "LaTeXStrings", "LambertW", "Latexify", "Libdl", "LinearAlgebra", "MacroTools", "Markdown", "NaNMath", "RecipesBase", "Reexport", "Requires", "RuntimeGeneratedFunctions", "SciMLBase", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicUtils", "TreeViews"] -git-tree-sha1 = "c4e5688a9a5a2f4088cd1a779b0742be31cbe9aa" -uuid = "0c5d862f-8b57-4792-8d23-62f2024744c7" -version = "5.5.0" - -[[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", "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.0" - -[[deps.TaylorSeries]] -deps = ["IntervalArithmetic", "LinearAlgebra", "Markdown", "Requires", "SparseArrays"] -git-tree-sha1 = "b123e0614b0f366e2073c4da7b1367cebda3f579" -uuid = "6aa5eb33-94cf-58f4-a9d0-e4b2c4fc25ea" -version = "0.14.0" - -[[deps.TensorCore]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" -uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" -version = "0.1.1" - -[[deps.Term]] -deps = ["AbstractTrees", "CodeTracking", "Dates", "Highlights", "InteractiveUtils", "Logging", "Markdown", "MyterialColors", "OrderedCollections", "Parameters", "PrecompileTools", "ProgressLogging", "REPL", "Tables", "UUIDs", "Unicode", "UnicodeFun"] -git-tree-sha1 = "ffac67f6fbcbb32027d924b93ba91b7633af9220" -uuid = "22787eb5-b846-44ae-b979-8e399b8463ab" -version = "2.0.5" - -[[deps.TerminalLoggers]] -deps = ["LeftChildRightSiblingTrees", "Logging", "Markdown", "Printf", "ProgressLogging", "UUIDs"] -git-tree-sha1 = "f133fab380933d042f6796eda4e130272ba520ca" -uuid = "5d786b92-1e48-4d6f-9151-6b4477ca9bed" -version = "0.1.7" - -[[deps.Terming]] -deps = ["REPL", "Test"] -git-tree-sha1 = "9ef2648010c3a74ab4ea44a88e8640f0d1034d1f" -uuid = "5a1048b7-9ca6-4e8a-8e2e-1f932e78ac4e" -version = "0.2.6" - -[[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.ThreadsX]] -deps = ["ArgCheck", "BangBang", "ConstructionBase", "InitialValues", "MicroCollections", "Referenceables", "Setfield", "SplittablesBase", "Transducers"] -git-tree-sha1 = "34e6bcf36b9ed5d56489600cf9f3c16843fa2aa2" -uuid = "ac1d9e8a-700a-412c-b207-f0111f4b6c0d" -version = "0.1.11" - -[[deps.TimeZones]] -deps = ["Dates", "Downloads", "InlineStrings", "LazyArtifacts", "Mocking", "Printf", "RecipesBase", "Scratch", "Unicode"] -git-tree-sha1 = "cdaa0c2a4449724aded839550eca7d7240bb6938" -uuid = "f269a46b-ccf7-5d73-abea-4c690281aa53" -version = "1.10.0" - -[[deps.TimerOutputs]] -deps = ["ExprTools", "Printf"] -git-tree-sha1 = "f548a9e9c490030e545f72074a41edfd0e5bcdd7" -uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" -version = "0.5.23" - -[[deps.ToeplitzMatrices]] -deps = ["AbstractFFTs", "DSP", "LinearAlgebra", "StatsBase"] -git-tree-sha1 = "326388c0c53565fb21eecafb6176b1cc5d225d34" -uuid = "c751599d-da0a-543b-9d20-d0a503d91d24" -version = "0.8.1" - -[[deps.Tokenize]] -git-tree-sha1 = "90538bf898832b6ebd900fa40f223e695970e3a5" -uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624" -version = "0.5.25" - -[[deps.Tracker]] -deps = ["Adapt", "DiffRules", "ForwardDiff", "Functors", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NNlib", "NaNMath", "Optimisers", "Printf", "Random", "Requires", "SpecialFunctions", "Statistics"] -git-tree-sha1 = "92364c27aa35c0ee36e6e010b704adaade6c409c" -uuid = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" -version = "0.2.26" -weakdeps = ["PDMats"] - - [deps.Tracker.extensions] - TrackerPDMatsExt = "PDMats" - -[[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", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] -git-tree-sha1 = "a66fb81baec325cf6ccafa243af573b031e87b00" -uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" -version = "0.4.77" - - [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.Trapz]] -git-tree-sha1 = "79eb0ed763084a3e7de81fe1838379ac6a23b6a0" -uuid = "592b5752-818d-11e9-1e9a-2b8ca4a44cd1" -version = "2.0.3" - -[[deps.TreeViews]] -deps = ["Test"] -git-tree-sha1 = "8d0d7a3fe2f30d6a7f833a5f19f7c7a5b396eae6" -uuid = "a2a6695c-b41b-5b7d-aed9-dbfdeacea5d7" -version = "0.3.0" - -[[deps.TriangularSolve]] -deps = ["CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "LoopVectorization", "Polyester", "Static", "VectorizationBase"] -git-tree-sha1 = "31eedbc0b6d07c08a700e26d31298ac27ef330eb" -uuid = "d5829a12-d9aa-46ab-831f-fb7c9ab06edf" -version = "0.1.19" - -[[deps.Tricks]] -git-tree-sha1 = "aadb748be58b492045b4f56166b5188aa63ce549" -uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" -version = "0.1.7" - -[[deps.TruncatedStacktraces]] -deps = ["InteractiveUtils", "MacroTools", "Preferences"] -git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" -uuid = "781d530d-4396-4725-bb49-402e4bee1e77" -version = "1.4.0" - -[[deps.Turing]] -deps = ["AbstractMCMC", "AdvancedHMC", "AdvancedMH", "AdvancedPS", "AdvancedVI", "BangBang", "Bijectors", "DataStructures", "Distributions", "DistributionsAD", "DocStringExtensions", "DynamicPPL", "EllipticalSliceSampling", "ForwardDiff", "Libtask", "LinearAlgebra", "LogDensityProblems", "LogDensityProblemsAD", "MCMCChains", "NamedArrays", "Printf", "Random", "Reexport", "Requires", "SciMLBase", "Setfield", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "Tracker"] -git-tree-sha1 = "26cdfce1cc0301fe832eaa419a5d0edd6a554004" -uuid = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" -version = "0.24.4" - -[[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.Unitful]] -deps = ["Dates", "LinearAlgebra", "Random"] -git-tree-sha1 = "c4d2a349259c8eba66a00a540d550f122a3ab228" -uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" -version = "1.15.0" -weakdeps = ["ConstructionBase", "InverseFunctions"] - - [deps.Unitful.extensions] - ConstructionBaseUnitfulExt = "ConstructionBase" - InverseFunctionsUnitfulExt = "InverseFunctions" - -[[deps.UnitfulLatexify]] -deps = ["LaTeXStrings", "Latexify", "Unitful"] -git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" -uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" -version = "1.6.3" - -[[deps.Unityper]] -deps = ["ConstructionBase"] -git-tree-sha1 = "7c7a5d1387719bc7aff7c7d78dc233fffa750be9" -uuid = "a7c27f48-0311-42f6-a7f8-2c11e75eb415" -version = "0.1.4" - -[[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.Unzip]] -git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" -uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" -version = "0.2.0" - -[[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.VertexSafeGraphs]] -deps = ["Graphs"] -git-tree-sha1 = "8351f8d73d7e880bfc042a8b6922684ebeafb35c" -uuid = "19fa3120-7c27-5ec5-8db8-b0b0aa330d6f" -version = "0.2.0" - -[[deps.Wayland_jll]] -deps = ["Artifacts", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] -git-tree-sha1 = "ed8d92d9774b077c53e1da50fd81a36af3744c1c" -uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" -version = "1.21.0+0" - -[[deps.Wayland_protocols_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "4528479aa01ee1b3b4cd0e6faef0e04cf16466da" -uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" -version = "1.25.0+0" - -[[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.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", "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_libXcursor_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] -git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" -uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" -version = "1.2.0+4" - -[[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_libXfixes_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] -git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" -uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" -version = "5.0.3+4" - -[[deps.Xorg_libXi_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] -git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" -uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" -version = "1.7.10+4" - -[[deps.Xorg_libXinerama_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] -git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" -uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" -version = "1.1.4+4" - -[[deps.Xorg_libXrandr_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] -git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" -uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" -version = "1.5.2+4" - -[[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_libxkbfile_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] -git-tree-sha1 = "730eeca102434283c50ccf7d1ecdadf521a765a4" -uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" -version = "1.1.2+0" - -[[deps.Xorg_xcb_util_image_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] -git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" -uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" -version = "0.4.0+1" - -[[deps.Xorg_xcb_util_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] -git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" -uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" -version = "0.4.0+1" - -[[deps.Xorg_xcb_util_keysyms_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] -git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" -uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" -version = "0.4.0+1" - -[[deps.Xorg_xcb_util_renderutil_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] -git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" -uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" -version = "0.3.9+1" - -[[deps.Xorg_xcb_util_wm_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] -git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" -uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" -version = "0.4.1+1" - -[[deps.Xorg_xkbcomp_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] -git-tree-sha1 = "330f955bc41bb8f5270a369c473fc4a5a4e4d3cb" -uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" -version = "1.4.6+0" - -[[deps.Xorg_xkeyboard_config_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] -git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" -uuid = "33bec58e-1273-512f-9401-5d533626f822" -version = "2.39.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.YAML]] -deps = ["Base64", "Dates", "Printf", "StringEncodings"] -git-tree-sha1 = "e6330e4b731a6af7959673621e91645eb1356884" -uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" -version = "0.4.9" - -[[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" - -[[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 = "5be3ddb88fc992a7d8ea96c3f10a49a7e98ebc7b" -uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" -version = "0.6.62" -weakdeps = ["Colors", "Distances", "Tracker"] - - [deps.Zygote.extensions] - ZygoteColorsExt = "Colors" - ZygoteDistancesExt = "Distances" - ZygoteTrackerExt = "Tracker" - -[[deps.ZygoteRules]] -deps = ["ChainRulesCore", "MacroTools"] -git-tree-sha1 = "977aed5d006b840e2e40c0b48984f7463109046d" -uuid = "700de1a5-db45-46bc-99cf-38207098b444" -version = "0.2.3" - -[[deps.fzf_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "868e669ccb12ba16eaf50cb2957ee2ff61261c56" -uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" -version = "0.29.0+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+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.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.48.0+0" - -[[deps.p7zip_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" -version = "17.4.0+0" - -[[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" - -[[deps.xkbcommon_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] -git-tree-sha1 = "9ebfc140cc56e8c2156a15ceac2f0302e327ac0a" -uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" -version = "1.4.1+0" diff --git a/Project.toml b/Project.toml index 8766500..9d3f202 100644 --- a/Project.toml +++ b/Project.toml @@ -26,7 +26,22 @@ UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" [compat] +AMQPClient = "0.5" +CSV = "0.10" +DataFrames = "1.6" +DifferentialEquations = "7.8" EasyConfig = "0.1.15" +EasyModelAnalysis = "0.1" +HTTP = "1.9" +JSON3 = "1.13" +JobSchedulers = "0.8" +MathML = "0.1" +ModelingToolkit = "8.62" +OpenAPI = "0.1" +Oxygen = "1.1" +SciMLBase = "1.93" +SwaggerMarkdown = "0.2" +YAML = "0.4" julia = "1.9" [extras] diff --git a/README.md b/README.md index 12771b2..2fce619 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ all the necessary info for running/solving the model and returning results. 2. We process the keys into useful things for `OperationRequest` - `model_config_id(s)` --> Retrieve model(s) in AMR format from TDS (`model::Config` in `OperationRequest`). - `dataset` --> Retrieve dataset from TDS (`df::DataFrame` in `OperationRequest`). -3. We start the job, which performs: +3. We start the job via JobSchedulers.jl, which performs: a. Update job status in TDS to "running". b. Run/solve the model/simulation. c. Upload results to TDS. diff --git a/src/SimulationService.jl b/src/SimulationService.jl index d35e2ff..b52f68b 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -79,11 +79,11 @@ function start!(; host=SIMSERVICE_HOST, port=SIMSERVICE_PORT, kw...) JobSchedulers.set_scheduler(max_cpu=0.5, max_mem=0.5, update_second=0.05, max_job=5000) Oxygen.resetstate() # routes: - Oxygen.@get "/" health - Oxygen.@get "/status/{job_id}" job_status - Oxygen.@get "/result/{job_id}" job_result - Oxygen.@post "/{operation_name}" operation - Oxygen.@post "/kill/{job_id}" job_kill + Oxygen.@get "/" health + Oxygen.@get "/status/{job_id}" job_status + Oxygen.@get "/result/{job_id}" job_result + Oxygen.@post "/{operation_name}" operation + Oxygen.@post "/kill/{job_id}" job_kill # Below commented out because of: https://github.com/JuliaData/YAML.jl/issues/117 ???? # api = SwaggerMarkdown.OpenAPI("3.0", Dict(string(k) => v for (k,v) in openapi_spec[])) From ae96a65998df33b570b60bdffcf524ada27b814d Mon Sep 17 00:00:00 2001 From: Josh Day Date: Wed, 12 Jul 2023 10:11:07 -0400 Subject: [PATCH 24/31] cleanup --- ARCHITECTURE.md | 26 ----------------------- README.md | 13 +++++++++++- examples/request-simulate-integrated.json | 2 +- src/SimulationService.jl | 11 +++++----- 4 files changed, 19 insertions(+), 33 deletions(-) delete mode 100644 ARCHITECTURE.md diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md deleted file mode 100644 index 5201c12..0000000 --- a/ARCHITECTURE.md +++ /dev/null @@ -1,26 +0,0 @@ -# Architecture (Not current with re-write) - -The Simulation Service (soon to be renamed SciML Service) is a REST API that wraps -specific SciML tasks. The service should match the spec [here](https://github.com/DARPA-ASKEM/simulation-api-spec) -since PyCIEMSS Service and SciML Service ideally are hot swappable. - -The API creates a job using the JobSchedulers.jl library and updates the Terarium Data Service (TDS) with the status -of the job throughout its execution. Once the job completes, the results are written to S3. With most of the output artifacts, we do little postprocessing -after completing the SciML portion. - -## Layout - -Source is split into 5 major components: -- `SimulationService.jl`: Contains the start and stop functions for the service -- `Settings.jl`: Enumerates the environment variables used by the project -- `service`: Job scheduling, pre/post-processing, endpoints, etc. Handled by TA4. -- `contracts`: Location where TA3 and TA4 agree on an interface between the SciML Operations and the rest of the service. - - `Available.jl`: The operations available to the API are here. Generally, the operations just wrap around by the exposed SciML - operations. -- `operations`: JuliaHub primarily focuses here. - -## Requests - -An incoming request - - diff --git a/README.md b/README.md index 2fce619..e5b4c50 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,17 @@ all the necessary info for running/solving the model and returning results. 3. We start the job via JobSchedulers.jl, which performs: a. Update job status in TDS to "running". b. Run/solve the model/simulation. - c. Upload results to TDS. + c. Upload results to S3. d. Update job status in TDS to "complete". 4. Return a 201 response (above job runs async) with JSON that holds the `simulation_id` (client's term), which we call `job_id`. + + +## Architecture + +The Simulation Service (soon to be renamed SciML Service) is a REST API that wraps +specific SciML tasks. The service should match the spec [here](https://github.com/DARPA-ASKEM/simulation-api-spec) +since PyCIEMSS Service and SciML Service ideally are hot swappable. + +The API creates a job using the JobSchedulers.jl library and updates the Terarium Data Service (TDS) with the status +of the job throughout its execution. Once the job completes, the results are written to S3. With most of the output artifacts, we do little postprocessing +after completing the SciML portion. diff --git a/examples/request-simulate-integrated.json b/examples/request-simulate-integrated.json index c17f616..3da6c9e 100644 --- a/examples/request-simulate-integrated.json +++ b/examples/request-simulate-integrated.json @@ -1,4 +1,4 @@ { "model_config_id": "f20ea672-bfa4-422b-884f-0a4c09356fd0", - "timespan": {"start": 0, "end": 90}, + "timespan": {"start": 0, "end": 90} } diff --git a/src/SimulationService.jl b/src/SimulationService.jl index b52f68b..08703e1 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -300,8 +300,9 @@ mutable struct OperationRequest{T <: Operation} timespan = Tuple{Float64,Float64}(v) elseif k == :dataset # calibrate only. keys(v) = (:id, :filename, :mappings) if SIMSERVICE_ENABLE_TDS - data_url = "$SIMSERVICE_TDS_URL/datasets/$(v.id)/download-url?filename=$(v.filename)" - df = CSV.read(download(get_json(data_url).url), DataFrame) + tds_url = "$SIMSERVICE_TDS_URL/datasets/$(v.id)/download-url?filename=$(v.filename)" + s3_url = get_json(tds_url).url + df = CSV.read(download(s3_url), DataFrame) rename!(df, v.mappings) else df = DataFrame() @@ -395,9 +396,9 @@ function upload_results!(o::OperationRequest) return no_tds(:upload_results!; filename, header, bodysummary=repr(summary(body))) end - upload_url = "$SIMSERVICE_TDS_URL/simulations/sciml-$(o.job_id)/upload-url?filename=$filename)" - url = get_json(upload_url).url - HTTP.put(url, header; body=body) + tds_url = "$SIMSERVICE_TDS_URL/simulations/sciml-$(o.job_id)/upload-url?filename=$filename)" + s3_url = get_json(tds_url).url + HTTP.put(s3_url, header; body=body) end #-----------------------------------------------------------------------------# solve! From 6d93e5d28f0252c9431da681bb075a6ab542ca9c Mon Sep 17 00:00:00 2001 From: Josh Day Date: Wed, 12 Jul 2023 10:15:26 -0400 Subject: [PATCH 25/31] try to get CI to run with multiple threads --- .github/workflows/julia-tests.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/julia-tests.yaml b/.github/workflows/julia-tests.yaml index c84679d..c4923cf 100644 --- a/.github/workflows/julia-tests.yaml +++ b/.github/workflows/julia-tests.yaml @@ -2,6 +2,8 @@ # Julia Tests name: Correctness - Julia +env: + JULIA_NUM_THREADS: 2 on: push: branches: ['main'] @@ -16,8 +18,6 @@ jobs: - uses: julia-actions/setup-julia@v1 with: version: '1.9' - env: - JULIA_NUM_THREADS: 2 - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 - uses: julia-actions/julia-processcoverage@v1 From 9ddaccc16412d74bf4845dd9c093b65de2f36617 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Wed, 12 Jul 2023 10:51:45 -0400 Subject: [PATCH 26/31] try to fix ci... --- .github/workflows/julia-tests.yaml | 4 ++-- src/SimulationService.jl | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/julia-tests.yaml b/.github/workflows/julia-tests.yaml index c4923cf..615e19a 100644 --- a/.github/workflows/julia-tests.yaml +++ b/.github/workflows/julia-tests.yaml @@ -2,8 +2,6 @@ # Julia Tests name: Correctness - Julia -env: - JULIA_NUM_THREADS: 2 on: push: branches: ['main'] @@ -12,6 +10,8 @@ on: jobs: test: + env: + JULIA_NUM_THREADS: 2 runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 diff --git a/src/SimulationService.jl b/src/SimulationService.jl index 08703e1..0152e3d 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -71,7 +71,6 @@ end #-----------------------------------------------------------------------------# start! function start!(; host=SIMSERVICE_HOST, port=SIMSERVICE_PORT, kw...) - Threads.nthreads() > 1 || error("Server require `Thread.nthreads() > 1`. Start Julia via `julia --threads=auto`.") SIMSERVICE_ENABLE_TDS || @warn "TDS is disabled. Some features will not work." stop!() # Stop server if it's already running server_url[] = "http://$host:$port" @@ -91,7 +90,12 @@ function start!(; host=SIMSERVICE_HOST, port=SIMSERVICE_PORT, kw...) # Oxygen.mergeschema(swagger) # server: - Oxygen.serveparallel(; host, port, async=true, kw...) + if Threads.nthreads() > 1 # true in production + Oxygen.serveparallel(; host, port, async=true, kw...) + else + @warn "Server starting single-threaded. This should only be used for testing. Try starting Julia via `julia --threads=auto`." + Oxygen.serve(; host, port, async=true, kw...) + end end #-----------------------------------------------------------------------------# stop! From ba4ec9cbcd6066fa44312f091f75b9600fab14a3 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Wed, 12 Jul 2023 11:05:47 -0400 Subject: [PATCH 27/31] readme --- README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index e5b4c50..8e4c6bf 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ -# Simulation Service -Simulation Service provides an interface and job runner for [ASKEM models](https://github.com/DARPA-ASKEM/Model-Representations). +# SimulationService.jl -See example payload at [./examples/request.json](./examples/request.json) +Simulation Service runs a REST API for running jobs in the [ASKEM Model Representation](https://github.com/DARPA-ASKEM/Model-Representations). + +See example payloads in the `./examples` directory. ## Development Environment @@ -90,10 +91,10 @@ all the necessary info for running/solving the model and returning results. - `model_config_id(s)` --> Retrieve model(s) in AMR format from TDS (`model::Config` in `OperationRequest`). - `dataset` --> Retrieve dataset from TDS (`df::DataFrame` in `OperationRequest`). 3. We start the job via JobSchedulers.jl, which performs: - a. Update job status in TDS to "running". - b. Run/solve the model/simulation. - c. Upload results to S3. - d. Update job status in TDS to "complete". + - Update job status in TDS to "running". + - Run/solve the model/simulation. + - Upload results to S3. + - Update job status in TDS to "complete". 4. Return a 201 response (above job runs async) with JSON that holds the `simulation_id` (client's term), which we call `job_id`. From 5d15590fb55ad2a71c9e213f5708d4820879a81a Mon Sep 17 00:00:00 2001 From: Josh Day Date: Wed, 12 Jul 2023 11:15:49 -0400 Subject: [PATCH 28/31] fix ci? --- .github/workflows/julia-tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/julia-tests.yaml b/.github/workflows/julia-tests.yaml index 615e19a..d97e975 100644 --- a/.github/workflows/julia-tests.yaml +++ b/.github/workflows/julia-tests.yaml @@ -11,7 +11,7 @@ on: jobs: test: env: - JULIA_NUM_THREADS: 2 + JULIA_NUM_THREADS: 4 runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 From 531edf445894037b6a5e5d29c6bc4351fd1c60c2 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Wed, 12 Jul 2023 11:25:29 -0400 Subject: [PATCH 29/31] drop EasyModelAnalysis...see how it affects ci --- Project.toml | 2 -- src/SimulationService.jl | 1 - 2 files changed, 3 deletions(-) diff --git a/Project.toml b/Project.toml index 9d3f202..55c87a3 100644 --- a/Project.toml +++ b/Project.toml @@ -11,7 +11,6 @@ Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" Downloads = "f43a241f-c20a-4ad4-852c-f6b1247861c6" EasyConfig = "acab07b0-f158-46d4-8913-50acef6d41fe" -EasyModelAnalysis = "ef4b24a4-a090-4686-a932-e7e56a5a83bd" HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3" InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" @@ -31,7 +30,6 @@ CSV = "0.10" DataFrames = "1.6" DifferentialEquations = "7.8" EasyConfig = "0.1.15" -EasyModelAnalysis = "0.1" HTTP = "1.9" JSON3 = "1.13" JobSchedulers = "0.8" diff --git a/src/SimulationService.jl b/src/SimulationService.jl index 0152e3d..1805342 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -7,7 +7,6 @@ import Dates import DifferentialEquations import Downloads: download import EasyConfig: EasyConfig, Config -import EasyModelAnalysis import HTTP import InteractiveUtils: subtypes import JobSchedulers From d6aaf61482c24ce17d9b4fbbccee136acb0827b0 Mon Sep 17 00:00:00 2001 From: Josh Day Date: Wed, 12 Jul 2023 11:38:08 -0400 Subject: [PATCH 30/31] add caching t oci --- .github/workflows/julia-tests.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/julia-tests.yaml b/.github/workflows/julia-tests.yaml index d97e975..265ec45 100644 --- a/.github/workflows/julia-tests.yaml +++ b/.github/workflows/julia-tests.yaml @@ -18,6 +18,7 @@ jobs: - uses: julia-actions/setup-julia@v1 with: version: '1.9' + - uses: julia-actions/cache@v1 - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 - uses: julia-actions/julia-processcoverage@v1 From 6ff29a62f80fd32b0222de9040a36889f3b33d3f Mon Sep 17 00:00:00 2001 From: Josh Day Date: Wed, 12 Jul 2023 11:42:57 -0400 Subject: [PATCH 31/31] test w/o threading? --- .github/workflows/julia-tests.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/julia-tests.yaml b/.github/workflows/julia-tests.yaml index 265ec45..2651026 100644 --- a/.github/workflows/julia-tests.yaml +++ b/.github/workflows/julia-tests.yaml @@ -10,8 +10,6 @@ on: jobs: test: - env: - JULIA_NUM_THREADS: 4 runs-on: ubuntu-latest steps: - uses: actions/checkout@v2