diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index fccf560..42a9afd 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -40,78 +40,3 @@ jobs:
${{ runner.os }}-
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-runtest@v1
- env:
- JULIA_NUM_THREADS: 2
- - uses: julia-actions/julia-processcoverage@v1
- - uses: codecov/codecov-action@v1
- with:
- file: lcov.info
- docs:
- name: Documentation
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: julia-actions/setup-julia@v1
- with:
- version: '1'
- - run: |
- julia -e '
- function set_environment_variable(name::AbstractString, value::AbstractString)
- github_env = ENV["GITHUB_ENV"]
- touch(github_env)
- open(github_env, "a") do io
- println(io, "$(name)=$(value)")
- end
- end
- event_name = "${{ github.event_name }}"
- if event_name == "pull_request"
- base_ref = "${{ github.base_ref }}"
- head_ref = "${{ github.head_ref }}"
- base_repository = "${{ github.repository }}"
- head_repository = "${{ github.event.pull_request.head.repo.full_name }}"
- build_docs = (base_ref == "master") && (head_ref == "dev") && (base_repository == head_repository)
- elseif event_name == "push"
- ref = "${{ github.ref }}"
- build_docs = (ref == "refs/heads/master") || (startswith(ref, "refs/tags/"))
- elseif event_name == "schedule"
- build_docs = ref == "refs/heads/master"
- elseif event_name == "workflow_dispatch"
- build_docs = ref == "refs/heads/master"
- else
- build_docs = false
- end
- if build_docs
- @info("We will build the docs")
- set_environment_variable("BUILD_DOCS", "true")
- else
- @info("We will NOT build the docs")
- set_environment_variable("BUILD_DOCS", "false")
- end'
- - run: |
- julia --project=docs -e '
- if ENV["BUILD_DOCS"] == "true"
- using Pkg
- Pkg.develop(PackageSpec(path=pwd()))
- Pkg.instantiate()
- end'
- - run: |
- julia --project=docs -e '
- if ENV["BUILD_DOCS"] == "true"
- using Documenter: doctest
- using MLJBase
- @info "attempting to run the doctests"
- doctest(MLJBase)
- else
- @info "skipping the doctests"
- end'
- - run: julia --project=docs -e '
- if ENV["BUILD_DOCS"] == "true"
- @info "attempting to build the docs"
- run(`julia --project=docs docs/make.jl`)
- @info "successfully built the docs"
- else
- @info "skipping the docs build"
- end'
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}
diff --git a/DEVELOPER_NOTES.md b/DEVELOPER_NOTES.md
index be03a97..72c899b 100644
--- a/DEVELOPER_NOTES.md
+++ b/DEVELOPER_NOTES.md
@@ -27,14 +27,12 @@ generated won't run properly.
## Generating the notebooks
-To generate notebooks do `include(/src/generate_all.jl)`. For some
-tutorials, a notebook may not be generated, because of some known
-issue. A warning will be issued and you'll need to generate the
-relevant notebook by hand. (At time of writing a pre-executed Jupiter
-notebook needs to be generated for
-`notebooks/01_getting_started/`. After generating the notebooks, copy
-`notebook.unexecuted.ipynb` to `notebook.ipynb`; execute the latter
-file and save.)
+To generate notebooks do `include("path/to/HelloJulia/src/generate_all.jl")`. For some tutorials, a notebook
+may not be generated, because of some known issue. A warning will be issued and you'll
+need to generate the relevant notebook by hand.
+
+For example, to generate an executed python notebook for `notebooks/01_first_steps/`, copy
+`notebook.unexecuted.ipynb` to `notebook.ipynb`; execute the latter file and save.
To generate notebooks for just one tutorial, `include` the file called
`generate.jl` within the notebook's folder.
diff --git a/FIRST_STEPS.md b/FIRST_STEPS.md
index af58d61..40b8d98 100644
--- a/FIRST_STEPS.md
+++ b/FIRST_STEPS.md
@@ -1,7 +1,7 @@
# Installing Julia
**Important** When following the following **four steps**, be sure the version
-of Julia you install is **version 1.9.x**, where **x** is any integer.
+of Julia you install is **version 1.10.x**, where **x** is any integer.
While Julia can be run in the cloud (see e.g.,
[here](https://juliahub.com/ui/Home)) we recommend installing Julia on
diff --git a/INSTALLATION.md b/INSTALLATION.md
index b6313cf..3c0db8c 100644
--- a/INSTALLATION.md
+++ b/INSTALLATION.md
@@ -1,25 +1,20 @@
# Demos and Tutorials
-For a quick static view of the demo and tutorial notebooks, click on a
-link in the first column.
+Quick, static views of the demo and tutorial notebooks:
-To run a notebook without installing anything, click on the binder
-link. These notebooks are ephemeral, and can be very slow to load, and
-are therefore not recommended for in-depth study. Rather, complete
-[Setup](#setup) and choose one of the options that follow.
-
-
-Juptyer | binder
---------|---------
-[Mandelbrot set demo](notebooks/mandelbrot/notebook.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/ablaom/HelloJulia.jl/dev?labpath=notebooks%2Fmandelbrot%2Fnotebook.ipynb)
-[Julia's secret sauce](notebooks/secret_sauce/notebook.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/ablaom/HelloJulia.jl/dev?labpath=notebooks%2Fsecret_sauce%2Fnotebook.ipynb)
-[Package composability](notebooks/pkg_composability/notebook.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/ablaom/HelloJulia.jl/dev?labpath=notebooks%2Fpkg_composability%2Fnotebook.ipynb)
-[01 - First_steps](notebooks/01_first_steps/notebook.unexecuted.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/ablaom/HelloJulia.jl/dev?labpath=notebooks%2F01_first_steps%2Fnotebook.unexecuted.ipynb)
-[02 - DataFrames](notebooks/02_dataframes/notebook.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/ablaom/HelloJulia.jl/dev?labpath=notebooks%2F02_dataframes%2Fnotebook.ipynb)
-[03 - Machine learning](notebooks/03_machine_learning/notebook.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/ablaom/HelloJulia.jl/dev?labpath=notebooks%2F03_machine_learning%2Fnotebook.ipynb)
+|Notebook |
+|:-------:|
+|[Mandelbrot set demo](notebooks/mandelbrot/notebook.ipynb) |
+[Julia's secret sauce](notebooks/secret_sauce/notebook.ipynb) |
+[Package composability](notebooks/pkg_composability/notebook.ipynb) |
+[01 - First_steps](notebooks/01_first_steps/notebook.unexecuted.ipynb) |
+[02 - DataFrames](notebooks/02_dataframes/notebook.ipynb) |
+[03 - Machine learning](notebooks/03_machine_learning/notebook.ipynb) |
## Setup
+The following instructions only need to be executed successfully once:
+
- [Install a correct version of the Julia compiler](FIRST_STEPS.md).
- **In a new Julia session** type the following at the `julia>` prompt:
@@ -35,60 +30,41 @@ Pkg.build("Conda")
Pkg.build("IJulia")
ENV["JULIA_PKG_PRECOMPILE_AUTO"]=1
-using HelloJulia
-
+using Pkg
+Pkg.test("HelloJulia")
+exit()
```
-## Option 1: To run as Jupyter notebooks
-
-- Enter `go()` at the `julia>` prompt
-
-- In the browser window that should appear, navigate to the folder of
-interest
-
-- Choose the file called `notebook.unexecuted.ipynb` (or
- `notebook.ipynb` to see pre-executed version)
+## Running the demos and tutorials
+!!! Note
-## Option 2: To run as Pluto notebooks
+ Running notebooks for the first time may involve delays due to
+ precompilation of newly installed packages.
-- When running for the first time, enter (immediately after
- [Setup](#setup)):
+After starting a new Julia session, do this:
```julia
-julia> setup()
+julia> using Pkg; Pkg.activate(joinpath(Pkg.devdir(), "HelloJulia"))
+julia> using HelloJulia
```
-ignoring any "ld: warning" you get. This will take several minutes but
-speeds up using the notebooks. (It creates a Julia system image
-tailored to the notebook content.)
+Then:
-- Quit Julia with `control-D` and restart.
+### Option 1: To run as Pluto notebooks
-- Run the following commands each time you want to run the notebooks:
+- Enter `pluto()` at the `julia>` prompt.
-```julia
-using Pkg; Pkg.activate(joinpath(Pkg.devdir(), "HelloJulia"))
-using HelloJulia
-pluto()
+### Option 2: To run as Jupyter notebooks
-```
+- Enter `juptyer()` at the `julia>` prompt.
-If you encounter problems with running `setup()` or `pluto()` you can try launching the notebooks directly (without creating a system image) by restarting Julia and trying:
-
-```julia
-using Pkg; Pkg.activate(joinpath(Pkg.devdir(), "HelloJulia"))
-Pkg.build("Conda") # only need to do this very first time
-Pkg.build("IJulia") # only need to do this very first time
-using HelloJulia
-pluto_now()
-```
-
-The only difference here is that notebooks may take a while to load, at least the first
-time they are launched.
+- In the browser window that should appear, navigate to the folder of interest
+- Choose the file called `notebook.unexecuted.ipynb` (or
+ `notebook.ipynb` to see pre-executed version)
-## Option 3: To run as script in your editor
+### Option 3: To run as script in your editor
For more experienced users and instructors.
diff --git a/Manifest.toml b/Manifest.toml
index 9d9d664..0664ef6 100644
--- a/Manifest.toml
+++ b/Manifest.toml
@@ -1,8 +1,8 @@
# This file is machine-generated - editing it directly is not advised
-julia_version = "1.9.0"
+julia_version = "1.10.3"
manifest_format = "2.0"
-project_hash = "c5574f8e5f94c74105c169c2ee46065e1d9afc3d"
+project_hash = "2edfe41f97de8e611b2e9ed77953e997d683e955"
[[deps.ARFFFiles]]
deps = ["CategoricalArrays", "Dates", "Parsers", "Tables"]
@@ -12,50 +12,65 @@ version = "1.4.1"
[[deps.AbstractFFTs]]
deps = ["LinearAlgebra"]
-git-tree-sha1 = "16b6dbc4cf7caee4e1e75c49485ec67b667098a0"
+git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef"
uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c"
-version = "1.3.1"
-weakdeps = ["ChainRulesCore"]
+version = "1.5.0"
+weakdeps = ["ChainRulesCore", "Test"]
[deps.AbstractFFTs.extensions]
AbstractFFTsChainRulesCoreExt = "ChainRulesCore"
+ AbstractFFTsTestExt = "Test"
[[deps.AbstractTrees]]
-git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c"
+git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177"
uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c"
-version = "0.4.4"
+version = "0.4.5"
[[deps.Adapt]]
deps = ["LinearAlgebra", "Requires"]
-git-tree-sha1 = "76289dc51920fdc6e0013c872ba9551d54961c24"
+git-tree-sha1 = "6a55b747d1812e699320963ffde36f1ebdda4099"
uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
-version = "3.6.2"
+version = "4.0.4"
weakdeps = ["StaticArrays"]
[deps.Adapt.extensions]
AdaptStaticArraysExt = "StaticArrays"
+[[deps.AliasTables]]
+deps = ["PtrArrays", "Random"]
+git-tree-sha1 = "9876e1e164b144ca45e9e3198d0b689cadfed9ff"
+uuid = "66dad0bd-aa9a-41b7-9441-69ab47430ed8"
+version = "1.1.3"
+
[[deps.Animations]]
deps = ["Colors"]
git-tree-sha1 = "e81c509d2c8e49592413bfb0bb3b08150056c79d"
uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340"
version = "0.4.1"
+[[deps.ArgCheck]]
+git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4"
+uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197"
+version = "2.3.0"
+
[[deps.ArgTools]]
uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
version = "1.1.1"
[[deps.ArrayInterface]]
-deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"]
-git-tree-sha1 = "c4d9efe93662757bca4cc24df50df5f75e659a2d"
+deps = ["Adapt", "LinearAlgebra", "SparseArrays", "SuiteSparse"]
+git-tree-sha1 = "133a240faec6e074e07c31ee75619c90544179cf"
uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
-version = "7.4.4"
+version = "7.10.0"
[deps.ArrayInterface.extensions]
ArrayInterfaceBandedMatricesExt = "BandedMatrices"
ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices"
ArrayInterfaceCUDAExt = "CUDA"
+ ArrayInterfaceCUDSSExt = "CUDSS"
+ ArrayInterfaceChainRulesExt = "ChainRules"
ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore"
+ ArrayInterfaceReverseDiffExt = "ReverseDiff"
ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore"
ArrayInterfaceTrackerExt = "Tracker"
@@ -63,50 +78,78 @@ version = "7.4.4"
BandedMatrices = "aae01518-5342-5314-be14-df237901396f"
BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0"
CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba"
+ CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e"
+ ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2"
GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527"
+ ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267"
StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c"
Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c"
-[[deps.ArrayInterfaceCore]]
-deps = ["LinearAlgebra", "SnoopPrecompile", "SparseArrays", "SuiteSparse"]
-git-tree-sha1 = "e5f08b5689b1aad068e01751889f2f615c7db36d"
-uuid = "30b0a656-2188-435a-8636-2ec0e6a096e2"
-version = "0.1.29"
-
[[deps.Artifacts]]
uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
+[[deps.Atomix]]
+deps = ["UnsafeAtomics"]
+git-tree-sha1 = "c06a868224ecba914baa6942988e2f2aade419be"
+uuid = "a9b6321e-bd34-4604-b9c9-b65b8de01458"
+version = "0.1.0"
+
[[deps.Automa]]
-deps = ["Printf", "ScanByte", "TranscodingStreams"]
-git-tree-sha1 = "d50976f217489ce799e366d9561d56a98a30d7fe"
+deps = ["PrecompileTools", "TranscodingStreams"]
+git-tree-sha1 = "588e0d680ad1d7201d4c6a804dcb1cd9cba79fbb"
uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b"
-version = "0.8.2"
+version = "1.0.3"
[[deps.AxisAlgorithms]]
deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"]
-git-tree-sha1 = "66771c8d21c8ff5e3a93379480a2307ac36863f7"
+git-tree-sha1 = "01b8ccb13d68535d73d2b0c23e39bd23155fb712"
uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950"
-version = "1.0.1"
+version = "1.1.0"
[[deps.AxisArrays]]
deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"]
-git-tree-sha1 = "1dd4d9f5beebac0c03446918741b1a03dc5e5788"
+git-tree-sha1 = "16351be62963a67ac4083f748fdb3cca58bfd52f"
uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9"
-version = "0.4.6"
+version = "0.4.7"
+
+[[deps.BangBang]]
+deps = ["Compat", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires", "Setfield", "Tables"]
+git-tree-sha1 = "7aa7ad1682f3d5754e3491bb59b8103cae28e3a3"
+uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66"
+version = "0.3.40"
+
+ [deps.BangBang.extensions]
+ BangBangChainRulesCoreExt = "ChainRulesCore"
+ BangBangDataFramesExt = "DataFrames"
+ BangBangStaticArraysExt = "StaticArrays"
+ BangBangStructArraysExt = "StructArrays"
+ BangBangTypedTablesExt = "TypedTables"
+
+ [deps.BangBang.weakdeps]
+ ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
+ DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
+ StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
+ StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a"
+ TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9"
[[deps.Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
+[[deps.Baselet]]
+git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e"
+uuid = "9718e550-a3fa-408a-8086-8db961cd8217"
+version = "0.1.1"
+
[[deps.BetaML]]
deps = ["AbstractTrees", "CategoricalArrays", "Combinatorics", "DelimitedFiles", "Distributions", "DocStringExtensions", "ForceImport", "JLD2", "LinearAlgebra", "LoopVectorization", "MLJModelInterface", "PDMats", "PrecompileTools", "Printf", "ProgressMeter", "Random", "Reexport", "StableRNGs", "StaticArrays", "Statistics", "StatsBase", "Test", "Zygote"]
-git-tree-sha1 = "bca5bbed67662e6018215d6e46419e3bbeba45fd"
+git-tree-sha1 = "c5dc6b1aa72c37e445a401d01eae97c040d994d4"
uuid = "024491cd-cc6b-443e-8034-08ea7eb7db2b"
-version = "0.10.1"
+version = "0.12.0"
[[deps.BitFlags]]
-git-tree-sha1 = "43b1a4a8f797c1cddadf60499a8a077d4af2cd2d"
+git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b"
uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35"
-version = "0.1.7"
+version = "0.1.8"
[[deps.BitTwiddlingConvenienceFunctions]]
deps = ["Static"]
@@ -116,24 +159,30 @@ version = "0.1.5"
[[deps.Bzip2_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2"
+git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd"
uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0"
-version = "1.0.8+0"
+version = "1.0.8+1"
[[deps.CEnum]]
-git-tree-sha1 = "eb4cb44a499229b3b8426dcfb5dd85333951ff90"
+git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc"
uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82"
-version = "0.4.2"
+version = "0.5.0"
[[deps.CPUSummary]]
-deps = ["CpuId", "IfElse", "Static"]
-git-tree-sha1 = "2c144ddb46b552f72d7eafe7cc2f50746e41ea21"
+deps = ["CpuId", "IfElse", "PrecompileTools", "Static"]
+git-tree-sha1 = "585a387a490f1c4bd88be67eea15b93da5e85db7"
uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9"
-version = "0.2.2"
+version = "0.2.5"
[[deps.CRC32c]]
uuid = "8bf52ea8-c179-5cab-976a-9e18b702a9bc"
+[[deps.CRlibm_jll]]
+deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
+git-tree-sha1 = "e329286945d0cfc04456972ea732551869af1cfc"
+uuid = "4e9b3aee-d8a1-5a3d-ad8b-7d824db253f0"
+version = "1.0.1+0"
+
[[deps.Cairo]]
deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"]
git-tree-sha1 = "d0b3f8b4ad16cb0a2988c6788646a5e6a17b6b1b"
@@ -141,16 +190,16 @@ uuid = "159f3aea-2a34-519c-b102-8c37f9878175"
version = "1.0.5"
[[deps.CairoMakie]]
-deps = ["Base64", "Cairo", "Colors", "FFTW", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools", "SHA"]
-git-tree-sha1 = "9e7f01dd16e576ebbdf8b453086f9d0eff814a09"
+deps = ["CRC32c", "Cairo", "Colors", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools"]
+git-tree-sha1 = "a6c5225b318890e8a94c451cc8a4bfed8bdd0549"
uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
-version = "0.10.5"
+version = "0.12.1"
[[deps.Cairo_jll]]
-deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"]
-git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2"
+deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"]
+git-tree-sha1 = "a2f1c8c668c8e3cb4cca4e57a8efdb09067bb3fd"
uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a"
-version = "1.16.1+1"
+version = "1.18.0+2"
[[deps.Calculus]]
deps = ["LinearAlgebra"]
@@ -178,9 +227,9 @@ version = "0.10.8"
[[deps.CategoricalDistributions]]
deps = ["CategoricalArrays", "Distributions", "Missings", "OrderedCollections", "Random", "ScientificTypes"]
-git-tree-sha1 = "da68989f027dcefa74d44a452c9e36af9730a70d"
+git-tree-sha1 = "926862f549a82d6c3a7145bc7f1adff2a91a39f0"
uuid = "af321ab8-2d2e-40a6-b165-3d674595d28e"
-version = "0.1.10"
+version = "0.1.15"
[deps.CategoricalDistributions.extensions]
UnivariateFiniteDisplayExt = "UnicodePlots"
@@ -189,16 +238,20 @@ version = "0.1.10"
UnicodePlots = "b8865327-cd53-5732-bb35-84acbb429228"
[[deps.ChainRules]]
-deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "Statistics", "StructArrays"]
-git-tree-sha1 = "8bae903893aeeb429cf732cf1888490b93ecf265"
+deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"]
+git-tree-sha1 = "291821c1251486504f6bae435227907d734e94d2"
uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2"
-version = "1.49.0"
+version = "1.66.0"
[[deps.ChainRulesCore]]
-deps = ["Compat", "LinearAlgebra", "SparseArrays"]
-git-tree-sha1 = "e30f2f4e20f7f186dc36529910beaedc60cfa644"
+deps = ["Compat", "LinearAlgebra"]
+git-tree-sha1 = "575cd02e080939a33b6df6c5853d14924c08e35b"
uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
-version = "1.16.0"
+version = "1.23.0"
+weakdeps = ["SparseArrays"]
+
+ [deps.ChainRulesCore.extensions]
+ ChainRulesCoreSparseArraysExt = "SparseArrays"
[[deps.CloseOpenIntervals]]
deps = ["Static", "StaticArrayInterface"]
@@ -208,9 +261,9 @@ version = "0.1.12"
[[deps.CodecZlib]]
deps = ["TranscodingStreams", "Zlib_jll"]
-git-tree-sha1 = "9c209fb7536406834aa938fb149964b985de6c83"
+git-tree-sha1 = "59939d8a997469ee05c4b4944560a820f9ba0d73"
uuid = "944b1d66-785c-5afd-91f1-9de20f533193"
-version = "0.7.1"
+version = "0.7.4"
[[deps.ColorBrewer]]
deps = ["Colors", "JSON", "Test"]
@@ -220,27 +273,31 @@ version = "0.4.0"
[[deps.ColorSchemes]]
deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"]
-git-tree-sha1 = "be6ab11021cd29f0344d5c4357b163af05a48cba"
+git-tree-sha1 = "4b270d6465eb21ae89b732182c20dc165f8bf9f2"
uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4"
-version = "3.21.0"
+version = "3.25.0"
[[deps.ColorTypes]]
deps = ["FixedPointNumbers", "Random"]
-git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4"
+git-tree-sha1 = "b10d0b65641d57b8b4d5e234446582de5047050d"
uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f"
-version = "0.11.4"
+version = "0.11.5"
[[deps.ColorVectorSpace]]
-deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "TensorCore"]
-git-tree-sha1 = "600cc5508d66b78aae350f7accdb58763ac18589"
+deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"]
+git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249"
uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4"
-version = "0.9.10"
+version = "0.10.0"
+weakdeps = ["SpecialFunctions"]
+
+ [deps.ColorVectorSpace.extensions]
+ SpecialFunctionsExt = "SpecialFunctions"
[[deps.Colors]]
deps = ["ColorTypes", "FixedPointNumbers", "Reexport"]
-git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a"
+git-tree-sha1 = "362a287c3aa50601b0bc359053d5c2468f0e7ce0"
uuid = "5ae59095-9a9b-59fe-a467-6f913c188581"
-version = "0.12.10"
+version = "0.12.11"
[[deps.Combinatorics]]
git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860"
@@ -254,10 +311,10 @@ uuid = "bbf7d656-a473-5ed7-a52c-81e309532950"
version = "0.3.0"
[[deps.Compat]]
-deps = ["UUIDs"]
-git-tree-sha1 = "7a60c856b9fa189eb34f5f8a6f6b5529b7942957"
+deps = ["TOML", "UUIDs"]
+git-tree-sha1 = "b1c55339b7c6c350ee89f2c1604299660525b248"
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
-version = "4.6.1"
+version = "4.15.0"
weakdeps = ["Dates", "LinearAlgebra"]
[deps.Compat.extensions]
@@ -266,7 +323,18 @@ weakdeps = ["Dates", "LinearAlgebra"]
[[deps.CompilerSupportLibraries_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"
-version = "1.0.2+0"
+version = "1.1.1+0"
+
+[[deps.CompositionsBase]]
+git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad"
+uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b"
+version = "0.1.2"
+
+ [deps.CompositionsBase.extensions]
+ CompositionsBaseInverseFunctionsExt = "InverseFunctions"
+
+ [deps.CompositionsBase.weakdeps]
+ InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112"
[[deps.ComputationalResources]]
git-tree-sha1 = "52cb3ec90e8a8bea0e62e275ba577ad0f74821f7"
@@ -275,37 +343,43 @@ version = "0.3.2"
[[deps.ConcurrentUtilities]]
deps = ["Serialization", "Sockets"]
-git-tree-sha1 = "96d823b94ba8d187a6d8f0826e731195a74b90e9"
+git-tree-sha1 = "6cbbd4d241d7e6579ab354737f4dd95ca43946e1"
uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb"
-version = "2.2.0"
+version = "2.4.1"
[[deps.Conda]]
deps = ["Downloads", "JSON", "VersionParsing"]
-git-tree-sha1 = "e32a90da027ca45d84678b826fffd3110bb3fc90"
+git-tree-sha1 = "51cab8e982c5b598eea9c8ceaced4b58d9dd37c9"
uuid = "8f4d0f93-b110-5947-807f-2305c1781a2d"
-version = "1.8.0"
+version = "1.10.0"
[[deps.Configurations]]
deps = ["ExproniconLite", "OrderedCollections", "TOML"]
-git-tree-sha1 = "62a7c76dbad02fdfdaa53608104edf760938c4ca"
+git-tree-sha1 = "4358750bb58a3caefd5f37a4a0c5bfdbbf075252"
uuid = "5218b696-f38b-4ac9-8b61-a12ec717816d"
-version = "0.17.4"
+version = "0.17.6"
[[deps.ConstructionBase]]
deps = ["LinearAlgebra"]
-git-tree-sha1 = "738fec4d684a9a6ee9598a8bfee305b26831f28c"
+git-tree-sha1 = "260fd2400ed2dab602a7c15cf10c1933c59930a2"
uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9"
-version = "1.5.2"
+version = "1.5.5"
weakdeps = ["IntervalSets", "StaticArrays"]
[deps.ConstructionBase.extensions]
ConstructionBaseIntervalSetsExt = "IntervalSets"
ConstructionBaseStaticArraysExt = "StaticArrays"
+[[deps.ContextVariablesX]]
+deps = ["Compat", "Logging", "UUIDs"]
+git-tree-sha1 = "25cc3803f1030ab855e383129dcd3dc294e322cc"
+uuid = "6add18c4-b38d-439d-96f6-d6bc489c04c5"
+version = "0.1.3"
+
[[deps.Contour]]
-git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781"
+git-tree-sha1 = "439e35b0b36e2e5881738abc8857bd92ad6ff9a8"
uuid = "d38c429a-6771-53c6-b99e-75d170b6e991"
-version = "0.6.2"
+version = "0.6.3"
[[deps.CpuId]]
deps = ["Markdown"]
@@ -319,21 +393,21 @@ uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f"
version = "4.1.1"
[[deps.DataAPI]]
-git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c"
+git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe"
uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a"
-version = "1.15.0"
+version = "1.16.0"
[[deps.DataFrames]]
-deps = ["Compat", "DataAPI", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SnoopPrecompile", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"]
-git-tree-sha1 = "aa51303df86f8626a962fccb878430cdb0a97eee"
+deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"]
+git-tree-sha1 = "04c738083f29f86e62c8afc341f0967d8717bdb8"
uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
-version = "1.5.0"
+version = "1.6.1"
[[deps.DataStructures]]
deps = ["Compat", "InteractiveUtils", "OrderedCollections"]
-git-tree-sha1 = "d1fff3a548102f48987a52a2e0d114fa97d730f0"
+git-tree-sha1 = "1d0a14036acb104d9e89698bd408f63ab58cdc82"
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
-version = "0.18.13"
+version = "0.18.20"
[[deps.DataValueInterfaces]]
git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6"
@@ -356,6 +430,17 @@ git-tree-sha1 = "c0dfa5a35710a193d83f03124356eef3386688fc"
uuid = "3f0dd361-4fe0-5fc6-8523-80b14ec94d85"
version = "1.1.0"
+[[deps.DefineSingletons]]
+git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c"
+uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52"
+version = "0.1.2"
+
+[[deps.DelaunayTriangulation]]
+deps = ["EnumX", "ExactPredicates", "Random"]
+git-tree-sha1 = "1755070db557ec2c37df2664c75600298b0c1cfc"
+uuid = "927a84f5-c5f4-47a5-9785-b46e178433df"
+version = "1.0.3"
+
[[deps.DelimitedFiles]]
deps = ["Mmap"]
git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae"
@@ -370,33 +455,40 @@ version = "1.1.0"
[[deps.DiffRules]]
deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"]
-git-tree-sha1 = "a4ad7ef19d2cdc2eff57abbbe68032b1cd0bd8f8"
+git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272"
uuid = "b552c78f-8df3-52c6-915a-8e097449b14b"
-version = "1.13.0"
+version = "1.15.1"
[[deps.Distances]]
-deps = ["LinearAlgebra", "SparseArrays", "Statistics", "StatsAPI"]
-git-tree-sha1 = "49eba9ad9f7ead780bfb7ee319f962c811c6d3b2"
+deps = ["LinearAlgebra", "Statistics", "StatsAPI"]
+git-tree-sha1 = "66c4c81f259586e8f002eacebc177e1fb06363b0"
uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7"
-version = "0.10.8"
+version = "0.10.11"
+weakdeps = ["ChainRulesCore", "SparseArrays"]
+
+ [deps.Distances.extensions]
+ DistancesChainRulesCoreExt = "ChainRulesCore"
+ DistancesSparseArraysExt = "SparseArrays"
[[deps.Distributed]]
deps = ["Random", "Serialization", "Sockets"]
uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"
[[deps.Distributions]]
-deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SparseArrays", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns", "Test"]
-git-tree-sha1 = "b0a916504cf33a6f07a4b56c58451d1dc93a2ff5"
+deps = ["AliasTables", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"]
+git-tree-sha1 = "22c595ca4146c07b16bcf9c8bea86f731f7109d2"
uuid = "31c24e10-a181-5473-b8eb-7969acd0382f"
-version = "0.25.91"
+version = "0.25.108"
[deps.Distributions.extensions]
DistributionsChainRulesCoreExt = "ChainRulesCore"
DistributionsDensityInterfaceExt = "DensityInterface"
+ DistributionsTestExt = "Test"
[deps.Distributions.weakdeps]
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d"
+ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
[[deps.DocStringExtensions]]
deps = ["LibGit2"]
@@ -439,40 +531,55 @@ git-tree-sha1 = "714865b8d0ec66d90283acc737da9e534307f5e6"
uuid = "d872a56f-244b-5cc9-b574-2017b5b909a8"
version = "1.0.1"
+[[deps.EnumX]]
+git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237"
+uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56"
+version = "1.0.4"
+
+[[deps.ExactPredicates]]
+deps = ["IntervalArithmetic", "Random", "StaticArrays"]
+git-tree-sha1 = "b3f2ff58735b5f024c392fde763f29b057e4b025"
+uuid = "429591f6-91af-11e9-00e2-59fbe8cec110"
+version = "2.2.8"
+
+[[deps.ExceptionUnwrapping]]
+deps = ["Test"]
+git-tree-sha1 = "dcb08a0d93ec0b1cdc4af184b26b591e9695423a"
+uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4"
+version = "0.1.10"
+
[[deps.Expat_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "bad72f730e9e91c08d9427d5e8db95478a3c323d"
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "1c6317308b9dc757616f0b5cb379db10494443a7"
uuid = "2e619515-83b5-522b-bb60-26c02a35a201"
-version = "2.4.8+0"
+version = "2.6.2+0"
+
+[[deps.ExpressionExplorer]]
+git-tree-sha1 = "0da78bef32ca71276337442389a3d1962a1ee0da"
+uuid = "21656369-7473-754a-2065-74616d696c43"
+version = "1.0.2"
[[deps.ExproniconLite]]
-deps = ["Pkg", "TOML"]
-git-tree-sha1 = "c2eb763acf6e13e75595e0737a07a0bec0ce2147"
+git-tree-sha1 = "6091a6fc0f16639f43d7f78fee225ba365712612"
uuid = "55351af7-c7e9-48d6-89ff-24e801d99491"
-version = "0.7.11"
+version = "0.10.8"
[[deps.Extents]]
-git-tree-sha1 = "5e1e4c53fa39afe63a7d356e30452249365fba99"
+git-tree-sha1 = "2140cd04483da90b2da7f99b2add0750504fc39c"
uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910"
-version = "0.1.1"
-
-[[deps.FFMPEG]]
-deps = ["FFMPEG_jll"]
-git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8"
-uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a"
-version = "0.4.1"
+version = "0.1.2"
[[deps.FFMPEG_jll]]
-deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Pkg", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"]
-git-tree-sha1 = "74faea50c1d007c85837327f6775bea60b5492dd"
+deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"]
+git-tree-sha1 = "ab3f7e1819dba9434a3a5126510c8fda3a4e7000"
uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5"
-version = "4.4.2+2"
+version = "6.1.1+0"
[[deps.FFTW]]
deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"]
-git-tree-sha1 = "f9818144ce7c8c41edf5c4c179c684d92aa4d9fe"
+git-tree-sha1 = "4820348781ae578893311153d69049a93d05f39d"
uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341"
-version = "1.6.0"
+version = "1.8.0"
[[deps.FFTW_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
@@ -480,11 +587,23 @@ git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea"
uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a"
version = "3.3.10+0"
+[[deps.FLoops]]
+deps = ["BangBang", "Compat", "FLoopsBase", "InitialValues", "JuliaVariables", "MLStyle", "Serialization", "Setfield", "Transducers"]
+git-tree-sha1 = "ffb97765602e3cbe59a0589d237bf07f245a8576"
+uuid = "cc61a311-1640-44b5-9fba-1b764f453329"
+version = "0.2.1"
+
+[[deps.FLoopsBase]]
+deps = ["ContextVariablesX"]
+git-tree-sha1 = "656f7a6859be8673bf1f35da5670246b923964f7"
+uuid = "b9860ae5-e623-471e-878b-f6a53c775ea6"
+version = "0.1.1"
+
[[deps.FileIO]]
deps = ["Pkg", "Requires", "UUIDs"]
-git-tree-sha1 = "299dc33549f68299137e51e6d49a13b5b1da9673"
+git-tree-sha1 = "82d8afa92ecf4b52d78d869f038ebfb881267322"
uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549"
-version = "1.16.1"
+version = "1.16.3"
[[deps.FilePaths]]
deps = ["FilePathsBase", "MacroTools", "Reexport", "Requires"]
@@ -494,30 +613,36 @@ version = "0.8.3"
[[deps.FilePathsBase]]
deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"]
-git-tree-sha1 = "e27c4ebe80e8699540f2d6c805cc12203b614f12"
+git-tree-sha1 = "9f00e42f8d99fdde64d40c8ea5d14269a2e2c1aa"
uuid = "48062228-2e41-5def-b9a4-89aafe57970f"
-version = "0.9.20"
+version = "0.9.21"
[[deps.FileWatching]]
uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee"
[[deps.FillArrays]]
-deps = ["LinearAlgebra", "Random", "SparseArrays", "Statistics"]
-git-tree-sha1 = "fc86b4fd3eff76c3ce4f5e96e2fdfa6282722885"
+deps = ["LinearAlgebra"]
+git-tree-sha1 = "0653c0a2396a6da5bc4766c43041ef5fd3efbe57"
uuid = "1a297f60-69ca-5386-bcde-b61e274b549b"
-version = "1.0.0"
+version = "1.11.0"
+weakdeps = ["PDMats", "SparseArrays", "Statistics"]
+
+ [deps.FillArrays.extensions]
+ FillArraysPDMatsExt = "PDMats"
+ FillArraysSparseArraysExt = "SparseArrays"
+ FillArraysStatisticsExt = "Statistics"
[[deps.FixedPointNumbers]]
deps = ["Statistics"]
-git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc"
+git-tree-sha1 = "05882d6995ae5c12bb5f36dd2ed3f61c98cbb172"
uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93"
-version = "0.8.4"
+version = "0.8.5"
[[deps.Fontconfig_jll]]
-deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"]
-git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03"
+deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"]
+git-tree-sha1 = "db16beca600632c95fc8aca29890d83788dd8b23"
uuid = "a3f928ae-7b40-5064-980b-68af3947d34b"
-version = "2.13.93+0"
+version = "2.13.96+0"
[[deps.ForceImport]]
deps = ["Test"]
@@ -525,17 +650,16 @@ git-tree-sha1 = "7ac07d5194360af910146abd33af89bb69541194"
uuid = "9dda63f9-cce7-5873-89fa-eccbb2fffcde"
version = "0.0.3"
-[[deps.Formatting]]
-deps = ["Printf"]
-git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8"
-uuid = "59287772-0a20-5a39-b81b-1366585eb4c0"
-version = "0.4.2"
+[[deps.Format]]
+git-tree-sha1 = "9c68794ef81b08086aeb32eeaf33531668d5f5fc"
+uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8"
+version = "1.3.7"
[[deps.ForwardDiff]]
deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"]
-git-tree-sha1 = "00e252f4d706b3d55a8863432e742bf5717b498d"
+git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad"
uuid = "f6369f11-7733-5829-9624-2563aa707210"
-version = "0.10.35"
+version = "0.10.36"
weakdeps = ["StaticArrays"]
[deps.ForwardDiff.extensions]
@@ -543,27 +667,27 @@ weakdeps = ["StaticArrays"]
[[deps.FreeType]]
deps = ["CEnum", "FreeType2_jll"]
-git-tree-sha1 = "cabd77ab6a6fdff49bfd24af2ebe76e6e018a2b4"
+git-tree-sha1 = "907369da0f8e80728ab49c1c7e09327bf0d6d999"
uuid = "b38be410-82b0-50bf-ab77-7b57e271db43"
-version = "4.0.0"
+version = "4.1.1"
[[deps.FreeType2_jll]]
-deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"]
-git-tree-sha1 = "87eb71354d8ec1a96d4a7636bd57a7347dde3ef9"
+deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"]
+git-tree-sha1 = "5c1d8ae0efc6c2e7b1fc502cbe25def8f661b7bc"
uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7"
-version = "2.10.4+0"
+version = "2.13.2+0"
[[deps.FreeTypeAbstraction]]
deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"]
-git-tree-sha1 = "38a92e40157100e796690421e34a11c107205c86"
+git-tree-sha1 = "2493cdfd0740015955a8e46de4ef28f49460d8bc"
uuid = "663a7486-cb36-511b-a19d-713bb74d65c9"
-version = "0.10.0"
+version = "0.10.3"
[[deps.FriBidi_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91"
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "1ed150b39aebcc805c26b93a8d0122c940f64ce2"
uuid = "559328eb-81f9-559d-9380-de523a88c83c"
-version = "1.0.10+0"
+version = "1.0.14+0"
[[deps.Future]]
deps = ["Random"]
@@ -571,33 +695,33 @@ uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820"
[[deps.FuzzyCompletions]]
deps = ["REPL"]
-git-tree-sha1 = "e16dd964b4dfaebcded16b2af32f05e235b354be"
+git-tree-sha1 = "40ec72c57559a4473961bbcd12c96bcd4c2aaab4"
uuid = "fb4132e2-a121-4a70-b8a1-d5b831dcdcc2"
-version = "0.5.1"
+version = "0.5.4"
[[deps.GPUArrays]]
deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"]
-git-tree-sha1 = "9ade6983c3dbbd492cf5729f865fe030d1541463"
+git-tree-sha1 = "38cb19b8a3e600e509dc36a6396ac74266d108c1"
uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7"
-version = "8.6.6"
+version = "10.1.1"
[[deps.GPUArraysCore]]
deps = ["Adapt"]
-git-tree-sha1 = "1cd7f0af1aa58abc02ea1d872953a97359cb87fa"
+git-tree-sha1 = "ec632f177c0d990e64d955ccc1b8c04c485a0950"
uuid = "46192b85-c4d5-4398-a991-12ede77f4527"
-version = "0.1.4"
+version = "0.1.6"
[[deps.GeoInterface]]
deps = ["Extents"]
-git-tree-sha1 = "bb198ff907228523f3dee1070ceee63b9359b6ab"
+git-tree-sha1 = "801aef8228f7f04972e596b09d4dba481807c913"
uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f"
-version = "1.3.1"
+version = "1.3.4"
[[deps.GeometryBasics]]
-deps = ["EarCut_jll", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"]
-git-tree-sha1 = "659140c9375afa2f685e37c1a0b9c9a60ef56b40"
+deps = ["EarCut_jll", "Extents", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"]
+git-tree-sha1 = "b62f2b2d76cee0d61a2ef2b3118cd2a3215d3134"
uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326"
-version = "0.4.7"
+version = "0.4.11"
[[deps.Gettext_jll]]
deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"]
@@ -605,23 +729,11 @@ git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046"
uuid = "78b55507-aeef-58d4-861c-77aaff3498b1"
version = "0.21.0+0"
-[[deps.Git]]
-deps = ["Git_jll"]
-git-tree-sha1 = "51764e6c2e84c37055e846c516e9015b4a291c7d"
-uuid = "d7ba0133-e1db-5d97-8f8c-041e4b3a1eb2"
-version = "1.3.0"
-
-[[deps.Git_jll]]
-deps = ["Artifacts", "Expat_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "Libiconv_jll", "OpenSSL_jll", "PCRE2_jll", "Zlib_jll"]
-git-tree-sha1 = "d8be4aab0f4e043cc40984e9097417307cce4c03"
-uuid = "f8c6e375-362e-5223-8a59-34ff63f689eb"
-version = "2.36.1+2"
-
[[deps.Glib_jll]]
-deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Pkg", "Zlib_jll"]
-git-tree-sha1 = "d3b3624125c1474292d0d8ed0f65554ac37ddb23"
+deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"]
+git-tree-sha1 = "7c82e6a6cd34e9d935e9aa4051b66c6ff3af59ba"
uuid = "7746bdde-850d-59dc-9ae8-88ece973131d"
-version = "2.74.0+2"
+version = "2.80.2+0"
[[deps.Graphics]]
deps = ["Colors", "LinearAlgebra", "NaNMath"]
@@ -637,9 +749,9 @@ version = "1.3.14+0"
[[deps.GridLayoutBase]]
deps = ["GeometryBasics", "InteractiveUtils", "Observables"]
-git-tree-sha1 = "678d136003ed5bceaab05cf64519e3f956ffa4ba"
+git-tree-sha1 = "fc713f007cff99ff9e50accba6373624ddd33588"
uuid = "3955a311-db13-416c-9275-1d80ed98e5e9"
-version = "0.9.1"
+version = "0.11.0"
[[deps.Grisu]]
git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2"
@@ -647,10 +759,10 @@ uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe"
version = "1.0.2"
[[deps.HTTP]]
-deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"]
-git-tree-sha1 = "41f7dfb2b20e7e8bf64f6b6fae98f4d2df027b06"
+deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"]
+git-tree-sha1 = "d1d712be3164d61d1fb98e7ce9bcbc6cc06b45ed"
uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3"
-version = "1.9.4"
+version = "1.10.8"
[[deps.HarfBuzz_jll]]
deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"]
@@ -660,33 +772,33 @@ version = "2.8.1+1"
[[deps.HostCPUFeatures]]
deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"]
-git-tree-sha1 = "734fd90dd2f920a2f1921d5388dcebe805b262dc"
+git-tree-sha1 = "eb8fed28f4994600e29beef49744639d985a04b2"
uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0"
-version = "0.1.14"
+version = "0.1.16"
[[deps.HypergeometricFunctions]]
deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"]
-git-tree-sha1 = "84204eae2dd237500835990bcade263e27674a93"
+git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685"
uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a"
-version = "0.3.16"
+version = "0.3.23"
[[deps.HypertextLiteral]]
deps = ["Tricks"]
-git-tree-sha1 = "c47c5fa4c5308f27ccaac35504858d8914e102f9"
+git-tree-sha1 = "7134810b1afce04bbc1045ca1985fbe81ce17653"
uuid = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2"
-version = "0.9.4"
+version = "0.9.5"
[[deps.IJulia]]
deps = ["Base64", "Conda", "Dates", "InteractiveUtils", "JSON", "Libdl", "Logging", "Markdown", "MbedTLS", "Pkg", "Printf", "REPL", "Random", "SoftGlobalScope", "Test", "UUIDs", "ZMQ"]
-git-tree-sha1 = "59e19713542dd9dd02f31d59edbada69530d6a14"
+git-tree-sha1 = "47ac8cc196b81001a711f4b2c12c97372338f00c"
uuid = "7073ff75-c697-5162-941a-fcdaad2a7d2a"
-version = "1.24.0"
+version = "1.24.2"
[[deps.IRTools]]
-deps = ["InteractiveUtils", "MacroTools", "Test"]
-git-tree-sha1 = "eac00994ce3229a464c2847e956d77a2c64ad3a5"
+deps = ["InteractiveUtils", "MacroTools"]
+git-tree-sha1 = "950c3717af761bc3ff906c2e8e52bd83390b6ec2"
uuid = "7869d1d1-7146-5819-86e3-90919afe41df"
-version = "0.4.10"
+version = "0.4.14"
[[deps.IfElse]]
git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1"
@@ -695,39 +807,39 @@ version = "0.1.1"
[[deps.ImageAxes]]
deps = ["AxisArrays", "ImageBase", "ImageCore", "Reexport", "SimpleTraits"]
-git-tree-sha1 = "c54b581a83008dc7f292e205f4c409ab5caa0f04"
+git-tree-sha1 = "2e4520d67b0cef90865b3ef727594d2a58e0e1f8"
uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac"
-version = "0.6.10"
+version = "0.6.11"
[[deps.ImageBase]]
deps = ["ImageCore", "Reexport"]
-git-tree-sha1 = "b51bb8cae22c66d0f6357e3bcb6363145ef20835"
+git-tree-sha1 = "eb49b82c172811fd2c86759fa0553a2221feb909"
uuid = "c817782e-172a-44cc-b673-b171935fbb9e"
-version = "0.1.5"
+version = "0.1.7"
[[deps.ImageCore]]
-deps = ["AbstractFFTs", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Graphics", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "Reexport"]
-git-tree-sha1 = "acf614720ef026d38400b3817614c45882d75500"
+deps = ["ColorVectorSpace", "Colors", "FixedPointNumbers", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "PrecompileTools", "Reexport"]
+git-tree-sha1 = "b2a7eaa169c13f5bcae8131a83bc30eff8f71be0"
uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534"
-version = "0.9.4"
+version = "0.10.2"
[[deps.ImageIO]]
deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"]
-git-tree-sha1 = "342f789fd041a55166764c351da1710db97ce0e0"
+git-tree-sha1 = "437abb322a41d527c197fa800455f79d414f0a3c"
uuid = "82e4d734-157c-48bb-816b-45c225c6df19"
-version = "0.6.6"
+version = "0.6.8"
[[deps.ImageMetadata]]
deps = ["AxisArrays", "ImageAxes", "ImageBase", "ImageCore"]
-git-tree-sha1 = "36cbaebed194b292590cba2593da27b34763804a"
+git-tree-sha1 = "355e2b974f2e3212a75dfb60519de21361ad3cb7"
uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49"
-version = "0.9.8"
+version = "0.9.9"
[[deps.Imath_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
-git-tree-sha1 = "3d09a9f60edf77f8a4d99f9e015e8fbf9989605d"
+git-tree-sha1 = "0936ba688c6d201805a83da835b55c61a180db52"
uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1"
-version = "3.1.7+0"
+version = "3.1.11+0"
[[deps.IndirectArrays]]
git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f"
@@ -735,9 +847,14 @@ uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959"
version = "1.0.0"
[[deps.Inflate]]
-git-tree-sha1 = "5cd07aab533df5170988219191dfad0519391428"
+git-tree-sha1 = "ea8031dea4aff6bd41f1df8f2fdfb25b33626381"
uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9"
-version = "0.1.3"
+version = "0.1.4"
+
+[[deps.InitialValues]]
+git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3"
+uuid = "22cec73e-a1b8-11e9-2c92-598750a2cf9c"
+version = "0.3.1"
[[deps.InlineStrings]]
deps = ["Parsers"]
@@ -746,10 +863,10 @@ uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48"
version = "1.4.0"
[[deps.IntelOpenMP_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "0cb9352ef2e01574eeebdb102948a58740dcaf83"
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "be50fe8df3acbffa0274a744f1a99d29c45a57f4"
uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0"
-version = "2023.1.0+0"
+version = "2024.1.0+0"
[[deps.InteractiveUtils]]
deps = ["Markdown"]
@@ -757,15 +874,36 @@ uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
[[deps.Interpolations]]
deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"]
-git-tree-sha1 = "721ec2cf720536ad005cb38f50dbba7b02419a15"
+git-tree-sha1 = "88a101217d7cb38a7b481ccd50d21876e1d1b0e0"
uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59"
-version = "0.14.7"
+version = "0.15.1"
+weakdeps = ["Unitful"]
+
+ [deps.Interpolations.extensions]
+ InterpolationsUnitfulExt = "Unitful"
+
+[[deps.IntervalArithmetic]]
+deps = ["CRlibm_jll", "MacroTools", "RoundingEmulator"]
+git-tree-sha1 = "e75c4e33afbc631aa62671ebba12863321c1d46e"
+uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253"
+version = "0.22.12"
+weakdeps = ["DiffRules", "ForwardDiff", "RecipesBase"]
+
+ [deps.IntervalArithmetic.extensions]
+ IntervalArithmeticDiffRulesExt = "DiffRules"
+ IntervalArithmeticForwardDiffExt = "ForwardDiff"
+ IntervalArithmeticRecipesBaseExt = "RecipesBase"
[[deps.IntervalSets]]
-deps = ["Dates", "Random", "Statistics"]
-git-tree-sha1 = "16c0cc91853084cb5f58a78bd209513900206ce6"
+git-tree-sha1 = "dba9ddf07f77f60450fe5d2e2beb9854d9a49bd0"
uuid = "8197267c-284f-5f27-9208-e0e47529a953"
-version = "0.7.4"
+version = "0.7.10"
+weakdeps = ["Random", "RecipesBase", "Statistics"]
+
+ [deps.IntervalSets.extensions]
+ IntervalSetsRandomExt = "Random"
+ IntervalSetsRecipesBaseExt = "RecipesBase"
+ IntervalSetsStatisticsExt = "Statistics"
[[deps.InvertedIndices]]
git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038"
@@ -784,15 +922,15 @@ uuid = "f1662d9f-8043-43de-a69a-05efc1cc6ff4"
version = "0.1.1"
[[deps.IterTools]]
-git-tree-sha1 = "fa6287a4469f5e048d763df38279ee729fbd44e5"
+git-tree-sha1 = "42d5f897009e7ff2cf88db414a389e5ed1bdd023"
uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e"
-version = "1.4.0"
+version = "1.10.0"
[[deps.IterationControl]]
deps = ["EarlyStopping", "InteractiveUtils"]
-git-tree-sha1 = "d7df9a6fdd82a8cfdfe93a94fcce35515be634da"
+git-tree-sha1 = "e663925ebc3d93c1150a7570d114f9ea2f664726"
uuid = "b3c1a2ee-3fec-4384-bf48-272ea71de57c"
-version = "0.5.3"
+version = "0.5.4"
[[deps.IteratorInterfaceExtensions]]
git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856"
@@ -800,16 +938,16 @@ uuid = "82899510-4779-5014-852e-03e436cf321d"
version = "1.0.0"
[[deps.JLD2]]
-deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"]
-git-tree-sha1 = "42c17b18ced77ff0be65957a591d34f4ed57c631"
+deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "PrecompileTools", "Reexport", "Requires", "TranscodingStreams", "UUIDs", "Unicode"]
+git-tree-sha1 = "bdbe8222d2f5703ad6a7019277d149ec6d78c301"
uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819"
-version = "0.4.31"
+version = "0.4.48"
[[deps.JLLWrappers]]
-deps = ["Preferences"]
-git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1"
+deps = ["Artifacts", "Preferences"]
+git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca"
uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210"
-version = "1.4.1"
+version = "1.5.0"
[[deps.JSON]]
deps = ["Dates", "Mmap", "Parsers", "Unicode"]
@@ -819,67 +957,97 @@ version = "0.21.4"
[[deps.JpegTurbo]]
deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"]
-git-tree-sha1 = "106b6aa272f294ba47e96bd3acbabdc0407b5c60"
+git-tree-sha1 = "fa6d0bcff8583bac20f1ffa708c3913ca605c611"
uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0"
-version = "0.1.2"
+version = "0.1.5"
[[deps.JpegTurbo_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
-git-tree-sha1 = "6f2675ef130a300a112286de91973805fcc5ffbc"
+git-tree-sha1 = "c84a835e1a09b289ffcd2271bf2a337bbdda6637"
uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8"
-version = "2.1.91+0"
+version = "3.0.3+0"
+
+[[deps.JuliaVariables]]
+deps = ["MLStyle", "NameResolution"]
+git-tree-sha1 = "49fb3cb53362ddadb4415e9b73926d6b40709e70"
+uuid = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec"
+version = "0.2.4"
+
+[[deps.KernelAbstractions]]
+deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"]
+git-tree-sha1 = "db02395e4c374030c53dc28f3c1d33dec35f7272"
+uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c"
+version = "0.9.19"
+
+ [deps.KernelAbstractions.extensions]
+ EnzymeExt = "EnzymeCore"
+
+ [deps.KernelAbstractions.weakdeps]
+ EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869"
[[deps.KernelDensity]]
deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"]
-git-tree-sha1 = "90442c50e202a5cdf21a7899c66b240fdef14035"
+git-tree-sha1 = "7d703202e65efa1369de1279c162b915e245eed1"
uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b"
-version = "0.6.7"
+version = "0.6.9"
[[deps.LAME_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c"
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "170b660facf5df5de098d866564877e119141cbd"
uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d"
-version = "3.100.1+0"
+version = "3.100.2+0"
[[deps.LLVM]]
-deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Printf", "Unicode"]
-git-tree-sha1 = "26a31cdd9f1f4ea74f649a7bf249703c687a953d"
+deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"]
+git-tree-sha1 = "065c36f95709dd4a676dc6839a35d6fa6f192f24"
uuid = "929cbde3-209d-540e-8aea-75f648917ca0"
-version = "5.1.0"
+version = "7.1.0"
+
+ [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 = "09b7505cc0b1cee87e5d4a26eea61d2e1b0dcd35"
+git-tree-sha1 = "88b916503aac4fb7f701bb625cd84ca5dd1677bc"
uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab"
-version = "0.0.21+0"
+version = "0.0.29+0"
+
+[[deps.LLVMOpenMP_jll]]
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "d986ce2d884d49126836ea94ed5bfb0f12679713"
+uuid = "1d63c593-3942-5779-bab2-d838dc0a180e"
+version = "15.0.7+0"
[[deps.LZO_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6"
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "70c5da094887fd2cae843b8db33920bac4b6f07d"
uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac"
-version = "2.10.1+0"
+version = "2.10.2+0"
[[deps.LaTeXStrings]]
-git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996"
+git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec"
uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f"
-version = "1.3.0"
+version = "1.3.1"
[[deps.LatinHypercubeSampling]]
deps = ["Random", "StableRNGs", "StatsBase", "Test"]
-git-tree-sha1 = "42938ab65e9ed3c3029a8d2c58382ca75bdab243"
+git-tree-sha1 = "825289d43c753c7f1bf9bed334c253e9913997f8"
uuid = "a5e1c1ea-c99a-51d3-a14d-a9a37257b02d"
-version = "1.8.0"
+version = "1.9.0"
[[deps.LayoutPointers]]
deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"]
-git-tree-sha1 = "88b8f66b604da079a627b6fb2860d3704a6729a1"
+git-tree-sha1 = "62edfee3211981241b57ff1cedf4d74d79519277"
uuid = "10f19ff3-798f-405d-979b-55457f8fc047"
-version = "0.1.14"
+version = "0.1.15"
[[deps.LazilyInitializedFields]]
-git-tree-sha1 = "410fe4739a4b092f2ffe36fcb0dcc3ab12648ce1"
+git-tree-sha1 = "8f7f3cabab0fd1800699663533b6d5cb3fc0e612"
uuid = "0e77f7df-68c5-4e49-93ce-4cd80f5598bf"
-version = "1.2.1"
+version = "1.2.2"
[[deps.LazyArtifacts]]
deps = ["Artifacts", "Pkg"]
@@ -890,24 +1058,35 @@ 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"
-version = "0.6.3"
+version = "0.6.4"
[[deps.LibCURL_jll]]
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"]
uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0"
-version = "7.84.0+0"
+version = "8.4.0+0"
[[deps.LibGit2]]
-deps = ["Base64", "NetworkOptions", "Printf", "SHA"]
+deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"]
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
+[[deps.LibGit2_jll]]
+deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"]
+uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5"
+version = "1.6.4+0"
+
[[deps.LibSSH2_jll]]
deps = ["Artifacts", "Libdl", "MbedTLS_jll"]
uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8"
-version = "1.10.2+0"
+version = "1.11.0+1"
[[deps.Libdl]]
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
@@ -919,34 +1098,34 @@ uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490"
version = "3.2.2+1"
[[deps.Libgcrypt_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"]
-git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae"
+deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll"]
+git-tree-sha1 = "9fd170c4bbfd8b935fdc5f8b7aa33532c991a673"
uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4"
-version = "1.8.7+0"
+version = "1.8.11+0"
[[deps.Libgpg_error_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9"
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "fbb1f2bef882392312feb1ede3615ddc1e9b99ed"
uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8"
-version = "1.42.0+0"
+version = "1.49.0+0"
[[deps.Libiconv_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "c7cb1f5d892775ba13767a87c7ada0b980ea0a71"
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175"
uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531"
-version = "1.16.1+2"
+version = "1.17.0+0"
[[deps.Libmount_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73"
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "0c4f9c4f1a50d8f35048fa0532dabbadf702f81e"
uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9"
-version = "2.35.0+0"
+version = "2.40.1+0"
[[deps.Libuuid_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066"
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "5ee6203157c120d79034c748a2acba45b82b8807"
uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700"
-version = "2.36.0+0"
+version = "2.40.1+0"
[[deps.LinearAlgebra]]
deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"]
@@ -954,9 +1133,9 @@ uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
[[deps.LogExpFunctions]]
deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"]
-git-tree-sha1 = "0a1b7c2863e44523180fdb3146534e265a91870b"
+git-tree-sha1 = "18144f3e9cbe9b15b070288eef858f71b291ce37"
uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688"
-version = "0.3.23"
+version = "0.3.27"
[deps.LogExpFunctions.extensions]
LogExpFunctionsChainRulesCoreExt = "ChainRulesCore"
@@ -973,97 +1152,130 @@ uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
[[deps.LoggingExtras]]
deps = ["Dates", "Logging"]
-git-tree-sha1 = "cedb76b37bc5a6c702ade66be44f831fa23c681e"
+git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075"
uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36"
-version = "1.0.0"
+version = "1.0.3"
[[deps.LoopVectorization]]
-deps = ["ArrayInterface", "ArrayInterfaceCore", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"]
-git-tree-sha1 = "3bb62b5003bc7d2d49f26663484267dc49fa1bf5"
+deps = ["ArrayInterface", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"]
+git-tree-sha1 = "8f6786d8b2b3248d79db3ad359ce95382d5a6df8"
uuid = "bdcacae8-1622-11e9-2a5c-532679323890"
-version = "0.12.159"
+version = "0.12.170"
weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"]
[deps.LoopVectorization.extensions]
ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"]
SpecialFunctionsExt = "SpecialFunctions"
-[[deps.LossFunctions]]
-deps = ["CategoricalArrays", "Markdown", "Statistics"]
-git-tree-sha1 = "44a7bfeb7b5eb9386a62b9cccc6e21f406c15bea"
-uuid = "30fc2ffe-d236-52d8-8643-a9d8f7c094a7"
-version = "0.10.0"
-
[[deps.MIMEs]]
git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb"
uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65"
version = "0.1.4"
[[deps.MKL_jll]]
-deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"]
-git-tree-sha1 = "2ce8695e1e699b68702c03402672a69f54b8aca9"
+deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"]
+git-tree-sha1 = "80b2833b56d466b3858d565adcd16a4a05f2089b"
uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7"
-version = "2022.2.0+0"
+version = "2024.1.0+0"
+
+[[deps.MLFlowClient]]
+deps = ["Dates", "FilePathsBase", "HTTP", "JSON", "ShowCases", "URIs", "UUIDs"]
+git-tree-sha1 = "9abb12b62debc27261c008daa13627255bf79967"
+uuid = "64a0f543-368b-4a9a-827a-e71edb2a0b83"
+version = "0.5.1"
[[deps.MLJ]]
-deps = ["CategoricalArrays", "ComputationalResources", "Distributed", "Distributions", "LinearAlgebra", "MLJBase", "MLJEnsembles", "MLJIteration", "MLJModels", "MLJTuning", "OpenML", "Pkg", "ProgressMeter", "Random", "ScientificTypes", "Statistics", "StatsBase", "Tables"]
-git-tree-sha1 = "80149328ca780b522b5a95e402450d10df7904f2"
+deps = ["CategoricalArrays", "ComputationalResources", "Distributed", "Distributions", "LinearAlgebra", "MLJBalancing", "MLJBase", "MLJEnsembles", "MLJFlow", "MLJIteration", "MLJModels", "MLJTuning", "OpenML", "Pkg", "ProgressMeter", "Random", "Reexport", "ScientificTypes", "StatisticalMeasures", "Statistics", "StatsBase", "Tables"]
+git-tree-sha1 = "c6f89d9fe1fb8872d72424b060a94f00f569b2dd"
uuid = "add582a8-e3ab-11e8-2d5e-e98b27df1bc7"
-version = "0.19.1"
+version = "0.20.4"
+
+[[deps.MLJBalancing]]
+deps = ["MLJBase", "MLJModelInterface", "MLUtils", "OrderedCollections", "Random", "StatsBase"]
+git-tree-sha1 = "f02e28f9f3c54a138db12a97a5d823e5e572c2d6"
+uuid = "45f359ea-796d-4f51-95a5-deb1a414c586"
+version = "0.1.4"
[[deps.MLJBase]]
-deps = ["CategoricalArrays", "CategoricalDistributions", "ComputationalResources", "Dates", "DelimitedFiles", "Distributed", "Distributions", "InteractiveUtils", "InvertedIndices", "LinearAlgebra", "LossFunctions", "MLJModelInterface", "Missings", "OrderedCollections", "Parameters", "PrettyTables", "ProgressMeter", "Random", "ScientificTypes", "Serialization", "StatisticalTraits", "Statistics", "StatsBase", "Tables"]
-git-tree-sha1 = "4cc167b6c0a3ab25d7050e4ac38fe119e97cd1ab"
+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 = "aba2ffd56a9a97027b4102055dd9f909a6e35d12"
uuid = "a7f614a8-145f-11e9-1d2a-a57a1082229d"
-version = "0.21.11"
+version = "1.3.0"
+weakdeps = ["StatisticalMeasures"]
+
+ [deps.MLJBase.extensions]
+ DefaultMeasuresExt = "StatisticalMeasures"
[[deps.MLJEnsembles]]
-deps = ["CategoricalArrays", "CategoricalDistributions", "ComputationalResources", "Distributed", "Distributions", "MLJBase", "MLJModelInterface", "ProgressMeter", "Random", "ScientificTypesBase", "StatsBase"]
-git-tree-sha1 = "95b306ef8108067d26dfde9ff3457d59911cc0d6"
+deps = ["CategoricalArrays", "CategoricalDistributions", "ComputationalResources", "Distributed", "Distributions", "MLJModelInterface", "ProgressMeter", "Random", "ScientificTypesBase", "StatisticalMeasuresBase", "StatsBase"]
+git-tree-sha1 = "d3dd87194ec96892bb243b65225a462c7ab16e66"
uuid = "50ed68f4-41fd-4504-931a-ed422449fee0"
-version = "0.3.3"
+version = "0.4.2"
+
+[[deps.MLJFlow]]
+deps = ["MLFlowClient", "MLJBase", "MLJModelInterface"]
+git-tree-sha1 = "a3a4502e187db2f599b82415bc0b18fc0e877ef4"
+uuid = "7b7b8358-b45c-48ea-a8ef-7ca328ad328f"
+version = "0.4.3"
[[deps.MLJIteration]]
deps = ["IterationControl", "MLJBase", "Random", "Serialization"]
-git-tree-sha1 = "be6d5c71ab499a59e82d65e00a89ceba8732fcd5"
+git-tree-sha1 = "1e909ee09417ebd18559c4d9c15febff887192df"
uuid = "614be32b-d00c-4edb-bd02-1eb411ab5e55"
-version = "0.5.1"
+version = "0.6.1"
[[deps.MLJModelInterface]]
deps = ["Random", "ScientificTypesBase", "StatisticalTraits"]
-git-tree-sha1 = "c8b7e632d6754a5e36c0d94a4b466a5ba3a30128"
+git-tree-sha1 = "d2a45e1b5998ba3fdfb6cfe0c81096d4c7fb40e7"
uuid = "e80e1ace-859a-464e-9ed9-23947d8ae3ea"
-version = "1.8.0"
+version = "1.9.6"
[[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 = "21acf47dc53ccc3d68e38ac7629756cd09b599f5"
+git-tree-sha1 = "410da88e0e6ece5467293d2c76b51b7c6df7d072"
uuid = "d491faf4-2d78-11e9-2867-c94bc002c0b7"
-version = "0.16.6"
+version = "0.16.17"
[[deps.MLJTuning]]
-deps = ["ComputationalResources", "Distributed", "Distributions", "LatinHypercubeSampling", "MLJBase", "ProgressMeter", "Random", "RecipesBase"]
-git-tree-sha1 = "02688098bd77827b64ed8ad747c14f715f98cfc4"
+deps = ["ComputationalResources", "Distributed", "Distributions", "LatinHypercubeSampling", "MLJBase", "ProgressMeter", "Random", "RecipesBase", "StatisticalMeasuresBase"]
+git-tree-sha1 = "efb9ec087ab9589afad0002e69fdd9cd38ef1643"
uuid = "03970b2e-30c4-11ea-3135-d1576263f10f"
-version = "0.7.4"
+version = "0.8.6"
+
+[[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.MacroTools]]
deps = ["Markdown", "Random"]
-git-tree-sha1 = "42324d08725e200c23d4dfb549e0d5d89dede2d2"
+git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df"
uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
-version = "0.5.10"
+version = "0.5.13"
[[deps.Makie]]
-deps = ["Animations", "Base64", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG", "FileIO", "FixedPointNumbers", "Formatting", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageIO", "InteractiveUtils", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "Match", "MathTeXEngine", "MiniQhull", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Setfield", "Showoff", "SignedDistanceFields", "SparseArrays", "StableHashTraits", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun"]
-git-tree-sha1 = "3a9ca622a78dcbab3a034df35d1acd3ca7ad487d"
+deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "Dates", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Format", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageIO", "InteractiveUtils", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Scratch", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun", "Unitful"]
+git-tree-sha1 = "99af67efccbf649e63efd4d3103a841c5c32a796"
uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a"
-version = "0.19.5"
+version = "0.21.1"
[[deps.MakieCore]]
-deps = ["Observables"]
-git-tree-sha1 = "9926529455a331ed73c19ff06d16906737a876ed"
+deps = ["ColorTypes", "GeometryBasics", "IntervalSets", "Observables"]
+git-tree-sha1 = "07ac3a4c4c1f8821fda63e21601686e6a4342ec0"
uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b"
-version = "0.6.3"
+version = "0.8.1"
+
+[[deps.Malt]]
+deps = ["Distributed", "Logging", "RelocatableFolders", "Serialization", "Sockets"]
+git-tree-sha1 = "18cf4151e390fce29ca846b92b06baf9bc6e002e"
+uuid = "36869731-bdee-424d-aa32-cab38c994e3b"
+version = "1.1.1"
[[deps.ManualMemory]]
git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd"
@@ -1071,53 +1283,62 @@ uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667"
version = "0.1.8"
[[deps.MappedArrays]]
-git-tree-sha1 = "e8b359ef06ec72e8c030463fe02efe5527ee5142"
+git-tree-sha1 = "2dab0221fe2b0f2cb6754eaa743cc266339f527e"
uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900"
-version = "0.4.1"
+version = "0.4.2"
[[deps.Markdown]]
deps = ["Base64"]
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
-[[deps.Match]]
-git-tree-sha1 = "1d9bc5c1a6e7ee24effb93f175c9342f9154d97f"
-uuid = "7eb4fadd-790c-5f42-8a69-bfa0b872bfbf"
-version = "1.2.0"
-
[[deps.MathTeXEngine]]
-deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "Test", "UnicodeFun"]
-git-tree-sha1 = "8f52dbaa1351ce4cb847d95568cb29e62a307d93"
+deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "UnicodeFun"]
+git-tree-sha1 = "1865d0b8a2d91477c8b16b49152a32764c7b1f5f"
uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53"
-version = "0.5.6"
+version = "0.6.0"
[[deps.MbedTLS]]
-deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "Random", "Sockets"]
-git-tree-sha1 = "03a9b9718f5682ecb107ac9f7308991db4ce395b"
+deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"]
+git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf"
uuid = "739be429-bea8-5141-9913-cc70e7f3736d"
-version = "1.1.7"
+version = "1.1.9"
[[deps.MbedTLS_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
-version = "2.28.2+0"
+version = "2.28.2+1"
[[deps.Measurements]]
-deps = ["Calculus", "LinearAlgebra", "Printf", "RecipesBase", "Requires"]
-git-tree-sha1 = "51d946d38d62709d6a2d37ea9bcc30c80c686801"
+deps = ["Calculus", "LinearAlgebra", "Printf", "Requires"]
+git-tree-sha1 = "bdcde8ec04ca84aef5b124a17684bf3b302de00e"
uuid = "eff96d63-e80a-5855-80a2-b1b0885c5ab7"
-version = "2.9.0"
+version = "2.11.0"
+
+ [deps.Measurements.extensions]
+ MeasurementsBaseTypeExt = "BaseType"
+ MeasurementsJunoExt = "Juno"
+ MeasurementsRecipesBaseExt = "RecipesBase"
+ MeasurementsSpecialFunctionsExt = "SpecialFunctions"
+ MeasurementsUnitfulExt = "Unitful"
+
+ [deps.Measurements.weakdeps]
+ BaseType = "7fbed51b-1ef5-4d67-9085-a4a9b26f478c"
+ Juno = "e5e0dc1b-0480-54bc-9374-aad01c23163d"
+ RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01"
+ SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b"
+ Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
-[[deps.MiniQhull]]
-deps = ["QhullMiniWrapper_jll"]
-git-tree-sha1 = "9dc837d180ee49eeb7c8b77bb1c860452634b0d1"
-uuid = "978d7f02-9e05-4691-894f-ae31a51d76ca"
-version = "0.4.0"
+[[deps.MicroCollections]]
+deps = ["BangBang", "InitialValues", "Setfield"]
+git-tree-sha1 = "629afd7d10dbc6935ec59b32daeb33bc4460a42e"
+uuid = "128add7d-3638-4c79-886c-908ea0c25c34"
+version = "0.1.4"
[[deps.Missings]]
deps = ["DataAPI"]
-git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272"
+git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d"
uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28"
-version = "1.1.0"
+version = "1.2.0"
[[deps.Mmap]]
uuid = "a63ad114-7e13-5084-954f-fe012c677804"
@@ -1130,13 +1351,31 @@ version = "0.3.4"
[[deps.MozillaCACerts_jll]]
uuid = "14a3606d-f60d-562e-9121-12d972cd8159"
-version = "2022.10.11"
+version = "2023.1.10"
[[deps.MsgPack]]
deps = ["Serialization"]
-git-tree-sha1 = "fc8c15ca848b902015bd4a745d350f02cf791c2a"
+git-tree-sha1 = "f5db02ae992c260e4826fe78c942954b48e1d9c2"
uuid = "99f44e22-a591-53d1-9472-aa23ef4bd671"
-version = "1.2.0"
+version = "1.2.1"
+
+[[deps.NNlib]]
+deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"]
+git-tree-sha1 = "3d4617f943afe6410206a5294a95948c8d1b35bd"
+uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd"
+version = "0.9.17"
+
+ [deps.NNlib.extensions]
+ NNlibAMDGPUExt = "AMDGPU"
+ NNlibCUDACUDNNExt = ["CUDA", "cuDNN"]
+ NNlibCUDAExt = "CUDA"
+ NNlibEnzymeCoreExt = "EnzymeCore"
+
+ [deps.NNlib.weakdeps]
+ AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e"
+ CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba"
+ EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869"
+ cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd"
[[deps.NaNMath]]
deps = ["OpenLibm_jll"]
@@ -1144,26 +1383,35 @@ git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4"
uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3"
version = "1.0.2"
+[[deps.NameResolution]]
+deps = ["PrettyPrint"]
+git-tree-sha1 = "1a0fa0e9613f46c9b8c11eee38ebb4f590013c5e"
+uuid = "71a1bf82-56d0-4bbc-8a3c-48b961074391"
+version = "0.1.5"
+
[[deps.Netpbm]]
deps = ["FileIO", "ImageCore", "ImageMetadata"]
-git-tree-sha1 = "5ae7ca23e13855b3aba94550f26146c01d259267"
+git-tree-sha1 = "d92b107dbb887293622df7697a2223f9f8176fcd"
uuid = "f09324ee-3d7c-5217-9330-fc30815ba969"
-version = "1.1.0"
+version = "1.1.1"
[[deps.NetworkOptions]]
uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
version = "1.2.0"
[[deps.Observables]]
-git-tree-sha1 = "6862738f9796b3edc1c09d0890afce4eca9e7e93"
+git-tree-sha1 = "7438a59546cf62428fc9d1bc94729146d37a7225"
uuid = "510215fc-4207-5dde-b226-833fc4488ee2"
-version = "0.5.4"
+version = "0.5.5"
[[deps.OffsetArrays]]
-deps = ["Adapt"]
-git-tree-sha1 = "82d7c9e310fe55aa54996e6f7f94674e2a38fcb4"
+git-tree-sha1 = "e64b4f5ea6b7389f6f046d13d4896a8f9c1ba71e"
uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881"
-version = "1.12.9"
+version = "1.14.0"
+weakdeps = ["Adapt"]
+
+ [deps.OffsetArrays.extensions]
+ OffsetArraysAdaptExt = "Adapt"
[[deps.Ogg_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
@@ -1174,7 +1422,7 @@ version = "1.3.5+1"
[[deps.OpenBLAS_jll]]
deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"]
uuid = "4536629a-c528-5b80-bd46-f80d51c5b363"
-version = "0.3.21+4"
+version = "0.3.23+4"
[[deps.OpenEXR]]
deps = ["Colors", "FileIO", "OpenEXR_jll"]
@@ -1184,14 +1432,14 @@ version = "0.3.2"
[[deps.OpenEXR_jll]]
deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Zlib_jll"]
-git-tree-sha1 = "a4ca623df1ae99d09bc9868b008262d0c0ac1e4f"
+git-tree-sha1 = "8292dd5c8a38257111ada2174000a33745b06d4e"
uuid = "18a262bb-aa17-5467-a713-aee519bc75cb"
-version = "3.1.4+0"
+version = "3.2.4+0"
[[deps.OpenLibm_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "05823500-19ac-5b8b-9628-191a04bc5112"
-version = "0.8.1+0"
+version = "0.8.1+2"
[[deps.OpenML]]
deps = ["ARFFFiles", "HTTP", "JSON", "Markdown", "Pkg", "Scratch"]
@@ -1201,15 +1449,15 @@ version = "0.3.1"
[[deps.OpenSSL]]
deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"]
-git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2"
+git-tree-sha1 = "38cb508d080d21dc1128f7fb04f20387ed4c0af4"
uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c"
-version = "1.4.1"
+version = "1.4.3"
[[deps.OpenSSL_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "9ff31d101d987eb9d66bd8b176ac7c277beccd09"
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "3da7367955dcc5c54c1ba4d402ccdc09a1a3e046"
uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95"
-version = "1.1.20+0"
+version = "3.0.13+1"
[[deps.OpenSpecFun_jll]]
deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"]
@@ -1224,32 +1472,26 @@ uuid = "91d4177d-7536-5919-b921-800302f37372"
version = "1.3.2+0"
[[deps.OrderedCollections]]
-git-tree-sha1 = "d321bf2de576bf25ec4d3e4360faca399afca282"
+git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5"
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
-version = "1.6.0"
+version = "1.6.3"
[[deps.PCRE2_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15"
-version = "10.42.0+0"
+version = "10.42.0+1"
[[deps.PDMats]]
deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"]
-git-tree-sha1 = "67eae2738d63117a196f497d7db789821bce61d1"
+git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65"
uuid = "90014a1f-27ba-587c-ab20-58faa44d9150"
-version = "0.11.17"
+version = "0.11.31"
[[deps.PNGFiles]]
deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"]
-git-tree-sha1 = "f809158b27eba0c18c269cf2a2be6ed751d3e81d"
+git-tree-sha1 = "67186a2bc9a90f9f85ff3cc8277868961fb57cbd"
uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883"
-version = "0.3.17"
-
-[[deps.PackageCompiler]]
-deps = ["Artifacts", "LazyArtifacts", "Libdl", "Pkg", "Printf", "RelocatableFolders", "TOML", "UUIDs"]
-git-tree-sha1 = "7caa85906781a8fa5b1d13ad0dd858dca31b07f0"
-uuid = "9b87118b-4619-50d2-8e1e-99f35a4d4d9d"
-version = "2.1.5"
+version = "0.4.3"
[[deps.Packing]]
deps = ["GeometryBasics"]
@@ -1264,10 +1506,10 @@ uuid = "5432bcbf-9aad-5242-b902-cca2824c8663"
version = "0.5.12"
[[deps.Pango_jll]]
-deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "84a314e3926ba9ec66ac097e3635e270986b0f10"
+deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "cb5a2ab6763464ae0f19c86c56c63d4a2b0f5bda"
uuid = "36c8627f-9965-5494-a995-c6b170f724f3"
-version = "1.50.9+0"
+version = "1.52.2+0"
[[deps.Parameters]]
deps = ["OrderedCollections", "UnPack"]
@@ -1277,20 +1519,20 @@ version = "0.12.3"
[[deps.Parsers]]
deps = ["Dates", "PrecompileTools", "UUIDs"]
-git-tree-sha1 = "7302075e5e06da7d000d9bfa055013e3e85578ca"
+git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821"
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
-version = "2.5.9"
+version = "2.8.1"
[[deps.Pixman_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "b4f5d02549a10e20780a24fce72bea96b6329e29"
+deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"]
+git-tree-sha1 = "35621f10a7531bc8fa58f74610b1bfb70a3cfc6b"
uuid = "30392449-352a-5448-841d-b1acce4e97dc"
-version = "0.40.1+0"
+version = "0.43.4+0"
[[deps.Pkg]]
deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"]
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
-version = "1.9.0"
+version = "1.10.0"
[[deps.PkgOnlineHelp]]
deps = ["DefaultApplication", "Pkg", "Scratch", "TOML"]
@@ -1300,21 +1542,27 @@ version = "0.2.3"
[[deps.PkgVersion]]
deps = ["Pkg"]
-git-tree-sha1 = "f6cf8e7944e50901594838951729a1861e668cb8"
+git-tree-sha1 = "f9501cc0430a26bc3d156ae1b5b0c1b47af4d6da"
uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688"
-version = "0.3.2"
+version = "0.3.3"
[[deps.PlotUtils]]
deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"]
-git-tree-sha1 = "f92e1315dadf8c46561fb9396e525f7200cdc227"
+git-tree-sha1 = "7b1a9df27f072ac4c9c7cbe5efb198489258d1f5"
uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043"
-version = "1.3.5"
+version = "1.4.1"
[[deps.Pluto]]
-deps = ["Base64", "Configurations", "Dates", "Distributed", "FileWatching", "FuzzyCompletions", "HTTP", "HypertextLiteral", "InteractiveUtils", "Logging", "LoggingExtras", "MIMEs", "Markdown", "MsgPack", "Pkg", "PrecompileSignatures", "REPL", "RegistryInstances", "RelocatableFolders", "SnoopPrecompile", "Sockets", "TOML", "Tables", "URIs", "UUIDs"]
-git-tree-sha1 = "c3127195e4d10d9de5aa7364b5924ae062dcad35"
+deps = ["Base64", "Configurations", "Dates", "Downloads", "ExpressionExplorer", "FileWatching", "FuzzyCompletions", "HTTP", "HypertextLiteral", "InteractiveUtils", "Logging", "LoggingExtras", "MIMEs", "Malt", "Markdown", "MsgPack", "Pkg", "PlutoDependencyExplorer", "PrecompileSignatures", "PrecompileTools", "REPL", "RegistryInstances", "RelocatableFolders", "Scratch", "Sockets", "TOML", "Tables", "URIs", "UUIDs"]
+git-tree-sha1 = "7074b3a8339fadaf8524a9252ae7565b85f648f1"
uuid = "c3e4b0f8-55cb-11ea-2926-15256bba5781"
-version = "0.19.25"
+version = "0.19.42"
+
+[[deps.PlutoDependencyExplorer]]
+deps = ["ExpressionExplorer", "InteractiveUtils", "Markdown"]
+git-tree-sha1 = "4bc5284f77d731196d3e97f23abb732ad6f2a6e4"
+uuid = "72656b73-756c-7461-726b-72656b6b696b"
+version = "1.0.4"
[[deps.PolyesterWeave]]
deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"]
@@ -1329,15 +1577,9 @@ version = "0.1.2"
[[deps.PooledArrays]]
deps = ["DataAPI", "Future"]
-git-tree-sha1 = "a6062fe4063cdafe78f4a0a81cfffb89721b30e7"
+git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3"
uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720"
-version = "1.4.2"
-
-[[deps.PrecompilePlutoCourse]]
-deps = ["Distributed", "Git", "PackageCompiler", "Pkg", "Pluto"]
-git-tree-sha1 = "aa44d9a9cbf1642a677ae1aeef0e693e40a8edd6"
-uuid = "031ef55e-ae57-4a95-aa50-04a4c1cc4953"
-version = "0.2.4"
+version = "1.4.3"
[[deps.PrecompileSignatures]]
git-tree-sha1 = "18ef344185f25ee9d51d80e179f8dad33dc48eb1"
@@ -1346,26 +1588,31 @@ version = "3.0.3"
[[deps.PrecompileTools]]
deps = ["Preferences"]
-git-tree-sha1 = "259e206946c293698122f63e2b513a7c99a244e8"
+git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f"
uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
-version = "1.1.1"
+version = "1.2.1"
[[deps.Preferences]]
deps = ["TOML"]
-git-tree-sha1 = "7eb1686b4f04b82f96ed7a4ea5890a4f0c7a09f1"
+git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6"
uuid = "21216c6a-2e73-6563-6e65-726566657250"
-version = "1.4.0"
+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 = "22a601b04a154ca38867b991d5017469dc75f2db"
+git-tree-sha1 = "142ee93724a9c5d04d78df7006670a93ed1b244e"
uuid = "54e16d92-306c-5ea0-a30b-337be88ac337"
-version = "0.4.1"
+version = "0.4.2"
[[deps.PrettyTables]]
-deps = ["Crayons", "Formatting", "LaTeXStrings", "Markdown", "Reexport", "StringManipulation", "Tables"]
-git-tree-sha1 = "213579618ec1f42dea7dd637a42785a608b1ea9c"
+deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"]
+git-tree-sha1 = "88b895d13d53b5577fd53379d913b9ab9ac82660"
uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d"
-version = "2.2.4"
+version = "2.3.1"
[[deps.Printf]]
deps = ["Unicode"]
@@ -1373,9 +1620,14 @@ uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
[[deps.ProgressMeter]]
deps = ["Distributed", "Printf"]
-git-tree-sha1 = "d7a7aef8f8f2d537104f170139553b14dfe39fe9"
+git-tree-sha1 = "763a8ceb07833dd51bb9e3bbca372de32c0605ad"
uuid = "92933f4c-e287-5a05-a399-4b506db050ca"
-version = "1.7.2"
+version = "1.10.0"
+
+[[deps.PtrArrays]]
+git-tree-sha1 = "077664975d750757f30e739c870fbbdc01db7913"
+uuid = "43287f4e-b6f4-7ad1-bb20-aadabca52c3d"
+version = "1.1.0"
[[deps.QOI]]
deps = ["ColorTypes", "FileIO", "FixedPointNumbers"]
@@ -1383,30 +1635,18 @@ git-tree-sha1 = "18e8f4d1426e965c7b532ddd260599e1510d26ce"
uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65"
version = "1.0.0"
-[[deps.QhullMiniWrapper_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Qhull_jll"]
-git-tree-sha1 = "607cf73c03f8a9f83b36db0b86a3a9c14179621f"
-uuid = "460c41e3-6112-5d7f-b78c-b6823adb3f2d"
-version = "1.0.0+1"
-
-[[deps.Qhull_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl"]
-git-tree-sha1 = "be2449911f4d6cfddacdf7efc895eceda3eee5c1"
-uuid = "784f63db-0788-585a-bace-daefebcd302b"
-version = "8.0.1003+0"
-
[[deps.QuadGK]]
deps = ["DataStructures", "LinearAlgebra"]
-git-tree-sha1 = "6ec7ac8412e83d57e313393220879ede1740f9ee"
+git-tree-sha1 = "9b23c31e76e333e6fb4c1595ae6afa74966a729e"
uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc"
-version = "2.8.2"
+version = "2.9.4"
[[deps.REPL]]
deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"]
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
[[deps.Random]]
-deps = ["SHA", "Serialization"]
+deps = ["SHA"]
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
[[deps.RangeArrays]]
@@ -1416,9 +1656,9 @@ version = "0.3.2"
[[deps.Ratios]]
deps = ["Requires"]
-git-tree-sha1 = "6d7bb727e76147ba18eed998700998e17b8e4911"
+git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b"
uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439"
-version = "0.4.4"
+version = "0.4.5"
weakdeps = ["FixedPointNumbers"]
[deps.Ratios.extensions]
@@ -1449,9 +1689,9 @@ version = "0.1.0"
[[deps.RelocatableFolders]]
deps = ["SHA", "Scratch"]
-git-tree-sha1 = "90bc7a7c96410424509e4263e277e43250c05691"
+git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864"
uuid = "05181044-ff0b-4ac5-8273-598c1e38db00"
-version = "1.0.0"
+version = "1.0.1"
[[deps.Requires]]
deps = ["UUIDs"]
@@ -1466,10 +1706,15 @@ uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa"
version = "0.7.1"
[[deps.Rmath_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da"
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "d483cd324ce5cf5d61b77930f0bbd6cb61927d21"
uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f"
-version = "0.4.0+0"
+version = "0.4.2+0"
+
+[[deps.RoundingEmulator]]
+git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b"
+uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705"
+version = "0.2.1"
[[deps.SHA]]
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
@@ -1477,9 +1722,9 @@ version = "0.7.0"
[[deps.SIMD]]
deps = ["PrecompileTools"]
-git-tree-sha1 = "0e270732477b9e551d884e6b07e23bb2ec947790"
+git-tree-sha1 = "2803cab51702db743f3fda07dd1745aadfbf43bd"
uuid = "fdea26ae-647d-5447-a871-4b548cad5224"
-version = "3.4.5"
+version = "3.5.0"
[[deps.SIMDTypes]]
git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c"
@@ -1488,15 +1733,9 @@ version = "0.1.0"
[[deps.SLEEFPirates]]
deps = ["IfElse", "Static", "VectorizationBase"]
-git-tree-sha1 = "cda0aece8080e992f6370491b08ef3909d1c04e7"
+git-tree-sha1 = "3aac6d68c5e57449f5b9b865c9ba50ac2970c4cf"
uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa"
-version = "0.6.38"
-
-[[deps.ScanByte]]
-deps = ["Libdl", "SIMD"]
-git-tree-sha1 = "2436b15f376005e8790e318329560dcc67188e84"
-uuid = "7b38b023-a4d7-4c5e-8d43-3f3097f304eb"
-version = "0.3.3"
+version = "0.6.42"
[[deps.ScientificTypes]]
deps = ["CategoricalArrays", "ColorTypes", "Dates", "Distributions", "PrettyTables", "Reexport", "ScientificTypesBase", "StatisticalTraits", "Tables"]
@@ -1511,15 +1750,15 @@ version = "3.0.0"
[[deps.Scratch]]
deps = ["Dates"]
-git-tree-sha1 = "30449ee12237627992a99d5e30ae63e4d78cd24a"
+git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386"
uuid = "6c6a2e73-6563-6170-7368-637461726353"
-version = "1.2.0"
+version = "1.2.1"
[[deps.SentinelArrays]]
deps = ["Dates", "Random"]
-git-tree-sha1 = "77d3c4726515dca71f6d80fbb5e251088defe305"
+git-tree-sha1 = "90b4f68892337554d31cdcdbe19e48989f26c7e6"
uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c"
-version = "1.3.18"
+version = "1.4.3"
[[deps.Serialization]]
uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
@@ -1530,10 +1769,21 @@ 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.SharedArrays]]
deps = ["Distributed", "Mmap", "Random", "Serialization"]
uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383"
+[[deps.ShowCases]]
+git-tree-sha1 = "7f534ad62ab2bd48591bdeac81994ea8c445e4a5"
+uuid = "605ecd9f-84a6-4c9e-81e2-4798472b76a3"
+version = "0.1.0"
+
[[deps.Showoff]]
deps = ["Dates", "Grisu"]
git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de"
@@ -1559,15 +1809,9 @@ version = "0.9.4"
[[deps.Sixel]]
deps = ["Dates", "FileIO", "ImageCore", "IndirectArrays", "OffsetArrays", "REPL", "libsixel_jll"]
-git-tree-sha1 = "8fb59825be681d451c246a795117f317ecbcaa28"
+git-tree-sha1 = "2da10356e31327c7096832eb9cd86307a50b1eb6"
uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47"
-version = "0.1.2"
-
-[[deps.SnoopPrecompile]]
-deps = ["Preferences"]
-git-tree-sha1 = "e760a70afdcd461cf01a575947738d359234665c"
-uuid = "66db9d55-30c0-4569-8b51-7e840670fc0c"
-version = "1.0.3"
+version = "0.1.3"
[[deps.Sockets]]
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
@@ -1580,35 +1824,42 @@ version = "1.1.0"
[[deps.SortingAlgorithms]]
deps = ["DataStructures"]
-git-tree-sha1 = "a4ada03f999bd01b3a25dcaa30b2d929fe537e00"
+git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085"
uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c"
-version = "1.1.0"
+version = "1.2.1"
[[deps.SparseArrays]]
deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"]
uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
+version = "1.10.0"
+
+[[deps.SparseInverseSubset]]
+deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"]
+git-tree-sha1 = "52962839426b75b3021296f7df242e40ecfc0852"
+uuid = "dc90abb0-5640-4711-901d-7e5b23a2fada"
+version = "0.1.2"
[[deps.SpecialFunctions]]
deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"]
-git-tree-sha1 = "ef28127915f4229c971eb43f3fc075dd3fe91880"
+git-tree-sha1 = "2f5d4697f21388cbe1ff299430dd169ef97d7e14"
uuid = "276daf66-3868-5448-9aa4-cd146d93841b"
-version = "2.2.0"
+version = "2.4.0"
weakdeps = ["ChainRulesCore"]
[deps.SpecialFunctions.extensions]
SpecialFunctionsChainRulesCoreExt = "ChainRulesCore"
-[[deps.StableHashTraits]]
-deps = ["CRC32c", "Compat", "Dates", "SHA", "Tables", "TupleTools", "UUIDs"]
-git-tree-sha1 = "0b8b801b8f03a329a4e86b44c5e8a7d7f4fe10a3"
-uuid = "c5dd0088-6c3f-4803-b00e-f31a60c170fa"
-version = "0.3.1"
+[[deps.SplittablesBase]]
+deps = ["Setfield", "Test"]
+git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5"
+uuid = "171d559e-b47b-412a-8079-5efa626c420e"
+version = "0.1.15"
[[deps.StableRNGs]]
-deps = ["Random", "Test"]
-git-tree-sha1 = "3be7d49667040add7ee151fefaf1f8c04c8c8276"
+deps = ["Random"]
+git-tree-sha1 = "83e6cce8324d49dfaf9ef059227f91ed4441a8e5"
uuid = "860ef19b-820b-49d6-a774-d7a799459cd3"
-version = "1.0.0"
+version = "1.0.2"
[[deps.StackViews]]
deps = ["OffsetArrays"]
@@ -1618,15 +1869,15 @@ version = "0.1.1"
[[deps.Static]]
deps = ["IfElse"]
-git-tree-sha1 = "dbde6766fc677423598138a5951269432b0fcc90"
+git-tree-sha1 = "d2fdac9ff3906e27f7a618d47b676941baa6c80c"
uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3"
-version = "0.8.7"
+version = "0.8.10"
[[deps.StaticArrayInterface]]
-deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "Requires", "SnoopPrecompile", "SparseArrays", "Static", "SuiteSparse"]
-git-tree-sha1 = "33040351d2403b84afce74dae2e22d3f5b18edcb"
+deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"]
+git-tree-sha1 = "5d66818a39bb04bf328e92bc933ec5b4ee88e436"
uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718"
-version = "1.4.0"
+version = "1.5.0"
weakdeps = ["OffsetArrays", "StaticArrays"]
[deps.StaticArrayInterface.extensions]
@@ -1634,15 +1885,40 @@ weakdeps = ["OffsetArrays", "StaticArrays"]
StaticArrayInterfaceStaticArraysExt = "StaticArrays"
[[deps.StaticArrays]]
-deps = ["LinearAlgebra", "Random", "StaticArraysCore", "Statistics"]
-git-tree-sha1 = "8982b3607a212b070a5e46eea83eb62b4744ae12"
+deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"]
+git-tree-sha1 = "9ae599cd7529cfce7fea36cf00a62cfc56f0f37c"
uuid = "90137ffa-7385-5640-81b9-e52037218182"
-version = "1.5.25"
+version = "1.9.4"
+weakdeps = ["ChainRulesCore", "Statistics"]
+
+ [deps.StaticArrays.extensions]
+ StaticArraysChainRulesCoreExt = "ChainRulesCore"
+ StaticArraysStatisticsExt = "Statistics"
[[deps.StaticArraysCore]]
-git-tree-sha1 = "6b7ba252635a5eff6a0b0664a41ee140a1c9e72a"
+git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d"
uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c"
-version = "1.4.0"
+version = "1.4.2"
+
+[[deps.StatisticalMeasures]]
+deps = ["CategoricalArrays", "CategoricalDistributions", "Distributions", "LearnAPI", "LinearAlgebra", "MacroTools", "OrderedCollections", "PrecompileTools", "ScientificTypesBase", "StatisticalMeasuresBase", "Statistics", "StatsBase"]
+git-tree-sha1 = "8b5a165b0ee2b361d692636bfb423b19abfd92b3"
+uuid = "a19d573c-0a75-4610-95b3-7071388c7541"
+version = "0.1.6"
+
+ [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"]
@@ -1653,25 +1929,25 @@ version = "3.2.0"
[[deps.Statistics]]
deps = ["LinearAlgebra", "SparseArrays"]
uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
-version = "1.9.0"
+version = "1.10.0"
[[deps.StatsAPI]]
deps = ["LinearAlgebra"]
-git-tree-sha1 = "45a7769a04a3cf80da1c1c7c60caf932e6f4c9f7"
+git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed"
uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0"
-version = "1.6.0"
+version = "1.7.0"
[[deps.StatsBase]]
deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"]
-git-tree-sha1 = "d1bf48bfcc554a3761a133fe3a9bb01488e06916"
+git-tree-sha1 = "5cf7606d6cef84b543b483848d4ae08ad9832b21"
uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
-version = "0.33.21"
+version = "0.34.3"
[[deps.StatsFuns]]
deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"]
-git-tree-sha1 = "f625d686d5a88bcd2b15cd81f18f98186fdc0c9a"
+git-tree-sha1 = "cef0472124fab0695b58ca35a77c6fb942fdab8a"
uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c"
-version = "1.3.0"
+version = "1.3.1"
[deps.StatsFuns.extensions]
StatsFunsChainRulesCoreExt = "ChainRulesCore"
@@ -1682,24 +1958,32 @@ version = "1.3.0"
InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112"
[[deps.StringManipulation]]
-git-tree-sha1 = "46da2434b41f41ac3594ee9816ce5541c6096123"
+deps = ["PrecompileTools"]
+git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5"
uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e"
-version = "0.3.0"
+version = "0.3.4"
[[deps.StructArrays]]
-deps = ["Adapt", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"]
-git-tree-sha1 = "521a0e828e98bb69042fec1809c1b5a680eb7389"
+deps = ["ConstructionBase", "DataAPI", "Tables"]
+git-tree-sha1 = "f4dc295e983502292c4c3f951dbb4e985e35b3be"
uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a"
-version = "0.6.15"
+version = "0.6.18"
+weakdeps = ["Adapt", "GPUArraysCore", "SparseArrays", "StaticArrays"]
+
+ [deps.StructArrays.extensions]
+ StructArraysAdaptExt = "Adapt"
+ StructArraysGPUArraysCoreExt = "GPUArraysCore"
+ StructArraysSparseArraysExt = "SparseArrays"
+ StructArraysStaticArraysExt = "StaticArrays"
[[deps.SuiteSparse]]
deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"]
uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9"
[[deps.SuiteSparse_jll]]
-deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"]
+deps = ["Artifacts", "Libdl", "libblastrampoline_jll"]
uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c"
-version = "5.10.1+6"
+version = "7.2.1+1"
[[deps.TOML]]
deps = ["Dates"]
@@ -1707,10 +1991,10 @@ uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76"
version = "1.0.3"
[[deps.TableShowUtils]]
-deps = ["DataValues", "Dates", "JSON", "Markdown", "Test"]
-git-tree-sha1 = "14c54e1e96431fb87f0d2f5983f090f1b9d06457"
+deps = ["DataValues", "Dates", "JSON", "Markdown", "Unicode"]
+git-tree-sha1 = "2a41a3dedda21ed1184a47caab56ed9304e9a038"
uuid = "5e66a065-1f0a-5976-b372-e0b8c017ca10"
-version = "0.2.5"
+version = "0.2.6"
[[deps.TableTraits]]
deps = ["IteratorInterfaceExtensions"]
@@ -1719,10 +2003,10 @@ uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c"
version = "1.0.1"
[[deps.Tables]]
-deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits", "Test"]
-git-tree-sha1 = "1544b926975372da01227b382066ab70e574a3ec"
+deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"]
+git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d"
uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"
-version = "1.10.1"
+version = "1.11.1"
[[deps.Tar]]
deps = ["ArgTools", "SHA"]
@@ -1741,37 +2025,55 @@ uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
[[deps.ThreadingUtilities]]
deps = ["ManualMemory"]
-git-tree-sha1 = "c97f60dd4f2331e1a495527f80d242501d2f9865"
+git-tree-sha1 = "eda08f7e9818eb53661b3deb74e3159460dfbc27"
uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5"
-version = "0.5.1"
+version = "0.5.2"
[[deps.TiffImages]]
-deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"]
-git-tree-sha1 = "8621f5c499a8aa4aa970b1ae381aae0ef1576966"
+deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "SIMD", "UUIDs"]
+git-tree-sha1 = "bc7fd5c91041f44636b2c134041f7e5263ce58ae"
uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69"
-version = "0.6.4"
+version = "0.10.0"
[[deps.TranscodingStreams]]
-deps = ["Random", "Test"]
-git-tree-sha1 = "9a6ae7ed916312b41236fcef7e0af564ef934769"
+git-tree-sha1 = "5d54d076465da49d6746c647022f3b3674e64156"
uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa"
-version = "0.9.13"
+version = "0.10.8"
+weakdeps = ["Random", "Test"]
+
+ [deps.TranscodingStreams.extensions]
+ TestExt = ["Test", "Random"]
+
+[[deps.Transducers]]
+deps = ["Adapt", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "ConstructionBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"]
+git-tree-sha1 = "3064e780dbb8a9296ebb3af8f440f787bb5332af"
+uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999"
+version = "0.4.80"
+
+ [deps.Transducers.extensions]
+ TransducersBlockArraysExt = "BlockArrays"
+ TransducersDataFramesExt = "DataFrames"
+ TransducersLazyArraysExt = "LazyArrays"
+ TransducersOnlineStatsBaseExt = "OnlineStatsBase"
+ TransducersReferenceablesExt = "Referenceables"
+
+ [deps.Transducers.weakdeps]
+ BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e"
+ DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
+ LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02"
+ OnlineStatsBase = "925886fa-5bf2-5e8e-b522-a9147a512338"
+ Referenceables = "42d2dcc6-99eb-4e98-b66c-637b7d73030e"
[[deps.Tricks]]
-git-tree-sha1 = "aadb748be58b492045b4f56166b5188aa63ce549"
+git-tree-sha1 = "eae1bb484cd63b36999ee58be2de6c178105112f"
uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775"
-version = "0.1.7"
+version = "0.1.8"
[[deps.TriplotBase]]
git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b"
uuid = "981d1d27-644d-49a2-9326-4793e63143c3"
version = "0.1.0"
-[[deps.TupleTools]]
-git-tree-sha1 = "3c712976c47707ff893cf6ba4354aa14db1d8938"
-uuid = "9d95972d-f1c8-5527-a6e0-b4b365fa01f6"
-version = "1.3.0"
-
[[deps.URIParser]]
deps = ["Unicode"]
git-tree-sha1 = "53a9f49546b8d2dd2e688d216421d050c9a31d0d"
@@ -1779,9 +2081,9 @@ uuid = "30578b45-9adc-5946-b283-645ec420af67"
version = "0.4.1"
[[deps.URIs]]
-git-tree-sha1 = "074f993b0ca030848b897beff716d93aca60f06a"
+git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b"
uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4"
-version = "1.4.2"
+version = "1.5.1"
[[deps.UUIDs]]
deps = ["Random", "SHA"]
@@ -1802,22 +2104,35 @@ uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1"
version = "0.4.1"
[[deps.Unitful]]
-deps = ["ConstructionBase", "Dates", "LinearAlgebra", "Random"]
-git-tree-sha1 = "ba4aa36b2d5c98d6ed1f149da916b3ba46527b2b"
+deps = ["Dates", "LinearAlgebra", "Random"]
+git-tree-sha1 = "dd260903fdabea27d9b6021689b3cd5401a57748"
uuid = "1986cc42-f94f-5a68-af5c-568840ba703d"
-version = "1.14.0"
+version = "1.20.0"
[deps.Unitful.extensions]
+ ConstructionBaseUnitfulExt = "ConstructionBase"
InverseFunctionsUnitfulExt = "InverseFunctions"
[deps.Unitful.weakdeps]
+ ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9"
InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112"
+[[deps.UnsafeAtomics]]
+git-tree-sha1 = "6331ac3440856ea1988316b46045303bef658278"
+uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f"
+version = "0.2.1"
+
+[[deps.UnsafeAtomicsLLVM]]
+deps = ["LLVM", "UnsafeAtomics"]
+git-tree-sha1 = "d9f5962fecd5ccece07db1ff006fb0b5271bdfdd"
+uuid = "d80eeb9a-aca5-4d75-85e5-170c8b632249"
+version = "0.1.4"
+
[[deps.VectorizationBase]]
deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"]
-git-tree-sha1 = "b182207d4af54ac64cbc71797765068fdeff475d"
+git-tree-sha1 = "6129a4faf6242e7c3581116fbe3270f3ab17c90d"
uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f"
-version = "0.21.64"
+version = "0.21.67"
[[deps.VersionParsing]]
git-tree-sha1 = "58d6e80b4ee071f5efd07fda82cb9fbe17200868"
@@ -1826,15 +2141,15 @@ version = "1.3.0"
[[deps.WoodburyMatrices]]
deps = ["LinearAlgebra", "SparseArrays"]
-git-tree-sha1 = "de67fa59e33ad156a590055375a30b23c40299d3"
+git-tree-sha1 = "c1a7aa6219628fcd757dede0ca95e245c5cd9511"
uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6"
-version = "0.5.5"
+version = "1.0.0"
[[deps.XML2_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"]
-git-tree-sha1 = "93c41695bc1c08c46c5899f4fe06d6ead504bb73"
+deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"]
+git-tree-sha1 = "52ff2af32e591541550bd753c0da8b9bc92bb9d9"
uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a"
-version = "2.10.3+0"
+version = "2.12.7+0"
[[deps.XSLT_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"]
@@ -1843,75 +2158,75 @@ uuid = "aed1982a-8fda-507f-9586-7b0439959a61"
version = "1.1.34+0"
[[deps.Xorg_libX11_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll", "Xorg_xtrans_jll"]
-git-tree-sha1 = "5be649d550f3f4b95308bf0183b82e2582876527"
+deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"]
+git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495"
uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc"
-version = "1.6.9+4"
+version = "1.8.6+0"
[[deps.Xorg_libXau_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "4e490d5c960c314f33885790ed410ff3a94ce67e"
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8"
uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec"
-version = "1.0.9+4"
+version = "1.0.11+0"
[[deps.Xorg_libXdmcp_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "4fe47bd2247248125c428978740e18a681372dd4"
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7"
uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05"
-version = "1.1.3+4"
+version = "1.1.4+0"
[[deps.Xorg_libXext_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"]
-git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3"
+deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"]
+git-tree-sha1 = "d2d1a5c49fae4ba39983f63de6afcbea47194e85"
uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3"
-version = "1.3.4+4"
+version = "1.3.6+0"
[[deps.Xorg_libXrender_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"]
-git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96"
+deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"]
+git-tree-sha1 = "47e45cd78224c53109495b3e324df0c37bb61fbe"
uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa"
-version = "0.9.10+4"
+version = "0.9.11+0"
[[deps.Xorg_libpthread_stubs_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "6783737e45d3c59a4a4c4091f5f88cdcf0908cbb"
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9"
uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74"
-version = "0.1.0+3"
+version = "0.1.1+0"
[[deps.Xorg_libxcb_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"]
-git-tree-sha1 = "daf17f441228e7a3833846cd048892861cff16d6"
+deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"]
+git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d"
uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b"
-version = "1.13.0+3"
+version = "1.15.0+0"
[[deps.Xorg_xtrans_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "79c31e7844f6ecf779705fbc12146eb190b7d845"
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77"
uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10"
-version = "1.4.0+3"
+version = "1.5.0+0"
[[deps.ZMQ]]
-deps = ["FileWatching", "Sockets", "ZeroMQ_jll"]
-git-tree-sha1 = "356d2bdcc0bce90aabee1d1c0f6d6f301eda8f77"
+deps = ["FileWatching", "PrecompileTools", "Sockets", "ZeroMQ_jll"]
+git-tree-sha1 = "8ac0d6e982660047f4ec5ae462acf4b92260f4b3"
uuid = "c2297ded-f4af-51ae-bb23-16f91089e4e1"
-version = "1.2.2"
+version = "1.2.3"
[[deps.ZeroMQ_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "libsodium_jll"]
-git-tree-sha1 = "fe5c65a526f066fb3000da137d5785d9649a8a47"
+deps = ["Artifacts", "JLLWrappers", "Libdl", "libsodium_jll"]
+git-tree-sha1 = "42f97fb27394378591666ab0e9cee369e6d0e1f9"
uuid = "8f1865be-045e-5c20-9c9f-bfbfb0764568"
-version = "4.3.4+0"
+version = "4.3.5+0"
[[deps.Zlib_jll]]
deps = ["Libdl"]
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
-version = "1.2.13+0"
+version = "1.2.13+1"
[[deps.Zygote]]
deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArrays", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "PrecompileTools", "Random", "Requires", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"]
-git-tree-sha1 = "ebac1ae9f048c669317ad48c9bed815790a468d8"
+git-tree-sha1 = "19c586905e78a26f7e4e97f81716057bd6b1bc54"
uuid = "e88e6eb3-aa80-5325-afca-941959d7151f"
-version = "0.6.61"
+version = "0.6.70"
[deps.Zygote.extensions]
ZygoteColorsExt = "Colors"
@@ -1925,9 +2240,9 @@ version = "0.6.61"
[[deps.ZygoteRules]]
deps = ["ChainRulesCore", "MacroTools"]
-git-tree-sha1 = "977aed5d006b840e2e40c0b48984f7463109046d"
+git-tree-sha1 = "27798139afc0a2afa7b1824c206d5e87ea587a00"
uuid = "700de1a5-db45-46bc-99cf-38207098b444"
-version = "0.2.3"
+version = "0.2.5"
[[deps.isoband_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
@@ -1936,10 +2251,10 @@ uuid = "9a68df92-36a6-505f-a73e-abb412b6bfb4"
version = "0.2.3+0"
[[deps.libaom_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
-git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4"
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "1827acba325fdcdf1d2647fc8d5301dd9ba43a9d"
uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b"
-version = "3.4.0+0"
+version = "3.9.0+0"
[[deps.libass_jll]]
deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"]
@@ -1950,7 +2265,7 @@ version = "0.15.1+0"
[[deps.libblastrampoline_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "8e850b90-86db-534c-a0d3-1478176c7d93"
-version = "5.7.0+0"
+version = "5.8.0+1"
[[deps.libfdk_aac_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
@@ -1959,10 +2274,10 @@ uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280"
version = "2.0.2+0"
[[deps.libpng_jll]]
-deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"]
-git-tree-sha1 = "94d180a6d2b5e55e447e2d27a29ed04fe79eb30c"
+deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"]
+git-tree-sha1 = "d7015d2e18a5fd9a4f47de711837e980519781a4"
uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f"
-version = "1.6.38+0"
+version = "1.6.43+1"
[[deps.libsixel_jll]]
deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "libpng_jll"]
@@ -1985,12 +2300,18 @@ version = "1.3.7+1"
[[deps.nghttp2_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"
-version = "1.48.0+0"
+version = "1.52.0+1"
+
+[[deps.oneTBB_jll]]
+deps = ["Artifacts", "JLLWrappers", "Libdl"]
+git-tree-sha1 = "7d0ea0f4895ef2f5cb83645fa689e52cb55cf493"
+uuid = "1317d2d5-d96f-522e-a858-c73665f53c3e"
+version = "2021.12.0+0"
[[deps.p7zip_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"
-version = "17.4.0+0"
+version = "17.4.0+2"
[[deps.x264_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
diff --git a/Project.toml b/Project.toml
index c3abc81..59e77e3 100644
--- a/Project.toml
+++ b/Project.toml
@@ -17,7 +17,6 @@ OpenML = "8b6db2d4-7670-4922-a472-f9537c81ab66"
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
PkgOnlineHelp = "021381c1-d00a-4861-ba2b-4d077ab1b5cd"
Pluto = "c3e4b0f8-55cb-11ea-2926-15256bba5781"
-PrecompilePlutoCourse = "031ef55e-ae57-4a95-aa50-04a4c1cc4953"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
@@ -26,7 +25,7 @@ Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
[compat]
IJulia = "1"
Pluto = "0.19"
-julia = "1.9"
+julia = "1.10"
[extras]
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
diff --git a/README.md b/README.md
index 106adf7..5dab62a 100644
--- a/README.md
+++ b/README.md
@@ -1,37 +1,26 @@
-## ✨ Participating in ResBaz 2023?
+## ✨ Participating in ResBaz 2024?
-Start [here](https://github.com/ablaom/HelloJulia.jl/wiki/Preparing-for-your-ResBaz-2023-Julia-workshop) either of these workshops:
-
-- **Getting Started With the Julia Programming Language**
-- **Introduction to Using Julia for Machine Learning**
-
----
-
-## Participating in JuliaCon 2022?
-
-Start [here](https://github.com/ablaom/HelloJulia.jl/wiki/JuliaCon-2022-workshop:-Getting-started-with-Julia-and-MLJ) for the workshop **Getting started with Julia and machine learning**.
+Start
+[here](https://github.com/ablaom/HelloJulia.jl/wiki/Preparing-for-your-ResBaz-2024-Julia-workshop)
+for the **Getting Started With the Julia Programming Language** workshop.
---
# HelloJulia.jl
-Resources used by the author for a short *Introduction to Julia*
-workshop, and a longer *Getting started with Julia and machine
-learning* workshop. Tutorials 1 and 2, and some of the demos, are
-suitable for a one-hour workshop. Add the remaining material for a 3
-hour workshop.
+Resources used by the author for a short *Introduction to Julia* workshop, and a longer
+*Getting started with Julia and machine learning* workshop. There is between 2 and 5 hours of material, depending on choice of material.
-Users are not assumed to have any familiarity with Julia but should be
-know some basic linear algebra and statistics (especially for the
-extended version).
-
-This README page summarizes some useful resources for starting out with Julia.
+Users are not assumed to have any familiarity with Julia but should be know some basic
+linear algebra and statistics (especially for the later sections).
To **run demos and tutorials** presented in the workshop:
[![here](https://img.shields.io/badge/run-demos%2Ftutorials-informational)](INSTALLATION.md)
+Some random resources for Julia newcomers:
+
## Is Julia for me?
- [Julia language home page](https://julialang.org) - Good for a quick
@@ -39,18 +28,29 @@ To **run demos and tutorials** presented in the workshop:
- [Slides for this workshop](/slides/slides.pdf)
-- [Why Julia?](https://indico.cern.ch/event/1074269/contributions/4539601/attachments/2317518/3945412/why-julia%20slides.pdf) - Motivation and comparison to other languages. Slides from a talk by Oliver Schulz, Max Planck Institute for Physics. [Alternative link](https://github.com/oschulz/Why-Julia)
+- [Why
+ Julia?](https://indico.cern.ch/event/1074269/contributions/4539601/attachments/2317518/3945412/why-julia%20slides.pdf) -
+ Motivation and comparison to other languages. Slides from a talk by Oliver Schulz, Max
+ Planck Institute for Physics. [Alternative link](https://github.com/oschulz/Why-Julia)
-- [Package search at JuliaHub](https://juliahub.com/ui/Packages) - Good for scouting out existing julia software (and communities) in your area of interest ([alternative search engine](https://juliapackages.com/packages?search=)).
+- [Package search at JuliaHub](https://juliahub.com/ui/Packages) - Good for scouting out
+ existing julia software (and communities) in your area of interest ([alternative search
+ engine](https://juliapackages.com/packages?search=)).
-- For experienced programmers: Julia is object-oriented but not in the way languages like python or C++. Rather it uses *multiple dispatch*. [This talk](https://www.youtube.com/watch?v=kc9HwsxE1OY) makes the case for this alternative paradigm.
+- For experienced programmers: Julia is object-oriented but not in the way languages like
+ python or C++. Rather it uses *multiple dispatch*. [This
+ talk](https://www.youtube.com/watch?v=kc9HwsxE1OY) makes the case for this alternative
+ paradigm.
+
+- [Data Science and Machine Learning in
+ Julia](https://juliaai.github.io/DataScienceTutorials.jl/)
## First steps
-See [here](/FIRST_STEPS.md) on how to install Julia on your
-computer. To install and run the demos and tutorials in this
-respository, click [here](INSTALLATION.md)
+- [Installing Julia on my computer](/FIRST_STEPS.md)
+
+- [HelloJulia demos and tutorials](INSTALLATION.md)
## Advanced setup
@@ -81,9 +81,10 @@ channel](https://julialang.org/slack/). Also useful:
- [DataFrames cheatsheet](https://ahsmart.com/pub/data-wrangling-with-data-frames-jl-cheat-sheet/index.html)
-- [MLJ cheatsheet](https://alan-turing-institute.github.io/MLJ.jl/dev/mlj_cheatsheet/)
+- [MLJ cheatsheet](https://JuliaAI.github.io/MLJ.jl/dev/mlj_cheatsheet/)
-- Get help on a command with `juia> ?some_command` at the REPL or `@doc ?some_command` in a notebook.
+- Get help on a command with `juia> ?some_command` at the REPL or `@doc ?some_command` in
+ a notebook.
- `apropos("invert")` seaches for objects with "invert" in the doc string.
diff --git a/notebooks/01_first_steps/my_first_plot.png b/notebooks/01_first_steps/my_first_plot.png
index 4d6e090..a782bbe 100644
Binary files a/notebooks/01_first_steps/my_first_plot.png and b/notebooks/01_first_steps/my_first_plot.png differ
diff --git a/notebooks/01_first_steps/notebook.ipynb b/notebooks/01_first_steps/notebook.ipynb
index 0450899..4eb9bc0 100644
--- a/notebooks/01_first_steps/notebook.ipynb
+++ b/notebooks/01_first_steps/notebook.ipynb
@@ -143,8 +143,8 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "\u001b[36m sin(x)\u001b[39m\n\n Compute sine of \u001b[36mx\u001b[39m, where \u001b[36mx\u001b[39m is in radians.\n\n See also \u001b[36msind\u001b[39m, \u001b[36msinpi\u001b[39m, \u001b[36msincos\u001b[39m, \u001b[36mcis\u001b[39m, \u001b[36masin\u001b[39m.\n\n\u001b[1m Examples\u001b[22m\n\u001b[1m ≡≡≡≡≡≡≡≡≡≡\u001b[22m\n\n\u001b[36m julia> round.(sin.(range(0, 2pi, length=9)'), digits=3)\u001b[39m\n\u001b[36m 1×9 Matrix{Float64}:\u001b[39m\n\u001b[36m 0.0 0.707 1.0 0.707 0.0 -0.707 -1.0 -0.707 -0.0\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> sind(45)\u001b[39m\n\u001b[36m 0.7071067811865476\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> sinpi(1/4)\u001b[39m\n\u001b[36m 0.7071067811865476\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> round.(sincos(pi/6), digits=3)\u001b[39m\n\u001b[36m (0.5, 0.866)\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> round(cis(pi/6), digits=3)\u001b[39m\n\u001b[36m 0.866 + 0.5im\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> round(exp(im*pi/6), digits=3)\u001b[39m\n\u001b[36m 0.866 + 0.5im\u001b[39m\n\n\u001b[36m sin(A::AbstractMatrix)\u001b[39m\n\n Compute the matrix sine of a square matrix \u001b[36mA\u001b[39m.\n\n If \u001b[36mA\u001b[39m is symmetric or Hermitian, its eigendecomposition (\u001b[36meigen\u001b[39m) is used to\n compute the sine. Otherwise, the sine is determined by calling \u001b[36mexp\u001b[39m.\n\n\u001b[1m Examples\u001b[22m\n\u001b[1m ≡≡≡≡≡≡≡≡≡≡\u001b[22m\n\n\u001b[36m julia> sin(fill(1.0, (2,2)))\u001b[39m\n\u001b[36m 2×2 Matrix{Float64}:\u001b[39m\n\u001b[36m 0.454649 0.454649\u001b[39m\n\u001b[36m 0.454649 0.454649\u001b[39m",
- "text/markdown": "```\nsin(x)\n```\n\nCompute sine of `x`, where `x` is in radians.\n\nSee also [`sind`](@ref), [`sinpi`](@ref), [`sincos`](@ref), [`cis`](@ref), [`asin`](@ref).\n\n# Examples\n\n```jldoctest\njulia> round.(sin.(range(0, 2pi, length=9)'), digits=3)\n1×9 Matrix{Float64}:\n 0.0 0.707 1.0 0.707 0.0 -0.707 -1.0 -0.707 -0.0\n\njulia> sind(45)\n0.7071067811865476\n\njulia> sinpi(1/4)\n0.7071067811865476\n\njulia> round.(sincos(pi/6), digits=3)\n(0.5, 0.866)\n\njulia> round(cis(pi/6), digits=3)\n0.866 + 0.5im\n\njulia> round(exp(im*pi/6), digits=3)\n0.866 + 0.5im\n```\n\n```\nsin(A::AbstractMatrix)\n```\n\nCompute the matrix sine of a square matrix `A`.\n\nIf `A` is symmetric or Hermitian, its eigendecomposition ([`eigen`](@ref)) is used to compute the sine. Otherwise, the sine is determined by calling [`exp`](@ref).\n\n# Examples\n\n```jldoctest\njulia> sin(fill(1.0, (2,2)))\n2×2 Matrix{Float64}:\n 0.454649 0.454649\n 0.454649 0.454649\n```\n"
+ "text/plain": "\u001b[36m sin(x)\u001b[39m\n\n Compute sine of \u001b[36mx\u001b[39m, where \u001b[36mx\u001b[39m is in radians.\n\n See also \u001b[36msind\u001b[39m, \u001b[36msinpi\u001b[39m, \u001b[36msincos\u001b[39m, \u001b[36mcis\u001b[39m, \u001b[36masin\u001b[39m.\n\n\u001b[1m Examples\u001b[22m\n\u001b[1m ≡≡≡≡≡≡≡≡\u001b[22m\n\n\u001b[36m julia> round.(sin.(range(0, 2pi, length=9)'), digits=3)\u001b[39m\n\u001b[36m 1×9 Matrix{Float64}:\u001b[39m\n\u001b[36m 0.0 0.707 1.0 0.707 0.0 -0.707 -1.0 -0.707 -0.0\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> sind(45)\u001b[39m\n\u001b[36m 0.7071067811865476\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> sinpi(1/4)\u001b[39m\n\u001b[36m 0.7071067811865475\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> round.(sincos(pi/6), digits=3)\u001b[39m\n\u001b[36m (0.5, 0.866)\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> round(cis(pi/6), digits=3)\u001b[39m\n\u001b[36m 0.866 + 0.5im\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> round(exp(im*pi/6), digits=3)\u001b[39m\n\u001b[36m 0.866 + 0.5im\u001b[39m\n\n\u001b[36m sin(A::AbstractMatrix)\u001b[39m\n\n Compute the matrix sine of a square matrix \u001b[36mA\u001b[39m.\n\n If \u001b[36mA\u001b[39m is symmetric or Hermitian, its eigendecomposition (\u001b[36meigen\u001b[39m) is used to\n compute the sine. Otherwise, the sine is determined by calling \u001b[36mexp\u001b[39m.\n\n\u001b[1m Examples\u001b[22m\n\u001b[1m ≡≡≡≡≡≡≡≡\u001b[22m\n\n\u001b[36m julia> sin(fill(1.0, (2,2)))\u001b[39m\n\u001b[36m 2×2 Matrix{Float64}:\u001b[39m\n\u001b[36m 0.454649 0.454649\u001b[39m\n\u001b[36m 0.454649 0.454649\u001b[39m\n\n\u001b[36m sin(::BareInterval)\u001b[39m\n\u001b[36m sin(::Interval)\u001b[39m\n\n Implement the \u001b[36msin\u001b[39m function of the IEEE Standard 1788-2015 (Table 9.1).",
+ "text/markdown": "```\nsin(x)\n```\n\nCompute sine of `x`, where `x` is in radians.\n\nSee also [`sind`](@ref), [`sinpi`](@ref), [`sincos`](@ref), [`cis`](@ref), [`asin`](@ref).\n\n# Examples\n\n```jldoctest\njulia> round.(sin.(range(0, 2pi, length=9)'), digits=3)\n1×9 Matrix{Float64}:\n 0.0 0.707 1.0 0.707 0.0 -0.707 -1.0 -0.707 -0.0\n\njulia> sind(45)\n0.7071067811865476\n\njulia> sinpi(1/4)\n0.7071067811865475\n\njulia> round.(sincos(pi/6), digits=3)\n(0.5, 0.866)\n\njulia> round(cis(pi/6), digits=3)\n0.866 + 0.5im\n\njulia> round(exp(im*pi/6), digits=3)\n0.866 + 0.5im\n```\n\n```\nsin(A::AbstractMatrix)\n```\n\nCompute the matrix sine of a square matrix `A`.\n\nIf `A` is symmetric or Hermitian, its eigendecomposition ([`eigen`](@ref)) is used to compute the sine. Otherwise, the sine is determined by calling [`exp`](@ref).\n\n# Examples\n\n```jldoctest\njulia> sin(fill(1.0, (2,2)))\n2×2 Matrix{Float64}:\n 0.454649 0.454649\n 0.454649 0.454649\n```\n\n```\nsin(::BareInterval)\nsin(::Interval)\n```\n\nImplement the `sin` function of the IEEE Standard 1788-2015 (Table 9.1).\n"
},
"metadata": {},
"execution_count": 5
@@ -1212,7 +1212,7 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "0.3002995202519845"
+ "text/plain": "0.5373161485486371"
},
"metadata": {},
"execution_count": 50
@@ -1230,7 +1230,7 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "3×4 Matrix{Float64}:\n 0.56066 0.282712 0.869004 0.608561\n 0.256356 0.762232 0.886113 0.71041\n 0.669456 0.84814 0.48216 0.111286"
+ "text/plain": "3×4 Matrix{Float64}:\n 0.156884 0.965893 0.822031 0.175844\n 0.263368 0.389618 0.341254 0.288944\n 0.545627 0.789382 0.801309 0.207644"
},
"metadata": {},
"execution_count": 51
@@ -1248,7 +1248,7 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "3×4 Matrix{Float64}:\n -1.47085 -0.484285 0.226564 -0.541436\n -0.864527 -0.642369 -1.33996 -0.0708261\n 1.46799 -0.21449 -0.675616 -0.736763"
+ "text/plain": "3×4 Matrix{Float64}:\n 0.779817 -0.519889 0.534122 -1.55778\n 0.0072398 1.49424 -0.0276442 -2.16914\n 1.15712 1.28477 -0.260504 0.594076"
},
"metadata": {},
"execution_count": 52
@@ -1266,7 +1266,7 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "-95"
+ "text/plain": "-80"
},
"metadata": {},
"execution_count": 53
@@ -1284,7 +1284,7 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "10-element Vector{Char}:\n 'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)\n 'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)\n 'c': ASCII/Unicode U+0063 (category Ll: Letter, lowercase)\n 'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)\n 'c': ASCII/Unicode U+0063 (category Ll: Letter, lowercase)\n 'c': ASCII/Unicode U+0063 (category Ll: Letter, lowercase)\n 'b': ASCII/Unicode U+0062 (category Ll: Letter, lowercase)\n 'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)\n 'b': ASCII/Unicode U+0062 (category Ll: Letter, lowercase)\n 'c': ASCII/Unicode U+0063 (category Ll: Letter, lowercase)"
+ "text/plain": "10-element Vector{Char}:\n 'c': ASCII/Unicode U+0063 (category Ll: Letter, lowercase)\n 'b': ASCII/Unicode U+0062 (category Ll: Letter, lowercase)\n 'b': ASCII/Unicode U+0062 (category Ll: Letter, lowercase)\n 'b': ASCII/Unicode U+0062 (category Ll: Letter, lowercase)\n 'c': ASCII/Unicode U+0063 (category Ll: Letter, lowercase)\n 'b': ASCII/Unicode U+0062 (category Ll: Letter, lowercase)\n 'b': ASCII/Unicode U+0062 (category Ll: Letter, lowercase)\n 'b': ASCII/Unicode U+0062 (category Ll: Letter, lowercase)\n 'c': ASCII/Unicode U+0063 (category Ll: Letter, lowercase)\n 'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)"
},
"metadata": {},
"execution_count": 54
@@ -1318,7 +1318,7 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "\"J1Olll9aGnR3hmXruM3WrYwxcXhSp5\""
+ "text/plain": "\"ttub5SwnG2VXA0UMwjkc0XRvMxHKn5\""
},
"metadata": {},
"execution_count": 56
@@ -1345,7 +1345,7 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "0.4681745002816416"
+ "text/plain": "0.39534950422987486"
},
"metadata": {},
"execution_count": 58
@@ -1364,7 +1364,7 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "0.6537960848124609"
+ "text/plain": "0.6192953665657467"
},
"metadata": {},
"execution_count": 59
@@ -1410,7 +1410,7 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "Distributions.Gamma{Float64}(α=0.4807672826448797, θ=1.9596673764622425)"
+ "text/plain": "Distributions.Gamma{Float64}(α=0.5148824829610816, θ=2.0240393033364423)"
},
"metadata": {},
"execution_count": 61
@@ -1428,7 +1428,7 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "0.9421439594695729"
+ "text/plain": "1.0421423821126854"
},
"metadata": {},
"execution_count": 62
@@ -1446,7 +1446,7 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "0.4136232961457758"
+ "text/plain": "0.4863847498413582"
},
"metadata": {},
"execution_count": 63
@@ -1464,7 +1464,7 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "0.2357930987090037"
+ "text/plain": "0.2464039067819249"
},
"metadata": {},
"execution_count": 64
@@ -1525,7 +1525,10 @@
"output_type": "execute_result",
"data": {
"text/plain": "Figure()",
- "image/png": "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5bZt204//fQHH3zwc5/73AMPPNDX1zfeSaekS06bv7Oz/5k93dUeBACYQspbwWpvbw8hHH1ie2tr6/79+/P5fCbzsp+qra3t8ccfv+OOOxYvXtzW1rZ8+fL777//rLPOOnqb559/fseOHUe/cujQoaampoGBgXK/jbErlUr5fL5UKpW1Vy6XGxgY4dfqDctbQgjferp9xaxl6cwHHGVgYCBJkgn9OwFIRbFYzOVy0/VPa6FQSJKkrF3KC6yDBw+GEJqbm4dfaW5uLpVKHR0dCxYsGH6xv79/9uzZV1xxxWc+85kkSZ577rl169ZdddVVx6x1PfTQQ1/60peOfmXOnDmnnXba0LtMkFKpNDAwkM/ny9qrs7PzYCb366/PS8KyWbXf2tp+xRnNv/5VYJw6OzvjOC4W3QwFprpisdjZ2dnY2FjtQSZEf39/ud9aeYE1b968EEJXV9fwK4cOHYqiaPbs2UdvVldXt3Xr1uF/Xbly5Uc/+tFrr722o6Njzpw5w6+/+93vfve73330jjfddFN4+QpZ6kqlUmPjzmy2vBWs+fPnL1ww8q/svz3jlA0/373glFPiKEpjQOCImpqaJEmm2R1eYFoqFouFQmFCP8GrqIJwLO8crNbW1vCrA4VD2tvbFyxYkM1mT7zjypUrQwj79k3D88HftGr+/p7clp1do28KAMwM5QXW8uXLV65cuXHjxuFXNm7cePHFFx+z2caNGxctWvToo48Ov7Jly5a6urpTTz11PLNOTetOmx9C+M62vdUeBACYKso7RBhF0dVXX/2Xf/mXl19++ete97ovfelLjzzyyHBv3X777d/97nfvuuuuiy66KJPJXHvttZ/5zGfWrFnz0EMPfeITn7juuuvKPUFs6mjv7I/j4x4BfOW8xge27vm91YuGX0misGJuw6SMBgBMOWXfaPTGG2/csWPH2rVrkySJ4/iWW2655JJLhr60efPme++9d/369U1NTRs2bHj729++du3aEEIcxx/60IeGzq86Sf3199raO497ZUTnwOAPtvdccdejw2dhzW2o+dY1r5uk4QCAKabswIrj+NZbb/3kJz+5ffv2s88+u7a2dvhL69evX79+/dCP16xZ8+STT7a1tXV1dZ155pnT9bKCIc21mb3duZ7BfFNNhc92BACmkwqDoKWlZc2aNSfeJo7j008/vbKf/+TSXJsJ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+7+25bP/8ly1xwGAmUtgTSsNNcmG9772917V+p/ve/IP/+fP8kXPhAaAKhBY001tJv7Hd53/X//d6bf+cMclX9i0rydX7YkAYMYRWCexYrGUyxd//Z/BQvFP1532lSvXPPrCodf97cNbdnYOf6naIwPAjOBO7iexv//JSzd965kTbPCKufXb9/W8+jPfXzmvYVZdNoTwrZZUQWoAABMySURBVGsunNuQnawBAWCGsoI1nTXWJGcubKrJxNv39e7pHqj2OAAwUwisaa4mic88pWlWfeaXB/t/sb+3c2Cw2hMBwPQnsKa/OIpeOa9x2ey6g32DF/3dpk07DlR7IgCY5gTWTHFKU+0ZpzRl43jtLZtuevCZYskdHABgogisGaSxJnnoDy/8D+cuvvlbz/672/51V2d/tScCgOlJYM0szbWZe97x6s///upHnjvwmv/+Lw9s3V3tiQBgGhJYM9EHXr/iR9ddNL+x5tL1m9/59z/Z72akAJAqgTVDnbOo5bE/vuiv/v1Z//DTnWd/8ntfefTFak8EANOHwJq5skn80UtWPfrHF6+YW/+ue37yljs2v3TIWVkAkAKBNdO9qrX5kT96w19fetZ3tu0759PfW/+jF1xgCADjJLAImTi68U2rnvjw2le1trz/az+94G8fdq8sABgPgcVhpy9o/P5/ev2G9752b/fAG/7ukSu+8tgLHX3VHgoATkoe9jyzbN/X216bnGCDV85v/Kd3/+Ydm1+440cv3P/U7qsvWP7Xbzm7LiPEAaAMAmtmufGfn+oa2+MIT5vf+OKhvs8+/It/3rr75t864z++ekkcRRM9HgBMD1YmGFltJn7lvMY3rZo/pz77zr//ybmf/v59T7Y7/R0AxkJgcSILm2t/fN3FG9772jiKLv/Sj1/32X+5/+du/g4AoxBYjCKKwlt+Y+Hj11985x+ct7tr4Hfv3LzuCz98qG1ftecCgKlLYDEmSRy957XLnvmTS/729161dU/3JV/44YWfffjrDhoCwEic5M6J5PLFux972VN05jZkP/E7Z/7r8x1ff7L997704yWz6i49e+GFr5iTxIdPgT97YfOrl86qxrAAMFUILE5koFD8mx/8YsQvLZ5VV59N2rv6b/vh81/e/MtTmmvmNdQkcfTO85cKLABmOIFFhaIQ5jZk5zZkD/UNtncN/PJg/0uH+uc11uzu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Z66ccp/R5dZVCKG862VaW1vDr44ADmlvb1+wYEE2m61gMwCAaam8wFq+fPnKlSs3btw4/MrGjRsvvvjiyjYDAJiWygusKIquvvrq22677eGHH87n81/84hcfeeSRD3zgA0Nfvf3226+88sqBgYETbwYAML2VfTLajTfeuGPHjrVr1yZJEsfxLbfccskllwx9afPmzffee+/69etra2tPsBkAwPRW9j2L4zi+9dZbOzo6fvSjHx06dOjodan169eXSqWmpqYTbwYAML1VeDllS0vLmjVr0toMAGA68dQtAICUCSwAgJQJLACAlAksAICUCSwAgJQJLACAlAksAICUCSwAgJQJLACAlAksAICUCSwAgJQJLACAlAksAICUCSwAgJQJLACAlAksAICUZao9wMvs2LFjx44dN91008S9RalU6urqamlpmbi3ANLS398fRVFtbW21BwFGMb0/Xr/3ve+tWLGirF2m1grWeeedV+43UK5isfjTn/50Qt8CSMtLL720d+/eak8BjK5YLG7ZsqXaU0yUFStWnHfeeWXtEpVKpQmaZmrq7u5ubW3t7u6u9iDA6D784Q8vXrz4wx/+cLUHAUbR2dm5dOnSzs7Oag8yVUytFSwAgGlAYAEApExgAQCkTGABAKQsmdB7IkxNSZJcdNFF1Z4CGF0URatWrVq2bFm1BwFGl8lkfLwOm3FXEQIATDSHCAEAUiawAABSJrAAAFImsAAAUja1HvY8CbZv375t27Y1a9YsXLiw2rMAx5XL5Q4cOHD0Kw0NDdP1ObJw8nr22Wd7e3uPeU6fj9owo1awBgYGLrvsslWrVl1++eWtra0f+9jHqj0RcFz33Xffope7/vrrqz0UcKwbbrjh7rvvHv5XH7XDZtAK1s033/zQQw9t2rTpggsuuOuuu6666qrzzz//sssuq/ZcwAja2tqWLVv2+c9/fviV5cuXV3Ee4Gi9vb1PPPHEPffcs2HDhqMfx+6jdthMuQ9WoVBYtmzZ29/+9k996lNDr7zxjW+cNWvW17/+9eoOBozove997969e++///5qDwKM4Ktf/eoHP/jBEEJHR8cf//Eff/rTnw4+al9uphwifP7553ft2rVu3brhV9atW7dp06YqjgScwLZt204//fQHH3zwc5/73AMPPNDX11ftiYAjrrzyyn379u3bt2/lypXDL/qoPdpMOUTY3t4eQjj6bLvW1tb9+/fn8/lMZqb8IsBJpK2t7fHHH7/jjjsWL17c1ta2fPny+++//6yzzqr2XMBx+ag92kxZwTp48GAIobm5efiV5ubmUqnU0dFRvaGAkfX398+ePft973vf/v37n3rqqWeeeaZYLF511VXVngs4ER+1R5spRTlv3rwQQldX1/Arhw4diqJo9uzZ1RsKGFldXd3WrVuH/3XlypUf/ehHr7322o6Ojjlz5lRxMOAEfNQebaasYLW2toZfrV4OaW9vX7BgQTabrd5QwFgNneexb9++ag8CHJeP2qPNlMBavnz5ypUrN27cOPzKxo0bL7744iqOBBzPxo0bFy1a9Oijjw6/smXLlrq6ulNPPbWKUwEn5qP2aDMlsKIouvrqq2+77baHH344n89/8YtffOSRRz7wgQ9Uey5gBBdddFEmk7n22mt/8IMfdHV1bdiw4ROf+MR1112XJEm1RwOOy0ft0WbKOVghhBtvvHHHjh1r165NkiSO41tuueWSSy6p9lDACGprazds2PD2t7997dq1IYQ4jj/0oQ/ddNNN1Z4LGIWP2mEz5Uajwzo7O7dv33722WfX1tZWexbgRIrFYltbW1dX15lnntnY2FjtcYCx8lEbZmBgAQBMtJlyDhYAwKQRWAAAKRNYAAApE1gAACkTWAAAKRNYAAApE1gAACkTWAAAKRNYAAApE1gAACkTWAAAKRNYAAApE1gAACkTWAAAKRNYAAApE1gAACkTWAAAKfs/73XhJWSJaogAAAAASUVORK5CYII="
+ "image/png": "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EEJ3/9CWA8e55RUAAEiqKQzCbDZ7xx13hBC+973v3XfffZWvHzhw4HOf+1wIYfXq1R/4wAfG/iOf//znb7nllltuueXgwYPlryxYsKD8M3/6p3967733jv3hRx999DOf+UwI4corrzxuWHIEu0YBAIApfHYihHD77bd/97vfffrpp2+44Ya1a9deeeWVL7300r/8y79s310wFHUAACAASURBVL69UCjcddddR7ypcP/992/atCmEcOedd86ZM6f8xbvuuuvpp5/esWPHhz/84csvv/z8888fHh7euHHjI488UiqV5syZc9ddd03p3yKR1ixu+/Gv94YQNu7q/ODqRVGPAwAARGBqg7Cpqelf//Vfb7nllocffnjdunXr1q0rf/2EE0741re+ddwDhGVLliy57777PvnJT27YsOHxxx8feyJx7dq1d9111/Lly6dk+kRbvfjwax8uGgUAgNSa2iAMISxevPgnP/nJv/3bvz3wwAM7duxoa2s7//zzb7zxxsoC4Fh33313+d3C9vb2sV8/55xznnzyyfXr1z/11FNbtmxpaGh45zvfWX6fcKrnT6o1iw/fK+MpQgAASK0pD8IQQiaTufrqq6+++urj/uSFF144znevueaaa665pn5zpdqaJa2ZTCiVwot7uoeKpVw2E/VEAADAdJvCS2WYyVobcyvmzgoh9A8Vf/1mT9TjAAAAERCE6TVm12hntJMAAACREITptWbJ4Zcn3CsDAADpJAjTa3XlKUJBCAAAqSQI02uNIAQAgHQThOl15qLWhmwmhLB5b8+hweGoxwEAAKabIEyvplz21BOaQwjDxdKLe7qjHgcAAJhugjDV7BoFAIA0E4SpVglCF40CAEAKCcJUG71odKcgBACA1BGEqeZtegAASDNBmGqnLWhuzGVDCFs7DnX2DUU9DgAAMK0EYarlspl3LGgJIZRKjhECAEDqCMK0W7Nk5F6Z3YIQAADSRRCm3WoXjQIAQFoJwrTzFCEAAKSWIEy70YtGd7poFAAA0kUQpt3J7bNbG3MhhF1d/W92D0Q9DgAAMH0EYdplMuHMRS3lz+6VAQCAVBGE2DUKAAApJQgZc9GoFUIAAEgTQUg4e+Qpwme2WyEEAIAUEYSEC06cm81kQghPv3Hw0OBw1OMAAADTRBAS5s3Kn7GwJYQwOFx8+o2DUY8DAABME0FICCFc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",
+ "text/html": [
+ ""
+ ]
},
"metadata": {},
"execution_count": 68
@@ -1539,7 +1542,7 @@
"ys = f.(xs) # apply f element-wise to xs\n",
"\n",
"fig = lines(xs, ys)\n",
- "hist!(samples, normalization=:pdf, bins=40, alpha=0.4)\n",
+ "hist!(samples, normalization=:pdf, bins=40, color=(:darkblue, 0.4))\n",
"current_figure()"
],
"metadata": {},
@@ -1687,11 +1690,11 @@
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
- "version": "1.9.0"
+ "version": "1.10.3"
},
"kernelspec": {
- "name": "julia-1.9",
- "display_name": "Julia 1.9.0",
+ "name": "julia-1.10",
+ "display_name": "Julia 1.10.3",
"language": "julia"
}
},
diff --git a/notebooks/01_first_steps/notebook.jl b/notebooks/01_first_steps/notebook.jl
index 07a66b8..6c5a536 100644
--- a/notebooks/01_first_steps/notebook.jl
+++ b/notebooks/01_first_steps/notebook.jl
@@ -362,7 +362,7 @@ xs = 0:0.1:4 # floats from 0 to 4 in steps of 0.1
ys = f.(xs) # apply f element-wise to xs
fig = lines(xs, ys)
-hist!(samples, normalization=:pdf, bins=40, alpha=0.4)
+hist!(samples, normalization=:pdf, bins=40, color=(:darkblue, 0.4))
current_figure()
#-
diff --git a/notebooks/01_first_steps/notebook.pluto.jl b/notebooks/01_first_steps/notebook.pluto.jl
index 76fb558..6bfdffb 100644
--- a/notebooks/01_first_steps/notebook.pluto.jl
+++ b/notebooks/01_first_steps/notebook.pluto.jl
@@ -1,40 +1,9 @@
### A Pluto.jl notebook ###
-# v0.19.25
+# v0.16.0
using Markdown
using InteractiveUtils
-# ╔═╡ 4474fd86-9496-44c7-9e54-3f7b3ca87ecb
-begin
- using Pkg
- Pkg.activate(joinpath(@__DIR__, "..", ".."))
- Pkg.instantiate()
-end
-
-# ╔═╡ cc2371a4-26be-4325-a38a-beb5c7157b57
-using Random
-
-# ╔═╡ 3a2fb476-5685-40aa-9b21-6d4eb642d87e
-using Statistics
-
-# ╔═╡ c0df6812-9717-454b-a8b6-f7ff516dedc4
-begin
- using Distributions
-
- N = 1000
- samples = rand(Normal(), N); # equivalent to Julia's built-in `randn(d)`
- samples = (samples).^2; # square element-wise
-end
-
-# ╔═╡ 4d822ecd-c6da-4bcb-b10e-562ce21caa04
-using PkgOnlineHelp
-
-# ╔═╡ 912dc07c-b98e-45fb-a02f-27b6c05e4d02
-begin
- using CairoMakie
- CairoMakie.activate!(type = "png")
-end
-
# ╔═╡ 142b62e1-364e-45d6-9bca-7c69b794f8ce
md"# Tutorial 1"
@@ -62,6 +31,13 @@ The following block of code installs some third-party Julia packges. Beginners d
to understand it.
"""
+# ╔═╡ 4474fd86-9496-44c7-9e54-3f7b3ca87ecb
+begin
+ using Pkg
+ Pkg.activate(joinpath(@__DIR__, "..", ".."))
+ Pkg.instantiate()
+end
+
# ╔═╡ 96774cd2-130c-4455-ba1f-6363f43ec697
md"## Julia is a calculator:"
@@ -378,9 +354,15 @@ rand(['a', 'b', 'c'], 10) # 10 random elements from a vector
# ╔═╡ b87a9e77-1e26-4a1f-8a60-2e0214c059f5
md"Some standard libraries are needed to do more, for example:"
+# ╔═╡ cc2371a4-26be-4325-a38a-beb5c7157b57
+using Random
+
# ╔═╡ 9ac1f1af-bfdc-4499-81f5-507803ea9ed6
randstring(30)
+# ╔═╡ 3a2fb476-5685-40aa-9b21-6d4eb642d87e
+using Statistics
+
# ╔═╡ 974b70c1-2df2-40c6-b98c-3df1f31879bf
begin
y = rand(30)
@@ -399,6 +381,15 @@ For sampling from more general distributions we need
Distributions.jl package which is not part of the standard library.
"""
+# ╔═╡ c0df6812-9717-454b-a8b6-f7ff516dedc4
+begin
+ using Distributions
+
+ N = 1000
+ samples = rand(Normal(), N); # equivalent to Julia's built-in `randn(d)`
+ samples = (samples).^2; # square element-wise
+end
+
# ╔═╡ f618c762-a936-433f-81e1-74ef03c2e79e
g = fit(Gamma, samples)
@@ -411,6 +402,9 @@ median(g)
# ╔═╡ bcce5556-9e92-4dfa-97e3-6677afc6ca9f
pdf(g, 1)
+# ╔═╡ 4d822ecd-c6da-4bcb-b10e-562ce21caa04
+using PkgOnlineHelp
+
# ╔═╡ 60aef579-9404-4272-8f78-ab549ef1544e
md"Uncomment and execute the next line to launch Distribution documentation in your browser:"
@@ -420,7 +414,13 @@ md"Uncomment and execute the next line to launch Distribution documentation in y
# ╔═╡ 2a96dfa7-cf5a-4e7f-8704-dbab8e09b4f1
md"## Plotting"
-# ╔═╡ 6439f7a8-34f3-4a01-bea4-3d467d48781c
+# ╔═╡ 912dc07c-b98e-45fb-a02f-27b6c05e4d02
+begin
+ using CairoMakie
+ CairoMakie.activate!(type = "png")
+end
+
+# ╔═╡ 8c61ce1f-4ef7-47c9-bea4-3d467d48781c
begin
f(x) = pdf(g, x)
@@ -428,7 +428,7 @@ begin
ys = f.(xs) # apply f element-wise to xs
fig = lines(xs, ys)
- hist!(samples, normalization=:pdf, bins=40, alpha=0.4)
+ hist!(samples, normalization=:pdf, bins=40, color=(:darkblue, 0.4))
current_figure()
end
@@ -472,7 +472,7 @@ md"The following shows that named tuples share some behaviour with dictionaries:
# ╔═╡ cb2c42bf-21b5-4e04-9727-ed822e4fd85d
begin
- t = (x = 1, y = "cat", z = 4.5)
+ t = (x = 1, y = "cat", z = 4.5
keys(t)
end
@@ -607,7 +607,7 @@ md"""
# ╠═a35c0fe8-afc4-4eaf-a8a4-a53f5149481e
# ╟─2a96dfa7-cf5a-4e7f-8704-dbab8e09b4f1
# ╠═912dc07c-b98e-45fb-a02f-27b6c05e4d02
-# ╠═6439f7a8-34f3-4a01-bea4-3d467d48781c
+# ╠═8c61ce1f-4ef7-47c9-bea4-3d467d48781c
# ╠═bf64e629-d0bc-4e89-97c5-2979af8a507d
# ╟─a7f061b8-d1ed-4b1f-b639-63c76c72c513
# ╟─19dae74b-24bd-428f-8f5a-e1ee9eb5c15c
diff --git a/notebooks/01_first_steps/notebook.unexecuted.ipynb b/notebooks/01_first_steps/notebook.unexecuted.ipynb
index b20130e..1f5e51b 100644
--- a/notebooks/01_first_steps/notebook.unexecuted.ipynb
+++ b/notebooks/01_first_steps/notebook.unexecuted.ipynb
@@ -980,7 +980,7 @@
"ys = f.(xs) # apply f element-wise to xs\n",
"\n",
"fig = lines(xs, ys)\n",
- "hist!(samples, normalization=:pdf, bins=40, alpha=0.4)\n",
+ "hist!(samples, normalization=:pdf, bins=40, color=(:darkblue, 0.4))\n",
"current_figure()"
],
"metadata": {},
@@ -1101,11 +1101,11 @@
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
- "version": "1.9.0"
+ "version": "1.10.3"
},
"kernelspec": {
- "name": "julia-1.9",
- "display_name": "Julia 1.9.0",
+ "name": "julia-1.10",
+ "display_name": "Julia 1.10.3",
"language": "julia"
}
},
diff --git a/notebooks/02_dataframes/notebook.ipynb b/notebooks/02_dataframes/notebook.ipynb
index 1eace82..9581782 100644
--- a/notebooks/02_dataframes/notebook.ipynb
+++ b/notebooks/02_dataframes/notebook.ipynb
@@ -1357,11 +1357,11 @@
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
- "version": "1.9.0"
+ "version": "1.10.3"
},
"kernelspec": {
- "name": "julia-1.9",
- "display_name": "Julia 1.9.0",
+ "name": "julia-1.10",
+ "display_name": "Julia 1.10.3",
"language": "julia"
}
},
diff --git a/notebooks/02_dataframes/notebook.pluto.jl b/notebooks/02_dataframes/notebook.pluto.jl
index ea502b1..f32fe0c 100644
--- a/notebooks/02_dataframes/notebook.pluto.jl
+++ b/notebooks/02_dataframes/notebook.pluto.jl
@@ -1,24 +1,9 @@
### A Pluto.jl notebook ###
-# v0.19.25
+# v0.16.0
using Markdown
using InteractiveUtils
-# ╔═╡ 4474fd86-9496-44c7-a6bf-47194d7e8e12
-begin
- using Pkg
- Pkg.activate(joinpath(@__DIR__, "..", ".."))
- Pkg.instantiate()
-end
-
-# ╔═╡ 231ecead-09a5-4ac7-9873-1b1430e635cc
-begin
- using OpenML
-
- table = OpenML.load(42638); # Titanic data set
- typeof(table)
-end
-
# ╔═╡ 7775b104-385d-4721-9bca-7c69b794f8ce
md"# Tutorial 2"
@@ -42,6 +27,13 @@ DataFrames.jl **cheatsheets**:
# ╔═╡ 40956165-26d0-4d61-8af5-148d95ea2900
md"## Setup"
+# ╔═╡ 4474fd86-9496-44c7-a6bf-47194d7e8e12
+begin
+ using Pkg
+ Pkg.activate(joinpath(@__DIR__, "..", ".."))
+ Pkg.instantiate()
+end
+
# ╔═╡ e9994202-88fc-4bab-828a-4cc485149963
md"## A simple handmade data frame"
@@ -61,12 +53,6 @@ columntable = (
married = [true, false, false],
)
-# ╔═╡ aeb4f41d-2abe-4a3b-b1b3-dd47e367ba54
-begin
- using DataFrames
- dataframe = DataFrame(columntable)
-end
-
# ╔═╡ 95df9fbb-9752-4500-95ea-2955abd45275
md"""
One problem with such a table is that it's not a simple matter to grab a single row, or to
@@ -74,6 +60,12 @@ filter rows (records) based on some criterion. For this we can convert our table
`DataFrame` from the DataFrames.jl package:
"""
+# ╔═╡ aeb4f41d-2abe-4a3b-b1b3-dd47e367ba54
+begin
+ using DataFrames
+ dataframe = DataFrame(columntable)
+end
+
# ╔═╡ 8f2fe8d6-1e0f-4e02-8d7e-8e449afd1c48
md"Now we can do things like this:"
@@ -91,6 +83,14 @@ md"## Grabbing the Titanic dataset as a DataFrame"
# ╔═╡ 368564ee-157f-44dc-bca8-7eec7950fd82
md"We'll be using [OpenML](https://www.openml.org/home) to grab datasets."
+# ╔═╡ 231ecead-09a5-4ac7-9873-1b1430e635cc
+begin
+ using OpenML
+
+ table = OpenML.load(42638); # Titanic data set
+ typeof(table)
+end
+
# ╔═╡ 7e19d8ea-14a4-4a2d-b43e-d0ebe87da176
md"""
This is not a `DataFrame`. However, it can be converted to one in the same way we
@@ -100,14 +100,6 @@ converted our named-tuple table:
# ╔═╡ 943a5fd8-56fc-420e-9009-4cfb2012998f
df = DataFrame(table);
-# ╔═╡ ba1b1b96-46b0-4cf8-aa36-d2e8546da46a
-begin
- using Statistics # to get functions like `mean` and `std`
- foo(v) = mean(abs.(v))
- d = describe(df, :mean, :median, foo => :mae)
- first(d, 3)
-end
-
# ╔═╡ 7fe10a23-640b-4bf5-abd3-cb77d7a79683
md"Lets' look the first few rows (observations) of `df`:"
@@ -294,6 +286,14 @@ The following are all supported:
# ╔═╡ ffaa27c3-5c5c-44d4-910b-f8a9a217eff2
md"You can also pass custom function, together with a name for the generated column by passing a pair `function => :name`, as in"
+# ╔═╡ ba1b1b96-46b0-4cf8-aa36-d2e8546da46a
+begin
+ using Statistics # to get functions like `mean` and `std`
+ foo(v) = mean(abs.(v))
+ d = describe(df, :mean, :median, foo => :mae)
+ first(d, 3)
+end
+
# ╔═╡ 3e50f94b-94c4-4fb3-88a1-a2bf91434413
md"Note that the object returned by `describe` is itself a `DataFrame`:"
diff --git a/notebooks/02_dataframes/notebook.unexecuted.ipynb b/notebooks/02_dataframes/notebook.unexecuted.ipynb
index 4f1e7c4..5b226c2 100644
--- a/notebooks/02_dataframes/notebook.unexecuted.ipynb
+++ b/notebooks/02_dataframes/notebook.unexecuted.ipynb
@@ -920,11 +920,11 @@
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
- "version": "1.9.0"
+ "version": "1.10.3"
},
"kernelspec": {
- "name": "julia-1.9",
- "display_name": "Julia 1.9.0",
+ "name": "julia-1.10",
+ "display_name": "Julia 1.10.3",
"language": "julia"
}
},
diff --git a/notebooks/03_machine_learning/notebook.ipynb b/notebooks/03_machine_learning/notebook.ipynb
index 88e35eb..b172be3 100644
--- a/notebooks/03_machine_learning/notebook.ipynb
+++ b/notebooks/03_machine_learning/notebook.ipynb
@@ -28,9 +28,9 @@
"cell_type": "markdown",
"source": [
"For other MLJ learning resources see the [Learning\n",
- "MLJ](https://alan-turing-institute.github.io/MLJ.jl/dev/learning_mlj/)\n",
+ "MLJ](https://JuliaAI.github.io/MLJ.jl/dev/learning_mlj/)\n",
"section of the\n",
- "[manual](https://alan-turing-institute.github.io/MLJ.jl/dev/)."
+ "[manual](https://JuliaAI.github.io/MLJ.jl/dev/)."
],
"metadata": {}
},
@@ -68,15 +68,7 @@
"metadata": {}
},
{
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[ Info: Precompiling MLJ [add582a8-e3ab-11e8-2d5e-e98b27df1bc7]\n"
- ]
- }
- ],
+ "outputs": [],
"cell_type": "code",
"source": [
"using MLJ\n",
@@ -353,7 +345,7 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "Dict{Union{Missing, CategoricalArrays.CategoricalValue{String, UInt32}}, Int64} with 148 entries:\n \"C104\" => 1\n \"E50\" => 1\n \"D20\" => 2\n \"E58\" => 1\n \"C46\" => 1\n \"D37\" => 1\n \"B96 B98\" => 4\n \"C86\" => 1\n \"C106\" => 1\n \"A5\" => 1\n \"C52\" => 2\n \"B19\" => 1\n \"C65\" => 2\n \"C30\" => 1\n \"D48\" => 1\n missing => 687\n \"B42\" => 1\n \"C128\" => 1\n \"E38\" => 1\n ⋮ => ⋮"
+ "text/plain": "Dict{Union{Missing, CategoricalArrays.CategoricalValue{String, UInt32}}, Int64} with 148 entries:\n \"C104\" => 1\n \"E50\" => 1\n \"D20\" => 2\n \"E58\" => 1\n \"C46\" => 1\n \"D37\" => 1\n \"B96 B98\" => 4\n \"C86\" => 1\n \"C106\" => 1\n \"A5\" => 1\n \"C52\" => 2\n \"B19\" => 1\n \"C65\" => 2\n \"C30\" => 1\n \"D48\" => 1\n \"B42\" => 1\n \"C128\" => 1\n \"E38\" => 1\n \"E10\" => 1\n ⋮ => ⋮"
},
"metadata": {},
"execution_count": 12
@@ -532,7 +524,7 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "untrained Machine; caches model-specific representations of data\n model: FillImputer(features = Symbol[], …)\n args: \n 1:\tSource @375 ⏎ ScientificTypesBase.Table{Union{AbstractVector{ScientificTypesBase.Continuous}, AbstractVector{ScientificTypesBase.Count}, AbstractVector{ScientificTypesBase.Multiclass{3}}, AbstractVector{ScientificTypesBase.Textual}, AbstractVector{Union{Missing, ScientificTypesBase.Multiclass{3}}}, AbstractVector{ScientificTypesBase.Multiclass{2}}}}\n"
+ "text/plain": "untrained Machine; caches model-specific representations of data\n model: FillImputer(features = Symbol[], …)\n args: \n 1:\tSource @296 ⏎ ScientificTypesBase.Table{Union{AbstractVector{ScientificTypesBase.Continuous}, AbstractVector{ScientificTypesBase.Count}, AbstractVector{ScientificTypesBase.Multiclass{3}}, AbstractVector{ScientificTypesBase.Textual}, AbstractVector{Union{Missing, ScientificTypesBase.Multiclass{3}}}, AbstractVector{ScientificTypesBase.Multiclass{2}}}}\n"
},
"metadata": {},
"execution_count": 18
@@ -719,8 +711,8 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "\u001b[36m mutable struct DecisionTreeClassifier <: MLJModelInterface.Probabilistic\u001b[39m\n\n A simple Decision Tree model for classification with support for Missing\n data, from the Beta Machine Learning Toolkit (BetaML).\n\n\u001b[1m Hyperparameters:\u001b[22m\n\u001b[1m ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\u001b[22m\n\n • \u001b[36mmax_depth::Int64\u001b[39m: The maximum depth the tree is allowed to reach.\n When this is reached the node is forced to become a leaf [def: \u001b[36m0\u001b[39m,\n i.e. no limits]\n\n • \u001b[36mmin_gain::Float64\u001b[39m: The minimum information gain to allow for a\n node's partition [def: \u001b[36m0\u001b[39m]\n\n • \u001b[36mmin_records::Int64\u001b[39m: The minimum number of records a node must\n holds to consider for a partition of it [def: \u001b[36m2\u001b[39m]\n\n • \u001b[36mmax_features::Int64\u001b[39m: The maximum number of (random) features to\n consider at each partitioning [def: \u001b[36m0\u001b[39m, i.e. look at all features]\n\n • \u001b[36msplitting_criterion::Function\u001b[39m: This is the name of the function to\n be used to compute the information gain of a specific partition.\n This is done by measuring the difference betwwen the \"impurity\" of\n the labels of the parent node with those of the two child nodes,\n weighted by the respective number of items. [def: \u001b[36mgini\u001b[39m]. Either\n \u001b[36mgini\u001b[39m, \u001b[36mentropy\u001b[39m or a custom function. It can also be an anonymous\n function.\n\n • \u001b[36mrng::Random.AbstractRNG\u001b[39m: A Random Number Generator to be used in\n stochastic parts of the code [deafult: \u001b[36mRandom.GLOBAL_RNG\u001b[39m]\n\n\u001b[1m Example:\u001b[22m\n\u001b[1m ≡≡≡≡≡≡≡≡≡≡\u001b[22m\n\n\u001b[36m \u001b[39m\n\u001b[36m julia> using MLJ\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> X, y = @load_iris;\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> modelType = @load DecisionTreeClassifier pkg = \"BetaML\" verbosity=0\u001b[39m\n\u001b[36m BetaML.Trees.DecisionTreeClassifier\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> model = modelType()\u001b[39m\n\u001b[36m DecisionTreeClassifier(\u001b[39m\n\u001b[36m max_depth = 0, \u001b[39m\n\u001b[36m min_gain = 0.0, \u001b[39m\n\u001b[36m min_records = 2, \u001b[39m\n\u001b[36m max_features = 0, \u001b[39m\n\u001b[36m splitting_criterion = BetaML.Utils.gini, \u001b[39m\n\u001b[36m rng = Random._GLOBAL_RNG())\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> (fitResults, cache, report) = MLJ.fit(model, 0, X, y);\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> class_est = predict(model, fitResults, X)\u001b[39m\n\u001b[36m 150-element CategoricalDistributions.UnivariateFiniteVector{Multiclass{3}, String, UInt32, Float64}:\u001b[39m\n\u001b[36m UnivariateFinite{Multiclass{3}}(setosa=>1.0, versicolor=>0.0, virginica=>0.0)\u001b[39m\n\u001b[36m UnivariateFinite{Multiclass{3}}(setosa=>1.0, versicolor=>0.0, virginica=>0.0)\u001b[39m\n\u001b[36m UnivariateFinite{Multiclass{3}}(setosa=>1.0, versicolor=>0.0, virginica=>0.0)\u001b[39m\n\u001b[36m ⋮\u001b[39m\n\u001b[36m UnivariateFinite{Multiclass{3}}(setosa=>0.0, versicolor=>0.0, virginica=>1.0)\u001b[39m\n\u001b[36m UnivariateFinite{Multiclass{3}}(setosa=>0.0, versicolor=>0.0, virginica=>1.0)\u001b[39m\n\u001b[36m UnivariateFinite{Multiclass{3}}(setosa=>0.0, versicolor=>0.0, virginica=>1.0)\u001b[39m",
- "text/markdown": "```julia\nmutable struct DecisionTreeClassifier <: MLJModelInterface.Probabilistic\n```\n\nA simple Decision Tree model for classification with support for Missing data, from the Beta Machine Learning Toolkit (BetaML).\n\n# Hyperparameters:\n\n * `max_depth::Int64`: The maximum depth the tree is allowed to reach. When this is reached the node is forced to become a leaf [def: `0`, i.e. no limits]\n * `min_gain::Float64`: The minimum information gain to allow for a node's partition [def: `0`]\n * `min_records::Int64`: The minimum number of records a node must holds to consider for a partition of it [def: `2`]\n * `max_features::Int64`: The maximum number of (random) features to consider at each partitioning [def: `0`, i.e. look at all features]\n * `splitting_criterion::Function`: This is the name of the function to be used to compute the information gain of a specific partition. This is done by measuring the difference betwwen the \"impurity\" of the labels of the parent node with those of the two child nodes, weighted by the respective number of items. [def: `gini`]. Either `gini`, `entropy` or a custom function. It can also be an anonymous function.\n * `rng::Random.AbstractRNG`: A Random Number Generator to be used in stochastic parts of the code [deafult: `Random.GLOBAL_RNG`]\n\n# Example:\n\n```julia\n\njulia> using MLJ\n\njulia> X, y = @load_iris;\n\njulia> modelType = @load DecisionTreeClassifier pkg = \"BetaML\" verbosity=0\nBetaML.Trees.DecisionTreeClassifier\n\njulia> model = modelType()\nDecisionTreeClassifier(\n max_depth = 0, \n min_gain = 0.0, \n min_records = 2, \n max_features = 0, \n splitting_criterion = BetaML.Utils.gini, \n rng = Random._GLOBAL_RNG())\n\njulia> (fitResults, cache, report) = MLJ.fit(model, 0, X, y);\n\njulia> class_est = predict(model, fitResults, X)\n150-element CategoricalDistributions.UnivariateFiniteVector{Multiclass{3}, String, UInt32, Float64}:\n UnivariateFinite{Multiclass{3}}(setosa=>1.0, versicolor=>0.0, virginica=>0.0)\n UnivariateFinite{Multiclass{3}}(setosa=>1.0, versicolor=>0.0, virginica=>0.0)\n UnivariateFinite{Multiclass{3}}(setosa=>1.0, versicolor=>0.0, virginica=>0.0)\n ⋮\n UnivariateFinite{Multiclass{3}}(setosa=>0.0, versicolor=>0.0, virginica=>1.0)\n UnivariateFinite{Multiclass{3}}(setosa=>0.0, versicolor=>0.0, virginica=>1.0)\n UnivariateFinite{Multiclass{3}}(setosa=>0.0, versicolor=>0.0, virginica=>1.0)\n```\n"
+ "text/plain": "\u001b[36m mutable struct DecisionTreeClassifier <: MLJModelInterface.Probabilistic\u001b[39m\n\n A simple Decision Tree model for classification with support for Missing\n data, from the Beta Machine Learning Toolkit (BetaML).\n\n\u001b[1m Hyperparameters:\u001b[22m\n\u001b[1m ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\u001b[22m\n\n • \u001b[36mmax_depth::Int64\u001b[39m: The maximum depth the tree is allowed to reach.\n When this is reached the node is forced to become a leaf [def: \u001b[36m0\u001b[39m,\n i.e. no limits]\n\n • \u001b[36mmin_gain::Float64\u001b[39m: The minimum information gain to allow for a\n node's partition [def: \u001b[36m0\u001b[39m]\n\n • \u001b[36mmin_records::Int64\u001b[39m: The minimum number of records a node must\n holds to consider for a partition of it [def: \u001b[36m2\u001b[39m]\n\n • \u001b[36mmax_features::Int64\u001b[39m: The maximum number of (random) features to\n consider at each partitioning [def: \u001b[36m0\u001b[39m, i.e. look at all features]\n\n • \u001b[36msplitting_criterion::Function\u001b[39m: This is the name of the function to\n be used to compute the information gain of a specific partition.\n This is done by measuring the difference betwwen the \"impurity\" of\n the labels of the parent node with those of the two child nodes,\n weighted by the respective number of items. [def: \u001b[36mgini\u001b[39m]. Either\n \u001b[36mgini\u001b[39m, \u001b[36mentropy\u001b[39m or a custom function. It can also be an anonymous\n function.\n\n • \u001b[36mrng::Random.AbstractRNG\u001b[39m: A Random Number Generator to be used in\n stochastic parts of the code [deafult: \u001b[36mRandom.GLOBAL_RNG\u001b[39m]\n\n\u001b[1m Example:\u001b[22m\n\u001b[1m ≡≡≡≡≡≡≡≡\u001b[22m\n\n\u001b[36m julia> using MLJ\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> X, y = @load_iris;\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> modelType = @load DecisionTreeClassifier pkg = \"BetaML\" verbosity=0\u001b[39m\n\u001b[36m BetaML.Trees.DecisionTreeClassifier\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> model = modelType()\u001b[39m\n\u001b[36m DecisionTreeClassifier(\u001b[39m\n\u001b[36m max_depth = 0, \u001b[39m\n\u001b[36m min_gain = 0.0, \u001b[39m\n\u001b[36m min_records = 2, \u001b[39m\n\u001b[36m max_features = 0, \u001b[39m\n\u001b[36m splitting_criterion = BetaML.Utils.gini, \u001b[39m\n\u001b[36m rng = Random._GLOBAL_RNG())\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> mach = machine(model, X, y);\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> fit!(mach);\u001b[39m\n\u001b[36m [ Info: Training machine(DecisionTreeClassifier(max_depth = 0, …), …).\u001b[39m\n\u001b[36m \u001b[39m\n\u001b[36m julia> cat_est = predict(mach, X)\u001b[39m\n\u001b[36m 150-element CategoricalDistributions.UnivariateFiniteVector{Multiclass{3}, String, UInt32, Float64}:\u001b[39m\n\u001b[36m UnivariateFinite{Multiclass{3}}(setosa=>1.0, versicolor=>0.0, virginica=>0.0)\u001b[39m\n\u001b[36m UnivariateFinite{Multiclass{3}}(setosa=>1.0, versicolor=>0.0, virginica=>0.0)\u001b[39m\n\u001b[36m ⋮\u001b[39m\n\u001b[36m UnivariateFinite{Multiclass{3}}(setosa=>0.0, versicolor=>0.0, virginica=>1.0)\u001b[39m\n\u001b[36m UnivariateFinite{Multiclass{3}}(setosa=>0.0, versicolor=>0.0, virginica=>1.0)\u001b[39m\n\u001b[36m UnivariateFinite{Multiclass{3}}(setosa=>0.0, versicolor=>0.0, virginica=>1.0)\u001b[39m",
+ "text/markdown": "```julia\nmutable struct DecisionTreeClassifier <: MLJModelInterface.Probabilistic\n```\n\nA simple Decision Tree model for classification with support for Missing data, from the Beta Machine Learning Toolkit (BetaML).\n\n# Hyperparameters:\n\n * `max_depth::Int64`: The maximum depth the tree is allowed to reach. When this is reached the node is forced to become a leaf [def: `0`, i.e. no limits]\n * `min_gain::Float64`: The minimum information gain to allow for a node's partition [def: `0`]\n * `min_records::Int64`: The minimum number of records a node must holds to consider for a partition of it [def: `2`]\n * `max_features::Int64`: The maximum number of (random) features to consider at each partitioning [def: `0`, i.e. look at all features]\n * `splitting_criterion::Function`: This is the name of the function to be used to compute the information gain of a specific partition. This is done by measuring the difference betwwen the \"impurity\" of the labels of the parent node with those of the two child nodes, weighted by the respective number of items. [def: `gini`]. Either `gini`, `entropy` or a custom function. It can also be an anonymous function.\n * `rng::Random.AbstractRNG`: A Random Number Generator to be used in stochastic parts of the code [deafult: `Random.GLOBAL_RNG`]\n\n# Example:\n\n```julia\njulia> using MLJ\n\njulia> X, y = @load_iris;\n\njulia> modelType = @load DecisionTreeClassifier pkg = \"BetaML\" verbosity=0\nBetaML.Trees.DecisionTreeClassifier\n\njulia> model = modelType()\nDecisionTreeClassifier(\n max_depth = 0, \n min_gain = 0.0, \n min_records = 2, \n max_features = 0, \n splitting_criterion = BetaML.Utils.gini, \n rng = Random._GLOBAL_RNG())\n\njulia> mach = machine(model, X, y);\n\njulia> fit!(mach);\n[ Info: Training machine(DecisionTreeClassifier(max_depth = 0, …), …).\n\njulia> cat_est = predict(mach, X)\n150-element CategoricalDistributions.UnivariateFiniteVector{Multiclass{3}, String, UInt32, Float64}:\n UnivariateFinite{Multiclass{3}}(setosa=>1.0, versicolor=>0.0, virginica=>0.0)\n UnivariateFinite{Multiclass{3}}(setosa=>1.0, versicolor=>0.0, virginica=>0.0)\n ⋮\n UnivariateFinite{Multiclass{3}}(setosa=>0.0, versicolor=>0.0, virginica=>1.0)\n UnivariateFinite{Multiclass{3}}(setosa=>0.0, versicolor=>0.0, virginica=>1.0)\n UnivariateFinite{Multiclass{3}}(setosa=>0.0, versicolor=>0.0, virginica=>1.0)\n```\n"
},
"metadata": {},
"execution_count": 25
@@ -740,9 +732,7 @@
"output_type": "stream",
"text": [
"[ Info: For silent loading, specify `verbosity=0`. \n",
- "import BetaML[ Info: Precompiling BetaML [024491cd-cc6b-443e-8034-08ea7eb7db2b]\n",
- "[ Info: Precompiling ZygoteColorsExt [e68c091a-8ea5-5ca7-be4f-380657d4ad79]\n",
- " ✔\n"
+ "import BetaML ✔\n"
]
},
{
@@ -848,7 +838,7 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "untrained Machine; caches model-specific representations of data\n model: DecisionTreeClassifier(max_depth = 0, …)\n args: \n 1:\tSource @807 ⏎ ScientificTypesBase.Table{Union{AbstractVector{ScientificTypesBase.Continuous}, AbstractVector{ScientificTypesBase.Count}, AbstractVector{ScientificTypesBase.Multiclass{2}}, AbstractVector{ScientificTypesBase.Multiclass{3}}, AbstractVector{ScientificTypesBase.Textual}}}\n 2:\tSource @909 ⏎ AbstractVector{ScientificTypesBase.Multiclass{2}}\n"
+ "text/plain": "untrained Machine; caches model-specific representations of data\n model: DecisionTreeClassifier(max_depth = 0, …)\n args: \n 1:\tSource @201 ⏎ ScientificTypesBase.Table{Union{AbstractVector{ScientificTypesBase.Continuous}, AbstractVector{ScientificTypesBase.Count}, AbstractVector{ScientificTypesBase.Multiclass{2}}, AbstractVector{ScientificTypesBase.Multiclass{3}}, AbstractVector{ScientificTypesBase.Textual}}}\n 2:\tSource @746 ⏎ AbstractVector{ScientificTypesBase.Multiclass{2}}\n"
},
"metadata": {},
"execution_count": 29
@@ -880,7 +870,7 @@
{
"output_type": "execute_result",
"data": {
- "text/plain": "trained Machine; caches model-specific representations of data\n model: DecisionTreeClassifier(max_depth = 0, …)\n args: \n 1:\tSource @807 ⏎ ScientificTypesBase.Table{Union{AbstractVector{ScientificTypesBase.Continuous}, AbstractVector{ScientificTypesBase.Count}, AbstractVector{ScientificTypesBase.Multiclass{2}}, AbstractVector{ScientificTypesBase.Multiclass{3}}, AbstractVector{ScientificTypesBase.Textual}}}\n 2:\tSource @909 ⏎ AbstractVector{ScientificTypesBase.Multiclass{2}}\n"
+ "text/plain": "trained Machine; caches model-specific representations of data\n model: DecisionTreeClassifier(max_depth = 0, …)\n args: \n 1:\tSource @201 ⏎ ScientificTypesBase.Table{Union{AbstractVector{ScientificTypesBase.Continuous}, AbstractVector{ScientificTypesBase.Count}, AbstractVector{ScientificTypesBase.Multiclass{2}}, AbstractVector{ScientificTypesBase.Multiclass{3}}, AbstractVector{ScientificTypesBase.Textual}}}\n 2:\tSource @746 ⏎ AbstractVector{ScientificTypesBase.Multiclass{2}}\n"
},
"metadata": {},
"execution_count": 30
@@ -1033,7 +1023,7 @@
"List all performance measures with `measures()`. Naturally, MLJ\n",
"includes functions to automate this kind of performance evaluation,\n",
"but this is beyond the scope of this tutorial. See, eg,\n",
- "[here](https://alan-turing-institute.github.io/MLJ.jl/dev/getting_started/#Getting-Started)."
+ "[here](https://JuliaAI.github.io/MLJ.jl/dev/getting_started/#Getting-Started)."
],
"metadata": {}
},
@@ -1048,7 +1038,7 @@
"cell_type": "markdown",
"source": [
"Some suggestions for next steps are\n",
- "[here](https://alan-turing-institute.github.io/MLJ.jl/dev/getting_started/#Getting-Started)."
+ "[here](https://JuliaAI.github.io/MLJ.jl/dev/getting_started/#Getting-Started)."
],
"metadata": {}
},
@@ -1068,11 +1058,11 @@
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
- "version": "1.9.0"
+ "version": "1.10.3"
},
"kernelspec": {
- "name": "julia-1.9",
- "display_name": "Julia 1.9.0",
+ "name": "julia-1.10",
+ "display_name": "Julia 1.10.3",
"language": "julia"
}
},
diff --git a/notebooks/03_machine_learning/notebook.jl b/notebooks/03_machine_learning/notebook.jl
index 0828024..ca9642d 100644
--- a/notebooks/03_machine_learning/notebook.jl
+++ b/notebooks/03_machine_learning/notebook.jl
@@ -8,9 +8,9 @@
# deep-learning).
# For other MLJ learning resources see the [Learning
-# MLJ](https://alan-turing-institute.github.io/MLJ.jl/dev/learning_mlj/)
+# MLJ](https://JuliaAI.github.io/MLJ.jl/dev/learning_mlj/)
# section of the
-# [manual](https://alan-turing-institute.github.io/MLJ.jl/dev/).
+# [manual](https://JuliaAI.github.io/MLJ.jl/dev/).
# ## Activate package environment
@@ -239,9 +239,9 @@ accuracy(yhat, y_test)
# List all performance measures with `measures()`. Naturally, MLJ
# includes functions to automate this kind of performance evaluation,
# but this is beyond the scope of this tutorial. See, eg,
-# [here](https://alan-turing-institute.github.io/MLJ.jl/dev/getting_started/#Getting-Started).
+# [here](https://JuliaAI.github.io/MLJ.jl/dev/getting_started/#Getting-Started).
# ## Learning more
# Some suggestions for next steps are
-# [here](https://alan-turing-institute.github.io/MLJ.jl/dev/getting_started/#Getting-Started).
+# [here](https://JuliaAI.github.io/MLJ.jl/dev/getting_started/#Getting-Started).
diff --git a/notebooks/03_machine_learning/notebook.pluto.jl b/notebooks/03_machine_learning/notebook.pluto.jl
index 41da394..2f7505f 100644
--- a/notebooks/03_machine_learning/notebook.pluto.jl
+++ b/notebooks/03_machine_learning/notebook.pluto.jl
@@ -1,22 +1,9 @@
### A Pluto.jl notebook ###
-# v0.19.25
+# v0.16.0
using Markdown
using InteractiveUtils
-# ╔═╡ 4474fd86-9496-44c7-a6bf-47194d7e8e12
-begin
- using Pkg
- Pkg.activate(joinpath(@__DIR__, "..", ".."))
- Pkg.instantiate()
-end
-
-# ╔═╡ 86f5ae82-8207-416e-9e54-3f7b3ca87ecb
-begin
- using MLJ
- import DataFrames
-end
-
# ╔═╡ 5dad6a5d-e6e9-4ea0-9bca-7c69b794f8ce
md"# Tutorial 3"
@@ -33,20 +20,33 @@ MLJ is a *multi-paradigm* machine learning toolbox (i.e., not just
deep-learning).
"""
-# ╔═╡ b04c4790-59e0-42a3-af2a-25235e544a31
+# ╔═╡ 8aee3b0f-128f-444f-af2a-25235e544a31
md"""
For other MLJ learning resources see the [Learning
-MLJ](https://alan-turing-institute.github.io/MLJ.jl/dev/learning_mlj/)
+MLJ](https://JuliaAI.github.io/MLJ.jl/dev/learning_mlj/)
section of the
-[manual](https://alan-turing-institute.github.io/MLJ.jl/dev/).
+[manual](https://JuliaAI.github.io/MLJ.jl/dev/).
"""
# ╔═╡ 1734e972-19e8-4d40-8af5-148d95ea2900
md"## Activate package environment"
+# ╔═╡ 4474fd86-9496-44c7-a6bf-47194d7e8e12
+begin
+ using Pkg
+ Pkg.activate(joinpath(@__DIR__, "..", ".."))
+ Pkg.instantiate()
+end
+
# ╔═╡ 6f4d110c-7f0b-4e70-828a-4cc485149963
md"## Establishing correct data representation"
+# ╔═╡ 86f5ae82-8207-416e-9e54-3f7b3ca87ecb
+begin
+ using MLJ
+ import DataFrames
+end
+
# ╔═╡ e5885e24-b17b-471b-ba1f-6363f43ec697
md"""
A ["scientific
@@ -367,21 +367,21 @@ md"Or using a deterministic measure:"
# ╔═╡ e5134375-cde5-41de-9625-01172c4a0081
accuracy(yhat, y_test)
-# ╔═╡ 9fbdd706-c10a-4634-af4f-11c7de9e21dd
+# ╔═╡ a27faca1-5a03-41f5-af4f-11c7de9e21dd
md"""
List all performance measures with `measures()`. Naturally, MLJ
includes functions to automate this kind of performance evaluation,
but this is beyond the scope of this tutorial. See, eg,
-[here](https://alan-turing-institute.github.io/MLJ.jl/dev/getting_started/#Getting-Started).
+[here](https://JuliaAI.github.io/MLJ.jl/dev/getting_started/#Getting-Started).
"""
# ╔═╡ 3e2e6de9-bfd4-4629-8dba-241d9b744683
md"## Learning more"
-# ╔═╡ 72066eb3-9b46-4fa8-a6e5-2f0b4dca5c59
+# ╔═╡ 33aff020-66e0-4fa7-a6e5-2f0b4dca5c59
md"""
Some suggestions for next steps are
-[here](https://alan-turing-institute.github.io/MLJ.jl/dev/getting_started/#Getting-Started).
+[here](https://JuliaAI.github.io/MLJ.jl/dev/getting_started/#Getting-Started).
"""
# ╔═╡ 135dac9b-0bd9-4e1d-8550-20498aa03ed0
@@ -395,7 +395,7 @@ md"""
# ╟─5dad6a5d-e6e9-4ea0-9bca-7c69b794f8ce
# ╟─33691746-74ed-425d-b795-033f6f2a0674
# ╟─aa49e638-95dc-4249-935f-ddf6a6bfbbdd
-# ╟─b04c4790-59e0-42a3-af2a-25235e544a31
+# ╟─8aee3b0f-128f-444f-af2a-25235e544a31
# ╟─1734e972-19e8-4d40-8af5-148d95ea2900
# ╠═4474fd86-9496-44c7-a6bf-47194d7e8e12
# ╟─6f4d110c-7f0b-4e70-828a-4cc485149963
@@ -408,7 +408,7 @@ md"""
# ╠═5c2ec910-6444-4c53-8514-99938a2932db
# ╟─ddaf1934-1aba-4ede-a0de-1721c1bc2df2
# ╟─ca482134-299b-459a-bca8-7eec7950fd82
-# ╟─2d0de272-ed0a-4c6b-9873-1b1430e635cc
+# ╠═2d0de272-ed0a-4c6b-9873-1b1430e635cc
# ╟─96c58ce9-9b29-4c5e-b43e-d0ebe87da176
# ╠═9d2f0b19-2942-47ac-9009-4cfb2012998f
# ╟─b90f3b7b-4de2-4a5c-abd3-cb77d7a79683
@@ -471,7 +471,7 @@ md"""
# ╠═4fd67e05-c4d0-4858-9e90-09023d201062
# ╟─7f127360-5da1-4bee-b7bb-2f33ef765cc0
# ╠═e5134375-cde5-41de-9625-01172c4a0081
-# ╟─9fbdd706-c10a-4634-af4f-11c7de9e21dd
+# ╟─a27faca1-5a03-41f5-af4f-11c7de9e21dd
# ╟─3e2e6de9-bfd4-4629-8dba-241d9b744683
-# ╟─72066eb3-9b46-4fa8-a6e5-2f0b4dca5c59
+# ╟─33aff020-66e0-4fa7-a6e5-2f0b4dca5c59
# ╟─135dac9b-0bd9-4e1d-8550-20498aa03ed0
diff --git a/notebooks/03_machine_learning/notebook.unexecuted.ipynb b/notebooks/03_machine_learning/notebook.unexecuted.ipynb
index 3e6eed2..e2f25bc 100644
--- a/notebooks/03_machine_learning/notebook.unexecuted.ipynb
+++ b/notebooks/03_machine_learning/notebook.unexecuted.ipynb
@@ -28,9 +28,9 @@
"cell_type": "markdown",
"source": [
"For other MLJ learning resources see the [Learning\n",
- "MLJ](https://alan-turing-institute.github.io/MLJ.jl/dev/learning_mlj/)\n",
+ "MLJ](https://JuliaAI.github.io/MLJ.jl/dev/learning_mlj/)\n",
"section of the\n",
- "[manual](https://alan-turing-institute.github.io/MLJ.jl/dev/)."
+ "[manual](https://JuliaAI.github.io/MLJ.jl/dev/)."
],
"metadata": {}
},
@@ -699,7 +699,7 @@
"List all performance measures with `measures()`. Naturally, MLJ\n",
"includes functions to automate this kind of performance evaluation,\n",
"but this is beyond the scope of this tutorial. See, eg,\n",
- "[here](https://alan-turing-institute.github.io/MLJ.jl/dev/getting_started/#Getting-Started)."
+ "[here](https://JuliaAI.github.io/MLJ.jl/dev/getting_started/#Getting-Started)."
],
"metadata": {}
},
@@ -714,7 +714,7 @@
"cell_type": "markdown",
"source": [
"Some suggestions for next steps are\n",
- "[here](https://alan-turing-institute.github.io/MLJ.jl/dev/getting_started/#Getting-Started)."
+ "[here](https://JuliaAI.github.io/MLJ.jl/dev/getting_started/#Getting-Started)."
],
"metadata": {}
},
@@ -734,11 +734,11 @@
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
- "version": "1.9.0"
+ "version": "1.10.3"
},
"kernelspec": {
- "name": "julia-1.9",
- "display_name": "Julia 1.9.0",
+ "name": "julia-1.10",
+ "display_name": "Julia 1.10.3",
"language": "julia"
}
},
diff --git a/notebooks/99_solutions_to_exercises/notebook.ipynb b/notebooks/99_solutions_to_exercises/notebook.ipynb
index 28f8dda..18a1962 100644
--- a/notebooks/99_solutions_to_exercises/notebook.ipynb
+++ b/notebooks/99_solutions_to_exercises/notebook.ipynb
@@ -142,14 +142,14 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "mu = -0.03877735367596183\n",
- "var = 1.8393888194699048\n"
+ "mu = 0.04613526193186938\n",
+ "var = 1.8731469207202927\n"
]
},
{
"output_type": "execute_result",
"data": {
- "text/plain": "1.8393888194699048"
+ "text/plain": "1.8731469207202927"
},
"metadata": {},
"execution_count": 4
@@ -178,154 +178,111 @@
"output_type": "execute_result",
"data": {
"text/plain": "Figure()",
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdd4BU5aH38XPO9LazfRd2F3bpIoJUARVU0l8T9cYQFdFojESjqa++Jrnm6k28SbwplmtiQaMBLIl61VgSJVZAQClSpMMubO+7s1NPe//AECQIzHJmninfz19h9uzMD7M78+N5nvM8smmaEgAAAKyjiA4AAACQayhYAAAAFqNgAQAAWIyCBQAAYDEKFgAAgMUoWAAAABajYAEAAFiMggUAAGAxChYAAIDFKFgAAAAWo2ABAABYjIIFAABgMQoWAACAxShYAAAAFrOLDvAxd91118aNG2tra0UHAQAA+Eh9ff3pp5/+3e9+98S/JbNGsDZu3FhfXy86BdInFAoZhiE6BXJHNBpNJBKiUyB3qKoaiUREp4B49fX1GzduTOpbMmsEq7a2tra29rbbbhMdBGnS3NxcXl5ut2fWzyGyV3d3t9Pp9Pv9ooMgR0QikUgkUlpaKjoIBBtEM8msESwAAIAcQMECAACwGAULAADAYhQsAAAAi1GwAAAALEbBAgAAsBgFCwAAwGIULAAAAItRsAAAACxGwQIAALAYBQsAAMBiFCwAAACLUbAAAAAsRsECAACwGAULAADAYhQsAAAAi1GwAAAALEbBAgAAsBgFCwAAwGIULAAAAItRsAAAACxGwQIAALCYXXQAADnumU0taXutgYEBu93udocO/rEi4Dqrrjhtrw4Ah1CwAKSQaUo///uutL2cpmmKoijKR2PzM4cXUbAACMEUIQAAgMUoWAAAABajYAEAAFiMggUAAGAxChYAAIDFKFgAAAAWo2ABAABYjIIFAABgMQoWAACAxShYAAAAFqNgAQAAWIyCBQAAYDEKFgAAgMUoWAAAABajYAEAAFiMggUAAGAxChYAAIDFKFgAAAAWo2ABAABYjIIFAABgMQoWAACAxShYAAAAFqNgAQAAWIyCBQAAYDEKFgAAgMXsg/u2PXv27Nq1a/LkyRUVFZ90TTQa/eCDDzo7O8eMGTNmzJjBJgQAAMgySY9gxePxCy64YNSoURdddFFlZeWtt9561MvWrl07bty4s846a+HChWPHjr3wwgsTicRJpwUAAMgCSRes22+//Y033li1alU4HH7kkUfuuOOO559//ohrTNO88sorR44c2dnZ2dPT89prr7388st33323RZkBAAAyWnIFS9f1Rx99dNGiRbNmzVIU5aqrrpozZ84jjzxyxGX79+/fvn37LbfcUlhYKEnSpz71qTPPPHPVqlWWpQYAAMhgyRWshoaGlpaWefPmHXpk3rx5/9qcAoHAn//855kzZx78o2EYHR0dI0aMOMmsAAAAWSG5Re6tra2SJB2+sL2ysrKrq0vTNLv9n09VXFx88cUXS5K0evXqF1988fXXX3e73d/+9rePeDbTNA3DOOIRWZaT/TsAAABklOQKVm9vryRJgUDg0COBQMA0zZ6enrKysn+9fv/+/StWrNixY8eoUaPC4fARX/3pT396++23H/7InDlzTj/99P379yeVCtmrra0tFosd3s6RY0xTSucNLrquy7KsKB+NzYdCId5PcDKi0Wg0Go1EIqKDQLC+vr5gMJjUtyT3wVZSUiJJUigUOvwlZVk+uNbqX82fP3/+/PnhcPjzn//8okWL3nnnncO/+pOf/OQnP/nJ4Y/cdtttkiQNGzYsqVTIXna7vby8nIKVw0xTcjrr0/ZymqYpinKoYAUCAd5PcDIikUgkEiktLRUdBIIl266kZNdgVVZWSv+YKDyotbW1rKzM4XAcftmGDRsefPDBQ3/0+XyXX3756tWrY7FYsvkAAACyTnIFa9iwYXV1dcuXLz/0yPLly+fMmXPEZQ0NDYsWLWpubj70SHNzs8/nc7vdJ5MVAAAgKyRXsGRZvvbaax944IEVK1ZomvbQQw+tXLnyuuuuO/jVBx988JJLLonH4+ecc055efk111yzb9++SCTy4osv3n333QsWLEhBfgAAgIyT9NqXm2++ub6+fu7cuTabTVGU++6777zzzjv4pbVr1z711FOLFy8uLCx88sknr7rqqoNbM8iyfPXVV995550WZwcAAMhISRcsRVHuv//+O++8c8+ePePHj3e5XIe+tHjx4sWLFx/83+eee+7u3bv37t0bCoVGjx5dUFBgWWQAAIDMNsi7twoKCiZPnnycp7bbOeMZAADkoaTPIgQAAMCxUbAAAAAsRsECAACwGAULAADAYhQsAAAAi1GwAAAALEbBAgAAsBgFCwAAwGIULAAAAItRsAAAACxGwQIAALAYBQsAAMBiFCwAAACLUbAAAAAsRsECAACwGAULAADAYhQsAAAAi1GwAAAA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",
+ "image/png": "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NicAmDLHkUx9H32cffTwnEtX9bqB8K61fd++eGVI52cWANBgzc1R/f3955133tatW03TPP/8888444yNGzfec88927Zt+9znPtfb2/vBD35wMl/n7//+7x988EEROe20084///yenp4XXnjhBz/4wc6dO7/0pS85jvOlL32pqf8hANCWRsqj/aK61hnmIQJ4zqlLU72J6I5ssT9XfuS1gTOWc0kIAA3W3ED49a9/fevWrSJyyy23fPjDH3Y/eN1115144onbt2//7Gc/e8kll0Sj0QN/kZ/97GduGvzUpz514403appW/zrnn3/+I4888rWvfe2CCy44/vjjm/mfAgBtaKxfNG7SL4pWKlSskVJ1Mp95/pFzb3n8dRH592e2v2Vhssl17UXXtTiLWAC0uyYGwnK5/N3vfldELr/88noaFJH58+d///vfP+ecc/r6+u66664JLwlvvvlmEenp6fnKV75ST4Mi0t3dfdttty1btsyyrPvvv59ACABT5Iz1i8bYR4+WuvL2NUOjP484sHpu/NFftj6zbUhr4Q8uZsTNBz96cut+PwBQoYkNQn/84x+Hh4dF5Morr3zDL5111lnd3d0i8qtf/WrCr7N69WoROeecc+Lx+Bt+adGiRYcddpiIPP300w2pGQCCY7hkVaxav2gH80XhVZ0RwzR0EalYzkjZUl0OALSbJgbCp556SkQMwzj55Df+dM00zXe9610i8uSTTx74iwwNDeXzeRE54ogj9vkJbkqsVCb1U0YAQF29XzQZN1t56wJMkZaM1Rqa0oWy2lIAoP00sWV048aNIjJ//vy/vtkTkSOPPFJENm/eXK1WDzAjNJFIuNeM+3zUcNeuXevWrRORww8/vFFlA0AwjO8XZb4oPC0VC+8ZKYtIJl9Z2B3j5xcA0EBNDIQ7d+4UkZ6enn3+am9vr4hUq9U9e/bs73NERNO0zs7Off6S4zjXXHNNsVjUdf3qq68+cDHpdHrCgm3bnvBzAN+xx1FdC1rqwP+Pj/WLGlpnWOnmHsdR+btPnl/K9Mn/nlOqsyuim4ZeseyK7eTK1c5Ii/7EOo7Dd07v42UOOEhN/Jaay+VktKXzr8VisfGfNlX9/f0f+chH7rnnHhH55Cc/OeEN4YwZMyb8mtu2bZtGJYDHZbPZkZGRfD6fzWZV14KWGixUy+X99tcN5Gr9oomIUamo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GFFfX5+fn79o0aIxY8b069dv//7969atS36eunjx4lWrVqW7TMg8iURi4sSJX3/9dY8ePV555ZVp06Y1NDRs3bp11apVra2t8+bN+/jjj9NdI3QfhjNILYEQIvL5558vXLjwyJEj7dpzcnIWLVr09ttv33TTTWkpDDLdsWPHHnnkkeQfoxebMmXKZ5991rY9PZAShjNIIYEQ4lJXV/f+++9XVVVVV1efOXOmpKRk2LBhTz31VGlpabpLg8x2/vz51atXf/LJJzU1NTk5OUOHDp03b96TTz5pS3roDIYzSBWBEAAAIFIWlQEAAIiUQAgAABApgRAAACBSAiEAAECkBEIAAIBICYQAAACREggBAAAiJRACAABESiAEAACIlEAIAAAQKYEQAAAgUgIhAABApARCAACASAmEAAAAkRIIAQAAIiUQAgAAREogBAAAiJRACAAAECmBEAAAIFICIQAAQKQEQgAAgEgJhAAAAJESCAEAACIlEAIAAERKIAQAAIiUQAgAABApgRAAACBSAiEAAECkBEIAAIBICYQAAACREggBAAAiJRACAABESiAEAACIlEAIAAAQqf8CBMch9pIj6fQAAAAASUVORK5CYII=",
"image/svg+xml": [
"\n",
- "