diff --git a/Project.toml b/Project.toml index 6b3c2f4..49f83a2 100644 --- a/Project.toml +++ b/Project.toml @@ -10,10 +10,21 @@ CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" DecisionTree = "7806a523-6efd-50cb-b5f6-3fa6f1930dbb" +Gadfly = "c91e804a-d5a3-530f-b6f0-dfbca275c004" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" MKL = "33e6dc65-8f57-5167-99aa-e5a354878fb2" +MLJ = "add582a8-e3ab-11e8-2d5e-e98b27df1bc7" +MLJDecisionTreeInterface = "c6f25543-311c-4c74-83dc-3ea6d1015661" MatrixDepot = "b51810bb-c9f3-55da-ae3c-350fc1fbce05" OrderedCollections = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +PlotlyJS = "f0f68f2c-4968-5e81-91da-67840de0976a" +RDatasets = "ce6b1742-4840-55fa-b093-852dadbb1d8b" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" ScikitLearn = "3646fa90-6ef7-5e7e-9f22-8aca16db6324" +StatsPlots = "f3b207a7-027a-5e70-b257-86293d7955fd" +ShapML = "8523bd24-6f66-414b-9e1e-b02db3916d64" +Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +TreeRecipe = "1fa7448c-8018-415c-9278-624f5a245816" +CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597" +ColorSchemes = "35d6a980-a343-548e-a6ea-1d62b119f2f4" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" diff --git a/examples/smartlu/Manifest.toml b/examples/smartlu/Manifest.toml index cf9aabb..f6ef8b2 100644 --- a/examples/smartlu/Manifest.toml +++ b/examples/smartlu/Manifest.toml @@ -1,8 +1,14 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.11.0" +julia_version = "1.11.1" manifest_format = "2.0" -project_hash = "0e0b24087ef7b009576e9f65fa3104167830c271" +project_hash = "0613820f438183d1bc544941566d0c10329a3068" + +[[deps.ARFFFiles]] +deps = ["CategoricalArrays", "Dates", "Parsers", "Tables"] +git-tree-sha1 = "678eb18590a8bc6674363da4d5faa4ac09c40a18" +uuid = "da404889-ca92-49ff-9e8b-0aa6b4d38dc8" +version = "1.5.0" [[deps.AbstractFFTs]] deps = ["LinearAlgebra"] @@ -20,11 +26,36 @@ git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" version = "0.4.5" +[[deps.Accessors]] +deps = ["CompositionsBase", "ConstructionBase", "InverseFunctions", "LinearAlgebra", "MacroTools", "Markdown"] +git-tree-sha1 = "b392ede862e506d451fc1616e79aa6f4c673dab8" +uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" +version = "0.1.38" + + [deps.Accessors.extensions] + AccessorsAxisKeysExt = "AxisKeys" + AccessorsDatesExt = "Dates" + AccessorsIntervalSetsExt = "IntervalSets" + AccessorsStaticArraysExt = "StaticArrays" + AccessorsStructArraysExt = "StructArrays" + AccessorsTestExt = "Test" + AccessorsUnitfulExt = "Unitful" + + [deps.Accessors.weakdeps] + AxisKeys = "94b1ba4f-4ee9-5380-92f1-94cde586c3c5" + Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" + IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" + Requires = "ae029012-a4dd-5104-9daa-d747884805df" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "6a55b747d1812e699320963ffde36f1ebdda4099" +git-tree-sha1 = "50c3c56a52972d78e8be9fd135bfb91c9574c140" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "4.0.4" +version = "4.1.1" weakdeps = ["StaticArrays"] [deps.Adapt.extensions] @@ -43,14 +74,37 @@ version = "1.1.3" [[deps.Animations]] deps = ["Colors"] -git-tree-sha1 = "e81c509d2c8e49592413bfb0bb3b08150056c79d" +git-tree-sha1 = "e092fa223bf66a3c41f9c022bd074d916dc303e7" uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340" -version = "0.4.1" +version = "0.4.2" + +[[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.2" +[[deps.ArnoldiMethod]] +deps = ["LinearAlgebra", "Random", "StaticArrays"] +git-tree-sha1 = "d57bd3762d308bded22c3b82d033bff85f6195c6" +uuid = "ec485272-7323-5ecc-a04f-4719b315124d" +version = "0.4.0" + +[[deps.Arpack]] +deps = ["Arpack_jll", "Libdl", "LinearAlgebra", "Logging"] +git-tree-sha1 = "9b9b347613394885fd1c8c7729bfc60528faa436" +uuid = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97" +version = "0.5.4" + +[[deps.Arpack_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "OpenBLAS_jll", "Pkg"] +git-tree-sha1 = "5ba6c757e8feccf03a1554dfaf3e26b3cfc7fd5e" +uuid = "68821587-b530-5797-8361-c406ea357684" +version = "3.5.1+1" + [[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" version = "1.11.0" @@ -61,6 +115,12 @@ git-tree-sha1 = "b25e88db7944f98789130d7b503276bc34bc098e" uuid = "bf4720bc-e11a-5d0c-854e-bdca1663c893" version = "0.1.0" +[[deps.Atomix]] +deps = ["UnsafeAtomics"] +git-tree-sha1 = "c06a868224ecba914baa6942988e2f2aade419be" +uuid = "a9b6321e-bd34-4604-b9c9-b65b8de01458" +version = "0.1.0" + [[deps.Automa]] deps = ["PrecompileTools", "SIMD", "TranscodingStreams"] git-tree-sha1 = "a8f503e8e1a5f583fbef15a8440c8c7e32185df2" @@ -84,10 +144,37 @@ git-tree-sha1 = "4c3e506685c527ac6a54ccc0c8c76fd6f91b42fb" uuid = "fbb218c0-5317-5bc6-957e-2ee96dd4b1f0" version = "0.3.9" +[[deps.BangBang]] +deps = ["Accessors", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires"] +git-tree-sha1 = "e2144b631226d9eeab2d746ca8880b7ccff504ae" +uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" +version = "0.4.3" + + [deps.BangBang.extensions] + BangBangChainRulesCoreExt = "ChainRulesCore" + BangBangDataFramesExt = "DataFrames" + BangBangStaticArraysExt = "StaticArrays" + BangBangStructArraysExt = "StructArrays" + BangBangTablesExt = "Tables" + 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" + Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" + TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9" + [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" version = "1.11.0" +[[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 = "f1dff6729bc61f4d49e140da1af55dcd1ac97b2f" @@ -112,9 +199,9 @@ version = "1.2.2" [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" +git-tree-sha1 = "8873e196c2eb87962a2048b3b8e08946535864a1" uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" -version = "1.0.8+1" +version = "1.0.8+2" [[deps.CEnum]] git-tree-sha1 = "eb4cb44a499229b3b8426dcfb5dd85333951ff90" @@ -133,21 +220,21 @@ version = "1.0.1+0" [[deps.CSV]] deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] -git-tree-sha1 = "6c834533dc1fabd820c1db03c839bf97e45a3fab" +git-tree-sha1 = "deddd8725e5e1cc49ee205a1964256043720a6c3" uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" -version = "0.10.14" +version = "0.10.15" [[deps.Cairo]] deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] -git-tree-sha1 = "7b6ad8c35f4bc3bca8eb78127c8b99719506a5fb" +git-tree-sha1 = "71aa551c5c33f1a4415867fe06b7844faadb0ae9" uuid = "159f3aea-2a34-519c-b102-8c37f9878175" -version = "1.1.0" +version = "1.1.1" [[deps.CairoMakie]] deps = ["CRC32c", "Cairo", "Cairo_jll", "Colors", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools"] -git-tree-sha1 = "7947d2b61995eda7d5ca50c697b12bb578b918e5" +git-tree-sha1 = "0afa2b4ac444b9412130d68493941e1af462e26a" uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" -version = "0.12.14" +version = "0.12.18" [[deps.Cairo_jll]] deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] @@ -155,6 +242,36 @@ git-tree-sha1 = "009060c9a6168704143100f36ab08f06c2af4642" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" version = "1.18.2+1" +[[deps.CategoricalArrays]] +deps = ["DataAPI", "Future", "Missings", "Printf", "Requires", "Statistics", "Unicode"] +git-tree-sha1 = "1568b28f91293458345dabba6a5ea3f183250a61" +uuid = "324d7699-5711-5eae-9e2f-1d82baa6b597" +version = "0.10.8" + + [deps.CategoricalArrays.extensions] + CategoricalArraysJSONExt = "JSON" + CategoricalArraysRecipesBaseExt = "RecipesBase" + CategoricalArraysSentinelArraysExt = "SentinelArrays" + CategoricalArraysStructTypesExt = "StructTypes" + + [deps.CategoricalArrays.weakdeps] + JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" + RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" + SentinelArrays = "91c51154-3ec4-41a3-a24f-3f23e20d615c" + StructTypes = "856f2bd8-1eba-4b0a-8007-ebc267875bd4" + +[[deps.CategoricalDistributions]] +deps = ["CategoricalArrays", "Distributions", "Missings", "OrderedCollections", "Random", "ScientificTypes"] +git-tree-sha1 = "926862f549a82d6c3a7145bc7f1adff2a91a39f0" +uuid = "af321ab8-2d2e-40a6-b165-3d674595d28e" +version = "0.1.15" + + [deps.CategoricalDistributions.extensions] + UnivariateFiniteDisplayExt = "UnicodePlots" + + [deps.CategoricalDistributions.weakdeps] + UnicodePlots = "b8865327-cd53-5732-bb35-84acbb429228" + [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra"] git-tree-sha1 = "3e4b134270b372f2ed4d4d0e936aabaefc1802bc" @@ -171,6 +288,12 @@ git-tree-sha1 = "93b5983aac04174692b417d935643817a8160e90" uuid = "79a69506-cdd1-4876-b8e5-7af85e53af4f" version = "0.4.2" +[[deps.Clustering]] +deps = ["Distances", "LinearAlgebra", "NearestNeighbors", "Printf", "Random", "SparseArrays", "Statistics", "StatsBase"] +git-tree-sha1 = "9ebb045901e9bbf58767a9f34ff89831ed711aae" +uuid = "aaaa29a8-35af-508c-8bc3-b662a17a0fe5" +version = "0.15.7" + [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] git-tree-sha1 = "bce6804e5e6044c6daab27bb533d1295e4a2e759" @@ -185,9 +308,9 @@ version = "0.4.0" [[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] -git-tree-sha1 = "b5278586822443594ff615963b0c09755771b3e0" +git-tree-sha1 = "13951eb68769ad1cd460cdb2e64e5e95f1bf123d" uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" -version = "3.26.0" +version = "3.27.0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] @@ -211,6 +334,11 @@ git-tree-sha1 = "362a287c3aa50601b0bc359053d5c2468f0e7ce0" uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" version = "0.12.11" +[[deps.Combinatorics]] +git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" +uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" +version = "1.0.2" + [[deps.Compat]] deps = ["TOML", "UUIDs"] git-tree-sha1 = "8ae8d32e09f0dcf42a36b90d4e17f5dd2e4c4215" @@ -226,6 +354,26 @@ deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" version = "1.1.1+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.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" +weakdeps = ["InverseFunctions"] + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + +[[deps.ComputationalResources]] +git-tree-sha1 = "52cb3ec90e8a8bea0e62e275ba577ad0f74821f7" +uuid = "ed09eef8-17a6-5b46-8889-db040fac31e3" +version = "0.3.2" + [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] git-tree-sha1 = "ea32b83ca4fefa1768dc84e504cc0a94fb1ab8d1" @@ -249,11 +397,23 @@ weakdeps = ["IntervalSets", "LinearAlgebra", "StaticArrays"] ConstructionBaseLinearAlgebraExt = "LinearAlgebra" ConstructionBaseStaticArraysExt = "StaticArrays" +[[deps.ContextVariablesX]] +deps = ["Compat", "Logging", "UUIDs"] +git-tree-sha1 = "25cc3803f1030ab855e383129dcd3dc294e322cc" +uuid = "6add18c4-b38d-439d-96f6-d6bc489c04c5" +version = "0.1.3" + [[deps.Contour]] git-tree-sha1 = "439e35b0b36e2e5881738abc8857bd92ad6ff9a8" uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" version = "0.6.3" +[[deps.CoupledFields]] +deps = ["LinearAlgebra", "Statistics", "StatsBase"] +git-tree-sha1 = "6c9671364c68c1158ac2524ac881536195b7e7bc" +uuid = "7ad07ef1-bdf2-5661-9d2b-286fd4296dac" +version = "0.2.0" + [[deps.Crayons]] git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" @@ -286,17 +446,28 @@ deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" version = "1.11.0" +[[deps.Dbus_jll]] +deps = ["Artifacts", "Expat_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "fc173b380865f70627d7dd1190dc2fce6cc105af" +uuid = "ee1fde0b-3d02-5ea6-8484-8dfef6360eab" +version = "1.14.10+0" + [[deps.DecisionTree]] deps = ["AbstractTrees", "DelimitedFiles", "LinearAlgebra", "Random", "ScikitLearnBase", "Statistics"] git-tree-sha1 = "526ca14aaaf2d5a0e242f3a8a7966eb9065d7d78" uuid = "7806a523-6efd-50cb-b5f6-3fa6f1930dbb" version = "0.12.4" +[[deps.DefineSingletons]] +git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c" +uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" +version = "0.1.2" + [[deps.DelaunayTriangulation]] -deps = ["AdaptivePredicates", "EnumX", "ExactPredicates", "PrecompileTools", "Random"] -git-tree-sha1 = "89df54fbe66e5872d91d8c2cd3a375f660c3fd64" +deps = ["AdaptivePredicates", "EnumX", "ExactPredicates", "Random"] +git-tree-sha1 = "e1371a23fd9816080c828d0ce04373857fe73d33" uuid = "927a84f5-c5f4-47a5-9785-b46e178433df" -version = "1.6.1" +version = "1.6.3" [[deps.DelimitedFiles]] deps = ["Mmap"] @@ -304,6 +475,17 @@ git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" version = "1.9.1" +[[deps.Distances]] +deps = ["LinearAlgebra", "Statistics", "StatsAPI"] +git-tree-sha1 = "c7e3a542b999843086e2f29dac96a618c105be1d" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.10.12" +weakdeps = ["ChainRulesCore", "SparseArrays"] + + [deps.Distances.extensions] + DistancesChainRulesCoreExt = "ChainRulesCore" + DistancesSparseArraysExt = "SparseArrays" + [[deps.Distributed]] deps = ["Random", "Serialization", "Sockets"] uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" @@ -311,9 +493,9 @@ version = "1.11.0" [[deps.Distributions]] deps = ["AliasTables", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] -git-tree-sha1 = "d7477ecdafb813ddee2ae727afa94e9dcb5f3fb0" +git-tree-sha1 = "3101c32aab536e7a27b1763c0797dba151b899ad" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.112" +version = "0.25.113" [deps.Distributions.extensions] DistributionsChainRulesCoreExt = "ChainRulesCore" @@ -342,11 +524,23 @@ git-tree-sha1 = "e3290f2d49e661fbd94046d7e3726ffcb2d41053" uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" version = "2.2.4+0" +[[deps.EarlyStopping]] +deps = ["Dates", "Statistics"] +git-tree-sha1 = "98fdf08b707aaf69f524a6cd0a67858cefe0cfb6" +uuid = "792122b4-ca99-40de-a6bc-6742525f08b6" +version = "0.3.0" + [[deps.EnumX]] git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" version = "1.0.4" +[[deps.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+0" + [[deps.ExactPredicates]] deps = ["IntervalArithmetic", "Random", "StaticArrays"] git-tree-sha1 = "b3f2ff58735b5f024c392fde763f29b057e4b025" @@ -365,11 +559,22 @@ git-tree-sha1 = "1c6317308b9dc757616f0b5cb379db10494443a7" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" version = "2.6.2+0" +[[deps.ExprTools]] +git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" +uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" +version = "0.1.10" + [[deps.Extents]] git-tree-sha1 = "81023caa0021a41712685887db1fc03db26f41f5" uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" version = "0.1.4" +[[deps.FFMPEG]] +deps = ["FFMPEG_jll"] +git-tree-sha1 = "53ebe7511fa11d33bec688a9178fac4e49eeee00" +uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" +version = "0.4.2" + [[deps.FFMPEG_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" @@ -388,6 +593,18 @@ git-tree-sha1 = "4d81ed14783ec49ce9f2e168208a12ce1815aa25" uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" version = "3.3.10+1" +[[deps.FLoops]] +deps = ["BangBang", "Compat", "FLoopsBase", "InitialValues", "JuliaVariables", "MLStyle", "Serialization", "Setfield", "Transducers"] +git-tree-sha1 = "0a2e5873e9a5f54abb06418d57a8df689336a660" +uuid = "cc61a311-1640-44b5-9fba-1b764f453329" +version = "0.2.2" + +[[deps.FLoopsBase]] +deps = ["ContextVariablesX"] +git-tree-sha1 = "656f7a6859be8673bf1f35da5670246b923964f7" +uuid = "b9860ae5-e623-471e-878b-f6a53c775ea6" +version = "0.1.1" + [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] git-tree-sha1 = "62ca0547a14c57e98154423419d8a342dca75ca9" @@ -458,9 +675,9 @@ version = "2.13.2+0" [[deps.FreeTypeAbstraction]] deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"] -git-tree-sha1 = "2493cdfd0740015955a8e46de4ef28f49460d8bc" +git-tree-sha1 = "d52e255138ac21be31fa633200b65e4e71d26802" uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" -version = "0.10.3" +version = "0.10.6" [[deps.FriBidi_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -479,6 +696,36 @@ deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" version = "1.11.0" +[[deps.GLFW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll", "libdecor_jll", "xkbcommon_jll"] +git-tree-sha1 = "532f9126ad901533af1d4f5c198867227a7bb077" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.4.0+1" + +[[deps.GPUArraysCore]] +deps = ["Adapt"] +git-tree-sha1 = "ec632f177c0d990e64d955ccc1b8c04c485a0950" +uuid = "46192b85-c4d5-4398-a991-12ede77f4527" +version = "0.1.6" + +[[deps.GR]] +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Preferences", "Printf", "Qt6Wayland_jll", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "p7zip_jll"] +git-tree-sha1 = "ee28ddcd5517d54e417182fec3886e7412d3926f" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.73.8" + +[[deps.GR_jll]] +deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "f31929b9e67066bee48eec8b03c0df47d31a74b3" +uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" +version = "0.73.8+0" + +[[deps.Gadfly]] +deps = ["Base64", "CategoricalArrays", "Colors", "Compose", "Contour", "CoupledFields", "DataAPI", "DataStructures", "Dates", "Distributions", "DocStringExtensions", "Hexagons", "IndirectArrays", "IterTools", "JSON", "Juno", "KernelDensity", "LinearAlgebra", "Loess", "Measures", "Printf", "REPL", "Random", "Requires", "Showoff", "Statistics"] +git-tree-sha1 = "d546e18920e28505e9856e1dfc36cff066907c71" +uuid = "c91e804a-d5a3-530f-b6f0-dfbca275c004" +version = "1.4.0" + [[deps.GeoFormatTypes]] git-tree-sha1 = "59107c179a586f0fe667024c5eb7033e81333271" uuid = "68eda718-8dee-11e9-39e7-89f7f65f511f" @@ -486,9 +733,9 @@ version = "0.4.2" [[deps.GeoInterface]] deps = ["Extents", "GeoFormatTypes"] -git-tree-sha1 = "2f6fce56cdb8373637a6614e14a5768a88450de2" +git-tree-sha1 = "826b4fd69438d9ce4d2b19de6bc2f970f45f0f88" uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" -version = "1.3.7" +version = "1.3.8" [[deps.GeometryBasics]] deps = ["EarCut_jll", "Extents", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] @@ -502,6 +749,12 @@ git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" version = "0.21.0+0" +[[deps.Giflib_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "0224cce99284d997f6880a42ef715a37c99338d1" +uuid = "59f7168a-df46-5410-90c8-f2779963d0ec" +version = "5.2.2+0" + [[deps.Glib_jll]] deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] git-tree-sha1 = "674ff0db93fffcd11a3573986e550d66cd4fd71f" @@ -510,9 +763,9 @@ version = "2.80.5+0" [[deps.Graphics]] deps = ["Colors", "LinearAlgebra", "NaNMath"] -git-tree-sha1 = "d61890399bc535850c4bf08e4e0d3a7ad0f21cbd" +git-tree-sha1 = "a641238db938fff9b2f60d08ed9030387daf428c" uuid = "a2bd30eb-e257-5431-a919-1863eab51364" -version = "1.1.2" +version = "1.1.3" [[deps.Graphite2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -520,11 +773,17 @@ 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 = "1dc470db8b1131cfc7fb4c115de89fe391b9e780" +uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" +version = "1.12.0" + [[deps.GridLayoutBase]] deps = ["GeometryBasics", "InteractiveUtils", "Observables"] -git-tree-sha1 = "fc713f007cff99ff9e50accba6373624ddd33588" +git-tree-sha1 = "dc6bed05c15523624909b3953686c5f5ffa10adc" uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" -version = "0.11.0" +version = "0.11.1" [[deps.Grisu]] git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" @@ -551,9 +810,9 @@ version = "1.14.3+3" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "d1d712be3164d61d1fb98e7ce9bcbc6cc06b45ed" +git-tree-sha1 = "bc3f416a965ae61968c20d0ad867556367f2817d" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.10.8" +version = "1.10.9" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll"] @@ -561,6 +820,12 @@ git-tree-sha1 = "401e4f3f30f43af2c8478fc008da50096ea5240f" uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" version = "8.3.1+0" +[[deps.Hexagons]] +deps = ["Test"] +git-tree-sha1 = "de4a6f9e7c4710ced6838ca906f81905f7385fd6" +uuid = "a1b4810d-1bce-5fbd-ac56-80944d57a21f" +version = "0.2.0" + [[deps.Hiccup]] deps = ["MacroTools", "Test"] git-tree-sha1 = "6187bb2d5fcbb2007c39e7ac53308b0d371124bd" @@ -569,9 +834,9 @@ version = "0.2.2" [[deps.Hwloc_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "dd3b49277ec2bb2c6b94eb1604d4d0616016f7a6" +git-tree-sha1 = "50aedf345a709ab75872f80a2779568dc0bb461b" uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" -version = "2.11.2+0" +version = "2.11.2+1" [[deps.HypergeometricFunctions]] deps = ["LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] @@ -581,9 +846,9 @@ version = "0.3.24" [[deps.ImageAxes]] deps = ["AxisArrays", "ImageBase", "ImageCore", "Reexport", "SimpleTraits"] -git-tree-sha1 = "2e4520d67b0cef90865b3ef727594d2a58e0e1f8" +git-tree-sha1 = "e12629406c6c4442539436581041d372d69c55ba" uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac" -version = "0.6.11" +version = "0.6.12" [[deps.ImageBase]] deps = ["ImageCore", "Reexport"] @@ -593,21 +858,21 @@ version = "0.1.7" [[deps.ImageCore]] deps = ["ColorVectorSpace", "Colors", "FixedPointNumbers", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "PrecompileTools", "Reexport"] -git-tree-sha1 = "b2a7eaa169c13f5bcae8131a83bc30eff8f71be0" +git-tree-sha1 = "8c193230235bbcee22c8066b0374f63b5683c2d3" uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" -version = "0.10.2" +version = "0.10.5" [[deps.ImageIO]] -deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] -git-tree-sha1 = "437abb322a41d527c197fa800455f79d414f0a3c" +deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs", "WebP"] +git-tree-sha1 = "696144904b76e1ca433b886b4e7edd067d76cbf7" uuid = "82e4d734-157c-48bb-816b-45c225c6df19" -version = "0.6.8" +version = "0.6.9" [[deps.ImageMetadata]] deps = ["AxisArrays", "ImageAxes", "ImageBase", "ImageCore"] -git-tree-sha1 = "355e2b974f2e3212a75dfb60519de21361ad3cb7" +git-tree-sha1 = "2a81c3897be6fbcde0802a0ebe6796d0562f63ec" uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49" -version = "0.9.9" +version = "0.9.10" [[deps.Imath_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -625,6 +890,11 @@ git-tree-sha1 = "d1b1b796e47d94588b3757fe84fbf65a5ec4a80d" uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" version = "0.1.5" +[[deps.InitialValues]] +git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3" +uuid = "22cec73e-a1b8-11e9-2c92-598750a2cf9c" +version = "0.3.1" + [[deps.InlineStrings]] git-tree-sha1 = "45521d31238e87ee9f9732561bfee12d4eebd52d" uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" @@ -661,9 +931,9 @@ weakdeps = ["Unitful"] [[deps.IntervalArithmetic]] deps = ["CRlibm_jll", "LinearAlgebra", "MacroTools", "RoundingEmulator"] -git-tree-sha1 = "c59c57c36683aa17c563be6edaac888163f35285" +git-tree-sha1 = "24c095b1ec7ee58b936985d31d5df92f9b9cfebb" uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" -version = "0.22.18" +version = "0.22.19" [deps.IntervalArithmetic.extensions] IntervalArithmeticDiffRulesExt = "DiffRules" @@ -681,16 +951,22 @@ version = "0.22.18" git-tree-sha1 = "dba9ddf07f77f60450fe5d2e2beb9854d9a49bd0" uuid = "8197267c-284f-5f27-9208-e0e47529a953" version = "0.7.10" +weakdeps = ["Random", "RecipesBase", "Statistics"] [deps.IntervalSets.extensions] IntervalSetsRandomExt = "Random" IntervalSetsRecipesBaseExt = "RecipesBase" IntervalSetsStatisticsExt = "Statistics" - [deps.IntervalSets.weakdeps] - Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" - RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" - Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +[[deps.InverseFunctions]] +git-tree-sha1 = "a779299d77cd080bf77b97535acecd73e1c5e5cb" +uuid = "3587e190-3f89-42d0-90ee-14403ec27112" +version = "0.1.17" +weakdeps = ["Dates", "Test"] + + [deps.InverseFunctions.extensions] + InverseFunctionsDatesExt = "Dates" + InverseFunctionsTestExt = "Test" [[deps.InvertedIndices]] git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" @@ -713,11 +989,23 @@ git-tree-sha1 = "42d5f897009e7ff2cf88db414a389e5ed1bdd023" uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" version = "1.10.0" +[[deps.IterationControl]] +deps = ["EarlyStopping", "InteractiveUtils"] +git-tree-sha1 = "e663925ebc3d93c1150a7570d114f9ea2f664726" +uuid = "b3c1a2ee-3fec-4384-bf48-272ea71de57c" +version = "0.5.4" + [[deps.IteratorInterfaceExtensions]] git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" uuid = "82899510-4779-5014-852e-03e436cf321d" version = "1.0.0" +[[deps.JLFzf]] +deps = ["Pipe", "REPL", "Random", "fzf_jll"] +git-tree-sha1 = "39d64b09147620f5ffbf6b2d3255be3c901bec63" +uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" +version = "0.1.8" + [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] git-tree-sha1 = "be3dc50a92e5a386872a493a10050136d4703f9b" @@ -748,6 +1036,18 @@ git-tree-sha1 = "25ee0be4d43d0269027024d75a24c24d6c6e590c" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" version = "3.0.4+0" +[[deps.JuliaVariables]] +deps = ["MLStyle", "NameResolution"] +git-tree-sha1 = "49fb3cb53362ddadb4415e9b73926d6b40709e70" +uuid = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec" +version = "0.2.4" + +[[deps.Juno]] +deps = ["Base64", "Logging", "Media", "Profile"] +git-tree-sha1 = "07cb43290a840908a771552911a6274bc6c072c7" +uuid = "e5e0dc1b-0480-54bc-9374-aad01c23163d" +version = "0.8.4" + [[deps.KLU]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] git-tree-sha1 = "07649c499349dad9f08dde4243a4c597064663e9" @@ -760,6 +1060,22 @@ git-tree-sha1 = "43032da5832754f58d14a91ffbe86d5f176acda9" uuid = "f7e6163d-2fa5-5f23-b69c-1db539e41963" version = "0.2.1+0" +[[deps.KernelAbstractions]] +deps = ["Adapt", "Atomix", "InteractiveUtils", "MacroTools", "PrecompileTools", "Requires", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "e73a077abc7fe798fe940deabe30ef6c66bdde52" +uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" +version = "0.9.29" + + [deps.KernelAbstractions.extensions] + EnzymeExt = "EnzymeCore" + LinearAlgebraExt = "LinearAlgebra" + SparseArraysExt = "SparseArrays" + + [deps.KernelAbstractions.weakdeps] + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + [[deps.KernelDensity]] deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] git-tree-sha1 = "7d703202e65efa1369de1279c162b915e245eed1" @@ -772,6 +1088,30 @@ git-tree-sha1 = "170b660facf5df5de098d866564877e119141cbd" uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" version = "3.100.2+0" +[[deps.LERC_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "36bdbc52f13a7d1dcb0f3cd694e01677a515655b" +uuid = "88015f11-f218-50d7-93a8-a6af411a945d" +version = "4.0.0+0" + +[[deps.LLVM]] +deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Unicode"] +git-tree-sha1 = "d422dfd9707bec6617335dc2ea3c5172a87d5908" +uuid = "929cbde3-209d-540e-8aea-75f648917ca0" +version = "9.1.3" + + [deps.LLVM.extensions] + BFloat16sExt = "BFloat16s" + + [deps.LLVM.weakdeps] + BFloat16s = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" + +[[deps.LLVMExtra_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "05a8bd5a42309a9ec82f700876903abce1017dd3" +uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" +version = "0.0.34+0" + [[deps.LLVMOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "78211fb6cbc872f77cad3fc0b6cf647d923f4929" @@ -785,9 +1125,31 @@ uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" version = "2.10.2+1" [[deps.LaTeXStrings]] -git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +git-tree-sha1 = "dda21b8cbd6a6c40d9d02a73230f9d70fed6918c" uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" -version = "1.3.1" +version = "1.4.0" + +[[deps.Latexify]] +deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] +git-tree-sha1 = "ce5f5621cac23a86011836badfedf664a612cee4" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.5" + + [deps.Latexify.extensions] + DataFramesExt = "DataFrames" + SparseArraysExt = "SparseArrays" + SymEngineExt = "SymEngine" + + [deps.Latexify.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + 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.Lazy]] deps = ["MacroTools"] @@ -805,6 +1167,12 @@ git-tree-sha1 = "a560dd966b386ac9ae60bdd3a3d3a326062d3c3e" uuid = "8cdb02fc-e678-4876-92c5-9defec4f444e" version = "0.3.1" +[[deps.LearnAPI]] +deps = ["InteractiveUtils", "Statistics"] +git-tree-sha1 = "ec695822c1faaaa64cee32d0b21505e1977b4809" +uuid = "92ad9a40-7767-427a-9ee6-6e577f1266cb" +version = "0.1.0" + [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" @@ -842,21 +1210,27 @@ version = "3.2.2+1" [[deps.Libgcrypt_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll"] -git-tree-sha1 = "9fd170c4bbfd8b935fdc5f8b7aa33532c991a673" +git-tree-sha1 = "8be878062e0ffa2c3f67bb58a595375eda5de80b" uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" -version = "1.8.11+0" +version = "1.11.0+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"] -git-tree-sha1 = "fbb1f2bef882392312feb1ede3615ddc1e9b99ed" +git-tree-sha1 = "c6ce1e19f3aec9b59186bdf06cdf3c4fc5f5f3e6" uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" -version = "1.49.0+0" +version = "1.50.0+0" [[deps.Libiconv_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +git-tree-sha1 = "61dfdba58e585066d8bce214c5a51eaa0539f269" uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" -version = "1.17.0+0" +version = "1.17.0+1" [[deps.Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -864,6 +1238,12 @@ git-tree-sha1 = "0c4f9c4f1a50d8f35048fa0532dabbadf702f81e" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" version = "2.40.1+0" +[[deps.Libtiff_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "b404131d06f7886402758c9ce2214b636eb4d54a" +uuid = "89763e89-9b03-5906-acba-b20f662cd828" +version = "4.7.0+0" + [[deps.Libuuid_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "5ee6203157c120d79034c748a2acba45b82b8807" @@ -875,6 +1255,12 @@ deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" version = "1.11.0" +[[deps.Loess]] +deps = ["Distances", "LinearAlgebra", "Statistics", "StatsAPI"] +git-tree-sha1 = "f749e7351f120b3566e5923fefdf8e52ba5ec7f9" +uuid = "4345ca2d-374a-55d4-8d30-97f9976e7612" +version = "0.6.4" + [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] git-tree-sha1 = "a2d09619db4e765091ee5c6ffe8872849de0feea" @@ -897,9 +1283,9 @@ version = "1.11.0" [[deps.LoggingExtras]] deps = ["Dates", "Logging"] -git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" +git-tree-sha1 = "f02b56007b064fbfddb4c9cd60161b6dd0f40df3" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" -version = "1.0.3" +version = "1.1.0" [[deps.MAT]] deps = ["BufferedStreams", "CodecZlib", "HDF5", "SparseArrays"] @@ -919,6 +1305,81 @@ git-tree-sha1 = "f046ccd0c6db2832a9f639e2c669c6fe867e5f4f" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" version = "2024.2.0+0" +[[deps.MLFlowClient]] +deps = ["Dates", "FilePathsBase", "HTTP", "JSON", "ShowCases", "URIs", "UUIDs"] +git-tree-sha1 = "5cc2a5453856e79f4772269fbe6b19fcdcba391a" +uuid = "64a0f543-368b-4a9a-827a-e71edb2a0b83" +version = "0.4.7" + +[[deps.MLJ]] +deps = ["CategoricalArrays", "ComputationalResources", "Distributed", "Distributions", "LinearAlgebra", "MLJBase", "MLJEnsembles", "MLJFlow", "MLJIteration", "MLJModels", "MLJTuning", "OpenML", "Pkg", "ProgressMeter", "Random", "Reexport", "ScientificTypes", "StatisticalMeasures", "Statistics", "StatsBase", "Tables"] +git-tree-sha1 = "58d17a367ee211ade6e53f83a9cc5adf9d26f833" +uuid = "add582a8-e3ab-11e8-2d5e-e98b27df1bc7" +version = "0.20.0" + +[[deps.MLJBase]] +deps = ["CategoricalArrays", "CategoricalDistributions", "ComputationalResources", "Dates", "DelimitedFiles", "Distributed", "Distributions", "InteractiveUtils", "InvertedIndices", "LearnAPI", "LinearAlgebra", "MLJModelInterface", "Missings", "OrderedCollections", "Parameters", "PrettyTables", "ProgressMeter", "Random", "RecipesBase", "Reexport", "ScientificTypes", "Serialization", "StatisticalMeasuresBase", "StatisticalTraits", "Statistics", "StatsBase", "Tables"] +git-tree-sha1 = "6f45e12073bc2f2e73ed0473391db38c31e879c9" +uuid = "a7f614a8-145f-11e9-1d2a-a57a1082229d" +version = "1.7.0" +weakdeps = ["StatisticalMeasures"] + + [deps.MLJBase.extensions] + DefaultMeasuresExt = "StatisticalMeasures" + +[[deps.MLJDecisionTreeInterface]] +deps = ["CategoricalArrays", "DecisionTree", "MLJModelInterface", "Random", "Tables"] +git-tree-sha1 = "90ef4d3b6cacec631c57cc034e1e61b4aa0ce511" +uuid = "c6f25543-311c-4c74-83dc-3ea6d1015661" +version = "0.4.2" + +[[deps.MLJEnsembles]] +deps = ["CategoricalArrays", "CategoricalDistributions", "ComputationalResources", "Distributed", "Distributions", "MLJModelInterface", "ProgressMeter", "Random", "ScientificTypesBase", "StatisticalMeasuresBase", "StatsBase"] +git-tree-sha1 = "84a5be55a364bb6b6dc7780bbd64317ebdd3ad1e" +uuid = "50ed68f4-41fd-4504-931a-ed422449fee0" +version = "0.4.3" + +[[deps.MLJFlow]] +deps = ["MLFlowClient", "MLJBase", "MLJModelInterface"] +git-tree-sha1 = "dc0de70a794c6d4c1aa4bde8196770c6b6e6b550" +uuid = "7b7b8358-b45c-48ea-a8ef-7ca328ad328f" +version = "0.2.0" + +[[deps.MLJIteration]] +deps = ["IterationControl", "MLJBase", "Random", "Serialization"] +git-tree-sha1 = "ad16cfd261e28204847f509d1221a581286448ae" +uuid = "614be32b-d00c-4edb-bd02-1eb411ab5e55" +version = "0.6.3" + +[[deps.MLJModelInterface]] +deps = ["Random", "ScientificTypesBase", "StatisticalTraits"] +git-tree-sha1 = "ceaff6618408d0e412619321ae43b33b40c1a733" +uuid = "e80e1ace-859a-464e-9ed9-23947d8ae3ea" +version = "1.11.0" + +[[deps.MLJModels]] +deps = ["CategoricalArrays", "CategoricalDistributions", "Combinatorics", "Dates", "Distances", "Distributions", "InteractiveUtils", "LinearAlgebra", "MLJModelInterface", "Markdown", "OrderedCollections", "Parameters", "Pkg", "PrettyPrinting", "REPL", "Random", "RelocatableFolders", "ScientificTypes", "StatisticalTraits", "Statistics", "StatsBase", "Tables"] +git-tree-sha1 = "410da88e0e6ece5467293d2c76b51b7c6df7d072" +uuid = "d491faf4-2d78-11e9-2867-c94bc002c0b7" +version = "0.16.17" + +[[deps.MLJTuning]] +deps = ["ComputationalResources", "Distributed", "Distributions", "LatinHypercubeSampling", "MLJBase", "ProgressMeter", "Random", "RecipesBase", "StatisticalMeasuresBase"] +git-tree-sha1 = "38aab60b1274ce7d6da784808e3be69e585dbbf6" +uuid = "03970b2e-30c4-11ea-3135-d1576263f10f" +version = "0.8.8" + +[[deps.MLStyle]] +git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" +uuid = "d8e11817-5142-5d16-987a-aa16d5891078" +version = "0.4.17" + +[[deps.MLUtils]] +deps = ["ChainRulesCore", "Compat", "DataAPI", "DelimitedFiles", "FLoops", "NNlib", "Random", "ShowCases", "SimpleTraits", "Statistics", "StatsBase", "Tables", "Transducers"] +git-tree-sha1 = "b45738c2e3d0d402dffa32b2c1654759a2ac35a4" +uuid = "f1d291b0-491e-4a28-83b9-f70985020b54" +version = "0.4.4" + [[deps.MPICH_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] git-tree-sha1 = "7715e65c47ba3941c502bffb7f266a41a7f54423" @@ -944,16 +1405,16 @@ uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" version = "0.5.13" [[deps.Makie]] -deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "Dates", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Format", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageBase", "ImageIO", "InteractiveUtils", "Interpolations", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Scratch", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun", "Unitful"] -git-tree-sha1 = "3df66da15ba7b37b34f6557b7e1c95a3ff5c670b" +deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "Dates", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Format", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageBase", "ImageIO", "InteractiveUtils", "Interpolations", "IntervalSets", "InverseFunctions", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Scratch", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun", "Unitful"] +git-tree-sha1 = "be3051d08b78206fb5e688e8d70c9e84d0264117" uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" -version = "0.21.14" +version = "0.21.18" [[deps.MakieCore]] deps = ["ColorTypes", "GeometryBasics", "IntervalSets", "Observables"] -git-tree-sha1 = "4604f03e5b057e8e62a95a44929cafc9585b0fe9" +git-tree-sha1 = "9019b391d7d086e841cbeadc13511224bd029ab3" uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" -version = "0.8.9" +version = "0.8.12" [[deps.MappedArrays]] git-tree-sha1 = "2dab0221fe2b0f2cb6754eaa743cc266339f527e" @@ -967,9 +1428,9 @@ version = "1.11.0" [[deps.MathTeXEngine]] deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "UnicodeFun"] -git-tree-sha1 = "e1641f32ae592e415e3dbae7f4a188b5316d4b62" +git-tree-sha1 = "f45c8916e8385976e1ccd055c9874560c257ab13" uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" -version = "0.6.1" +version = "0.6.2" [[deps.MatrixDepot]] deps = ["ChannelBuffers", "DataFrames", "LinearAlgebra", "MAT", "Markdown", "Mmap", "Scratch", "Serialization", "SparseArrays"] @@ -988,6 +1449,23 @@ deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" version = "2.28.6+0" +[[deps.Measures]] +git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.2" + +[[deps.Media]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "75a54abd10709c01f1b86b84ec225d26e840ed58" +uuid = "e89f7d12-3494-54d1-8411-f7d8b9ae1f27" +version = "0.5.0" + +[[deps.MicroCollections]] +deps = ["Accessors", "BangBang", "InitialValues"] +git-tree-sha1 = "44d32db644e84c75dab479f1bc15ee76a1a3618f" +uuid = "128add7d-3638-4c79-886c-908ea0c25c34" +version = "0.2.0" + [[deps.MicrosoftMPI_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "f12a29c4400ba812841c6ace3f4efbb6dbb3ba01" @@ -1004,6 +1482,12 @@ version = "1.2.0" uuid = "a63ad114-7e13-5084-954f-fe012c677804" version = "1.11.0" +[[deps.Mocking]] +deps = ["Compat", "ExprTools"] +git-tree-sha1 = "2c140d60d7cb82badf06d8783800d0bcd1a7daa2" +uuid = "78c3b35d-d492-501b-9361-3d52fe80e533" +version = "0.8.1" + [[deps.MosaicViews]] deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] git-tree-sha1 = "7b86a5d4d70a9f5cdf2dacb3cbe6d251d1a61dbe" @@ -1014,6 +1498,12 @@ version = "0.3.4" uuid = "14a3606d-f60d-562e-9121-12d972cd8159" version = "2023.12.12" +[[deps.MultivariateStats]] +deps = ["Arpack", "Distributions", "LinearAlgebra", "SparseArrays", "Statistics", "StatsAPI", "StatsBase"] +git-tree-sha1 = "816620e3aac93e5b5359e4fdaf23ca4525b00ddf" +uuid = "6f286f6a-111f-5878-ab1e-185364afe411" +version = "0.10.3" + [[deps.Mustache]] deps = ["Printf", "Tables"] git-tree-sha1 = "3b2db451a872b20519ebb0cec759d3d81a1c6bcb" @@ -1026,18 +1516,62 @@ git-tree-sha1 = "7295d849103ac4fcbe3b2e439f229c5cc77b9b69" uuid = "a975b10e-0019-58db-a62f-e48ff68538c9" version = "1.0.2" +[[deps.NNlib]] +deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Random", "Statistics"] +git-tree-sha1 = "da09a1e112fd75f9af2a5229323f01b56ec96a4c" +uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" +version = "0.9.24" + + [deps.NNlib.extensions] + NNlibAMDGPUExt = "AMDGPU" + NNlibCUDACUDNNExt = ["CUDA", "cuDNN"] + NNlibCUDAExt = "CUDA" + NNlibEnzymeCoreExt = "EnzymeCore" + NNlibFFTWExt = "FFTW" + NNlibForwardDiffExt = "ForwardDiff" + + [deps.NNlib.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + 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" + +[[deps.NearestNeighbors]] +deps = ["Distances", "StaticArrays"] +git-tree-sha1 = "3cebfc94a0754cc329ebc3bab1e6c89621e791ad" +uuid = "b8a86587-4115-5ab1-83bc-aa920d37bbce" +version = "0.4.20" + [[deps.Netpbm]] deps = ["FileIO", "ImageCore", "ImageMetadata"] git-tree-sha1 = "d92b107dbb887293622df7697a2223f9f8176fcd" uuid = "f09324ee-3d7c-5217-9330-fc30815ba969" version = "1.1.1" +[[deps.NetworkLayout]] +deps = ["GeometryBasics", "LinearAlgebra", "Random", "Requires", "StaticArrays"] +git-tree-sha1 = "0c51e19351dc1eecc61bc23caaf2262e7ba71973" +uuid = "46757867-2c16-5918-afeb-47bfcb05e46a" +version = "0.4.7" +weakdeps = ["Graphs"] + + [deps.NetworkLayout.extensions] + NetworkLayoutGraphsExt = "Graphs" + [[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" @@ -1075,9 +1609,9 @@ version = "0.3.27+1" [[deps.OpenEXR]] deps = ["Colors", "FileIO", "OpenEXR_jll"] -git-tree-sha1 = "327f53360fdb54df7ecd01e96ef1983536d1e633" +git-tree-sha1 = "97db9e07fe2091882c765380ef58ec553074e9c7" uuid = "52e1d378-f018-4a11-a4be-720524705ac7" -version = "0.3.2" +version = "0.3.3" [[deps.OpenEXR_jll]] deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Zlib_jll"] @@ -1090,6 +1624,12 @@ deps = ["Artifacts", "Libdl"] uuid = "05823500-19ac-5b8b-9628-191a04bc5112" version = "0.8.1+2" +[[deps.OpenML]] +deps = ["ARFFFiles", "HTTP", "JSON", "Markdown", "Pkg", "Scratch"] +git-tree-sha1 = "63603b2b367107e87dbceda4e33c67aed17e50e0" +uuid = "8b6db2d4-7670-4922-a472-f9537c81ab66" +version = "0.3.2" + [[deps.OpenMPI_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] git-tree-sha1 = "e25c1778a98e34219a00455d6e4384e017ea9762" @@ -1144,9 +1684,9 @@ version = "0.4.3" [[deps.Packing]] deps = ["GeometryBasics"] -git-tree-sha1 = "ec3edfe723df33528e085e632414499f26650501" +git-tree-sha1 = "bc5bf2ea3d5351edf285a06b0016788a121ce92c" uuid = "19eb6ba3-879d-56ad-ad62-d5c202156566" -version = "0.5.0" +version = "0.5.1" [[deps.PaddedViews]] deps = ["OffsetArrays"] @@ -1178,6 +1718,11 @@ git-tree-sha1 = "2d8aaf8ee10df53d0dfb9b8ee44ae7c04ced2b03" uuid = "fa939f87-e72e-5be4-a000-7fc836dbe307" version = "1.3.0" +[[deps.Pipe]] +git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" +uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" +version = "1.3.0" + [[deps.Pixman_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] git-tree-sha1 = "35621f10a7531bc8fa58f74610b1bfb70a3cfc6b" @@ -1199,11 +1744,17 @@ git-tree-sha1 = "f9501cc0430a26bc3d156ae1b5b0c1b47af4d6da" uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" version = "0.3.3" +[[deps.PlotThemes]] +deps = ["PlotUtils", "Statistics"] +git-tree-sha1 = "41031ef3a1be6f5bbbf3e8073f210556daeae5ca" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "3.3.0" + [[deps.PlotUtils]] -deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] -git-tree-sha1 = "7b1a9df27f072ac4c9c7cbe5efb198489258d1f5" +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "StableRNGs", "Statistics"] +git-tree-sha1 = "3ca9a356cd2e113c420f2c13bea19f8d3fb1cb18" uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" -version = "1.4.1" +version = "1.4.3" [[deps.PlotlyBase]] deps = ["ColorSchemes", "Dates", "DelimitedFiles", "DocStringExtensions", "JSON", "LaTeXStrings", "Logging", "Parameters", "Pkg", "REPL", "Requires", "Statistics", "UUIDs"] @@ -1213,9 +1764,9 @@ version = "0.8.19" [[deps.PlotlyJS]] deps = ["Base64", "Blink", "DelimitedFiles", "JSExpr", "JSON", "Kaleido_jll", "Markdown", "Pkg", "PlotlyBase", "PlotlyKaleido", "REPL", "Reexport", "Requires", "WebIO"] -git-tree-sha1 = "f198c8a80c08987a2915156e6e6131e5d73b97f4" +git-tree-sha1 = "e415b25fdec06e57590a7d5ac8e0cf662fa317e2" uuid = "f0f68f2c-4968-5e81-91da-67840de0976a" -version = "0.18.14" +version = "0.18.15" [deps.PlotlyJS.extensions] CSVExt = "CSV" @@ -1235,6 +1786,26 @@ git-tree-sha1 = "3210de4d88af7ca5de9e26305758a59aabc48aac" uuid = "f2990250-8cf9-495f-b13a-cce12b45703c" version = "2.2.5" +[[deps.Plots]] +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "TOML", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "45470145863035bb124ca51b320ed35d071cc6c2" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "1.40.8" + + [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.PolygonOps]] git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6" uuid = "647866c9-e3ac-4575-94e7-e3d426903924" @@ -1258,6 +1829,16 @@ git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" uuid = "21216c6a-2e73-6563-6e65-726566657250" version = "1.4.3" +[[deps.PrettyPrint]] +git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" +uuid = "8162dcfd-2161-5ef2-ae6c-7681170c5f98" +version = "0.2.0" + +[[deps.PrettyPrinting]] +git-tree-sha1 = "142ee93724a9c5d04d78df7006670a93ed1b244e" +uuid = "54e16d92-306c-5ea0-a30b-337be88ac337" +version = "0.4.2" + [[deps.PrettyTables]] deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] git-tree-sha1 = "1101cd475833706e4d0e7b122218257178f48f34" @@ -1292,9 +1873,33 @@ version = "1.96.4" [[deps.QOI]] deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] -git-tree-sha1 = "18e8f4d1426e965c7b532ddd260599e1510d26ce" +git-tree-sha1 = "8b3fc30bc0390abdce15f8822c889f669baed73d" uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65" -version = "1.0.0" +version = "1.0.1" + +[[deps.Qt6Base_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] +git-tree-sha1 = "492601870742dcd38f233b23c3ec629628c1d724" +uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" +version = "6.7.1+1" + +[[deps.Qt6Declarative_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6ShaderTools_jll"] +git-tree-sha1 = "e5dd466bf2569fe08c91a2cc29c1003f4797ac3b" +uuid = "629bc702-f1f5-5709-abd5-49b8460ea067" +version = "6.7.1+2" + +[[deps.Qt6ShaderTools_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll"] +git-tree-sha1 = "1a180aeced866700d4bebc3120ea1451201f16bc" +uuid = "ce943373-25bb-56aa-8eca-768745ed7b5a" +version = "6.7.1+1" + +[[deps.Qt6Wayland_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6Declarative_jll"] +git-tree-sha1 = "729927532d48cf79f49070341e1d918a65aba6b0" +uuid = "e99dba38-086e-5de3-a5b1-6e4c66e897c3" +version = "6.7.1+1" [[deps.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] @@ -1308,6 +1913,18 @@ version = "2.11.1" [deps.QuadGK.weakdeps] Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" +[[deps.RData]] +deps = ["CategoricalArrays", "CodecZlib", "DataFrames", "Dates", "FileIO", "Requires", "TimeZones", "Unicode"] +git-tree-sha1 = "19e47a495dfb7240eb44dc6971d660f7e4244a72" +uuid = "df47a6cb-8c03-5eed-afd8-b6050d6c41da" +version = "0.8.3" + +[[deps.RDatasets]] +deps = ["CSV", "CodecZlib", "DataFrames", "FileIO", "Printf", "RData", "Reexport"] +git-tree-sha1 = "2720e6f6afb3e562ccb70a6b62f8f308ff810333" +uuid = "ce6b1742-4840-55fa-b093-852dadbb1d8b" +version = "0.7.7" + [[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "StyledStrings", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" @@ -1333,6 +1950,18 @@ weakdeps = ["FixedPointNumbers"] [deps.Ratios.extensions] RatiosFixedPointNumbersExt = "FixedPointNumbers" +[[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.Reexport]] git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" uuid = "189a3867-3050-52da-a836-e630ba90ab69" @@ -1373,9 +2002,20 @@ version = "0.7.0" [[deps.SIMD]] deps = ["PrecompileTools"] -git-tree-sha1 = "98ca7c29edd6fc79cd74c61accb7010a4e7aee33" +git-tree-sha1 = "52af86e35dd1b177d051b12681e1c581f53c281b" uuid = "fdea26ae-647d-5447-a871-4b548cad5224" -version = "3.6.0" +version = "3.7.0" + +[[deps.ScientificTypes]] +deps = ["CategoricalArrays", "ColorTypes", "Dates", "Distributions", "PrettyTables", "Reexport", "ScientificTypesBase", "StatisticalTraits", "Tables"] +git-tree-sha1 = "75ccd10ca65b939dab03b812994e571bf1e3e1da" +uuid = "321657f4-b219-11e9-178b-2701a2544e81" +version = "3.0.2" + +[[deps.ScientificTypesBase]] +git-tree-sha1 = "a8e18eb383b5ecf1b5e6fc237eb39255044fd92b" +uuid = "30f210dd-8aff-4c5f-94ba-8e64358c1161" +version = "3.0.0" [[deps.ScikitLearn]] deps = ["Compat", "Conda", "DataFrames", "Distributed", "IterTools", "LinearAlgebra", "MacroTools", "Parameters", "Printf", "PyCall", "Random", "ScikitLearnBase", "SparseArrays", "StatsBase", "VersionParsing"] @@ -1397,25 +2037,42 @@ version = "1.2.1" [[deps.SentinelArrays]] deps = ["Dates", "Random"] -git-tree-sha1 = "ff11acffdb082493657550959d4feb4b6149e73a" +git-tree-sha1 = "d0553ce4031a081cc42387a9b9c8441b7d99f32d" uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" -version = "1.4.5" +version = "1.4.7" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" version = "1.11.0" +[[deps.Setfield]] +deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] +git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" +uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" +version = "1.1.1" + [[deps.ShaderAbstractions]] deps = ["ColorTypes", "FixedPointNumbers", "GeometryBasics", "LinearAlgebra", "Observables", "StaticArrays", "StructArrays", "Tables"] git-tree-sha1 = "79123bc60c5507f035e6d1d9e563bb2971954ec8" uuid = "65257c39-d410-5151-9873-9b3e5be5013e" version = "0.4.1" +[[deps.ShapML]] +deps = ["DataFrames", "Distributed", "Random", "Statistics"] +git-tree-sha1 = "0db184b0d56a440b73bbe0586ab018cf264fa39e" +uuid = "8523bd24-6f66-414b-9e1e-b02db3916d64" +version = "0.3.2" + [[deps.SharedArrays]] deps = ["Distributed", "Mmap", "Random", "Serialization"] uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" version = "1.11.0" +[[deps.ShowCases]] +git-tree-sha1 = "7f534ad62ab2bd48591bdeac81994ea8c445e4a5" +uuid = "605ecd9f-84a6-4c9e-81e2-4798472b76a3" +version = "0.1.0" + [[deps.Showoff]] deps = ["Dates", "Grisu"] git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" @@ -1446,7 +2103,7 @@ uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47" version = "0.1.3" [[deps.SmartSolve]] -deps = ["BSON", "BenchmarkTools", "CSV", "CairoMakie", "DataFrames", "DecisionTree", "LinearAlgebra", "MKL", "MatrixDepot", "OrderedCollections", "Random", "ScikitLearn", "SparseArrays"] +deps = ["BSON", "BenchmarkTools", "CSV", "CairoMakie", "CategoricalArrays", "ColorSchemes", "DataFrames", "DecisionTree", "Gadfly", "LinearAlgebra", "MKL", "MLJ", "MLJDecisionTreeInterface", "MatrixDepot", "OrderedCollections", "PlotlyJS", "Plots", "RDatasets", "Random", "ScikitLearn", "ShapML", "SparseArrays", "StatsPlots", "TreeRecipe"] path = "../.." uuid = "4fbb3a3c-2fa1-4c19-8d57-bae8bc1e16ac" version = "0.1.0" @@ -1476,6 +2133,18 @@ 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.StableRNGs]] +deps = ["Random"] +git-tree-sha1 = "83e6cce8324d49dfaf9ef059227f91ed4441a8e5" +uuid = "860ef19b-820b-49d6-a774-d7a799459cd3" +version = "1.0.2" + [[deps.StackViews]] deps = ["OffsetArrays"] git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c" @@ -1484,9 +2153,9 @@ version = "0.1.1" [[deps.StaticArrays]] deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] -git-tree-sha1 = "eeafab08ae20c62c44c8399ccb9354a04b80db50" +git-tree-sha1 = "777657803913ffc7e8cc20f0fd04b634f871af8f" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.9.7" +version = "1.9.8" weakdeps = ["ChainRulesCore", "Statistics"] [deps.StaticArrays.extensions] @@ -1498,6 +2167,32 @@ git-tree-sha1 = "192954ef1208c7019899fbf8049e717f92959682" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" version = "1.4.3" +[[deps.StatisticalMeasures]] +deps = ["CategoricalArrays", "CategoricalDistributions", "Distributions", "LearnAPI", "LinearAlgebra", "MacroTools", "OrderedCollections", "PrecompileTools", "ScientificTypesBase", "StatisticalMeasuresBase", "Statistics", "StatsBase"] +git-tree-sha1 = "c1d4318fa41056b839dfbb3ee841f011fa6e8518" +uuid = "a19d573c-0a75-4610-95b3-7071388c7541" +version = "0.1.7" + + [deps.StatisticalMeasures.extensions] + LossFunctionsExt = "LossFunctions" + ScientificTypesExt = "ScientificTypes" + + [deps.StatisticalMeasures.weakdeps] + LossFunctions = "30fc2ffe-d236-52d8-8643-a9d8f7c094a7" + ScientificTypes = "321657f4-b219-11e9-178b-2701a2544e81" + +[[deps.StatisticalMeasuresBase]] +deps = ["CategoricalArrays", "InteractiveUtils", "MLUtils", "MacroTools", "OrderedCollections", "PrecompileTools", "ScientificTypesBase", "Statistics"] +git-tree-sha1 = "17dfb22e2e4ccc9cd59b487dce52883e0151b4d3" +uuid = "c062fc1d-0d66-479b-b6ac-8b44719de4cc" +version = "0.1.1" + +[[deps.StatisticalTraits]] +deps = ["ScientificTypesBase"] +git-tree-sha1 = "542d979f6e756f13f862aa00b224f04f9e445f11" +uuid = "64bff920-2084-43da-a3e6-9bb72801c0c9" +version = "3.4.0" + [[deps.Statistics]] deps = ["LinearAlgebra"] git-tree-sha1 = "ae3bb1eb3bba077cd276bc5cfc337cc65c3075c0" @@ -1525,14 +2220,17 @@ deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Re git-tree-sha1 = "b423576adc27097764a90e163157bcfc9acf0f46" uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" version = "1.3.2" +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.StatsPlots]] +deps = ["AbstractFFTs", "Clustering", "DataStructures", "Distributions", "Interpolations", "KernelDensity", "LinearAlgebra", "MultivariateStats", "NaNMath", "Observables", "Plots", "RecipesBase", "RecipesPipeline", "Reexport", "StatsBase", "TableOperations", "Tables", "Widgets"] +git-tree-sha1 = "3b1dcbf62e469a67f6733ae493401e53d92ff543" +uuid = "f3b207a7-027a-5e70-b257-86293d7955fd" +version = "0.15.7" [[deps.StringManipulation]] deps = ["PrecompileTools"] @@ -1545,6 +2243,7 @@ deps = ["ConstructionBase", "DataAPI", "Tables"] git-tree-sha1 = "f4dc295e983502292c4c3f951dbb4e985e35b3be" uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" version = "0.6.18" +weakdeps = ["Adapt", "GPUArraysCore", "SparseArrays", "StaticArrays"] [deps.StructArrays.extensions] StructArraysAdaptExt = "Adapt" @@ -1552,12 +2251,6 @@ version = "0.6.18" StructArraysSparseArraysExt = "SparseArrays" StructArraysStaticArraysExt = "StaticArrays" - [deps.StructArrays.weakdeps] - Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" - GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - [[deps.StyledStrings]] uuid = "f489334b-da3d-4c2e-b8f0-e476e12c162b" version = "1.11.0" @@ -1588,6 +2281,18 @@ deps = ["Dates"] uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" version = "1.0.3" +[[deps.TZJData]] +deps = ["Artifacts"] +git-tree-sha1 = "36b40607bf2bf856828690e097e1c799623b0602" +uuid = "dc5dba14-91b3-4cab-a142-028a31da12f7" +version = "1.3.0+2024b" + +[[deps.TableOperations]] +deps = ["SentinelArrays", "Tables", "Test"] +git-tree-sha1 = "e383c87cf2a1dc41fa30c093b2a19877c83e1bc1" +uuid = "ab02a1b2-a7df-11e8-156e-fb1833f50b87" +version = "1.2.0" + [[deps.TableTraits]] deps = ["IteratorInterfaceExtensions"] git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" @@ -1618,15 +2323,53 @@ version = "1.11.0" [[deps.TiffImages]] deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "SIMD", "UUIDs"] -git-tree-sha1 = "38f139cc4abf345dd4f22286ec000728d5e8e097" +git-tree-sha1 = "0248b1b2210285652fbc67fd6ced9bf0394bcfec" uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" -version = "0.10.2" +version = "0.11.1" + +[[deps.TimeZones]] +deps = ["Dates", "Downloads", "InlineStrings", "Mocking", "Printf", "Scratch", "TZJData", "Unicode", "p7zip_jll"] +git-tree-sha1 = "33c771f2157712ff4c85931186a4984efbe58934" +uuid = "f269a46b-ccf7-5d73-abea-4c690281aa53" +version = "1.19.0" +weakdeps = ["RecipesBase"] + + [deps.TimeZones.extensions] + TimeZonesRecipesBaseExt = "RecipesBase" [[deps.TranscodingStreams]] git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" version = "0.11.3" +[[deps.Transducers]] +deps = ["Accessors", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "ConstructionBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "SplittablesBase", "Tables"] +git-tree-sha1 = "7deeab4ff96b85c5f72c824cae53a1398da3d1cb" +uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" +version = "0.4.84" + + [deps.Transducers.extensions] + TransducersAdaptExt = "Adapt" + TransducersBlockArraysExt = "BlockArrays" + TransducersDataFramesExt = "DataFrames" + TransducersLazyArraysExt = "LazyArrays" + TransducersOnlineStatsBaseExt = "OnlineStatsBase" + TransducersReferenceablesExt = "Referenceables" + + [deps.Transducers.weakdeps] + Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" + 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.TreeRecipe]] +deps = ["AbstractTrees", "Graphs", "NetworkLayout", "RecipesBase"] +git-tree-sha1 = "00ce95c2a39b3688ef66df5726c271bb052a5fd5" +uuid = "1fa7448c-8018-415c-9278-624f5a245816" +version = "0.2.0" + [[deps.TriplotBase]] git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" uuid = "981d1d27-644d-49a2-9326-4793e63143c3" @@ -1662,20 +2405,57 @@ deps = ["Dates", "LinearAlgebra", "Random"] git-tree-sha1 = "d95fe458f26209c66a187b1114df96fd70839efd" uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" version = "1.21.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 = "975c354fcd5f7e1ddcc1f1a23e6e091d99e99bc8" +uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" +version = "1.6.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 = "2d17fabcd17e67d7625ce9c531fb9f40b7c42ce4" +uuid = "d80eeb9a-aca5-4d75-85e5-170c8b632249" +version = "0.2.1" + +[[deps.Unzip]] +git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" +uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" +version = "0.2.0" [[deps.VersionParsing]] git-tree-sha1 = "58d6e80b4ee071f5efd07fda82cb9fbe17200868" uuid = "81def892-9a0e-5fdd-b105-ffc91e053289" version = "1.3.0" +[[deps.Vulkan_Loader_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] +git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" +uuid = "a44049a8-05dd-5a78-86c9-5fde0876e88c" +version = "1.3.243+0" + +[[deps.Wayland_jll]] +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "7558e29847e99bc3f04d6569e82d0f5c54460703" +uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" +version = "1.21.0+1" + +[[deps.Wayland_protocols_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "93f43ab61b16ddfb2fd3bb13b3ce241cafb0e6c9" +uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" +version = "1.31.0+0" + [[deps.WeakRefStrings]] deps = ["DataAPI", "InlineStrings", "Parsers"] git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23" @@ -1688,6 +2468,12 @@ git-tree-sha1 = "0eef0765186f7452e52236fa42ca8c9b3c11c6e3" uuid = "0f1e0344-ec1d-5b48-a673-e5cf874b6c29" version = "0.8.21" +[[deps.WebP]] +deps = ["CEnum", "ColorTypes", "FileIO", "FixedPointNumbers", "ImageCore", "libwebp_jll"] +git-tree-sha1 = "aa1ca3c47f119fbdae8770c29820e5e6119b83f2" +uuid = "e3aaa7dc-3e4b-44e0-be63-ffb868ccd7c1" +version = "0.1.3" + [[deps.WebSockets]] deps = ["Base64", "Dates", "HTTP", "Logging", "Sockets"] git-tree-sha1 = "4162e95e05e79922e44b9952ccbc262832e4ad07" @@ -1713,9 +2499,9 @@ version = "1.6.1" [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] -git-tree-sha1 = "1165b0443d0eca63ac1e32b8c0eb69ed2f4f8127" +git-tree-sha1 = "6a451c6f33a176150f315726eba8b92fbfdb9ae7" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.13.3+0" +version = "2.13.4+0" [[deps.XSLT_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "XML2_jll", "Zlib_jll"] @@ -1723,6 +2509,24 @@ git-tree-sha1 = "a54ee957f4c86b526460a720dbc882fa5edcbefc" uuid = "aed1982a-8fda-507f-9586-7b0439959a61" version = "1.1.41+0" +[[deps.XZ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "15e637a697345f6743674f1322beefbc5dcd5cfc" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.6.3+0" + +[[deps.Xorg_libICE_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "326b4fea307b0b39892b3e85fa451692eda8d46c" +uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" +version = "1.1.1+0" + +[[deps.Xorg_libSM_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libICE_jll"] +git-tree-sha1 = "3796722887072218eabafb494a13c963209754ce" +uuid = "c834827a-8449-5923-a945-d239c165b7dd" +version = "1.2.4+0" + [[deps.Xorg_libX11_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" @@ -1735,6 +2539,12 @@ 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" @@ -1747,6 +2557,30 @@ git-tree-sha1 = "d2d1a5c49fae4ba39983f63de6afcbea47194e85" uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" version = "1.3.6+0" +[[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", "Xorg_libX11_jll"] git-tree-sha1 = "47e45cd78224c53109495b3e324df0c37bb61fbe" @@ -1765,6 +2599,60 @@ git-tree-sha1 = "bcd466676fef0878338c61e655629fa7bbc69d8e" uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" version = "1.17.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_cursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] +git-tree-sha1 = "04341cb870f29dcd5e39055f895c39d016e18ccd" +uuid = "e920d4aa-a673-5f3a-b3d7-f755a4d47c43" +version = "0.1.4+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" @@ -1776,6 +2664,30 @@ deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" version = "1.2.13+1" +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "555d1076590a6cc2fdee2ef1469451f872d8b41b" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.6+1" + +[[deps.eudev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "gperf_jll"] +git-tree-sha1 = "431b678a28ebb559d224c0b6b6d01afce87c51ba" +uuid = "35ca27e7-8b34-5b7f-bca9-bdc33f59eb06" +version = "3.2.9+0" + +[[deps.fzf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "936081b536ae4aa65415d869287d43ef3cb576b2" +uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" +version = "0.53.0+0" + +[[deps.gperf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3516a5630f741c9eecb3720b1ec9d8edc3ecc033" +uuid = "1a1c6b14-54f6-533d-8383-74cd7377aa70" +version = "3.1.1+0" + [[deps.isoband_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "51b5eeb3f98367157a7a12a1fb0aa5328946c03c" @@ -1805,12 +2717,30 @@ deps = ["Artifacts", "Libdl"] uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" version = "5.11.0+0" +[[deps.libdecor_jll]] +deps = ["Artifacts", "Dbus_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pango_jll", "Wayland_jll", "xkbcommon_jll"] +git-tree-sha1 = "9bf7903af251d2050b467f76bdbe57ce541f7f4f" +uuid = "1183f4f0-6f2a-5f1a-908b-139f9cdfea6f" +version = "0.2.2+0" + +[[deps.libevdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "141fe65dc3efabb0b1d5ba74e91f6ad26f84cc22" +uuid = "2db6ffa8-e38f-5e21-84af-90c45d0032cc" +version = "1.11.0+0" + [[deps.libfdk_aac_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "8a22cf860a7d27e4f3498a0fe0811a7957badb38" uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" version = "2.0.3+0" +[[deps.libinput_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "eudev_jll", "libevdev_jll", "mtdev_jll"] +git-tree-sha1 = "ad50e5b90f222cfe78aa3d5183a20a12de1322ce" +uuid = "36db933b-70db-51c0-b978-0f229ee0e533" +version = "1.18.0+0" + [[deps.libpng_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] git-tree-sha1 = "b70c870239dc3d7bc094eb2d6be9b73d27bef280" @@ -1829,6 +2759,18 @@ git-tree-sha1 = "490376214c4721cdaca654041f635213c6165cb3" uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" version = "1.3.7+2" +[[deps.libwebp_jll]] +deps = ["Artifacts", "Giflib_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libglvnd_jll", "Libtiff_jll", "libpng_jll"] +git-tree-sha1 = "ccbb625a89ec6195856a50aa2b668a5c08712c94" +uuid = "c5f90fcd-3b7e-5836-afba-fc50a0988cb2" +version = "1.4.0+0" + +[[deps.mtdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "814e154bdb7be91d78b6802843f76b6ece642f11" +uuid = "009596ad-96f7-51b1-9f1b-5ce2d5e8a71e" +version = "1.1.6+0" + [[deps.nghttp2_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" @@ -1856,3 +2798,9 @@ 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 = "9c304562909ab2bab0262639bd4f444d7bc2be37" +uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" +version = "1.4.1+1" diff --git a/examples/smartlu/Project.toml b/examples/smartlu/Project.toml index 49b0ead..1fd3dd4 100644 --- a/examples/smartlu/Project.toml +++ b/examples/smartlu/Project.toml @@ -3,11 +3,18 @@ BSON = "fbb218c0-5317-5bc6-957e-2ee96dd4b1f0" BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597" +ColorSchemes = "35d6a980-a343-548e-a6ea-1d62b119f2f4" DecisionTree = "7806a523-6efd-50cb-b5f6-3fa6f1930dbb" KLU = "ef3ab10e-7fda-4108-b977-705223b18434" MKL = "33e6dc65-8f57-5167-99aa-e5a354878fb2" +MLJ = "add582a8-e3ab-11e8-2d5e-e98b27df1bc7" +MLJBase = "a7f614a8-145f-11e9-1d2a-a57a1082229d" MatrixDepot = "b51810bb-c9f3-55da-ae3c-350fc1fbce05" -PlotlyBase = "a03496cd-edff-5a9b-9e67-9cda94a718b5" -PlotlyJS = "f0f68f2c-4968-5e81-91da-67840de0976a" +Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +ShapML = "8523bd24-6f66-414b-9e1e-b02db3916d64" SmartSolve = "4fbb3a3c-2fa1-4c19-8d57-bae8bc1e16ac" +SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" SuperLU = "149cae9a-b337-42bd-ac98-00096b14e8a3" +TreeRecipe = "1fa7448c-8018-415c-9278-624f5a245816" +PlotlyJS = "f0f68f2c-4968-5e81-91da-67840de0976a" diff --git a/examples/smartlu/generate_smartlu.jl b/examples/smartlu/generate_smartlu.jl index 4096c4c..14f77fc 100644 --- a/examples/smartlu/generate_smartlu.jl +++ b/examples/smartlu/generate_smartlu.jl @@ -1,93 +1,93 @@ -# SmartSolve aims to significantly accelerate various linear -# algebra algorithms based on providing better algorithmic -# and architectural choices. -# Here, SmartSolve is used to automatically generate an -# optimized version of LU decomposition: SmartLU. - -cd(@__DIR__) -using Pkg -Pkg.activate(".") - -using SmartSolve -using LinearAlgebra -using SparseArrays -using KLU -using SuperLU -using MatrixDepot -using BenchmarkTools -using DecisionTree -using BSON - -import SmartSolve: compute_feature_values - -# OpenBLAS vs MKL -mkl = true -if mkl - using MKL -end -BLAS.get_config() - -# Define candidate algorithms -dgetrf(A::Matrix) = lu(A) -dgetrf(A::Matrix) = lu(A) -dgetrf(A::SparseMatrixCSC) = lu(Matrix(A)) -dgetrf(A::SparseMatrixCSC{Bool, Int64}) = lu(Matrix(A)) # Added this Line to account for MM matrices -dgetrf(A::Symmetric) = lu(A.data) # Added symmetric MM matrix -umfpack(A::Matrix) = lu(sparse(A)) -umfpack(A::SparseMatrixCSC) = lu(A) -umfpack(A::SparseMatrixCSC{Bool, Int64}) = lu(Matrix(A)) # Added this Line to account for MM matrices -umfpack(A::Symmetric) = lu(A.data) # Added symmetric MM matrix -KLU.klu(A::Matrix) = klu(sparse(A)) # Add appropriate lines for klu and splu algorithms -KLU.klu(A::SparseMatrixCSC{Int64, Int64}) = klu(Float64.(A)) -KLU.klu(A::SparseMatrixCSC{Bool, Int64}) = klu(Float64.(A))# Added symmetric MM matrix, Float64. because of boolean -KLU.klu(A::Symmetric) = klu(Float64.(sparse(A.data))) # Added symmetric MM matrix -SuperLU.splu(A::Matrix) = splu(sparse(A)) -SuperLU.splu(A::SparseMatrixCSC{Int64, Int64}) = splu(Float64.(A)) -SuperLU.splu(A::SparseMatrixCSC{Bool, Int64}) = splu(Float64.(A)) -SuperLU.splu(A::Symmetric) = splu(Float64.(sparse(A.data))) -algs = [dgetrf, umfpack, klu, splu] - -# Define your custom matrices to be included in training -n = 2^12; -A = rand(n, n) -B = sprand(n, n, 0.3) -mats = [A, B] - -# Generate a smart version of your algorithm -alg_name = "lu" -alg_path = "smart$alg_name/" -smartsolve(alg_path, alg_name, algs; n_experiments = 3, - mats = mats, ns = [2^4, 2^8]) - -# Include the newly generated algorithm -include("$alg_path/smart$alg_name.jl") - -# Benchmark classical vs smart algorithm -n = 2^12; -benchmark_seconds = 2 # 200 -A = matrixdepot("poisson", round(Int, sqrt(n))); # nxn -println("Benchmark Time for Regular LU Decomposition!") -display(@benchmark lu($A) seconds=benchmark_seconds) -println("Benchmark Time for Smart LU Decomposition!") -display(@benchmark smartlu($A) seconds=benchmark_seconds) - -# Benchmark Backslash vs SmartBackslash (via SmartLU) -b = rand(n); -println("Benchmark Time for Backslash!") -display(@benchmark $A\$b seconds=benchmark_seconds) -println("Benchmark Time for LU Backslash!") -display(@benchmark lu($A)\$b seconds=benchmark_seconds) -println("Benchmark Time for SmartBackslash!") -display(@benchmark smartlu($A)\$b seconds=benchmark_seconds) - -# Compute errors -x = A \ b; -norm(A * x - b, 1) -x = lu(A) \ b; -norm(A * x - b, 1) -x = smartlu(A) \ b; -norm(A * x - b, 1) - -# Plot results -makeplots(alg_path, alg_name) - +# SmartSolve aims to significantly accelerate various linear +# algebra algorithms based on providing better algorithmic +# and architectural choices. +# Here, SmartSolve is used to automatically generate an +# optimized version of LU decomposition: SmartLU. + +cd(@__DIR__) +using Pkg +Pkg.activate(".") + +using SmartSolve +using LinearAlgebra +using SparseArrays +using KLU +using SuperLU +using MatrixDepot +using BenchmarkTools +using DecisionTree +using BSON +using MLJ + +import SmartSolve: compute_feature_values + +# OpenBLAS vs MKL +mkl = true +if mkl + using MKL +end +BLAS.get_config() + +# Define candidate algorithms +dgetrf(A::Matrix) = lu(A) +dgetrf(A::Matrix) = lu(A) +dgetrf(A::SparseMatrixCSC) = lu(Matrix(A)) +dgetrf(A::SparseMatrixCSC{Bool, Int64}) = lu(Matrix(A)) # Added this Line to account for MM matrices +dgetrf(A::Symmetric) = lu(A.data) # Added symmetric MM matrix +umfpack(A::Matrix) = lu(sparse(A)) +umfpack(A::SparseMatrixCSC) = lu(A) +umfpack(A::SparseMatrixCSC{Bool, Int64}) = lu(Matrix(A)) # Added this Line to account for MM matrices +umfpack(A::Symmetric) = lu(A.data) # Added symmetric MM matrix +KLU.klu(A::Matrix) = klu(sparse(A)) # Add appropriate lines for klu and splu algorithms +KLU.klu(A::SparseMatrixCSC{Int64, Int64}) = klu(Float64.(A)) +KLU.klu(A::SparseMatrixCSC{Bool, Int64}) = klu(Float64.(A))# Added symmetric MM matrix, Float64. because of boolean +KLU.klu(A::Symmetric) = klu(Float64.(sparse(A.data))) # Added symmetric MM matrix +SuperLU.splu(A::Matrix) = splu(sparse(A)) +SuperLU.splu(A::SparseMatrixCSC{Int64, Int64}) = splu(Float64.(A)) +SuperLU.splu(A::SparseMatrixCSC{Bool, Int64}) = splu(Float64.(A)) +SuperLU.splu(A::Symmetric) = splu(Float64.(sparse(A.data))) +algs = [dgetrf, umfpack, klu, splu] + +# Define your custom matrices to be included in training +n = 2^12; +A = rand(n, n) +B = sprand(n, n, 0.3) +mats = [A, B] + +# Generate a smart version of your algorithm +alg_name = "lu" +alg_path = "smart$alg_name/" +smartsolve(alg_path, alg_name, algs; n_experiments = 1, + mats = mats, ns = [2^4, 2^8]) + +# Include the newly generated algorithm +include("$alg_path/smart$alg_name.jl") + +# Benchmark classical vs smart algorithm +n = 2^12; +benchmark_seconds = 2 # 200 +A = matrixdepot("poisson", round(Int, sqrt(n))); # nxn +println("Benchmark Time for Regular LU Decomposition!") +display(@benchmark lu($A) seconds=benchmark_seconds) +println("Benchmark Time for Smart LU Decomposition!") +display(@benchmark smartlu($A) seconds=benchmark_seconds) + +# Benchmark Backslash vs SmartBackslash (via SmartLU) +b = rand(n); +println("Benchmark Time for Backslash!") +display(@benchmark $A\$b seconds=benchmark_seconds) +println("Benchmark Time for LU Backslash!") +display(@benchmark lu($A)\$b seconds=benchmark_seconds) +println("Benchmark Time for SmartBackslash!") +display(@benchmark smartlu($A)\$b seconds=benchmark_seconds) + +# Compute errors +x = A \ b; +norm(A * x - b, 1) +x = lu(A) \ b; +norm(A * x - b, 1) +x = smartlu(A) \ b; +norm(A * x - b, 1) + +# Plot results +makeplots(alg_path, alg_name) diff --git a/src/SmartDB.jl b/src/SmartDB.jl index 284f9a8..2d93ea6 100644 --- a/src/SmartDB.jl +++ b/src/SmartDB.jl @@ -1,68 +1,182 @@ -export compute_feature_values - -all_features = OrderedDict() -all_features[:length] = x -> length(x) -all_features[:n_rows] = x -> size(x, 1) -all_features[:n_cols] = x -> size(x, 2) -all_features[:rank] = x -> rank(x) -all_features[:condnumber] = x -> cond(Array(x), 2) -all_features[:sparsity] = x -> count(iszero, x) / length(x) -all_features[:isdiag] = x -> Float64(isdiag(x)) -all_features[:issymmetric] = x -> Float64(issymmetric(x)) -all_features[:ishermitian] = x -> Float64(ishermitian(x)) -all_features[:isposdef] = x -> Float64(isposdef(x)) -all_features[:istriu] = x -> Float64(istriu(x)) -all_features[:istril] = x -> Float64(istril(x)) - -function compute_feature_dict(A; features = keys(all_features)) - feature_dict = OrderedDict() - for f in features - feature_dict[f] = all_features[f](A) - end - return feature_dict -end - -function compute_feature_values(A; features = keys(all_features)) - feature_vals = Float64[] - for f in features - push!(feature_vals, all_features[f](A)) - end - return feature_vals -end - -compute_feature_values(A::SparseMatrixCSC{Int64, Int64}) = compute_feature_values(Float64.(A)) # Added compatibility fo> -compute_feature_values(A::SparseMatrixCSC{Bool, Int64}) = compute_feature_values(Float64.(A)) # Added compatibility for> -compute_feature_values(A::Symmetric) = compute_feature_values(Float64.(Matrix((A.data)))) # Added symmetric matrix for > - -function create_empty_db() - df1 = DataFrame(n_experiment = Int[], - pattern = String[]) - features = compute_feature_dict(rand(3,3)) - column_names = keys(features) - column_types = map(typeof, values(features)) - df2 = DataFrame(OrderedDict(k => T[] for (k, T) in zip(column_names, column_types))) - df3 = DataFrame(algorithm = String[], - time = Float64[], - error = Float64[]) - return hcat(df1, df2, df3) -end - -function get_smart_choices(db, mat_patterns, ns) - db_opt = create_empty_db() - for mat_pattern in mat_patterns - for n in ns - if n == 0 - db_filtered = @views db[(db.pattern .== mat_pattern), :] - else - db_filtered = @views db[(db.pattern .== mat_pattern) .&& - (db.n_cols .== n), :] - end - if length(db_filtered.time) > 0 - min_time = minimum(db_filtered.time) - min_time_row = db_filtered[db_filtered.time .== min_time, :][1, :] - push!(db_opt, min_time_row) - end - end - end - return db_opt -end +export compute_feature_values +export sparsity +export condnumber + +sparsity(x) = count(iszero, x) / length(x) +condnumber(x::Matrix) = cond(x, 2) +condnumber(x::SparseMatrixCSC) = cond(Array(x), 2) +condnumber(x::Tridiagonal) = cond(Matrix(x), 2) + +all_features = OrderedDict() +all_features[:length] = x -> length(x) +all_features[:n_rows] = x -> size(x, 1) +all_features[:n_cols] = x -> size(x, 2) +all_features[:rank] = x -> rank(x) +all_features[:condnumber] = x -> condnumber(x) +all_features[:sparsity] = x -> sparsity(x) +all_features[:isdiag] = x -> Float64(isdiag(x)) +all_features[:issymmetric] = x -> Float64(issymmetric(x)) +all_features[:ishermitian] = x -> Float64(ishermitian(x)) +all_features[:isposdef] = x -> Float64(isposdef(x)) +all_features[:istriu] = x -> Float64(istriu(x)) +all_features[:istril] = x -> Float64(istril(x)) + +function compute_feature_dict(A; features = keys(all_features)) + feature_dict = OrderedDict() + for f in features + feature_dict[f] = all_features[f](A) + end + return feature_dict +end + +function compute_feature_values(A; features = keys(all_features)) + feature_vals = Float64[] + for f in features + push!(feature_vals, all_features[f](A)) + end + return feature_vals +end + +compute_feature_values(A::SparseMatrixCSC{Int64, Int64}) = compute_feature_values(Float64.(A)) # Added compatibility fo> +compute_feature_values(A::SparseMatrixCSC{Bool, Int64}) = compute_feature_values(Float64.(A)) # Added compatibility for> +compute_feature_values(A::Symmetric) = compute_feature_values(Float64.(Matrix((A.data)))) # Added symmetric matrix for > + +function create_empty_db() + df1 = DataFrame(n_experiment = Int[], + pattern = String[]) + features = compute_feature_dict(rand(3,3)) + column_names = keys(features) + column_types = map(typeof, values(features)) + df2 = DataFrame(OrderedDict(k => T[] for (k, T) in zip(column_names, column_types))) + df3 = DataFrame(algorithm = String[], + time = Float64[], + error = Float64[]) + return hcat(df1, df2, df3) +end + +function get_smart_choices(db, mat_patterns, ns) + db_opt = create_empty_db() + for mat_pattern in mat_patterns + for n in ns + if n == 0 + db_filtered = @views db[(db.pattern .== mat_pattern), :] + else + db_filtered = @views db[(db.pattern .== mat_pattern) .&& + (db.n_cols .== n), :] + end + if length(db_filtered.time) > 0 + min_time = minimum(db_filtered.time) + min_time_row = db_filtered[db_filtered.time .== min_time, :][1, :] + push!(db_opt, min_time_row) + end + end + end + return db_opt +end + +#Smart Features: computes the contribution of each feature to reduce the error using Shapley values. +function smartfeatures(df, alg_path) + DecisionTreeClassifier = @load DecisionTreeClassifier pkg=DecisionTree verbosity=0 + model = DecisionTreeClassifier(max_depth=3, min_samples_split=3) + fs = [:length, :n_rows, :n_cols, :rank, :condnumber, + :sparsity, :isdiag, :issymmetric, :ishermitian, :isposdef, + :istriu, :istril] + fs_vals = [df[:, f] for f in fs] + X = NamedTuple{Tuple(fs)}(fs_vals) + y = CategoricalArray(String.(df[:, :pattern])) + mach = machine(model, X, y) |> MLJ.fit! + + #Compute feature time-averaged importance + fi = feature_importances(mach) + + fil = map(x->x[1], fi) + fiv = map(x->x[2], fi) + + nn = count(x -> x != 0, fiv) + fi = fi[1:nn] + fil = fil[1:nn] + fiv = fiv[1:nn] + println("FIs:", fi) + + ft = zeros(nn) + c = zeros(nn) + global A = [] + for i in 1:size(df, 1) + p = df[i, :pattern] + n = df[i, :n_rows] + if p in ["blur", "poisson"] + n′ = round(Int, sqrt(n)) + n′′ = n′^2 + else + n′ = n + n′′ = n + end + println("$p, $n") + try + A = convert.(Float64, matrixdepot(p, n′)) + if size(A) != (n′′, n′′) + throw("Check matrix size: $(p), ($n, $n) vs $(size(A))") + end + for j in 1:nn + ft[j] += @elapsed @eval $(Symbol(fil[j]))(A) + c[j] += 1 + end + catch e + println(e) + end + GC.gc() + end + ftm = ft ./ c + + score = fiv ./ ftm + perm = reverse(sortperm(score)) + fil = fil[perm] + ftm = ftm[perm] + + println(fil) + + # Plot + Plots.plot() + shapes = [:circle, :rect, :diamond, :star5, :utriangle] + colors = palette(:tab10) + for i in 1:nn + Plots.plot!( [fiv[i]], + [ftm[i]], + zcolor=[score[i]], + color=:viridis, + seriestype = :scatter, + thickness_scaling = 1.35, + markersize = 7, + markerstrokewidth = 0, + markershapes = shapes[i], + label=String(fil[i])) + end + Plots.plot!(dpi = 300, + label = "", + legend=:topleft, + yscale=:log10, + xlabel = "MLJ-based feature importance", + ylabel = "Time [s]", + clims =(minimum(score), maximum(score)), + colorbar_title = "Importance-time rate") + Plots.savefig("$alg_path/featurebench.png") + + #Forward selection algorithm + i = 1 + e = 100 + t = 100 + e_tol, t_tol = 0, .002 + while i < length(fil) && (e > e_tol || t > t_tol) + curr_fil = fil[1:i] + + features_train, labels_train, + features_test, labels_test = create_datasets(df, curr_fil) + smartmodel = train_smart_choice_model(features_train, labels_train, curr_fil) + e = 1 - accuracy(test_smart_choice_model(smartmodel, features_test, labels_test, curr_fil)) + t = sum(ftm[1:i]) + println("features: $curr_fil, error: $e, time: $t") + i += 1 + end + + return fil[1:i-1] +end diff --git a/src/SmartDiscovery.jl b/src/SmartDiscovery.jl index 32d787f..b7400e8 100644 --- a/src/SmartDiscovery.jl +++ b/src/SmartDiscovery.jl @@ -1,158 +1,164 @@ -# SmartDiscovery - -export smartsolve - -function smartsolve(alg_path, alg_name, algs; - n_experiments = 1, - ns = [2^4, 2^8, 2^12], - mats = [], - include_singular = false, - error_calc = nothing) - - # Create result directory - run(`mkdir -p $alg_path`) - - # Save algorithms - BSON.@save "$alg_path/algs-$alg_name.bson" algs - - # Define matrices - max_entries = 10_000 - bi_patterns = mdlist(:builtin) - sp_patterns = mdlist(sp(:) & @pred(n*m < max_entries)) - mm_patterns = mdlist(mm(:) & @pred(n*m < max_entries)) - - filter!(x -> x != "parallax", bi_patterns) - filter!(x -> x != "invhilb", bi_patterns) - filter!(x -> x != "neumann", bi_patterns) # Created out of memory exception - filter!(x -> x != "clement", bi_patterns) - filter!(x -> x != "wathen", bi_patterns) - - # Smart discovery: generate smart discovery database - fulldb = create_empty_db() - for i in 1:n_experiments - index = 1 - index = discover!(i, fulldb, bi_patterns, algs, true, error_calc, index; ns = ns) - index = discover!(i, fulldb, sp_patterns, algs, include_singular, error_calc, index) - index = discover!(i, fulldb, mm_patterns, algs, include_singular, error_calc, index) - end - CSV.write("$alg_path/fulldb-$alg_name.csv", fulldb) - - # Smart DB: filter complete DB for faster algorithmic options - mat_patterns = vcat(bi_patterns, sp_patterns, mm_patterns) - push!(ns, 0) - smartdb = get_smart_choices(fulldb, mat_patterns, ns) - CSV.write("$alg_path/smartdb-$alg_name.csv", smartdb) - - # Smart model - features = [:length, :sparsity, :condnumber] - features_train, labels_train, - features_test, labels_test = create_datasets(smartdb, features) - smartmodel = train_smart_choice_model(features_train, labels_train) - BSON.@save "$alg_path/features-$alg_name.bson" features - BSON.@save "$alg_path/smartmodel-$alg_name.bson" smartmodel - - test_smart_choice_model(smartmodel, features_test, labels_test) - print_tree(smartmodel, 5) # Print of the tree, to a depth of 5 nodes - - # Smart algorithm - smartalg = """ - features_$alg_name = BSON.load("$alg_path/features-$alg_name.bson")[:features] - smartmodel_$alg_name = BSON.load("$alg_path/smartmodel-$alg_name.bson")[:smartmodel] - algs_$alg_name = BSON.load("$alg_path/algs-$alg_name.bson")[:algs] - function smart$alg_name(A; features = features_$alg_name, - smartmodel = smartmodel_$alg_name, - algs = algs_$alg_name) - fs = compute_feature_values(A; features = features) - alg_name = apply_tree(smartmodel, fs) - return @eval \$(Symbol(alg_name))(A) - end""" - - open("$alg_path/smart$alg_name.jl", "w") do file - write(file, smartalg) - end - - return fulldb, smartdb, smartmodel, smartalg -end - - -function generate_matrix(mat_pattern; n = 0) - if n == 0 - return matrixdepot(mat_pattern) - else - if mat_pattern in ["blur", "poisson", "binomial"] - n′ = round(Int, sqrt(n)) - n′′ = n′^2 - else - n′ = n - n′′ = n - end - A = [] - try - A = matrixdepot(mat_pattern, n′) - if size(A) != (n′′, n′′) - throw("Check matrix size: $(mat_pattern), ($n, $n) vs $(size(A))") - end - catch e - println("Error: $(mat_pattern), $n", typeof(e)) - end - end - return convert.(Float64, A) -end - - -function discover!(i, db, mat_patterns, algs, include_singular, error_calc, index; ns = [0]) - for (j, mat_pattern) in enumerate(mat_patterns) - for n in ns - if n == 0 - println("Experiment:$i, Subexperiment:$index, pattern:$mat_pattern.") - else - println("Experiment:$i, Subexperiment:$index, pattern:$mat_pattern, no. of cols or rows:$n.") - end - index += 1 - flush(stdout) - A = generate_matrix(mat_pattern; n = n) - features = compute_feature_values(A) - if !include_singular && features[4] < min(size(A, 1), size(A, 2)) - println("Singular Matrix!") - flush(stdout) # Possibly fix in the future - continue - end - # Generate vector b (required to measure error) - b = A * ones(size(A, 2)) - # Evaluate different algorithms - for alg in algs - alg_name = String(Symbol(alg)) - if alg_name != "umfpack" && size(A, 1) != size(A, 2) # if the algorithm isn't umfpack, then don't run the algorithm if the matrix isn't square - continue - end - try - t = @elapsed res = alg(A) - if error_calc == nothing - err = default_error_calc(alg, A) - else - err = error_calc(alg, A) - end - row = vcat([i, mat_pattern], - features, - [alg_name, t, err]) - push!(db, row) - catch e - if n == 0 - println("Error: $(mat_pattern), $(size(A)), $alg_name", typeof(e)) - else - println("Error: $(mat_pattern), $n, $alg_name", typeof(e)) - end - end - GC.gc() - end - end - end - return index -end - -function default_error_calc(alg, A) - n = size(A, 1) - b = rand(n, 1) - x = alg(A) \ b - return norm((b-A*x)/(norm(b)+norm(A)*norm(x))) -end +# SmartDiscovery + +export smartsolve + +function smartsolve(alg_path, alg_name, algs; + n_experiments = 1, + ns = [2^4, 2^8, 2^12], + mats = [], + include_singular = false, + error_calc = nothing) + + # Create result directory + mkpath("$alg_path") + + # Save algorithms + BSON.@save "$alg_path/algs-$alg_name.bson" algs + + # Define matrices + max_entries = 10_000 + bi_patterns = mdlist(:builtin) + sp_patterns = mdlist(sp(:) & @pred(n*m < max_entries)) + mm_patterns = mdlist(mm(:) & @pred(n*m < max_entries)) + + filter!(x -> x != "parallax", bi_patterns) + filter!(x -> x != "invhilb", bi_patterns) + filter!(x -> x != "neumann", bi_patterns) # Created out of memory exception + filter!(x -> x != "clement", bi_patterns) + filter!(x -> x != "wathen", bi_patterns) + filter!(x -> x != "tridiag", bi_patterns) + + # Smart discovery: generate smart discovery database + fulldb = create_empty_db() + for i in 1:n_experiments + index = 1 + index = discover!(i, fulldb, bi_patterns, algs, true, error_calc, index; ns = ns) + index = discover!(i, fulldb, sp_patterns, algs, include_singular, error_calc, index) + index = discover!(i, fulldb, mm_patterns, algs, include_singular, error_calc, index) + end + CSV.write("$alg_path/fulldb-$alg_name.csv", fulldb) + + # Smart DB: filter complete DB for faster algorithmic options + mat_patterns = vcat(bi_patterns, sp_patterns, mm_patterns) + push!(ns, 0) + smartdb = get_smart_choices(fulldb, mat_patterns, ns) + CSV.write("$alg_path/smartdb-$alg_name.csv", smartdb) + + # Smart model + features = smartfeatures(smartdb, alg_path) + features_train, labels_train, + features_test, labels_test = create_datasets(smartdb, features) + smartmodel = train_smart_choice_model(features_train, labels_train, features) + BSON.@save "$alg_path/features-$alg_name.bson" features + BSON.@save "$alg_path/smartmodel-$alg_name.bson" smartmodel + + test_smart_choice_model(smartmodel, features_test, labels_test, features) + # print_tree(smartmodel, 5) # Print of the tree, to a depth of 5 nodes + + # Smart algorithm + smartalg = """ + features_$alg_name = BSON.load("$alg_path/features-$alg_name.bson")[:features] + smartmodel_$alg_name = BSON.load("$alg_path/smartmodel-$alg_name.bson")[:smartmodel] + algs_$alg_name = BSON.load("$alg_path/algs-$alg_name.bson")[:algs] + function smart$alg_name(A; features = features_$alg_name, + smartmodel = smartmodel_$alg_name, + algs = algs_$alg_name) + # fs = compute_feature_values(A; features = features) + # alg_name = apply_tree(smartmodel, fs) + # return @eval \$(Symbol(alg_name))(A) + fs_vals = compute_feature_values(A; features = features) + fs_vals = [[f] for f in fs_vals] + fs = NamedTuple{Tuple(features)}(Array(fs_vals)) + alg_name = first(MLJ.predict_mode(smartmodel, fs)) + return @eval \$(Symbol(alg_name))(A) + end""" + + open("$alg_path/smart$alg_name.jl", "w") do file + write(file, smartalg) + end + + return fulldb, smartdb, smartmodel, smartalg +end + + +function generate_matrix(mat_pattern; n = 0) + if n == 0 + return matrixdepot(mat_pattern) + else + if mat_pattern in ["blur", "poisson", "binomial"] + n′ = round(Int, sqrt(n)) + n′′ = n′^2 + else + n′ = n + n′′ = n + end + A = [] + try + A = matrixdepot(mat_pattern, n′) + if size(A) != (n′′, n′′) + throw("Check matrix size: $(mat_pattern), ($n, $n) vs $(size(A))") + end + catch e + println("Error: $(mat_pattern), $n", typeof(e)) + end + end + return convert.(Float64, A) +end + + +function discover!(i, db, mat_patterns, algs, include_singular, error_calc, index; ns = [0]) + for (j, mat_pattern) in enumerate(mat_patterns) + for n in ns + if n == 0 + println("Experiment:$i, Subexperiment:$index, pattern:$mat_pattern.") + else + println("Experiment:$i, Subexperiment:$index, pattern:$mat_pattern, no. of cols or rows:$n.") + end + index += 1 + flush(stdout) + A = generate_matrix(mat_pattern; n = n) + features = compute_feature_values(A) + if !include_singular && features[4] < min(size(A, 1), size(A, 2)) + println("Singular Matrix!") + flush(stdout) # Possibly fix in the future + continue + end + # Generate vector b (required to measure error) + b = A * ones(size(A, 2)) + # Evaluate different algorithms + for alg in algs + alg_name = String(Symbol(alg)) + if alg_name != "umfpack" && size(A, 1) != size(A, 2) # if the algorithm isn't umfpack, then don't run the algorithm if the matrix isn't square + continue + end + try + t = @elapsed res = alg(A) + if error_calc == nothing + err = default_error_calc(alg, A) + else + err = error_calc(alg, A) + end + row = vcat([i, mat_pattern], + features, + [alg_name, t, err]) + push!(db, row) + catch e + if n == 0 + println("Error: $(mat_pattern), $(size(A)), $alg_name", typeof(e)) + else + println("Error: $(mat_pattern), $n, $alg_name", typeof(e)) + end + end + GC.gc() + end + end + end + return index +end + +function default_error_calc(alg, A) + n = size(A, 1) + b = rand(n, 1) + x = alg(A) \ b + return norm((b-A*x)/(norm(b)+norm(A)*norm(x))) +end diff --git a/src/SmartModel.jl b/src/SmartModel.jl index 21d52af..cf1faf9 100644 --- a/src/SmartModel.jl +++ b/src/SmartModel.jl @@ -3,35 +3,53 @@ function create_datasets(db, features) # Split dataset into training and test n_db = size(db, 1) - n_train = round(Int, n_db * 0.8) + n_train = round(Int, n_db * 0.5) n_test = n_db - n_train inds = randperm(n_db) labels = [:algorithm] - features_train = @views Matrix(db[inds[1:n_train], features]) + # features_train = @views Matrix(db[inds[1:n_train], features]) + # labels_train = @views vec(Matrix(db[inds[1:n_train], labels])) + # features_test = @views Matrix(db[inds[1:n_test], features]) + # labels_test = @views vec(Matrix(db[inds[1:n_test], labels])) + features_train = @views db[inds[1:n_train], features] labels_train = @views vec(Matrix(db[inds[1:n_train], labels])) - features_test = @views Matrix(db[inds[1:n_test], features]) + features_test = @views db[inds[1:n_test], features] labels_test = @views vec(Matrix(db[inds[1:n_test], labels])) return features_train, labels_train, features_test, labels_test end -function train_smart_choice_model(features_train, labels_train) +function train_smart_choice_model(features_train, labels_train, features) # Train full-tree classifier - n_subfeat = 0 - n_feat = size(features_train[1, :], 1) - model = build_tree(labels_train, features_train, n_subfeat, n_feat) - # Prune tree: merge leaves having >= 90% combined purity (default: 100%) + # n_subfeat = 0 + # n_feat = size(features_train[1, :], 1) + # model = build_tree(labels_train, features_train, n_subfeat, n_feat) + # # Prune tree: merge leaves having >= 90% combined purity (default: 100%) # model = prune_tree(model, 0.9) - return model + DecisionTreeClassifier = @load DecisionTreeClassifier pkg = DecisionTree verbosity=0 + model = DecisionTreeClassifier(max_depth=3, min_samples_split=3) + fs_vals = [features_train[:, f] for f in features] + X = NamedTuple{Tuple(features)}(fs_vals) + y = CategoricalArray(String.(labels_train)) + mach = machine(model, X, y) |> MLJ.fit! + return mach end -function test_smart_choice_model(model, features_test, labels_test) - # Apply learned model - apply_tree(model, features_test[1, :]) +function test_smart_choice_model(mach, features_test, labels_test, features) + # # Apply learned model + # apply_tree(model, features_test[1, :]) - # Generate confusion matrix, along with accuracy and kappa scores - preds_test = apply_tree(model, features_test) - - return DecisionTree.confusion_matrix(labels_test, preds_test) -end + # # Generate confusion matrix, along with accuracy and kappa scores + # preds_test = apply_tree(model, features_test) + # # return DecisionTree.confusion_matrix(labels_test, preds_test) + # return log_loss(labels_test, preds_test) + # features = [:length, :n_rows, :n_cols, :rank, :condnumber, + # :sparsity, :isdiag, :issymmetric, :ishermitian, :isposdef, + # :istriu, :istril] + fs_vals = [features_test[:, f] for f in features] + X = NamedTuple{Tuple(features)}(fs_vals) + y = CategoricalArray(String.(labels_test)) + yhat = predict_mode(mach, X) + return ConfusionMatrix()(yhat, y) +end diff --git a/src/SmartSolve.jl b/src/SmartSolve.jl index e5a57cf..0b6c1ab 100644 --- a/src/SmartSolve.jl +++ b/src/SmartSolve.jl @@ -1,20 +1,29 @@ -module SmartSolve - -using MatrixDepot -using LinearAlgebra -using DataFrames -using OrderedCollections -using CSV -using CairoMakie -using DecisionTree -using Random -using BenchmarkTools -using BSON -using SparseArrays - -include("SmartDiscovery.jl") -include("SmartDB.jl") -include("SmartModel.jl") -include("Utils.jl") - -end # module SmartSolve +module SmartSolve + +using MatrixDepot +using LinearAlgebra +using DataFrames +using OrderedCollections +using CSV +using CairoMakie +using DecisionTree +using PlotlyJS +using Plots +using Random +using BenchmarkTools +using BSON + +# using ShapML +using MLJ +using MLJDecisionTreeInterface +using TreeRecipe +using CategoricalArrays +using SparseArrays +using ColorSchemes + +include("SmartDiscovery.jl") +include("SmartDB.jl") +include("SmartModel.jl") +include("Utils.jl") + +end # module SmartSolve diff --git a/src/featurebenchmark.jl b/src/featurebenchmark.jl new file mode 100644 index 0000000..98cda64 --- /dev/null +++ b/src/featurebenchmark.jl @@ -0,0 +1,102 @@ +using ShapML +using RDatasets +using DataFrames +using MLJ +using CSV +using Plots +using TreeRecipe +using CategoricalArrays +using LinearAlgebra +using SparseArrays +using MatrixDepot +using ColorSchemes + + +# Load smart DB +df = CSV.read("smartdb-lu.csv", DataFrame) + +# Compute feature importances +DecisionTreeClassifier = @load DecisionTreeClassifier pkg=DecisionTree +model = DecisionTreeClassifier(max_depth=3, min_samples_split=3) +fs = [:length, :n_rows, :n_cols, :rank, :cond, + :sparsity, :isdiag, :issymmetric, :ishermitian, :isposdef, + :istriu, :istril] +fs_vals = [df[:, f] for f in fs] +X = NamedTuple{Tuple(fs)}(fs_vals) +y = CategoricalArray(String.(df[:, :pattern])) +mach = machine(model, X, y) |> fit! +fi = feature_importances(mach) +fil = String.(map(x->x[1], fi)) +fiv = map(x->x[2], fi) +nn = 4 +fi = fi[1:nn] +fil = fil[1:nn] +fiv = fiv[1:nn] + +sparsity(x) = count(iszero, x) / length(x) +condnumber(x::Matrix) = cond(A, 2) +condnumber(x::SparseMatrixCSC) = cond(Array(A), 2) + +# Compute feature times +ft = zeros(nn) +c = zeros(nn) +A = [] +for i in 1:size(df, 1) + p = df[i, :pattern] + n = df[i, :n_rows] + if p in ["blur", "poisson"] + n′ = round(Int, sqrt(n)) + n′′ = n′^2 + else + n′ = n + n′′ = n + end + println("$p, $n") + try + global A = convert.(Float64,matrixdepot(p, n′)) + if size(A) != (n′′, n′′) + throw("Check matrix size: $(p), ($n, $n) vs $(size(A))") + end + for j in 1:nn + ft[j] += @elapsed @eval $(Symbol(fil[j]))(A) + c[j] += 1 + end + catch e + println(e) + end + GC.gc() +end +ftm = ft ./ c + +# Score +score = fiv ./ ftm + +# Plot +plot() +shapes = [:circle, :rect, :diamond, :star5, :utriangle] +colors = palette(:tab10) +for i in 1:nn + plot!( [fiv[i]], + [ftm[i]], + zcolor=[score[i]], + color=:viridis, + seriestype = :scatter, + thickness_scaling = 1.35, + markersize = 7, + markerstrokewidth = 0, + #markerstrokecolor = :black, + #markercolor = get(ColorSchemes.viridis, score[i], (minimum(score), maximum(score))), + markershapes = shapes[i], + label=fil[i]) +end +plot!(dpi = 300, + label = "", + legend=:topleft, + yscale=:log10, + #xticks = (fi, fs), + #ylim=(min, max), + xlabel = "MLJ.jl-based feature importance", + ylabel = "Time [s]", + clims =(minimum(score), maximum(score)), + colorbar_title = "Importance-time rate") +savefig("featurebench.png") diff --git a/src/smartdb-lu.csv b/src/smartdb-lu.csv new file mode 100644 index 0000000..489c132 --- /dev/null +++ b/src/smartdb-lu.csv @@ -0,0 +1,140 @@ +n_experiment,pattern,length,n_rows,n_cols,rank,cond,sparsity,isdiag,issymmetric,ishermitian,isposdef,istriu,istril,algorithm,time,error +1,baart,256,16,16,11,9.779587923090666e16,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,0.006084894,5.773159728050814e-15 +1,baart,65536,256,256,11,1.458182699375801e18,0.0,0.0,0.0,0.0,0.0,0.0,0.0,splu,0.004695744,4.591882429849647e-13 +1,baart,16777216,4096,4096,14,4.623619015357255e19,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,0.220638843,2.5653257296198717e-11 +1,binomial,256,16,16,16,4739.528197796829,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,1.989e-5,3.3397062892959184e-11 +1,blur,256,16,16,16,13.70190620647811,0.234375,0.0,1.0,1.0,1.0,0.0,0.0,splu,5.325e-5,1.2212453270876722e-15 +1,blur,65536,256,256,256,29.029964945542606,0.91644287109375,0.0,1.0,1.0,1.0,0.0,0.0,klu,0.001160442,3.952393967665557e-14 +1,blur,16777216,4096,4096,4096,31.28054875136924,0.9941232204437256,0.0,1.0,1.0,1.0,0.0,0.0,klu,0.060740843,8.925082894961633e-13 +1,cauchy,256,16,16,12,3.0845770648757574e17,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,3.0409e-5,1.4432899320127035e-15 +1,cauchy,65536,256,256,20,2.508622330852856e20,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,0.004049789,9.048206628392563e-12 +1,cauchy,16777216,4096,4096,26,2.0376916574637128e22,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,0.23137979,4.714955093021445e-10 +1,chebspec,256,16,16,15,8.356022161877951e15,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,1.8339e-5,7.288614156664153e-14 +1,chebspec,65536,256,256,255,3.38348296262316e14,0.0,0.0,0.0,0.0,0.0,0.0,0.0,splu,0.004260977,6.248540573849937e-11 +1,chebspec,16777216,4096,4096,4095,2.381941597255335e13,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,0.207675022,9.41116964081612e-8 +1,circul,256,16,16,16,17.000000000000007,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,1.452e-5,2.8421709430404007e-13 +1,circul,65536,256,256,256,256.99999999999983,0.0,0.0,0.0,0.0,0.0,0.0,0.0,splu,0.004315087,3.5288394428789616e-9 +1,circul,16777216,4096,4096,4096,4097.000000000006,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,0.487227232,5.311146378517151e-5 +1,companion,256,16,16,16,1496.9993319970492,0.87890625,0.0,0.0,0.0,0.0,0.0,0.0,klu,2.274e-5,0.0 +1,companion,65536,256,256,256,5.625216999996981e6,0.9922027587890625,0.0,0.0,0.0,0.0,0.0,0.0,klu,0.000159228,1.0587086762825493e-12 +1,companion,16777216,4096,4096,4096,2.2914881543072613e10,0.9995117783546448,0.0,0.0,0.0,0.0,0.0,0.0,klu,0.030569745,3.5621638971861103e-10 +1,deriv2,256,16,16,16,310.26060675945075,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,4.311e-5,1.231653667943533e-16 +1,deriv2,65536,256,256,256,79681.22110174125,0.0,0.0,1.0,1.0,0.0,0.0,0.0,splu,0.004261107,7.13101452887166e-15 +1,deriv2,16777216,4096,4096,4096,2.0398647599968016e7,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,0.22746895,5.674932298713707e-13 +1,dingdong,256,16,16,16,2.5970414323734836,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,3.102e-5,2.2898349882893854e-15 +1,dingdong,65536,256,256,256,3.6884666368943715,0.0,0.0,1.0,1.0,0.0,0.0,0.0,splu,0.004676265,1.4003034842779982e-13 +1,dingdong,16777216,4096,4096,4096,4.7939372620180665,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,0.220826602,1.4828583456624744e-11 +1,fiedler,256,16,16,16,175.37549663067023,0.0625,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,1.483e-5,1.4210854715202004e-13 +1,fiedler,65536,256,256,256,45532.985754912974,0.00390625,0.0,1.0,1.0,0.0,0.0,0.0,splu,0.003592512,2.9085640562698245e-9 +1,fiedler,16777216,4096,4096,4096,1.1657084628368402e7,0.000244140625,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,0.222405769,4.0572602301836014e-5 +1,forsythe,256,16,16,16,6.7108864e7,0.9375,0.0,0.0,0.0,0.0,0.0,0.0,klu,2.255e-5,0.0 +1,forsythe,65536,256,256,256,6.7108864e7,0.99609375,0.0,0.0,0.0,0.0,0.0,0.0,klu,0.000139989,0.0 +1,forsythe,16777216,4096,4096,4096,6.7108864e7,0.999755859375,0.0,0.0,0.0,0.0,0.0,0.0,klu,0.029999519,0.0 +1,foxgood,256,16,16,14,7.400837143868666e16,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,2.42e-5,1.9984014443252818e-15 +1,foxgood,65536,256,256,26,3.031564451260052e19,0.0,0.0,1.0,1.0,0.0,0.0,0.0,splu,0.004430576,1.201816424156732e-12 +1,foxgood,16777216,4096,4096,31,1.642139634396655e22,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,0.532185686,5.693908677883996e-10 +1,frank,256,16,16,16,2.3070609671476466e14,0.41015625,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,2.077e-5,1.7763568394002505e-15 +1,frank,65536,256,256,255,2.4287185848103603e18,0.4941558837890625,0.0,0.0,0.0,0.0,0.0,0.0,klu,0.002154224,1.5109777450561523e-5 +1,frank,16777216,4096,4096,4095,6.618182392997065e19,0.4996338486671448,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,0.347350898,3.99790748e9 +1,golub,256,16,16,15,2.4323595452054477e17,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,1.231e-5,6.178169087434071e-11 +1,golub,65536,256,256,246,1.4123784285334945e18,0.0,0.0,0.0,0.0,0.0,0.0,0.0,splu,0.004263987,1.042513986249105e-8 +1,golub,16777216,4096,4096,3929,3.6618834211317914e18,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,0.212747763,0.00016034088844207872 +1,gravity,256,16,16,16,18403.73075569562,0.0,0.0,1.0,1.0,1.0,0.0,0.0,dgetrf,2.522e-5,1.2434497875801753e-14 +1,gravity,65536,256,256,46,3.4320442554713354e19,0.0,0.0,1.0,1.0,0.0,0.0,0.0,splu,0.004339737,1.5116796703296131e-12 +1,gravity,16777216,4096,4096,42,3.098274729596803e21,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,0.237963869,6.218976444927193e-10 +1,grcar,256,16,16,16,3.111265682500184,0.71484375,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,2.453e-5,4.440892098500626e-15 +1,grcar,65536,256,256,256,3.6214522942239875,0.9805755615234375,0.0,0.0,0.0,0.0,0.0,0.0,klu,0.000279867,2.4868995751603507e-14 +1,grcar,16777216,4096,4096,4096,3.62771501842049,0.9987797141075134,0.0,0.0,0.0,0.0,0.0,0.0,klu,0.026907533,3.090860900556436e-13 +1,hadamard,256,16,16,16,1.0000000000000007,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,2.09e-5,0.0 +1,hadamard,65536,256,256,256,1.0000000000000024,0.0,0.0,1.0,1.0,0.0,0.0,0.0,splu,0.00399794,0.0 +1,hadamard,16777216,4096,4096,4096,1.000000000000034,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,0.306274344,0.0 +1,hankel,256,16,16,16,19.14892505322292,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,2.075e-5,1.9895196601282805e-13 +1,hankel,65536,256,256,256,259.00921273784587,0.0,0.0,1.0,1.0,0.0,0.0,0.0,splu,0.004327527,1.7389538697898388e-9 +1,hankel,16777216,4096,4096,4096,4099.000575668276,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,0.243676284,5.4163858294487e-5 +1,heat,256,16,16,15,4.4371055017648886e18,0.46875,0.0,0.0,0.0,0.0,0.0,1.0,dgetrf,2.101e-5,2.9774863130604956e-12 +1,heat,65536,256,256,250,3.0748558630867957e72,0.498046875,0.0,0.0,0.0,0.0,0.0,1.0,klu,0.000966653,NaN +1,hilb,256,16,16,12,4.069512794757315e17,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,1.149e-5,1.9984014443252818e-15 +1,hilb,65536,256,256,20,5.346923398615569e20,0.0,0.0,1.0,1.0,0.0,0.0,0.0,splu,0.004190348,4.704014955336788e-13 +1,hilb,16777216,4096,4096,27,4.471256316332622e21,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,0.483157542,5.222904331247946e-10 +1,invhilb,256,16,16,14,3.2265887835793734e17,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,1.93e-5,60833.68309593201 +1,invol,256,16,16,10,1.9567338030444577e19,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,1.5569e-5,0.00039989153447450576 +1,invol,65536,256,256,6,3.557689279802562e59,0.0,0.0,0.0,0.0,0.0,0.0,0.0,splu,0.004172248,1.1749849774836855e183 +1,kahan,256,16,16,16,419.7869817397407,0.46875,0.0,0.0,0.0,0.0,1.0,0.0,dgetrf,1.263e-5,1.887379141862766e-15 +1,kahan,65536,256,256,255,1.231989918002108e27,0.498046875,0.0,0.0,0.0,0.0,1.0,0.0,klu,0.000596466,92.09015556293964 +1,kahan,16777216,4096,4096,346,1.6919994655862425e30,0.4998779296875,0.0,0.0,0.0,0.0,1.0,0.0,dgetrf,0.198528852,4.044431649475567e16 +1,kms,256,16,16,16,8.462012849559203,0.0,0.0,1.0,1.0,1.0,0.0,0.0,dgetrf,3.6809e-5,0.0 +1,kms,65536,256,256,256,8.997052150265862,0.0,0.0,1.0,1.0,1.0,0.0,0.0,splu,0.00397384,2.1316282072803006e-14 +1,kms,16777216,4096,4096,4096,8.99998825021467,0.5441583395004272,0.0,1.0,1.0,1.0,0.0,0.0,dgetrf,0.235516218,1.48947520983711e-12 +1,lehmer,256,16,16,16,233.2552851101579,0.0,0.0,1.0,1.0,1.0,0.0,0.0,dgetrf,1.883e-5,1.9539925233402755e-14 +1,lehmer,65536,256,256,256,69102.73118940914,0.0,0.0,1.0,1.0,1.0,0.0,0.0,splu,0.003826618,1.2639667090752482e-11 +1,lehmer,16777216,4096,4096,4096,1.8182714054914344e7,0.0,0.0,1.0,1.0,1.0,0.0,0.0,dgetrf,0.237169374,1.5257288765724297e-8 +1,lotkin,256,16,16,12,5.876932052747695e17,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,1.822e-5,6.328271240363392e-15 +1,lotkin,65536,256,256,19,6.558977083755619e20,0.0,0.0,0.0,0.0,0.0,0.0,0.0,splu,0.004392313,7.546374636291375e-11 +1,lotkin,16777216,4096,4096,24,2.1448067126234996e23,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,0.230606494,4.048972046533095e-9 +1,magic,16777216,4096,4096,3,1.556972600440939e25,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,0.237352751,7.184098288131082e59 +1,minij,256,16,16,16,437.6976165385115,0.0,0.0,1.0,1.0,1.0,0.0,0.0,dgetrf,2.98e-5,0.0 +1,minij,65536,256,256,256,106654.7116833443,0.0,0.0,1.0,1.0,1.0,0.0,0.0,splu,0.003736749,0.0 +1,minij,16777216,4096,4096,4096,2.7204835057208624e7,0.0,0.0,1.0,1.0,1.0,0.0,0.0,dgetrf,0.239426877,0.0 +1,moler,256,16,16,16,4.172336710026503e10,0.109375,0.0,1.0,1.0,1.0,0.0,0.0,dgetrf,1.813e-5,0.0 +1,moler,65536,256,256,255,1.5910154808444458e16,0.00775146484375,0.0,1.0,1.0,1.0,0.0,0.0,dgetrf,0.006776534,0.0 +1,moler,16777216,4096,4096,4095,8.246641436353315e15,0.00048804283142089844,0.0,1.0,1.0,1.0,0.0,0.0,dgetrf,0.223308595,0.0 +1,oscillate,256,16,16,16,6.7108863749287456e7,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,1.848e-5,2.525757381022231e-15 +1,oscillate,65536,256,256,256,6.710886267171627e7,0.0,0.0,0.0,0.0,0.0,0.0,0.0,splu,0.004191656,5.939693181744587e-14 +1,oscillate,16777216,4096,4096,4096,6.7108862330718815e7,0.437744140625,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,0.226593821,2.4659718711461664e-12 +1,parter,256,16,16,16,2.597041432373485,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,2.751e-5,4.579669976578771e-15 +1,parter,65536,256,256,256,3.6884666368943733,0.0,0.0,0.0,0.0,0.0,0.0,0.0,splu,0.004320085,2.8006069685559964e-13 +1,parter,16777216,4096,4096,4096,4.793937262018117,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,0.206582644,2.955669129584004e-11 +1,pascal,256,16,16,14,4.248621656451621e16,0.0,0.0,1.0,1.0,1.0,0.0,0.0,dgetrf,3.3819e-5,1.0138063544218312e-7 +1,pascal,65536,256,256,6,2.553727253458521e176,0.0,0.0,1.0,1.0,0.0,0.0,0.0,splu,0.004584383,7.698575245676624e139 +1,pei,256,16,16,16,17.000000000000004,0.0,0.0,1.0,1.0,1.0,0.0,0.0,dgetrf,4.328e-5,0.0 +1,pei,65536,256,256,256,257.0000000001814,0.0,0.0,1.0,1.0,1.0,0.0,0.0,splu,0.003996949,1.6370904631912708e-11 +1,pei,16777216,4096,4096,4096,4097.000001715043,0.0,0.0,1.0,1.0,1.0,0.0,0.0,dgetrf,0.229679201,9.815084922593087e-8 +1,phillips,256,16,16,16,1472.1410834752824,0.515625,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,1.682e-5,8.881784197001252e-15 +1,phillips,65536,256,256,256,1.1354150891653128e8,0.5595703125,0.0,1.0,1.0,0.0,0.0,0.0,splu,0.003001956,5.724309914967307e-13 +1,phillips,16777216,4096,4096,4089,3.3555270684659043e12,0.56231689453125,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,0.233395363,3.877831389331732e-11 +1,poisson,256,16,16,16,9.472135954999581,0.75,0.0,1.0,1.0,1.0,0.0,0.0,klu,4.039e-5,3.3306690738754696e-15 +1,poisson,65536,256,256,256,116.46119157748798,0.9814453125,0.0,1.0,1.0,1.0,0.0,0.0,klu,0.000382057,1.0513812043200232e-13 +1,poisson,16777216,4096,4096,4096,1711.6613758258454,0.9987945556640625,0.0,1.0,1.0,1.0,0.0,0.0,klu,0.007641919,1.7857937351095643e-12 +1,prolate,256,16,16,16,110.96946936728527,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,2.272e-5,1.2212453270876722e-14 +1,prolate,65536,256,256,256,26801.36056996144,0.0,0.0,1.0,1.0,0.0,0.0,0.0,splu,0.004010318,4.793676566805516e-11 +1,prolate,16777216,4096,4096,4096,6.794548190075961e6,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,0.245769345,6.154232323751785e-8 +1,randcorr,256,16,16,16,422.4278108114566,0.0,0.0,1.0,1.0,1.0,0.0,0.0,dgetrf,2.325e-5,4.218847493575595e-15 +1,randcorr,65536,256,256,256,1539.5639221720048,0.0,0.0,1.0,1.0,1.0,0.0,0.0,splu,0.00379122,1.484992684375186e-13 +1,randcorr,16777216,4096,4096,4096,2618.8262232871184,0.0,0.0,1.0,1.0,1.0,0.0,0.0,dgetrf,0.241206391,1.4085080324299781e-11 +1,rando,256,16,16,16,223.9031018320182,0.5,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,1.921e-5,1.4210854715202004e-14 +1,rando,65536,256,256,256,6282.538183779294,0.502593994140625,0.0,0.0,0.0,0.0,0.0,0.0,splu,0.004435955,3.8753000808355864e-11 +1,rando,16777216,4096,4096,4096,239240.16204004516,0.4998878240585327,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,0.255824845,4.151888788328506e-8 +1,randsvd,256,16,16,16,6.710886385875717e7,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,2.109e-5,9.575673587391975e-16 +1,randsvd,65536,256,256,256,6.710886401644151e7,0.0,0.0,0.0,0.0,0.0,0.0,0.0,splu,0.00374968,4.390211067947791e-14 +1,randsvd,16777216,4096,4096,4096,6.7108864025672e7,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,0.222079523,1.884229404447435e-11 +1,rohess,256,16,16,16,1.0000000000000007,0.41015625,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,3.8689e-5,1.6653345369377348e-15 +1,rohess,65536,256,256,256,1.0000000000000036,0.4941558837890625,0.0,0.0,0.0,0.0,0.0,0.0,klu,0.002052964,2.967001644371692e-13 +1,rohess,16777216,4096,4096,4096,1.0000000000000144,0.7753418684005737,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,0.207699376,1.2132147500162893e-12 +1,rosser,256,16,16,14,1.0076399538881472e17,0.125,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,2.346e-5,2.091837814077735e-11 +1,rosser,65536,256,256,224,1.4120306578265187e17,0.95263671875,0.0,1.0,1.0,0.0,0.0,0.0,klu,0.000494526,5.511537892743945e-10 +1,rosser,16777216,4096,4096,3584,2.108580256482238e37,0.9970684051513672,0.0,1.0,1.0,0.0,0.0,0.0,klu,0.032650262,3.3295464163529687e-9 +1,sampling,256,16,16,15,3.4851331092772896e16,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,2.0519e-5,6.483702463810914e-14 +1,sampling,65536,256,256,255,9.104723206214995e16,0.0,0.0,0.0,0.0,0.0,0.0,0.0,splu,0.004147107,1.7562906684531754e-10 +1,sampling,16777216,4096,4096,4095,1.450925886804848e17,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,0.332636428,4.380777185453155e-6 +1,shaw,256,16,16,16,5.3147320455357825e11,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,1.976e-5,4.163336342344337e-15 +1,shaw,65536,256,256,20,3.0631051293947752e19,0.0,0.0,1.0,1.0,0.0,0.0,0.0,splu,0.004325086,3.116507052425277e-12 +1,shaw,16777216,4096,4096,17,2.3118561109917366e21,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,0.527532826,9.297170810995681e-10 +1,smallworld,256,16,16,16,19.140325826493655,0.7421875,0.0,1.0,1.0,0.0,0.0,0.0,klu,3.9749e-5,1.0658141036401503e-14 +1,smallworld,65536,256,256,256,13429.714549030014,0.983612060546875,0.0,1.0,1.0,0.0,0.0,0.0,klu,0.000459316,7.687184222504584e-13 +1,smallworld,16777216,4096,4096,4096,26230.557417783803,0.9989731311798096,0.0,1.0,1.0,0.0,0.0,0.0,splu,0.027064656,7.0938810381449e-12 +1,spikes,256,16,16,12,8.18134508316423e17,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,2.9829e-5,1.5687451337953462e-13 +1,spikes,65536,256,256,24,8.38068746384199e19,0.0,0.0,0.0,0.0,0.0,0.0,0.0,splu,0.004541644,1.6544898784331963e-10 +1,spikes,16777216,4096,4096,38,1.4402093125411279e23,0.00045615434646606445,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,0.310576052,2.3023872017802205e-6 +1,toeplitz,256,16,16,16,206.13271768430147,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,2.641e-5,7.105427357601002e-14 +1,toeplitz,65536,256,256,256,46027.486370827195,0.0,0.0,1.0,1.0,0.0,0.0,0.0,splu,0.004163536,1.648004399612546e-9 +1,toeplitz,16777216,4096,4096,4096,1.1664994494291898e7,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,0.23631392,5.372706800699234e-5 +1,triw,256,16,16,16,204262.95718350925,0.46875,0.0,0.0,0.0,0.0,1.0,0.0,dgetrf,2.18e-5,0.0 +1,triw,65536,256,256,255,4.593822419999271e19,0.498046875,0.0,0.0,0.0,0.0,1.0,0.0,klu,0.000935603,0.0 +1,triw,16777216,4096,4096,4095,1.02102155501576e21,0.4998779296875,0.0,0.0,0.0,0.0,1.0,0.0,dgetrf,0.210440405,0.0 +1,ursell,256,16,16,16,1.208352918230884e14,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,3.685e-5,1.4432899320127035e-15 +1,ursell,65536,256,256,253,1.1981484330954973e14,0.0,0.0,1.0,1.0,0.0,0.0,0.0,splu,0.004219887,4.5574655160862676e-14 +1,ursell,16777216,4096,4096,4082,5.702811555705552e13,0.0,0.0,1.0,1.0,0.0,0.0,0.0,dgetrf,0.254499386,3.3379965458379957e-12 +1,vand,256,16,16,8,3.226869250585466e21,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,2.992e-5,480.551841171713 +1,wing,256,16,16,8,4.946325267669901e20,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,2.523e-5,6.38378239159465e-15 +1,wing,65536,256,256,8,7.42947311131584e21,0.0,0.0,0.0,0.0,0.0,0.0,0.0,splu,0.004176786,1.5996648450311568e-12 +1,wing,16777216,4096,4096,8,4.184082968445184e23,0.0,0.0,0.0,0.0,0.0,0.0,0.0,dgetrf,0.219610392,6.864641077797273e-9