diff --git a/.ipynb_checkpoints/Lecture 1-checkpoint.ipynb b/.ipynb_checkpoints/Lecture 1-checkpoint.ipynb index 1ba37f3..3545cbb 100644 --- a/.ipynb_checkpoints/Lecture 1-checkpoint.ipynb +++ b/.ipynb_checkpoints/Lecture 1-checkpoint.ipynb @@ -41,8 +41,8 @@ "source": [ "These lectures present an introduction to three related topics:\n", "\n", - "- _Quantum Phase Space_, where properties of a class of quantum dynamics problems are exploited to develop efficient means of solution using\n", - "- _Stochastic Differential Equations_, the numerical and mathematical framework underpinning the rigorous study of stochastic processes. We will use state of the art numerical solvers now available in\n", + "- *Quantum Phase Space*, where properties of a class of quantum dynamics problems are exploited to develop efficient means of solution using\n", + "- *Stochastic Differential Equations*, the numerical and mathematical framework underpinning the rigorous study of stochastic processes. We will use state of the art numerical solvers now available in\n", "- $\\julia$, a new language for high-performance technical computing. Solves the two-language problem." ] }, @@ -88,9 +88,9 @@ "\n", "References\n", "\n", - "- Chapter 4 of _Stochastic Methods - a Handbook for the Natural and Social Sciences_, C. W. Gardiner, [4-th edition, Springer, Berlin (2009)](https://www.springer.com/gp/book/9783540707127) \n", - "- _An algorithmic introduction to numerical simulation of stochastic differential equations_, D. J. Higham, [SIAM Review, __43__, 525-546 (2001)](https://epubs.siam.org/doi/abs/10.1137/S0036144500378302)\n", - "- _The Quantum World of Ultracold Atoms and Light: Book I: Foundations of Quantum Optics_, C. W. Gardiner and P. Zoller, [Imperial College Press, London (2014)](https://www.worldscientific.com/worldscibooks/10.1142/p941)\n", + "- Chapter 4 of *Stochastic Methods - a Handbook for the Natural and Social Sciences*, C. W. Gardiner, [4-th edition, Springer, Berlin (2009)](https://www.springer.com/gp/book/9783540707127) \n", + "- *An algorithmic introduction to numerical simulation of stochastic differential equations*, D. J. Higham, [SIAM Review, __43__, 525-546 (2001)](https://epubs.siam.org/doi/abs/10.1137/S0036144500378302)\n", + "- *The Quantum World of Ultracold Atoms and Light: Book I: Foundations of Quantum Optics*, C. W. Gardiner and P. Zoller, [Imperial College Press, London (2014)](https://www.worldscientific.com/worldscibooks/10.1142/p941)\n", "\n", "" ] @@ -317,7 +317,7 @@ "# Langevin\n", "A complimentary approach to Einstein's, with more direct microscipic construction of the dynamics: \n", "\n", - "> \"... _infiniment plus simple_\" than Einstein's treatment. [Langevin] \n", + "> \"... *infiniment plus simple*\" than Einstein's treatment. [Langevin] \n", "\n", "Our aim in these lectures is to show how one can combine the two approaches in the context of quantum mechanics to develop a tractable approach for solving many body quantum dynamics; the approach is also well suited to revealing semi-classical approximations and analytical insights. " ] @@ -552,15 +552,15 @@ ], "metadata": { "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.4.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.4" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.0.3" + "version": "1.4.0" } }, "nbformat": 4, diff --git a/.ipynb_checkpoints/Lecture 2-checkpoint.ipynb b/.ipynb_checkpoints/Lecture 2-checkpoint.ipynb index 90a6e30..3ebe462 100644 --- a/.ipynb_checkpoints/Lecture 2-checkpoint.ipynb +++ b/.ipynb_checkpoints/Lecture 2-checkpoint.ipynb @@ -45,10 +45,10 @@ "- Introduction to phase space mappings for bosons\n", "\n", "References\n", - "- _An algorithmic introduction to numerical simulation of stochastic differential equations_, D. J. Higham, [SIAM Review, __43__, 525-546 (2001)](https://epubs.siam.org/doi/abs/10.1137/S0036144500378302)\n", - "- _The Quantum World of Ultracold Atoms and Light: Book I: Foundations of Quantum Optics_, C. W. Gardiner and P. Zoller, [Imperial College Press, London (2014)](https://www.worldscientific.com/worldscibooks/10.1142/p941)\n", - "- _Quantum Noise - A Handbook of Markovian and Non-Markovian Quantum Stochastic Methods with Applications to Quantum Optics_, C. W. Gardiner, P. Zoller, [Springer-Verlag Berlin Heidelberg (2004)](https://www.springer.com/gp/book/9783540223016)\n", - "- _Quantum Optics_, D. F. Walls, G. J. Milburn, [Springer-Verlag Berlin Heidelberg (2008)](https://www.springer.com/gp/book/9783540285731)\n" + "- *An algorithmic introduction to numerical simulation of stochastic differential equations*, D. J. Higham, [SIAM Review, __43__, 525-546 (2001)](https://epubs.siam.org/doi/abs/10.1137/S0036144500378302)\n", + "- *The Quantum World of Ultracold Atoms and Light: Book I: Foundations of Quantum Optics*, C. W. Gardiner and P. Zoller, [Imperial College Press, London (2014)](https://www.worldscientific.com/worldscibooks/10.1142/p941)\n", + "- *Quantum Noise - A Handbook of Markovian and Non-Markovian Quantum Stochastic Methods with Applications to Quantum Optics*, C. W. Gardiner, P. Zoller, [Springer-Verlag Berlin Heidelberg (2004)](https://www.springer.com/gp/book/9783540223016)\n", + "- *Quantum Optics*, D. F. Walls, G. J. Milburn, [Springer-Verlag Berlin Heidelberg (2008)](https://www.springer.com/gp/book/9783540285731)\n" ] }, { @@ -56,7 +56,7 @@ "metadata": {}, "source": [ "# Wiener paths\n", - "We can sample a discretization of the Wiener process, build up from _Wiener increments_:\n", + "We can sample a discretization of the Wiener process, built up from *Wiener increments*:\n", "\n", "Our first aim is to see how to construct such individual paths, $W(t)$. " ] @@ -169,7 +169,7 @@ "$$(I)\\int_{t_0}^t G(t)dW(t)\\equiv \\lim_{n\\to\\infty}\\sum_{j=1}^n G(t_{j-1})\\Delta W_j\\tag{Ito},$$\n", " \n", " \n", - "where the crucial feature of the Ito form is that the noise is _non-anticipating_: The noises $\\Delta W_j$ and the integrand $G(t_{j-1})$ are independent over each small time increment $\\Delta t$. Here we have introduced the notation $(I)$ to denote an Ito integral.\n", + "where the crucial feature of the Ito form is that the noise is *non-anticipating*: The noises $\\Delta W_j$ and the integrand $G(t_{j-1})$ are independent over each small time increment $\\Delta t$. Here we have introduced the notation $(I)$ to denote an Ito integral.\n", "\n", "This definition is precisely the choice of discretization appearing in the discrete Ito SDE. Provided the SDE converges, it may be written as the ___Ito stochastic differential equation___\n", "\n", @@ -282,7 +282,7 @@ "\n", "$$\\langle u(t)^2\\rangle = \\langle u(0)^2\\rangle e^{-2\\gamma t}+\\frac{f}{2\\gamma}.$$\n", "\n", - "The steady state $\\langle u^2\\rangle_s=f/2\\gamma$ depends crucially on the Ito correction. In this case the result we have found using Ito calculus (a particular choice of discretization of the the Langevin equation) agrees with our formal integration of the Langevin equation (last lecture). There is an interesting reason behind this: for _additive noise_, the result is insensitive to the particular discretization choice. Shortly we will discuss an alternative discretization due to Stratonovich [denoted $(S)$], and you should be aware that for _multiplicative noise_ the two SDEs give different results [yes, there is a way to map between $(I)$ and $(S)$]." + "The steady state $\\langle u^2\\rangle_s=f/2\\gamma$ depends crucially on the Ito correction. In this case the result we have found using Ito calculus (a particular choice of discretization of the the Langevin equation) agrees with our formal integration of the Langevin equation (last lecture). There is an interesting reason behind this: for *additive noise*, the result is insensitive to the particular discretization choice. Shortly we will discuss an alternative discretization due to Stratonovich [denoted $(S)$], and you should be aware that for _multiplicative noise_ the two SDEs give different results [yes, there is a way to map between $(I)$ and $(S)$]." ] }, { @@ -400,7 +400,7 @@ "\n", "$$\\mathbb{1}=\\frac{1}{\\pi}\\int d^2\\alpha \\;|\\alpha\\rangle\\langle\\alpha|$$\n", "\n", - "__Exercise__ If you haven't done this before, prove it by using the number state expansion and evaluating the integral $d^2\\alpha\\equiv d\\alpha_rd\\alpha_i$.\n", + "__Exercise:__ If you haven't done this before, prove it by using the number state expansion and evaluating the integral $d^2\\alpha\\equiv d\\alpha_rd\\alpha_i$.\n", "\n", "Note there is no right eigestate of $a^\\dagger$, however, the action of $a^\\dagger$ on $|\\alpha\\rangle$ can be written in terms of a _differential operator_. \n", "\n", @@ -523,15 +523,15 @@ ], "metadata": { "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.4.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.4" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.0.3" + "version": "1.4.0" } }, "nbformat": 4, diff --git a/.ipynb_checkpoints/Workshop1-checkpoint.ipynb b/.ipynb_checkpoints/Workshop1-checkpoint.ipynb index beb3eb7..676980c 100644 --- a/.ipynb_checkpoints/Workshop1-checkpoint.ipynb +++ b/.ipynb_checkpoints/Workshop1-checkpoint.ipynb @@ -65,7 +65,7 @@ "\n", "- [julialang.org](https://julialang.org)\n", "- [juliaobserver](https://juliaobserver.com)\n", - "- _Julia: A Fresh Approach to Numerical Computing_, Jeff Bezanson, Alan Edelman, Stefan Karpinski and Viral B. Shah [SIAM Review, __59__, 65–98 (2017)](http://julialang.org/publications/julia-fresh-approach-BEKS.pdf)\n", + "- *Julia: A Fresh Approach to Numerical Computing*, Jeff Bezanson, Alan Edelman, Stefan Karpinski and Viral B. Shah [SIAM Review, __59__, 65–98 (2017)](http://julialang.org/publications/julia-fresh-approach-BEKS.pdf)\n", "- [Fun and sometimes useful julia packages](http://amoqt.otago.ac.nz/resources/juliajam)" ] }, @@ -162,16 +162,21 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "How to access Pkg mode in the REPL\n", + "To access Pkg mode in the REPL, type\n", "```julia\n", "julia> ]\n", "```\n", + "which will give you the prompt\n", "\n", + "```julia\n", + "(@v1.4) pkg>\n", + "```\n", "To add a package\n", "\n", "```julia\n", - "(1.0) pkg> add IJulia \n", - "```" + "(@v1.4) pkg> add IJulia \n", + "```\n", + "Then type backspace to go back to REPL mode. " ] }, { @@ -183,13 +188,171 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[32m\u001b[1mStatus\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + " \u001b[90m [537997a7]\u001b[39m\u001b[37m AbstractPlotting v0.10.1\u001b[39m\n", + " \u001b[90m [28f2ccd6]\u001b[39m\u001b[37m ApproxFun v0.11.11\u001b[39m\n", + " \u001b[90m [c52e3926]\u001b[39m\u001b[37m Atom v0.12.10\u001b[39m\n", + " \u001b[90m [6e4b80f9]\u001b[39m\u001b[37m BenchmarkTools v0.5.0\u001b[39m\n", + " \u001b[90m [159f3aea]\u001b[39m\u001b[37m Cairo v1.0.3\u001b[39m\n", + " \u001b[90m [13f3f980]\u001b[39m\u001b[37m CairoMakie v0.2.0\u001b[39m\n", + " \u001b[90m [35d6a980]\u001b[39m\u001b[37m ColorSchemes v3.7.0\u001b[39m\n", + " \u001b[90m [5ae59095]\u001b[39m\u001b[37m Colors v0.11.2\u001b[39m\n", + " \u001b[90m [861a8166]\u001b[39m\u001b[37m Combinatorics v1.0.0\u001b[39m\n", + " \u001b[90m [a81c6b42]\u001b[39m\u001b[37m Compose v0.8.2\u001b[39m\n", + " \u001b[90m [8f4d0f93]\u001b[39m\u001b[37m Conda v1.4.1\u001b[39m\n", + " \u001b[90m [e034abe6]\u001b[39m\u001b[37m Controlz v0.1.3\u001b[39m\n", + " \u001b[90m [a93c6f00]\u001b[39m\u001b[37m DataFrames v0.20.2\u001b[39m\n", + " \u001b[90m [0c46a032]\u001b[39m\u001b[37m DifferentialEquations v6.13.0\u001b[39m\n", + " \u001b[90m [31c24e10]\u001b[39m\u001b[37m Distributions v0.23.2\u001b[39m\n", + " \u001b[90m [e30172f5]\u001b[39m\u001b[37m Documenter v0.24.9\u001b[39m\n", + " \u001b[90m [634d3b9d]\u001b[39m\u001b[37m DrWatson v1.10.2\u001b[39m\n", + " \u001b[90m [7a1cc6ca]\u001b[39m\u001b[37m FFTW v1.2.0\u001b[39m\n", + " \u001b[90m [442a2c76]\u001b[39m\u001b[37m FastGaussQuadrature v0.4.2\u001b[39m\n", + " \u001b[90m [057dd010]\u001b[39m\u001b[37m FastTransforms v0.8.2\u001b[39m\n", + " \u001b[90m [5789e2e9]\u001b[39m\u001b[37m FileIO v1.2.4\u001b[39m\n", + " \u001b[90m [186bb1d3]\u001b[39m\u001b[37m Fontconfig v0.4.0\u001b[39m\n", + " \u001b[90m [f013a474]\u001b[39m\u001b[37m FourierGPE v0.1.0 #master (https://github.com/AshtonSBradley/FourierGPE.jl.git)\u001b[39m\n", + " \u001b[90m [92c85e6c]\u001b[39m\u001b[37m GSL v0.6.0\u001b[39m\n", + " \u001b[90m [19dc6840]\u001b[39m\u001b[37m HCubature v1.4.0\u001b[39m\n", + " \u001b[90m [7073ff75]\u001b[39m\u001b[37m IJulia v1.21.2\u001b[39m\n", + " \u001b[90m [6218d12a]\u001b[39m\u001b[37m ImageMagick v1.1.4\u001b[39m\n", + " \u001b[90m [c601a237]\u001b[39m\u001b[37m Interact v0.10.3\u001b[39m\n", + " \u001b[90m [a98d9a8b]\u001b[39m\u001b[37m Interpolations v0.12.9\u001b[39m\n", + " \u001b[90m [8197267c]\u001b[39m\u001b[37m IntervalSets v0.3.2\u001b[39m\n", + " \u001b[90m [c8e1da08]\u001b[39m\u001b[37m IterTools v1.3.0\u001b[39m\n", + " \u001b[90m [033835bb]\u001b[39m\u001b[37m JLD2 v0.1.12\u001b[39m\n", + " \u001b[90m [e5e0dc1b]\u001b[39m\u001b[37m Juno v0.8.1\u001b[39m\n", + " \u001b[90m [5ab0869b]\u001b[39m\u001b[37m KernelDensity v0.5.1\u001b[39m\n", + " \u001b[90m [b964fa9f]\u001b[39m\u001b[37m LaTeXStrings v1.1.0\u001b[39m\n", + " \u001b[90m [23fbe1c1]\u001b[39m\u001b[37m Latexify v0.13.0\u001b[39m\n", + " \u001b[90m [50d2b5c4]\u001b[39m\u001b[37m Lazy v0.15.0\u001b[39m\n", + " \u001b[90m [b13ce0c6]\u001b[39m\u001b[37m LibSndFile v2.3.0\u001b[39m\n", + " \u001b[90m [33e6dc65]\u001b[39m\u001b[37m MKL v0.2.0 #master (https://github.com/JuliaComputing/MKL.jl)\u001b[39m\n", + " \u001b[90m [ee78f7c6]\u001b[39m\u001b[37m Makie v0.10.0\u001b[39m\n", + " \u001b[90m [5a521ce4]\u001b[39m\u001b[37m MakieLayout v0.6.0\u001b[39m\n", + " \u001b[90m [eff96d63]\u001b[39m\u001b[37m Measurements v2.1.1\u001b[39m\n", + " \u001b[90m [442fdcdd]\u001b[39m\u001b[37m Measures v0.3.1\u001b[39m\n", + " \u001b[90m [a3a9e032]\u001b[39m\u001b[37m NIfTI v0.4.0\u001b[39m\n", + " \u001b[90m [76087f3c]\u001b[39m\u001b[37m NLopt v0.5.1\u001b[39m\n", + " \u001b[90m [1dea7af3]\u001b[39m\u001b[37m OrdinaryDiffEq v5.34.1\u001b[39m\n", + " \u001b[90m [3b7a836e]\u001b[39m\u001b[37m PGFPlots v3.2.1\u001b[39m\n", + " \u001b[90m [8314cec4]\u001b[39m\u001b[37m PGFPlotsX v1.2.6\u001b[39m\n", + " \u001b[90m [dd1b0cdc]\u001b[39m\u001b[37m PGPE v0.1.0 #master (https://github.com/AshtonSBradley/PGPE.jl.git)\u001b[39m\n", + " \u001b[90m [5432bcbf]\u001b[39m\u001b[37m PaddedViews v0.5.4\u001b[39m\n", + " \u001b[90m [65888b18]\u001b[39m\u001b[37m ParameterizedFunctions v5.3.0\u001b[39m\n", + " \u001b[90m [d96e819e]\u001b[39m\u001b[37m Parameters v0.12.0\u001b[39m\n", + " \u001b[90m [0e21426a]\u001b[39m\u001b[37m PhaseSpaceTools v0.1.0 #master (https://github.com/AshtonSBradley/PhaseSpaceTools.jl.git)\u001b[39m\n", + " \u001b[90m [5ad8b20f]\u001b[39m\u001b[37m PhysicalConstants v0.2.0\u001b[39m\n", + " \u001b[90m [91a5bcdd]\u001b[39m\u001b[37m Plots v0.29.9\u001b[39m\n", + " \u001b[90m [27ebfcd6]\u001b[39m\u001b[37m Primes v0.4.0\u001b[39m\n", + " \u001b[90m [438e738f]\u001b[39m\u001b[37m PyCall v1.91.4\u001b[39m\n", + " \u001b[90m [d330b81b]\u001b[39m\u001b[37m PyPlot v2.9.0\u001b[39m\n", + " \u001b[90m [1fd47b50]\u001b[39m\u001b[37m QuadGK v2.3.1\u001b[39m\n", + " \u001b[90m [6e0679c1]\u001b[39m\u001b[37m QuantumOptics v0.7.1\u001b[39m\n", + " \u001b[90m [71555da5]\u001b[39m\u001b[37m Reel v1.3.0\u001b[39m\n", + " \u001b[90m [295af30f]\u001b[39m\u001b[37m Revise v2.6.1\u001b[39m\n", + " \u001b[90m [92719e2c]\u001b[39m\u001b[37m SPGPE v0.1.0 #master (https://github.com/AshtonSBradley/SPGPE.jl.git)\u001b[39m\n", + " \u001b[90m [276daf66]\u001b[39m\u001b[37m SpecialFunctions v0.10.0\u001b[39m\n", + " \u001b[90m [2913bbd2]\u001b[39m\u001b[37m StatsBase v0.33.0\u001b[39m\n", + " \u001b[90m [24249f21]\u001b[39m\u001b[37m SymPy v1.0.7\u001b[39m\n", + " \u001b[90m [37f6aa50]\u001b[39m\u001b[37m TikzPictures v3.1.0\u001b[39m\n", + " \u001b[90m [28d57a85]\u001b[39m\u001b[37m Transducers v0.4.25\u001b[39m\n", + " \u001b[90m [1986cc42]\u001b[39m\u001b[37m Unitful v0.17.0\u001b[39m\n", + " \u001b[90m [b688e990]\u001b[39m\u001b[37m VortexDistributions v0.0.0 #master (https://github.com/AshtonSBradley/VortexDistributions.jl.git)\u001b[39m\n", + " \u001b[90m [8149f6b0]\u001b[39m\u001b[37m WAV v1.0.3\u001b[39m\n", + " \u001b[90m [44d3d7a6]\u001b[39m\u001b[37m Weave v0.9.4\u001b[39m\n", + " \u001b[90m [0f1e0344]\u001b[39m\u001b[37m WebIO v0.8.11\u001b[39m\n", + " \u001b[90m [c4c688b2]\u001b[39m\u001b[37m jlpkg v1.1.3\u001b[39m\n", + " \u001b[90m [37e2e46d]\u001b[39m\u001b[37m LinearAlgebra \u001b[39m\n", + " \u001b[90m [de0858da]\u001b[39m\u001b[37m Printf \u001b[39m\n", + " \u001b[90m [2f01184e]\u001b[39m\u001b[37m SparseArrays \u001b[39m\n", + " \u001b[90m [10745b16]\u001b[39m\u001b[37m Statistics \u001b[39m\n" + ] + } + ], "source": [ - "#how to access Pkg commands in jupyter\n", + "#how to execute Pkg commands in jupyter\n", "using Pkg\n", - "pkg\"status\" " + "pkg\"status\"" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n" + ] + } + ], + "source": [ + "# let's add all packages for these workshops\n", + "pkgs = [:Plots,:DifferentialEquations,:GSL, :SpecialFunctions,\n", + " :Statistics, :Plots, :LaTeXStrings, :Revise,:SymPy,:BenchmarkTools]\n", + "\n", + "for pkg in pkgs\n", + " Pkg.add(String(pkg))\n", + "end" ] }, { @@ -218,7 +381,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "You should now have access to the lectures as jupyter notebooks (no? let me know)." + "You should now have access to the lectures as jupyter notebooks." ] }, { @@ -231,7 +394,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 35, "metadata": {}, "outputs": [ { @@ -240,50 +403,28 @@ "Plots.GRBackend()" ] }, - "execution_count": 5, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "using Plots\n", - "# set defaults for GR backend\n", - "gr(titlefontsize=12,grid=false,legend=false,size=(600,200))" + "gr(titlefontsize=12,grid=false,legend=false,size=(600,200)) # set defaults for GR backend" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "linspace (generic function with 1 method)" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# let's add one useful function (more on this later)\n", - "linspace(a,b,n) = LinRange(a,b,n) |> collect" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, "outputs": [], "source": [ - "x = linspace(0,10,500);" + "x = LinRange(0,10,500);" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -292,166 +433,161 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.0\n", + "\n", + "0.0\n", "\n", - "\n", - "2.5\n", + "\n", + "2.5\n", "\n", - "\n", - "5.0\n", + "\n", + "5.0\n", "\n", - "\n", - "7.5\n", + "\n", + "7.5\n", "\n", - "\n", - "10.0\n", + "\n", + "10.0\n", "\n", - "\n", - "-1.0\n", + "\n", + "-1.0\n", "\n", - "\n", - "-0.5\n", + "\n", + "-0.5\n", "\n", - "\n", - "0.0\n", + "\n", + "0.0\n", "\n", - "\n", - "0.5\n", + "\n", + "0.5\n", "\n", - "\n", - "1.0\n", + "\n", + "1.0\n", "\n", - "\n", - "x\n", + "\n", + "x\n", "\n", - "\n", - "sin(x)\n", + "\n", + "sin(x)\n", "\n", - "\n", "\n" ] }, - "execution_count": 4, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "#first plot will take a few seconds\n", + "# first plot will take a few seconds\n", "plot(x,sin.(x)) \n", "xlabel!(\"x\");ylabel!(\"sin(x)\")" ] @@ -461,12 +597,12 @@ "metadata": {}, "source": [ "- Dot-calls: (large) extension of Matlab's local array operation syntax.\n", - "- `xlabel!()`: `!` at the end of the function name is a julia convention that declares: \"modifies the input\", also referred to as a _mutating function_; here the input is the current plot which doesn't neet to be declared. " + "- `xlabel!()`: `!` at the end of the function name is a julia convention that declares: \"modifies the input\", also referred to as a ___mutating function___; here the input is the current plot which doesn't neet to be declared. " ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -475,330 +611,322 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.0\n", + "\n", + "0.0\n", "\n", - "\n", - "2.5\n", + "\n", + "2.5\n", "\n", - "\n", - "5.0\n", + "\n", + "5.0\n", "\n", - "\n", - "7.5\n", + "\n", + "7.5\n", "\n", - "\n", - "10.0\n", + "\n", + "10.0\n", "\n", - "\n", - "-1.0\n", + "\n", + "-1.0\n", "\n", - "\n", - "-0.5\n", + "\n", + "-0.5\n", "\n", - "\n", - "0.0\n", + "\n", + "0.0\n", "\n", - "\n", - "0.5\n", + "\n", + "0.5\n", "\n", - "\n", - "1.0\n", + "\n", + "1.0\n", "\n", - "\n", - "x\n", + "\n", + "x\n", "\n", - "\n", - "sin(x)\n", + "\n", + "sin(x)\n", "\n", - "\n", - "\n", - "\n", + "\n", "\n" ] }, - "execution_count": 6, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "plot!(x,cos.(x).^2,fillrange=[zero(x) cos.(x).^2],\n", - " c=:blue,alpha=0.3)\n", - "\n", - "# line continuation: just break off, mid-command" + "plot!(x,cos.(x).^2,c=:blue,fill=(0,.3,:red))" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -807,15 +935,25 @@ "text": [ "2\n" ] + }, + { + "data": { + "text/plain": [ + "-2.185039863261519" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "z=2; println(z) #more than one command on same line" + "z=2; println(z);tan(z) #more than one command on same line" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -841,7 +979,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -850,7 +988,7 @@ "text": [ "from julia you can also easily use libraries from \n", " Python, R, C/Fortran, C++, and Java. \n", - " Did I mention that I like π = 3.1415926535897... ?\n" + " Did I mention that I like π ?\n" ] } ], @@ -869,18 +1007,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 14, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "┌ Info: Recompiling stale cache file /Users/abradley/.julia/compiled/v1.0/GSL/cuZHp.ji for GSL [92c85e6c-cbff-5e0c-80f7-495c94daaecd]\n", - "└ @ Base loading.jl:1190\n" - ] - } - ], + "outputs": [], "source": [ "#load some wrapper functions that call GSL\n", "using GSL" @@ -888,7 +1017,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -897,7 +1026,7 @@ "0.9776262465382961" ] }, - "execution_count": 11, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -915,25 +1044,16 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 16, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "┌ Info: Recompiling stale cache file /Users/abradley/.julia/compiled/v1.0/SpecialFunctions/78gOt.ji for SpecialFunctions [276daf66-3868-5448-9aa4-cd146d93841b]\n", - "└ @ Base loading.jl:1190\n" - ] - } - ], + "outputs": [], "source": [ "using SpecialFunctions" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -942,7 +1062,7 @@ "1.2020569031595951" ] }, - "execution_count": 13, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -953,7 +1073,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -962,7 +1082,7 @@ "0.7980219851462758 - 0.11374430805293854im" ] }, - "execution_count": 14, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -973,7 +1093,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -982,7 +1102,7 @@ "Complex{Float64}" ] }, - "execution_count": 15, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -1000,15 +1120,15 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "┌ Info: Recompiling stale cache file /Users/abradley/.julia/compiled/v1.0/PyCall/GkzkC.ji for PyCall [438e738f-606a-5dbb-bf0a-cddfbfd45ab0]\n", - "└ @ Base loading.jl:1190\n" + "┌ Info: Precompiling PyCall [438e738f-606a-5dbb-bf0a-cddfbfd45ab0]\n", + "└ @ Base loading.jl:1260\n" ] } ], @@ -1018,7 +1138,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -1027,14 +1147,14 @@ "0.0" ] }, - "execution_count": 17, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "@pyimport math\n", - "math.sin(math.pi / 4) - sin(pi / 4) # returns 0.0" + "pymath = pyimport(\"math\")\n", + "pymath.sin(pymath.pi / 4) - sin(pi / 4) # returns 0.0" ] }, { @@ -1080,7 +1200,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -1089,7 +1209,7 @@ "35.6" ] }, - "execution_count": 18, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -1100,7 +1220,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -1109,7 +1229,7 @@ "25" ] }, - "execution_count": 19, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -1120,7 +1240,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -1129,7 +1249,7 @@ "1.0545718e-34" ] }, - "execution_count": 20, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -1140,7 +1260,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -1149,7 +1269,7 @@ "3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405131996" ] }, - "execution_count": 21, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -2095,7 +2215,7 @@ "source": [ "# a for loop with string inerpolation\n", "for j in n\n", - " println(\"sum up to j: j = $j; julia gives $(sum(n[1:j])); Euler gives $(sumton(j))\")\n", + " println(\"sum up to j: j = $j; julia gives $(sum(n[1:j])); Gauss gives $(sumton(j))\")\n", "end" ] }, @@ -2116,7 +2236,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 28, "metadata": {}, "outputs": [ { @@ -2125,7 +2245,7 @@ "geometric (generic function with 1 method)" ] }, - "execution_count": 53, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -2160,7 +2280,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 29, "metadata": {}, "outputs": [ { @@ -2169,7 +2289,7 @@ "geomExact (generic function with 1 method)" ] }, - "execution_count": 54, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -2196,14 +2316,14 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 0.011034 seconds (14.05 k allocations: 748.988 KiB)\n" + " 0.000017 seconds\n" ] }, { @@ -2212,7 +2332,7 @@ "1.1111111111111112" ] }, - "execution_count": 55, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -2230,14 +2350,14 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 0.000033 seconds (5 allocations: 176 bytes)\n" + " 0.000019 seconds\n" ] }, { @@ -2246,7 +2366,7 @@ "1.1111111111111112" ] }, - "execution_count": 56, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -2257,25 +2377,17 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 32, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - " 21.047 μs (0 allocations: 0 bytes)\n" + "ename": "LoadError", + "evalue": "UndefVarError: @btime not defined", + "output_type": "error", + "traceback": [ + "UndefVarError: @btime not defined", + "" ] - }, - { - "data": { - "text/plain": [ - "1.1111111111111112" - ] - }, - "execution_count": 57, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ @@ -2425,364 +2537,11 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 38, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "339 methods for generic function *:" - ], - "text/plain": [ - "# 339 methods for generic function \"*\":\n", - "[1] *(x::Bool, z::Complex{Bool}) in Base at complex.jl:281\n", - "[2] *(x::Bool, y::Bool) in Base at bool.jl:106\n", - "[3] *(x::Bool, y::T) where T<:AbstractFloat in Base at bool.jl:118\n", - "[4] *(x::Bool, z::Complex) in Base at complex.jl:288\n", - "[5] *(x::Bool, y::AbstractIrrational) in Base at irrationals.jl:135\n", - "[6] *(a::Float16, b::Float16) in Base at float.jl:392\n", - "[7] *(x::Float32, y::Float32) in Base at float.jl:398\n", - "[8] *(x::Float64, y::Float64) in Base at float.jl:399\n", - "[9] *(z::Complex{Bool}, x::Bool) in Base at complex.jl:282\n", - "[10] *(z::Complex{Bool}, x::Real) in Base at complex.jl:300\n", - "[11] *(::Missing, ::Missing) in Base at missing.jl:92\n", - "[12] *(::Missing, ::Number) in Base at missing.jl:93\n", - "[13] *(d::Missing, x::AbstractString) in Base at missing.jl:139\n", - "[14] *(this::Base.Grisu.Float, other::Base.Grisu.Float) in Base.Grisu at grisu/float.jl:140\n", - "[15] *(c::BigInt, x::BigFloat) in Base.MPFR at mpfr.jl:353\n", - "[16] *(a::BigInt, b::BigInt, c::BigInt, d::BigInt, e::BigInt) in Base.GMP at gmp.jl:443\n", - "[17] *(a::BigInt, b::BigInt, c::BigInt, d::BigInt) in Base.GMP at gmp.jl:442\n", - "[18] *(a::BigInt, b::BigInt, c::BigInt) in Base.GMP at gmp.jl:441\n", - "[19] *(x::BigInt, y::BigInt) in Base.GMP at gmp.jl:412\n", - "[20] *(x::BigInt, c::Union{UInt16, UInt32, UInt64, UInt8}) in Base.GMP at gmp.jl:460\n", - "[21] *(x::BigInt, c::Union{Int16, Int32, Int64, Int8}) in Base.GMP at gmp.jl:462\n", - "[22] *(a::BigFloat, b::BigFloat, c::BigFloat, d::BigFloat, e::BigFloat) in Base.MPFR at mpfr.jl:503\n", - "[23] *(a::BigFloat, b::BigFloat, c::BigFloat, d::BigFloat) in Base.MPFR at mpfr.jl:496\n", - "[24] *(a::BigFloat, b::BigFloat, c::BigFloat) in Base.MPFR at mpfr.jl:490\n", - "[25] *(x::BigFloat, c::BigInt) in Base.MPFR at mpfr.jl:349\n", - "[26] *(x::BigFloat, y::BigFloat) in Base.MPFR at mpfr.jl:318\n", - "[27] *(x::BigFloat, c::Union{UInt16, UInt32, UInt64, UInt8}) in Base.MPFR at mpfr.jl:325\n", - "[28] *(x::BigFloat, c::Union{Int16, Int32, Int64, Int8}) in Base.MPFR at mpfr.jl:333\n", - "[29] *(x::BigFloat, c::Union{Float16, Float32, Float64}) in Base.MPFR at mpfr.jl:341\n", - "[30] *(B::BitArray{2}, J::LinearAlgebra.UniformScaling) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/uniformscaling.jl:145\n", - "[31] *(y::AbstractFloat, x::Bool) in Base at bool.jl:120\n", - "[32] *(x::T, y::T) where T<:Union{Int128, UInt128} in Base at int.jl:788\n", - "[33] *(x::T, y::T) where T<:Union{Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8} in Base at int.jl:54\n", - "[34] *(c::Union{UInt16, UInt32, UInt64, UInt8}, x::BigInt) in Base.GMP at gmp.jl:461\n", - "[35] *(c::Union{Int16, Int32, Int64, Int8}, x::BigInt) in Base.GMP at gmp.jl:463\n", - "[36] *(a::Integer, b::Integer) in Base at int.jl:800\n", - "[37] *(x::Real, r::StepRangeLen{#s57,#s56,S} where S where #s56<:Base.TwicePrecision where #s57<:Real) in Base at twiceprecision.jl:479\n", - "[38] *(z::Complex, w::Complex) in Base at complex.jl:268\n", - "[39] *(z::Complex, x::Bool) in Base at complex.jl:289\n", - "[40] *(x::Real, z::Complex{Bool}) in Base at complex.jl:299\n", - "[41] *(x::Real, z::Complex) in Base at complex.jl:311\n", - "[42] *(z::Complex, x::Real) in Base at complex.jl:312\n", - "[43] *(x::Rational, y::Rational) in Base at rational.jl:259\n", - "[44] *(a::Integer, index::CartesianIndex{N}) where N in Base.IteratorsMD at multidimensional.jl:115\n", - "[45] *(c::Union{UInt16, UInt32, UInt64, UInt8}, x::BigFloat) in Base.MPFR at mpfr.jl:329\n", - "[46] *(c::Union{Int16, Int32, Int64, Int8}, x::BigFloat) in Base.MPFR at mpfr.jl:337\n", - "[47] *(c::Union{Float16, Float32, Float64}, x::BigFloat) in Base.MPFR at mpfr.jl:345\n", - "[48] *(x::AbstractIrrational, y::AbstractIrrational) in Base at irrationals.jl:133\n", - "[49] *(y::Real, x::Dates.Period) in Dates at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/Dates/src/periods.jl:93\n", - "[50] *(x::Number) in Base at operators.jl:478\n", - "[51] *(x::T, y::T) where T<:Number in Base at promotion.jl:412\n", - "[52] *(x::Number, y::Number) in Base at promotion.jl:314\n", - "[53] *(x::Base.TwicePrecision{#s57} where #s57<:Union{Float16, Float32, Float64}, v::Integer) in Base at twiceprecision.jl:286\n", - "[54] *(x::Base.TwicePrecision, v::Number) in Base at twiceprecision.jl:282\n", - "[55] *(v::Number, x::Base.TwicePrecision) in Base at twiceprecision.jl:291\n", - "[56] *(x::Base.TwicePrecision{T}, y::Base.TwicePrecision{T}) where T in Base at twiceprecision.jl:294\n", - "[57] *(x::Base.TwicePrecision, y::Base.TwicePrecision) in Base at twiceprecision.jl:298\n", - "[58] *(r::StepRangeLen{#s57,#s56,S} where S where #s56<:Base.TwicePrecision where #s57<:Real, x::Real) in Base at twiceprecision.jl:481\n", - "[59] *(X::Union{DenseArray{P,N}, ReinterpretArray{P,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{P,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{P,N,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where N, y::Real) where P<:Dates.Period in Dates at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/Dates/src/periods.jl:98\n", - "[60] *(u::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, v::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:215\n", - "[61] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1967\n", - "[62] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:862\n", - "[63] *(v::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1954\n", - "[64] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:858\n", - "[65] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(AbstractArray{T,1} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2484\n", - "[66] *(adjQ::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractQ where #s576, adjB::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:631\n", - "[67] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s576, adjQ::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractQ where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:734\n", - "[68] *(u::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractQ where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:722\n", - "[69] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.LQPackedQ where #s576, adjB::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:183\n", - "[70] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s576, adjQ::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.LQPackedQ where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:220\n", - "[71] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, adjB::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:433\n", - "[72] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, adjB::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:434\n", - "[73] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, adjB::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:435\n", - "[74] *(adjD::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.Diagonal where #s576, adjA::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:293\n", - "[75] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:839\n", - "[76] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, adjD::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.Diagonal where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:292\n", - "[77] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(AbstractArray{T,1} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:848\n", - "[78] *(D::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.Diagonal where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.Diagonal where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:249\n", - "[79] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{Tv,Ti} where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:SparseArrays.SparseMatrixCSC{Tv,Ti} where #s574) where {Tv, Ti} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:146\n", - "[80] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TvA,TiA} where #s576, adjB::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:SparseArrays.SparseMatrixCSC{TvB,TiB} where #s574) where {TvA, TiA, TvB, TiB} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:19\n", - "[81] *(u::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, v::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:208\n", - "[82] *(u::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, v::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:219\n", - "[83] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:Union{DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where #s576, x::Union{DenseArray{S,1}, ReinterpretArray{S,1,S1,A} where S1 where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{S,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{S,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {T<:Union{Complex{Float32}, Complex{Float64}, Float32, Float64}, S} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:98\n", - "[84] *(xformA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.UpperTriangular where #s576, B::LinearAlgebra.LowerTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1647\n", - "[85] *(xformA::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.UnitUpperTriangular where #s574, B::LinearAlgebra.LowerTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1656\n", - "[86] *(xformA::LinearAlgebra.Adjoint{#s572,#s571} where #s571<:LinearAlgebra.LowerTriangular where #s572, B::LinearAlgebra.UpperTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1665\n", - "[87] *(xformA::LinearAlgebra.Adjoint{#s570,#s569} where #s569<:LinearAlgebra.UnitLowerTriangular where #s570, B::LinearAlgebra.UpperTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1674\n", - "[88] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1765\n", - "[89] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(AbstractArray{T,2} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1968\n", - "[90] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2481\n", - "[91] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:859\n", - "[92] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(AbstractArray{T,2} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2485\n", - "[93] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(AbstractArray{T,1} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2486\n", - "[94] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:213\n", - "[95] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractRotation where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:392\n", - "[96] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1805\n", - "[97] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:440\n", - "[98] *(v::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, A::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1952\n", - "[99] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:863\n", - "[100] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2491\n", - "[101] *(adjQ::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractQ where #s576, B::Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:617\n", - "[102] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s576, Q::LinearAlgebra.AbstractQ) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:727\n", - "[103] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.LQPackedQ where #s576, B::Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:163\n", - "[104] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s576, Q::LinearAlgebra.LQPackedQ) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:251\n", - "[105] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:836\n", - "[106] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(AbstractArray{T,2} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:849\n", - "[107] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(AbstractArray{T,1} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:850\n", - "[108] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(AbstractArray{T,2} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:851\n", - "[109] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:289\n", - "[110] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractRotation where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:394\n", - "[111] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:425\n", - "[112] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:841\n", - "[113] *(D::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.Diagonal where #s576, B::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:212\n", - "[114] *(x::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:508\n", - "[115] *(x::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, D::LinearAlgebra.Diagonal, y::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:509\n", - "[116] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(LinearAlgebra.Bidiagonal{T,V} where V<:AbstractArray{T,1}) where #s576, B::AbstractArray{T,1}) where T in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/bidiag.jl:496\n", - "[117] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractRotation where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:387\n", - "[118] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC where #s576, x::SparseArrays.AbstractSparseArray{Tv,Ti,1} where Ti where Tv) in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/sparsevector.jl:1676\n", - "[119] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{Tv,Ti} where #s576, B::SparseArrays.SparseMatrixCSC{Tv,Ti}) where {Tv, Ti} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:145\n", - "[120] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TvA,TiA} where #s576, B::SparseArrays.SparseMatrixCSC{TvB,TiB}) where {TvA, TiA, TvB, TiB} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:15\n", - "[121] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TA,S} where #s576, x::Union{DenseArray{Tx,1}, ReinterpretArray{Tx,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{Tx,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{Tx,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {TA, S, Tx} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:77\n", - "[122] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TA,S} where #s576, B::Union{DenseArray{Tx,2}, ReinterpretArray{Tx,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{Tx,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{Tx,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {TA, S, Tx} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:79\n", - "[123] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SuiteSparse.CHOLMOD.Sparse where #s576, B::SuiteSparse.CHOLMOD.Sparse) in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1332\n", - "[124] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SuiteSparse.CHOLMOD.Sparse where #s576, B::SuiteSparse.CHOLMOD.Dense) in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1341\n", - "[125] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SuiteSparse.CHOLMOD.Sparse where #s576, B::Union{Array{T,1}, Array{T,2}} where T) in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1343\n", - "[126] *(u::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, v::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:197\n", - "[127] *(u::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T), v::AbstractArray{T,1}) where T<:Real in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:198\n", - "[128] *(u::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, v::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:217\n", - "[129] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1970\n", - "[130] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:865\n", - "[131] *(v::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1955\n", - "[132] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:861\n", - "[133] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(AbstractArray{T,1} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2487\n", - "[134] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, transB::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:430\n", - "[135] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, transB::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:431\n", - "[136] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, transB::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:432\n", - "[137] *(transD::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.Diagonal where #s576, transA::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:291\n", - "[138] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:845\n", - "[139] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, transD::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.Diagonal where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:290\n", - "[140] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(AbstractArray{T,1} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:854\n", - "[141] *(D::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.Diagonal where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.Diagonal where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:251\n", - "[142] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{Tv,Ti} where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:SparseArrays.SparseMatrixCSC{Tv,Ti} where #s574) where {Tv, Ti} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:147\n", - "[143] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TvA,TiA} where #s576, transB::LinearAlgebra.Transpose{#s574,#s573} where #s573<:SparseArrays.SparseMatrixCSC{TvB,TiB} where #s574) where {TvA, TiA, TvB, TiB} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:17\n", - "[144] *(u::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, v::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:209\n", - "[145] *(u::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, v::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:213\n", - "[146] *(transx::LinearAlgebra.Transpose{#s576,#s575} where #s575<:Union{DenseArray{T,1}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where #s576, y::Union{DenseArray{T,1}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where T<:Union{Complex{Float32}, Complex{Float64}} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:39\n", - "[147] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:Union{DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where #s576, x::Union{DenseArray{S,1}, ReinterpretArray{S,1,S1,A} where S1 where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{S,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{S,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {T<:Union{Complex{Float32}, Complex{Float64}, Float32, Float64}, S} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:79\n", - "[148] *(xformA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.UpperTriangular where #s576, B::LinearAlgebra.LowerTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1647\n", - "[149] *(xformA::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.UnitUpperTriangular where #s574, B::LinearAlgebra.LowerTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1656\n", - "[150] *(xformA::LinearAlgebra.Transpose{#s572,#s571} where #s571<:LinearAlgebra.LowerTriangular where #s572, B::LinearAlgebra.UpperTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1665\n", - "[151] *(xformA::LinearAlgebra.Transpose{#s570,#s569} where #s569<:LinearAlgebra.UnitLowerTriangular where #s570, B::LinearAlgebra.UpperTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1674\n", - "[152] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1772\n", - "[153] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(AbstractArray{T,2} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1971\n", - "[154] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2482\n", - "[155] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:860\n", - "[156] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(AbstractArray{T,1} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2488\n", - "[157] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(AbstractArray{T,2} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2489\n", - "[158] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:222\n", - "[159] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractRotation where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:393\n", - "[160] *(transA::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574, B::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1813\n", - "[161] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:438\n", - "[162] *(v::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, A::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1953\n", - "[163] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:864\n", - "[164] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2493\n", - "[165] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:837\n", - "[166] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(AbstractArray{T,1} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:852\n", - "[167] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(AbstractArray{T,2} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:853\n", - "[168] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(AbstractArray{T,2} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:855\n", - "[169] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:287\n", - "[170] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractRotation where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:395\n", - "[171] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:421\n", - "[172] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:843\n", - "[173] *(D::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.Diagonal where #s576, B::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:221\n", - "[174] *(x::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:511\n", - "[175] *(x::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, D::LinearAlgebra.Diagonal, y::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:512\n", - "[176] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractRotation where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:389\n", - "[177] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:Union{DenseArray{Ta,2}, ReinterpretArray{Ta,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{Ta,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{Ta,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where #s576, x::SparseArrays.AbstractSparseArray{Tx,Ti,1} where Ti) where {Ta, Tx} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/sparsevector.jl:1519\n", - "[178] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC where #s576, x::SparseArrays.AbstractSparseArray{Tv,Ti,1} where Ti where Tv) in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/sparsevector.jl:1673\n", - "[179] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{Tv,Ti} where #s576, B::SparseArrays.SparseMatrixCSC{Tv,Ti}) where {Tv, Ti} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:144\n", - "[180] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TvA,TiA} where #s576, B::SparseArrays.SparseMatrixCSC{TvB,TiB}) where {TvA, TiA, TvB, TiB} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:13\n", - "[181] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TA,S} where #s576, x::Union{DenseArray{Tx,1}, ReinterpretArray{Tx,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{Tx,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{Tx,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {TA, S, Tx} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:103\n", - "[182] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TA,S} where #s576, B::Union{DenseArray{Tx,2}, ReinterpretArray{Tx,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{Tx,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{Tx,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {TA, S, Tx} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:105\n", - "[183] *(u::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, v::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:200\n", - "[184] *(A::Union{DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}, x::Union{DenseArray{S,1}, ReinterpretArray{S,1,S1,A} where S1 where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{S,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{S,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {T<:Union{Complex{Float32}, Complex{Float64}, Float32, Float64}, S} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:45\n", - "[185] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:AbstractArray{T,2} where #s576, x::AbstractArray{S,1}) where {T, S} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:84\n", - "[186] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:AbstractArray{T,2} where #s576, x::AbstractArray{S,1}) where {T, S} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:103\n", - "[187] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1805\n", - "[188] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:426\n", - "[189] *(x::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, A::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:122\n", - "[190] *(transA::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574, B::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1813\n", - "[191] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:422\n", - "[192] *(x::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, A::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:123\n", - "[193] *(A::LinearAlgebra.SymTridiagonal, B::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/tridiag.jl:160\n", - "[194] *(A::LinearAlgebra.Tridiagonal, B::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/tridiag.jl:614\n", - "[195] *(A::LinearAlgebra.UpperTriangular, x::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:670\n", - "[196] *(A::LinearAlgebra.UnitUpperTriangular, x::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:673\n", - "[197] *(A::LinearAlgebra.LowerTriangular, x::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:670\n", - "[198] *(A::LinearAlgebra.UnitLowerTriangular, x::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:673\n", - "[199] *(A::Union{SymTridiagonal, Tridiagonal}, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1602\n", - "[200] *(A::LinearAlgebra.LowerTriangular, B::LinearAlgebra.LowerTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1607\n", - "[201] *(A::LinearAlgebra.UnitLowerTriangular, B::LinearAlgebra.LowerTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1615\n", - "[202] *(A::LinearAlgebra.UpperTriangular, B::LinearAlgebra.UpperTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1623\n", - "[203] *(A::LinearAlgebra.UnitUpperTriangular, B::LinearAlgebra.UpperTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1631\n", - "[204] *(A::LinearAlgebra.LowerTriangular, xformB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.UpperTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1720\n", - "[205] *(A::LinearAlgebra.LowerTriangular, xformB::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.UnitUpperTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1729\n", - "[206] *(A::LinearAlgebra.UpperTriangular, xformB::LinearAlgebra.Adjoint{#s572,#s571} where #s571<:LinearAlgebra.LowerTriangular where #s572) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1738\n", - "[207] *(A::LinearAlgebra.UpperTriangular, xformB::LinearAlgebra.Adjoint{#s570,#s569} where #s569<:LinearAlgebra.UnitLowerTriangular where #s570) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1747\n", - "[208] *(A::LinearAlgebra.LowerTriangular, xformB::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.UpperTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1720\n", - "[209] *(A::LinearAlgebra.LowerTriangular, xformB::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.UnitUpperTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1729\n", - "[210] *(A::LinearAlgebra.UpperTriangular, xformB::LinearAlgebra.Transpose{#s572,#s571} where #s571<:LinearAlgebra.LowerTriangular where #s572) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1738\n", - "[211] *(A::LinearAlgebra.UpperTriangular, xformB::LinearAlgebra.Transpose{#s570,#s569} where #s569<:LinearAlgebra.UnitLowerTriangular where #s570) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1747\n", - "[212] *(A::LinearAlgebra.AbstractTriangular, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1759\n", - "[213] *(A::LinearAlgebra.AbstractTriangular, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1780\n", - "[214] *(A::LinearAlgebra.AbstractTriangular, transB::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1787\n", - "[215] *(A::LinearAlgebra.AbstractTriangular, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:441\n", - "[216] *(A::LinearAlgebra.AbstractTriangular, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:Union{QRCompactWYQ, QRPackedQ} where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/special.jl:132\n", - "[217] *(A::LinearAlgebra.AbstractTriangular, B::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1965\n", - "[218] *(A::LinearAlgebra.AbstractTriangular, transB::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:439\n", - "[219] *(A::LinearAlgebra.AbstractTriangular, B::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1966\n", - "[220] *(A::LinearAlgebra.AbstractTriangular, B::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2478\n", - "[221] *(A::LinearAlgebra.AbstractTriangular, B::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2479\n", - "[222] *(A::LinearAlgebra.AbstractTriangular, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:161\n", - "[223] *(A::LinearAlgebra.AbstractTriangular, B::Union{Bidiagonal, SymTridiagonal, Tridiagonal}) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/bidiag.jl:491\n", - "[224] *(A::LinearAlgebra.AbstractTriangular, B::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractRotation where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:398\n", - "[225] *(A::LinearAlgebra.AbstractTriangular, B::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1798\n", - "[226] *(A::LinearAlgebra.AbstractTriangular, B::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1798\n", - "[227] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1963\n", - "[228] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1964\n", - "[229] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1969\n", - "[230] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1972\n", - "[231] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2492\n", - "[232] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2494\n", - "[233] *(A::LinearAlgebra.AbstractQ, b::Union{DenseArray{T,1}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:557\n", - "[234] *(A::LinearAlgebra.AbstractQ, B::Union{DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:569\n", - "[235] *(Q::LinearAlgebra.AbstractQ, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:624\n", - "[236] *(A::Union{DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T, Q::LinearAlgebra.AbstractQ) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:669\n", - "[237] *(A::Union{DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractQ where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:709\n", - "[238] *(A::LinearAlgebra.LQPackedQ, B::Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:152\n", - "[239] *(A::LinearAlgebra.LQPackedQ, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:176\n", - "[240] *(A::Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T, adjQ::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.LQPackedQ where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:215\n", - "[241] *(A::Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T, Q::LinearAlgebra.LQPackedQ) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:239\n", - "[242] *(A::Union{Hermitian{T,S}, Symmetric{T,S}} where S where T, B::Union{Hermitian{T,S}, Symmetric{T,S}} where S where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:417\n", - "[243] *(A::LinearAlgebra.Symmetric, x::Bool) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:445\n", - "[244] *(A::LinearAlgebra.Symmetric, x::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:447\n", - "[245] *(A::LinearAlgebra.Hermitian, x::Bool) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:445\n", - "[246] *(A::LinearAlgebra.Hermitian, x::Real) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:447\n", - "[247] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:840\n", - "[248] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:842\n", - "[249] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:844\n", - "[250] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:846\n", - "[251] *(D::LinearAlgebra.Diagonal, x::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:156\n", - "[252] *(Da::LinearAlgebra.Diagonal, Db::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:158\n", - "[253] *(D::LinearAlgebra.Diagonal, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:162\n", - "[254] *(D::LinearAlgebra.Diagonal, B::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.Diagonal where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:230\n", - "[255] *(D::LinearAlgebra.Diagonal, B::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:231\n", - "[256] *(D::LinearAlgebra.Diagonal, adjQ::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:Union{QRCompactWYQ, QRPackedQ} where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:232\n", - "[257] *(A::LinearAlgebra.Diagonal, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:288\n", - "[258] *(D::LinearAlgebra.Diagonal, adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:234\n", - "[259] *(D::LinearAlgebra.Diagonal, B::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.Diagonal where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:240\n", - "[260] *(D::LinearAlgebra.Diagonal, B::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:241\n", - "[261] *(A::LinearAlgebra.Diagonal, transB::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:286\n", - "[262] *(D::LinearAlgebra.Diagonal, transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:243\n", - "[263] *(A::LinearAlgebra.Diagonal, B::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractRotation where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:397\n", - "[264] *(D::LinearAlgebra.Diagonal, A::SparseArrays.SparseMatrixCSC) in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:130\n", - "[265] *(D::LinearAlgebra.Diagonal, V::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:159\n", - "[266] *(D::LinearAlgebra.Diagonal, A::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:166\n", - "[267] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:215\n", - "[268] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:224\n", - "[269] *(A::LinearAlgebra.Bidiagonal, B::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/bidiag.jl:320\n", - "[270] *(A::Union{Bidiagonal, SymTridiagonal, Tridiagonal}, B::Union{Bidiagonal, SymTridiagonal, Tridiagonal}) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/bidiag.jl:492\n", - "[271] *(A::LinearAlgebra.Bidiagonal{T,V} where V<:AbstractArray{T,1}, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:AbstractArray{T,1} where #s576) where T in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/bidiag.jl:497\n", - "[272] *(A::LinearAlgebra.Bidiagonal{T,V} where V<:AbstractArray{T,1}, B::AbstractArray{T,1}) where T in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/bidiag.jl:495\n", - "[273] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractRotation where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:388\n", - "[274] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractRotation where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:390\n", - "[275] *(x::Union{SubArray{T,1,#s576,Tuple{Slice{OneTo{Int64}},Int64},false} where #s576<:SparseMatrixCSC, SparseVector{T,Ti} where Ti<:Integer} where T, a::Number) in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/sparsevector.jl:1393\n", - "[276] *(X::Union{DenseArray{TX,2}, ReinterpretArray{TX,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{TX,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{TX,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}, A::SparseArrays.SparseMatrixCSC{TvA,TiA}) where {TX, TvA, TiA} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:118\n", - "[277] *(A::Union{DenseArray{Ta,2}, ReinterpretArray{Ta,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{Ta,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{Ta,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}, x::SparseArrays.AbstractSparseArray{Tx,Ti,1} where Ti) where {Ta, Tx} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/sparsevector.jl:1480\n", - "[278] *(A::SparseArrays.SparseMatrixCSC, x::SparseArrays.AbstractSparseArray{Tv,Ti,1} where Ti where Tv) in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/sparsevector.jl:1667\n", - "[279] *(A::SparseArrays.SparseMatrixCSC{Tv,Ti}, B::SparseArrays.SparseMatrixCSC{Tv,Ti}) where {Tv, Ti} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:141\n", - "[280] *(A::SparseArrays.SparseMatrixCSC{TvA,TiA}, B::SparseArrays.SparseMatrixCSC{TvB,TiB}) where {TvA, TiA, TvB, TiB} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:7\n", - "[281] *(A::SparseArrays.SparseMatrixCSC{Tv,Ti}, B::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{Tv,Ti} where #s576) where {Tv, Ti} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:143\n", - "[282] *(A::SparseArrays.SparseMatrixCSC{TvA,TiA}, transB::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TvB,TiB} where #s576) where {TvA, TiA, TvB, TiB} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:9\n", - "[283] *(A::SparseArrays.SparseMatrixCSC{Tv,Ti}, B::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{Tv,Ti} where #s576) where {Tv, Ti} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:142\n", - "[284] *(A::SparseArrays.SparseMatrixCSC{TvA,TiA}, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TvB,TiB} where #s576) where {TvA, TiA, TvB, TiB} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:11\n", - "[285] *(A::SparseArrays.SparseMatrixCSC{TA,S}, x::Union{DenseArray{Tx,1}, ReinterpretArray{Tx,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{Tx,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{Tx,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {TA, S, Tx} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:51\n", - "[286] *(A::SparseArrays.SparseMatrixCSC{TA,S}, B::Union{DenseArray{Tx,2}, ReinterpretArray{Tx,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{Tx,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{Tx,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {TA, S, Tx} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:53\n", - "[287] *(A::SparseArrays.SparseMatrixCSC, D::LinearAlgebra.Diagonal) in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:134\n", - "[288] *(A::SuiteSparse.CHOLMOD.Sparse, B::SuiteSparse.CHOLMOD.Sparse) in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1307\n", - "[289] *(A::SuiteSparse.CHOLMOD.Sparse, B::SuiteSparse.CHOLMOD.Dense) in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1308\n", - "[290] *(A::SuiteSparse.CHOLMOD.Sparse, B::Union{Array{T,1}, Array{T,2}} where T) in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1309\n", - "[291] *(A::SuiteSparse.CHOLMOD.Sparse{Tv}, adjB::LinearAlgebra.Adjoint{Tv,SuiteSparse.CHOLMOD.Sparse{Tv}}) where Tv<:Float64 in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1312\n", - "[292] *(A::LinearAlgebra.Symmetric{Float64,SparseArrays.SparseMatrixCSC{Float64,Ti}}, B::Union{SparseMatrixCSC{Float64,Ti}, SparseVector{Float64,Ti}}) where Ti in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1849\n", - "[293] *(A::LinearAlgebra.Hermitian{Complex{Float64},SparseArrays.SparseMatrixCSC{Complex{Float64},Ti}}, B::Union{SparseMatrixCSC{Complex{Float64},Ti}, SparseVector{Complex{Float64},Ti}}) where Ti in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1851\n", - "[294] *(A::LinearAlgebra.Hermitian{Float64,SparseArrays.SparseMatrixCSC{Float64,Ti}}, B::Union{SparseMatrixCSC{Float64,Ti}, SparseVector{Float64,Ti}}) where Ti in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1853\n", - "[295] *(A::Union{SparseMatrixCSC{Float64,Ti}, SparseVector{Float64,Ti}}, B::LinearAlgebra.Symmetric{Float64,SparseArrays.SparseMatrixCSC{Float64,Ti}}) where Ti in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1856\n", - "[296] *(A::Union{SparseMatrixCSC{Complex{Float64},Ti}, SparseVector{Complex{Float64},Ti}}, B::LinearAlgebra.Hermitian{Complex{Float64},SparseArrays.SparseMatrixCSC{Complex{Float64},Ti}}) where Ti in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1858\n", - "[297] *(A::Union{SparseMatrixCSC{Float64,Ti}, SparseVector{Float64,Ti}}, B::LinearAlgebra.Hermitian{Float64,SparseArrays.SparseMatrixCSC{Float64,Ti}}) where Ti in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1860\n", - "[298] *(x::AbstractArray{#s57,2} where #s57<:Number) in Base at abstractarraymath.jl:99\n", - "[299] *(B::Number, A::LinearAlgebra.SymTridiagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/tridiag.jl:161\n", - "[300] *(B::Number, A::LinearAlgebra.Tridiagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/tridiag.jl:615\n", - "[301] *(x::Number, A::LinearAlgebra.UpperTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:680\n", - "[302] *(x::Number, A::LinearAlgebra.UnitUpperTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:683\n", - "[303] *(x::Number, A::LinearAlgebra.LowerTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:680\n", - "[304] *(x::Number, A::LinearAlgebra.UnitLowerTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:683\n", - "[305] *(x::Number, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:155\n", - "[306] *(B::Number, A::LinearAlgebra.Bidiagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/bidiag.jl:321\n", - "[307] *(a::Number, x::Union{SubArray{T,1,#s576,Tuple{Slice{OneTo{Int64}},Int64},false} where #s576<:SparseMatrixCSC, SparseVector{T,Ti} where Ti<:Integer} where T) in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/sparsevector.jl:1394\n", - "[308] *(A::Number, B::AbstractArray) in Base at arraymath.jl:52\n", - "[309] *(A::AbstractArray, B::Number) in Base at arraymath.jl:55\n", - "[310] *(s1::Union{AbstractChar, AbstractString}, ss::Union{AbstractChar, AbstractString}...) in Base at strings/basic.jl:229\n", - "[311] *(index::CartesianIndex, a::Integer) in Base.IteratorsMD at multidimensional.jl:116\n", - "[312] *(::Number, ::Missing) in Base at missing.jl:94\n", - "[313] *(d::AbstractString, x::Missing) in Base at missing.jl:140\n", - "[314] *(x::P, y::Real) where P<:Dates.Period in Dates at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/Dates/src/periods.jl:92\n", - "[315] *(u::AbstractArray{T,1} where T, v::Union{Adjoint{T,#s576}, Transpose{T,#s576}} where #s576<:(AbstractArray{T,1} where T) where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:205\n", - "[316] *(A::AbstractArray{T,2} where T, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1929\n", - "[317] *(A::AbstractArray{T,2} where T, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1936\n", - "[318] *(A::AbstractArray{T,2} where T, transB::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1944\n", - "[319] *(A::AbstractArray{T,2} where T, transB::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:423\n", - "[320] *(A::AbstractArray{T,2} where T, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:427\n", - "[321] *(A::AbstractArray{T,2} where T, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:164\n", - "[322] *(A::AbstractArray{T,2} where T, adjR::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractRotation where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:14\n", - "[323] *(A::AbstractArray{T,2}, x::AbstractArray{S,1}) where {T, S} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:49\n", - "[324] *(a::AbstractArray{T,1} where T, transB::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:55\n", - "[325] *(a::AbstractArray{T,1} where T, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:59\n", - "[326] *(A::AbstractArray{T,1} where T, adjR::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractRotation where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:13\n", - "[327] *(a::AbstractArray{T,1} where T, B::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:62\n", - "[328] *(A::AbstractArray{T,2} where T, B::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:141\n", - "[329] *(A::LinearAlgebra.LQ{TA,S} where S<:AbstractArray{TA,2}, B::Union{DenseArray{TB,1}, DenseArray{TB,2}, ReinterpretArray{TB,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{TB,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{TB,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{TB,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{TB,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{TB,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {TA, TB} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:144\n", - "[330] *(J1::LinearAlgebra.UniformScaling, J2::LinearAlgebra.UniformScaling) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/uniformscaling.jl:144\n", - "[331] *(J::LinearAlgebra.UniformScaling, B::BitArray{2}) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/uniformscaling.jl:146\n", - "[332] *(A::AbstractArray{T,2} where T, J::LinearAlgebra.UniformScaling) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/uniformscaling.jl:147\n", - "[333] *(J::LinearAlgebra.UniformScaling, A::Union{AbstractArray{T,1}, AbstractArray{T,2}} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/uniformscaling.jl:148\n", - "[334] *(x::Number, J::LinearAlgebra.UniformScaling) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/uniformscaling.jl:149\n", - "[335] *(J::LinearAlgebra.UniformScaling, x::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/uniformscaling.jl:150\n", - "[336] *(R::LinearAlgebra.AbstractRotation{T}, A::Union{AbstractArray{S,1}, AbstractArray{S,2}}) where {T, S} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:10\n", - "[337] *(A::AbstractArray{T,2}, R::LinearAlgebra.AbstractRotation{S}) where {T, S} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:21\n", - "[338] *(G1::LinearAlgebra.Givens{T}, G2::LinearAlgebra.Givens{T}) where T in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:381\n", - "[339] *(a, b, c, xs...) in Base at operators.jl:502" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "methods(*)" + "methods(*);" ] }, { @@ -3232,15 +2991,15 @@ ], "metadata": { "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.4.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.4" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.0.3" + "version": "1.4.0" } }, "nbformat": 4, diff --git a/.ipynb_checkpoints/Workshop2-checkpoint.ipynb b/.ipynb_checkpoints/Workshop2-checkpoint.ipynb index 9f40bff..e956ed1 100644 --- a/.ipynb_checkpoints/Workshop2-checkpoint.ipynb +++ b/.ipynb_checkpoints/Workshop2-checkpoint.ipynb @@ -44,7 +44,7 @@ "- Intro to `DifferentialEquations.jl`\n", "\n", "References\n", - "- _An algorithmic introduction to numerical simulation of stochastic differential equations_, D. J. Higham, [SIAM Review, __43__, 525-546 (2001)](https://epubs.siam.org/doi/abs/10.1137/S0036144500378302)" + "- *An algorithmic introduction to numerical simulation of stochastic differential equations*, D. J. Higham, [SIAM Review, __43__, 525-546 (2001)](https://epubs.siam.org/doi/abs/10.1137/S0036144500378302)" ] }, { @@ -76,38 +76,37 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "linspace (generic function with 1 method)" + "Plots.GRBackend()" ] }, - "execution_count": 2, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "using Statistics, Plots, LaTeXStrings, Revise\n", - "gr(grid=false,legend=false,size=(400,200),titlefontsize=12)\n", - "linspace(a,b,n) = LinRange(a,b,n) |> collect" + "gr(grid=false,legend=false,size=(400,200),titlefontsize=10)" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.3702151022483434" + "-1.2823779027693414" ] }, - "execution_count": 3, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -118,7 +117,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -128,6109 +127,3104 @@ "\n", "\n", " \n", - " \n", - " \n", - "\n", - "\n", - " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1000\n", - "\n", - "\n", - "2000\n", - "\n", - "\n", - "3000\n", - "\n", - "\n", - "-3\n", - "\n", - "\n", - "-2\n", - "\n", - "\n", - "-1\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "3000 samples drawn from N(0,1)\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1000\n", + "\n", + "\n", + "2000\n", + "\n", + "\n", + "3000\n", + "\n", + "\n", + "-3\n", + "\n", + "\n", + "-2\n", + "\n", + "\n", + "-1\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "3000 samples drawn from N(0,1)\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n" ] }, - "execution_count": 4, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -6238,23 +3232,23 @@ "source": [ "N = 3000\n", "x = randn(N)\n", - "n = 1:N |> collect # convert a range object to a vector\n", - "plot(n,x,seriestype=:scatter,ms=.5,size=(500,150))\n", + "n = 1:N \n", + "plot(n,x,seriestype=:scatter,ms=1,size=(500,150))\n", "title!(\"$N samples drawn from N(0,1)\")" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(-0.006670434549289595, 0.9932926596442568)" + "(0.032630586939194094, 1.0291156804040478)" ] }, - "execution_count": 5, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -6265,28 +3259,28 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "T = 1; N = 500; dt = T/N\n", - "t = linspace(0,T,N+1)\n", + "t = LinRange(0,T,N+1)\n", "W = zeros(N)\n", "ΔW = sqrt(dt)*randn(N); #all independent" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(0.005693050592574502, 0.0019063902581131131, 0.002, 501)" + "(0.0002865502988770673, 0.002052912724313275, 0.002, 501)" ] }, - "execution_count": 7, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -6308,7 +3302,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -6321,16 +3315,16 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(1.2781391611009483, 501)" + "(-0.1291695403659743, 501)" ] }, - "execution_count": 9, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -6341,7 +3335,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -6350,166 +3344,202 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", + "\n", + "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.00\n", - "\n", - "\n", - "0.25\n", - "\n", - "\n", - "0.50\n", - "\n", - "\n", - "0.75\n", - "\n", - "\n", - "1.00\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.5\n", - "\n", - "\n", - "1.0\n", - "\n", - "\n", - "1.5\n", - "\n", - "\n", - "2.0\n", - "\n", - "\n", - "2.5\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "W(t)\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0.00\n", + "\n", + "\n", + "0.25\n", + "\n", + "\n", + "0.50\n", + "\n", + "\n", + "0.75\n", + "\n", + "\n", + "1.00\n", + "\n", + "\n", + "-0.50\n", + "\n", + "\n", + "-0.25\n", + "\n", + "\n", + "0.00\n", + "\n", + "\n", + "0.25\n", + "\n", + "\n", + "0.50\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n" ] }, - "execution_count": 10, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -6517,7 +3547,7 @@ "source": [ "dt = T/N\n", "plot(t,W)\n", - "xlabel!(\"t\");ylabel!(\"W(t)\")" + "xlabel!(L\"t\");ylabel!(L\"W(t)\")" ] }, { @@ -6531,7 +3561,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -6540,7 +3570,7 @@ "wienerpath" ] }, - "execution_count": 11, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -6576,7 +3606,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -6635,7 +3665,7 @@ " a vector of length \u001b[36mN+1\u001b[39m." ] }, - "execution_count": 12, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -6654,7 +3684,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -6663,278 +3693,320 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.00\n", - "\n", - "\n", - "0.25\n", - "\n", - "\n", - "0.50\n", - "\n", - "\n", - "0.75\n", - "\n", - "\n", - "1.00\n", - "\n", - "\n", - "-3\n", - "\n", - "\n", - "-2\n", - "\n", - "\n", - "-1\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "W(t)\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "0.00\n", + "\n", + "\n", + "0.25\n", + "\n", + "\n", + "0.50\n", + "\n", + "\n", + "0.75\n", + "\n", + "\n", + "1.00\n", + "\n", + "\n", + "-3\n", + "\n", + "\n", + "-2\n", + "\n", + "\n", + "-1\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n" ] }, - "execution_count": 13, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -6945,12 +4017,12 @@ "p1=plot(t,W)\n", "plot!(t,sqrt.(t),linewidth=1,c=:black)\n", "plot!(t,-sqrt.(t),linewidth=1,c=:black)\n", - "ylims!(-3,3);xlabel!(\"t\");ylabel!(\"W(t)\")" + "ylims!(-3,3);xlabel!(L\"t\");ylabel!(L\"W(t)\")" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -6959,3269 +4031,3272 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", + "\n", + "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.00\n", - "\n", - "\n", - "0.25\n", - "\n", - "\n", - "0.50\n", - "\n", - "\n", - "0.75\n", - "\n", - "\n", - "1.00\n", - "\n", - "\n", - "-3\n", - "\n", - "\n", - "-2\n", - "\n", - "\n", - "-1\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "W(t)\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0.00\n", + "\n", + "\n", + "0.25\n", + "\n", + "\n", + "0.50\n", + "\n", + "\n", + "0.75\n", + "\n", + "\n", + "1.00\n", + "\n", + "\n", + "-3\n", + "\n", + "\n", + "-2\n", + "\n", + "\n", + "-1\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n" ] }, - "execution_count": 14, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -10246,7 +7321,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -10255,19 +7330,19 @@ "text": [ "┌ Info: Saved animation to \n", "│ fn = /Users/abradley/Dropbox/Julia/ANZSUP2019/ANZSUP19_Stochastic/media/wpaths.gif\n", - "└ @ Plots /Users/abradley/.julia/packages/Plots/UQI78/src/animation.jl:90\n" + "└ @ Plots /Users/abradley/.julia/packages/Plots/cc8wh/src/animation.jl:98\n" ] }, { "data": { "text/html": [ - "" + "" ], "text/plain": [ "Plots.AnimatedGif(\"/Users/abradley/Dropbox/Julia/ANZSUP2019/ANZSUP19_Stochastic/media/wpaths.gif\")" ] }, - "execution_count": 15, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -10304,7 +7379,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -10313,18 +7388,18 @@ "p (generic function with 1 method)" ] }, - "execution_count": 16, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "p(x,t) = exp(-x^2/(2t))/sqrt(2π*t) #scalar definition" + "p(x,t) = exp(-x^2/(2t))/sqrt(2π*t) # scalar function definition" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -10333,1180 +7408,1176 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.1\n", - "\n", - "\n", - "0.2\n", - "\n", - "\n", - "0.3\n", - "\n", - "\n", - "0.4\n", - "\n", - "\n", - "0.5\n", - "\n", - "\n", - "-2\n", - "\n", - "\n", - "-1\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0.0\n", + "\n", + "\n", + "0.1\n", + "\n", + "\n", + "0.2\n", + "\n", + "\n", + "0.3\n", + "\n", + "\n", + "0.4\n", + "\n", + "\n", + "0.5\n", + "\n", + "\n", + "-2\n", + "\n", + "\n", + "-1\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n" ] }, - "execution_count": 17, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "y = linspace(-2,2,500)\n", + "y = LinRange(-2,2,500)\n", "heatmap(t,y,p.(y,t'),size=(600,200),transpose=false) # broadcast\n", - "plot!(t,sqrt.(t),linewidth=1,c=:white)\n", - "plot!(t,-sqrt.(t),linewidth=1,c=:white)\n", + "plot!(t,sqrt.(t),lw=1,c=:white)\n", + "plot!(t,-sqrt.(t),lw=1,c=:white)\n", "xlims!(0,.5);ylims!(-2,2)" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 31, "metadata": {}, "outputs": [ { @@ -11514,7 +8585,7 @@ "output_type": "stream", "text": [ "┌ Warning: rainbow is found in more than one library: misc, colorcet. Choosing misc\n", - "└ @ PlotUtils /Users/abradley/.julia/packages/PlotUtils/m555i/src/color_gradients.jl:40\n" + "└ @ PlotUtils /Users/abradley/.julia/packages/PlotUtils/10ojB/src/color_gradients.jl:40\n" ] }, { @@ -11523,503 +8594,532 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0.0\n", + "\n", + "\n", + "0.2\n", + "\n", + "\n", + "0.4\n", + "\n", + "\n", + "0.6\n", + "\n", + "\n", + "0.8\n", + "\n", + "\n", + "1.0\n", + "\n", + "\n", + "-2\n", + "\n", + "\n", + "-1\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "6\n", + "\n", + "\n", + "8\n", + "\n", + "\n", + "\n", "\n", "\n" ] }, - "execution_count": 18, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# another plot example\n", - "p1=surface(t,y,p.(y,t'),color = :rainbow,size=(400,300))\n", + "p1=surface(t,y,p.(y,t'),c = :rainbow,size=(400,300))\n", "plot!(p1, camera=(40, 40))" ] }, @@ -12038,7 +9138,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 32, "metadata": {}, "outputs": [ { @@ -12047,620 +9147,588 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.00\n", - "\n", - "\n", - "0.25\n", - "\n", - "\n", - "0.50\n", - "\n", - "\n", - "0.75\n", - "\n", - "\n", - "1.00\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "5\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0.00\n", + "\n", + "\n", + "0.25\n", + "\n", + "\n", + "0.50\n", + "\n", + "\n", + "0.75\n", + "\n", + "\n", + "1.00\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", - "\n", - "\n", - "\n", - "y1\n", - "\n", - "\n", - "\n", - "y2\n", - "\n", - "\n", - "\n", - "y3\n", - "\n", - "\n", - "\n", - "mean of 1000 paths\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "y1\n", + "\n", + "\n", + "\n", + "y2\n", + "\n", + "\n", + "\n", + "y3\n", + "\n", + "\n", + "\n", + "mean of 1000 paths\n", + "\n", + "\n", + "\n", + "\n", "\n", "\n" ] }, - "execution_count": 19, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "T = 1; N = 500; Δt = T/N \n", - "t = linspace(0,T,N+1)\n", + "t = LinRange(0,T,N+1)\n", "Np = 1000\n", "ΔW = sqrt(Δt)*randn(N,Np)\n", "W = cumsum(ΔW,dims=1)\n", @@ -12691,8 +9759,8 @@ "metadata": {}, "source": [ "# Differential Equations\n", - "Chris Rackauckas (recent Math PhD at UC Irvine, now Postdoc at MIT) has written an ___utterly astonishing___ differential equation solving package in $\\julia$.\n", - "- He is an expert on SDE's, expert programmer and $\\julia$ whiz.\n", + "Chris Rackauckas (recent Math PhD at UC Irvine, now Postdoc at MIT) has written an julia maserpiece for solving differential equations in $\\julia$.\n", + "- An expert on SDE's, and expert programmer.\n", "- Wanted to compare results for different SDE methods and problems\n", "- Realized there was no decent package for numerical solving\n", "- `DifferentialEquations.jl` is now world-leading in every aspect of numerical solving\n", @@ -12719,32 +9787,31 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "┌ Info: Recompiling stale cache file /Users/abradley/.julia/compiled/v1.0/DifferentialEquations/UQdwS.ji for DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n", - "└ @ Base loading.jl:1190\n" + "┌ Info: Precompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n", + "└ @ Base loading.jl:1260\n" ] }, { "data": { "text/plain": [ - "linspace (generic function with 1 method)" + "Plots.GRBackend()" ] }, - "execution_count": 20, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "using DifferentialEquations, Statistics, Plots, LaTeXStrings, Revise\n", - "gr(grid=false,legend=false,size=(400,200),titlefontsize=12)\n", - "linspace(a,b,n) = LinRange(a,b,n) |> collect" + "gr(grid=false,legend=false,size=(400,200),titlefontsize=12)" ] }, { @@ -12784,7 +9851,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 36, "metadata": {}, "outputs": [ { @@ -12793,24 +9860,23 @@ "predatorprey! (generic function with 1 method)" ] }, - "execution_count": 21, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "#system parameters\n", + "# system parameters\n", "λ = .7 # 🐇 growth\n", "γ = 0.4 # 🐇 loss\n", "σ = 0.3 # 🐺 growth\n", "β = 1.2 # 🐺 loss\n", "\n", - "#define the equations of motion (standard first order form)\n", - "#in-place vector syntax\n", + "# define the equations of motion (standard first order form)\n", + "# in-place vector syntax\n", "function predatorprey!(du,u,p,t)\n", " du[1] = p[1]*u[1] - p[2]*u[2]*u[1]\n", " du[2] = -p[3]*u[2] + p[4]*u[1]*u[2]\n", - " return nothing #good practice if the function is mutating\n", "end" ] }, @@ -12831,16 +9897,16 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(::LotkaVolterra{getfield(Main, Symbol(\"##3#9\")),getfield(Main, Symbol(\"##4#10\")),getfield(Main, Symbol(\"##5#11\")),getfield(Main, Symbol(\"##6#12\")),getfield(Main, Symbol(\"##7#13\")),getfield(Main, Symbol(\"##8#14\")),Expr,Expr}) (generic function with 2 methods)" + "(::LotkaVolterra{var\"###ParameterizedDiffEqFunction#333\",var\"###ParameterizedTGradFunction#334\",var\"###ParameterizedJacobianFunction#335\",var\"###ParameterizedWFactFunction#336\",var\"###ParameterizedW_tFactFunction#337\",ModelingToolkit.ODESystem}) (generic function with 1 method)" ] }, - "execution_count": 22, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -12871,7 +9937,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 38, "metadata": {}, "outputs": [ { @@ -12879,10 +9945,10 @@ "text/plain": [ "\u001b[36mODEProblem\u001b[0m with uType \u001b[36mArray{Float64,1}\u001b[0m and tType \u001b[36mFloat64\u001b[0m. In-place: \u001b[36mtrue\u001b[0m\n", "timespan: (0.0, 0.2)\n", - "u0: [4.0, 1.75]" + "u0: [4.0, 1.7499999999999998]" ] }, - "execution_count": 23, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } @@ -12895,7 +9961,7 @@ "tf = .2\n", "Nt = 100\n", "tspan = (ti,tf)\n", - "t = linspace(ti,tf,Nt) \n", + "t = LinRange(ti,tf,Nt) \n", "params = [λ; γ; β; σ]\n", "\n", "#define the problem type\n", @@ -12911,19 +9977,19 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 10.066660 seconds (19.44 M allocations: 1002.656 MiB, 7.83% gc time)\n" + " 10.833241 seconds (33.65 M allocations: 1.708 GiB, 5.61% gc time)\n" ] } ], "source": [ - "#solve the problem, saving at specified time points\n", + "# solve the problem, saving at specified time points\n", "@time sol = solve(prob,saveat=t);" ] }, @@ -12936,25 +10002,25 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 0.000506 seconds (292 allocations: 39.820 KiB)\n" + " 0.000214 seconds (280 allocations: 38.445 KiB)\n" ] } ], "source": [ - "#solve the problem, saving at specified time points\n", + "# solve the problem, saving at specified time points\n", "@time sol = solve(prob,saveat=t);" ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 41, "metadata": {}, "outputs": [ { @@ -12963,151 +10029,146 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.00\n", + "\n", + "0.00\n", "\n", - "\n", - "0.05\n", + "\n", + "0.05\n", "\n", - "\n", - "0.10\n", + "\n", + "0.10\n", "\n", - "\n", - "0.15\n", + "\n", + "0.15\n", "\n", - "\n", - "0.20\n", + "\n", + "0.20\n", "\n", - "\n", - "0\n", + "\n", + "0\n", "\n", - "\n", - "2\n", + "\n", + "2\n", "\n", - "\n", - "4\n", + "\n", + "4\n", "\n", - "\n", - "6\n", + "\n", + "6\n", "\n", - "\n", - "8\n", + "\n", + "8\n", "\n", - "\n", - "t\n", + "\n", + "t\n", "\n", - "\n", - "population\n", + "\n", + "population\n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "rabbits\n", + "\n", + "rabbits\n", "\n", - "\n", - "\n", - "wolves\n", + "\n", + "wolves\n", "\n", "\n" ] }, - "execution_count": 26, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -13127,19 +10188,19 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 0.001809 seconds (395 allocations: 67.570 KiB)\n" + " 0.000273 seconds (382 allocations: 64.961 KiB)\n" ] } ], "source": [ - "#parameters\n", + "# parameters\n", "λ = .7 # 🐇 growth\n", "γ = 0.4 # 🐇 loss\n", "σ = 0.3 # 🐺 growth\n", @@ -13148,12 +10209,12 @@ "r̄ = β/σ; w̄ = λ/γ\n", "\n", "ϵ = .1\n", - "u0 = [β/σ + ϵ ; λ/γ - ϵ] #one slightly larger, one slightly smaller\n", + "u0 = [β/σ + ϵ ; λ/γ - ϵ] # one slightly larger, one slightly smaller\n", "ti = 0.0\n", "tf = 50.0\n", "Nt = 200\n", "tspan = (ti,tf)\n", - "t = linspace(ti,tf,Nt) \n", + "t = LinRange(ti,tf,Nt) \n", "\n", "prob = ODEProblem(pprey,u0,tspan,params)\n", "@time sol = solve(prob,saveat=t);" @@ -13161,7 +10222,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 47, "metadata": {}, "outputs": [ { @@ -13170,328 +10231,363 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", + "\n", + "0\n", "\n", - "\n", - "10\n", + "\n", + "10\n", "\n", - "\n", - "20\n", + "\n", + "20\n", "\n", - "\n", - "30\n", + "\n", + "30\n", "\n", - "\n", - "40\n", + "\n", + "40\n", "\n", - "\n", - "50\n", + "\n", + "50\n", "\n", - "\n", - "60\n", + "\n", + "60\n", "\n", - "\n", - "70\n", + "\n", + "70\n", "\n", - "\n", - "0\n", + "\n", + "0\n", "\n", - "\n", - "1\n", + "\n", + "1\n", "\n", - "\n", - "2\n", + "\n", + "2\n", "\n", - "\n", - "3\n", + "\n", + "3\n", "\n", - "\n", - "4\n", + "\n", + "4\n", "\n", - "\n", - "5\n", + "\n", + "5\n", "\n", - "\n", - "t\n", + "\n", + "\n", "\n", - "\n", - "population\n", + "\n", + "\n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", "\n", - "\n", - "\n", - "\n", + "iVBORw0KGgoAAAANSUhEUgAAAEcAAAAvCAYAAACxF9coAAAEoklEQVRoge1b7W3yMBB+WnUA0xHc\n", + "DdyOEDYARgidIGKE0AlQR7CYIDBC2gmAEUw2uPcHvfQSEhLyQaj0nnRSgOR8ee7DvrMBEeGeeDKZ\n", + "0Gq1oj5k73Y7MsbQbrerJX9wMJidc2SMIc/zegGGOQxDUkpRHMeV4wwOCgOjtSatda/AMPu+TwAq\n", + "PWhwYIgInueRUoqcczcBh4hgjCGt9cUxBwcmCAICQNbamwFDdMo/AC6G8aDARFFUqWCfvFqtCACF\n", + "YVg4/qDgaK1rxX4Vc5INguBqOaxDUXgNBgxbzff9VsBweAAgpdTVsqy1BIAmk8l9gOOcI6VUZ17D\n", + "4BS9YB1mXaIoyjz/iAEoDEMkSQLP8/Dy8vLQRtZ2u02vPc9rJMP3fQDAx8dH9ochPIct1cUMhR+v\n", + "QQsvdM4Vyrg5MDxDnezSTlYcx63yjWROzDKp3zysPj8/ATQPAUldhBTTZDIB8KsfgNuDs16vAdwf\n", + "OPx8kiT4+voiANmwstaSMYYAkDHmLHtzfAZBkN6nta69vpBhUKfwu0W+KZLHi8IMMEopiqKIdrsd\n", + "cQzK9gHf4/s+xXFMzjmKooi01mSMqVROTrvXKO15Hkkg6vK1CZ/fmZcEDz+IYTQakbUW4/H4AQCW\n", + "yyUtFgsAgHMO1losFgvIe47HI3meh+/vbwCAtRbT6bR0ah6Px7TdbqGUwvF4rD2FbzYb4jGYrLXp\n", + "uMYYzGazzO9KKcxmM4xGo9rjTKdTWq/Xv/oRnVarecvzChY/SKJgkcTfM1c1qdgyXdRS0pu6ao5x\n", + "EYyfcgJEp/I974LyxjIFOO8wV/ZHWq5ki2TVGbcuy7CP4/i3NskXXtIyZfmEc5DWujK+ZQ3Utp7q\n", + "cn2Tfx+Wa62lp+12C2PMWWzGcZxeh2FYFqMP0+m0VjwnSZJeK6VqPVNGXU7hkqReh8MBj4fD4SyZ\n", + "7fd7ki/DCbgNOefS6+fn51ay+gInr9fTcrk8e/E+Bv8LniPJOVe8QpaDG2N6GbwppatXnEBuW9VL\n", + "kkZLkqQanL4s05T61C3v3Wfg9JFveLAiJa6lPsHJ58UzcPoKKZnspBLXktTv7e2tlU55yhvtIjh9\n", + "TZNNPSefb15fXzvLN0DWaFrrc3BkDdOlZWTibOo5db1ms9nQcrmk0htKSBrtDJzj8UiHwyH93HVM\n", + "a60BnBZYTUguTC/p9v7+3kh+3nNKl8997FvLkqTJ81y44kI/iEuaJvK5kObnM57T9xQuZe73+6vd\n", + "Xnoce2GeFotFablTRZxSWM/BwMn3Z+qQTOpFfZr5fE5KKczn80aJmsFP85l0K4g2QF8nHtCiMpf9\n", + "o7x+QRC0Oqkhd0U4ZAvbAH2ek+G8U6etmme5U7pardI2bZ3jJFXM/SuZrzI38CBdNL/rWKjJyzjn\n", + "yPf9tMdtjOmkE8iNO3niohcAqlhaf4jx8ywbcdJgg+yV894072ENTXKjMZPoh7BU2d70UMyenE8n\n", + "gynEzey2/eS2zLssd3M+h/nSqap70GFQcIY+E8jee5dnAon+nyatZD6HfMvk/CfOIRNlT7DfIv9w\n", + "GfInTrAzQLf47wPXYHW8dHBQiqx6L/+a+Qe2tocmdHTDOgAAAABJRU5ErkJggg==\n", + "\" transform=\"translate(1390, 120)\"/>\n", + "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "iVBORw0KGgoAAAANSUhEUgAAAFMAAAAvCAYAAACfUva6AAAFlklEQVRoge1b/3HbPAx9yXUApiPQ\n", + "G7AdQdlA7QhyJ3A9gpMJlIzAZALVI9iZQNYItDfA94c/ONBvUrKtpFfc4U45MxT5+AACIAUiwmfW\n", + "OI4pTVO6RN95npMxhvI89+p/cjCGqnOOjDEURdFFgGRdrVaklKLNZtP7nslBGQqk1pq01hcFkjVJ\n", + "EgLQy9DJgRmiURSRUoqcc1cBk4hgjCGtdec7JwcmVBeLBQEga+3VgCQ6+k8AnW5lcnBCNMuy3gld\n", + "UtM0JQC0Wq0a3z85QCGqtfbyXX3Km8pisQjuh8fQZO6TAxTKiiRJRgHJ5gqAlFLBfVlrCQDFcfw5\n", + "wXTOkVLqbKxkMJsA8VEeS5Zlpf+/xSeQ1WqFw+GAKIowm81uxvS1Xq9Pz1EUDeojSRIAwOPjY/mH\n", + "qVkXwoRz7OD4n5UYwXLnXGMfkwPVp7yDH9d9XF+bzWaUv5TKG5HcxD68mT8/PwMYbpJSzmHiLHEc\n", + "A3gfH4CPD+br6yuAjwcm///hcMB2uyUAdTNP05SMMQSAjDFBFZksyzr9mnOOOBVsC3zbzNKn0NCn\n", + "OIO/bOqP51L6MY5j0lpTlmXEE0fFL7Qpx4FoCBlYuT/fCckwJmSS1ff4augGx36TQ6wvTNvfv39T\n", + "URTY7Xan0COKIlqv13h8fMRyuaS7u7vWsKQWJjTIZrMp/f329obZbNbans1SKdXbt5TFYlEzY2st\n", + "3t7eAADGGPz8+bP0u1Iq2PSNMSiK4t19EL1nBVVT4qICelZNhgroYBFnD6x9LoRX/hy5uGTruYrJ\n", + "Eh/nHN0CR1YlSYJv376VmMcr2SfSsRtjWtv9+PHjhgNeAPj69Wtnv0VRAAhnZpOcc/NhkeMvigIn\n", + "VlVZWWVbl3/j4ik8c2du27WpyBx6bD5+zviyzdKstXRrrYVSqsZKa+3p2RjTmcaFrjq30Vq3tjkc\n", + "Dqfnscy8BCuB8riKosBtURRYLpe1hhzfAag5ayn7/Z7YHAG/wWqtobVG14bmnDs997mDPrkUmNVx\n", + "fXl4eKhNaL/fkxwAR/tNItv1AcRSFEWnbwU+BzOlOOeaMyBp4lrrs5o4cAyRLjWpqpyyExwXZWzV\n", + "SYpc5MPh0AymNPEuVgLhYO73e+Jy2jXkkqysWk8NzKqJh/jLPtMFjqzsYzsPrmnQoXJJMKt+vQZm\n", + "1QdWd3kpMqPxNaHX11evSUnnLgcdKnI+379/H9xPk1QXuQamBKhv0jKo9111a22v6wDOw8yqv+wi\n", + "xhCRi6y1roMZYrayrc+qv7y8EADc39/3TkqyfCgzfVn5588fenh4oNYGLSIXuRFMybauoBoog9nX\n", + "FjgWUmU62Sfcp3xPiPha2a9fvwb1X2Vma3EBHjVErnv6tOX0NKSOKIsTQ9I9n7lYawenmHEcl1LU\n", + "GjN9GAYcd3LJ4j5TXC6XiOM4KM6TbNrtdsFm6GM5y+USq9UqtGsA71bM46yBKTcH6XOaBiE3ia4K\n", + "03a7JWtt6bzERySYvhUsKXJ8TZnZfD4npRTm8/mgjYkX6+SPu8yj7coem0ae58Rt20wlz3NSSrVW\n", + "3/sUIypHbIZouM6yWCxG3aSTp6bsQlr9mzwH4mOMPM+JC6IMjgS02pbv9Iw572a/aYwJ7kPeBEnT\n", + "lJxzlGUZ+VwP7FPGQZKoF/0oikg68jiOGzeRNE1Ph2X8kra2QxkwZPLOOUqSpLTg56i0M9nkweCo\n", + "Dq+lkl1Tj4WoXLiWC/zhz82B97s9sgAzpciLEaWNbepV9tG2uz1TW0o1dp0cKF/lM/Sx50Fjle8H\n", + "fNr7maxdt3Y/whgmByhEp77TztbxV9xpJ/r3tcXZlePZa25Gf+V3QETlL9Su4T85Lf0rv1BjQK/x\n", + "7STn8D5W8CmC9ia5u7u72W63N0opPD09BZfnfGS329F6vcZms/EqHf4HRdInLyphCeoAAAAASUVO\n", + "RK5CYII=\n", + "\" transform=\"translate(1390, 180)\"/>\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n", "\n" ] }, - "execution_count": 28, + "execution_count": 47, "metadata": {}, "output_type": "execute_result" } @@ -13501,7 +10597,7 @@ "plot(t,🐇,label=L\"r(t)\",legend=:topright);plot!(t,🐺,label=L\"w(t)\")\n", "plot!(t,r̄*one.(t),label=L\"\\bar r\",s=:d)\n", "plot!(t,w̄*one.(t),label=L\"\\bar w\",s=:d)\n", - "ylims!(0,5);xlabel!(\"t\");ylabel!(\"population\")\n", + "ylims!(0,5);xlabel!(L\"t\");ylabel!(L\"\\textrm{Pop.}\")\n", "xlims!(0,70)" ] }, @@ -13516,7 +10612,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 48, "metadata": {}, "outputs": [ { @@ -13525,26 +10621,26 @@ "pprey_shift (generic function with 1 method)" ] }, - "execution_count": 29, + "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function pprey_shift(ϵ)\n", - "#parameters\n", + "# parameters\n", "λ = .7 # 🐇 growth\n", "γ = 0.4 # 🐇 loss\n", "σ = 0.3 # 🐺 growth\n", "β = 1.2 # 🐺 loss\n", "params = [λ; γ; β; σ]\n", "\n", - "u0 = [β/σ + ϵ ; λ/γ - ϵ] #one slightly larger, one slightly smaller\n", + "u0 = [β/σ + ϵ ; λ/γ - ϵ] # one slightly larger, one slightly smaller\n", "ti = 0.0\n", "tf = 50.0\n", "Nt = 200\n", "tspan = (ti,tf)\n", - "t = linspace(ti,tf,Nt) \n", + "t = LinRange(tspan...,Nt) \n", "\n", "prob = ODEProblem(pprey,u0,tspan,params)\n", "sol = solve(prob,saveat=t);\n", @@ -13555,60 +10651,69 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 49, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "┌ Info: Recompiling stale cache file /Users/abradley/.julia/compiled/v1.0/Interact/XmYW4.ji for Interact [c601a237-2ae4-5e1e-952c-7a85b0c7eef1]\n", - "└ @ Base loading.jl:1190\n" + "┌ Info: Precompiling Interact [c601a237-2ae4-5e1e-952c-7a85b0c7eef1]\n", + "└ @ Base loading.jl:1260\n" ] }, { "data": { "text/html": [ - " \n" - ], - "text/plain": [ - "HTML{String}(\" \\n\")" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "HTML{String}(\"\")" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "" + " warning_div.style.display = \"none\";\n", + " };\n", + " if (typeof Jupyter !== \"undefined\") {\n", + " console.log(\"WebIO detected Jupyter notebook environment.\");\n", + " // Jupyter notebook.\n", + " var extensions = (\n", + " Jupyter\n", + " && Jupyter.notebook.config.data\n", + " && Jupyter.notebook.config.data.load_extensions\n", + " );\n", + " if (extensions && extensions[\"webio-jupyter-notebook\"]) {\n", + " // Extension already loaded.\n", + " console.log(\"Jupyter WebIO nbextension detected; not loading ad-hoc.\");\n", + " hide();\n", + " return;\n", + " }\n", + " } else if (window.location.pathname.includes(\"/lab\")) {\n", + " // Guessing JupyterLa\n", + " console.log(\"Jupyter Lab detected; make sure the @webio/jupyter-lab-provider labextension is installed.\");\n", + " hide();\n", + " return;\n", + " }\n", + "})();\n", + "\n", + "\n", + "\n", + " Unable to load WebIO. Please make sure WebIO works for your Jupyter client.\n", + " For troubleshooting, please see \n", + " the WebIO/IJulia documentation.\n", + " \n", + "

\n" ], "text/plain": [ - "HTML{String}(\"\")" + "HTML{String}(\"\\n\\n Unable to load WebIO. Please make sure WebIO works for your Jupyter client.\\n For troubleshooting, please see \\n the WebIO/IJulia documentation.\\n \\n

\\n\")" ] }, "metadata": {}, @@ -13617,12 +10722,55 @@ { "data": { "text/html": [ - " \n" + "\n", + "\n", + " Unable to load WebIO. Please make sure WebIO works for your Jupyter client.\n", + " For troubleshooting, please see \n", + " the WebIO/IJulia documentation.\n", + " \n", + "

\n" ], "text/plain": [ - "HTML{String}(\" \\n\")" + "HTML{String}(\"\\n\\n Unable to load WebIO. Please make sure WebIO works for your Jupyter client.\\n For troubleshooting, please see \\n the WebIO/IJulia documentation.\\n \\n

\\n\")" ] }, "metadata": {}, @@ -13635,98 +10783,320 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 59, "metadata": { "scrolled": true }, "outputs": [ { "data": { + "application/vnd.webio.node+json": { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + "ϵ" + ], + "instanceArgs": { + "namespace": "html", + "tag": "label" + }, + "nodeType": "DOM", + "props": { + "className": "interact ", + "style": { + "padding": "5px 10px 0px 10px" + } + }, + "type": "node" + } + ], + "instanceArgs": { + "namespace": "html", + "tag": "div" + }, + "nodeType": "DOM", + "props": { + "className": "interact-flex-row-left" + }, + "type": "node" + }, + { + "children": [ + { + "children": [], + "instanceArgs": { + "namespace": "html", + "tag": "input" + }, + "nodeType": "DOM", + "props": { + "attributes": { + "data-bind": "numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}", + "orient": "horizontal", + "type": "range" + }, + "className": "slider slider is-fullwidth", + "max": 50, + "min": 1, + "step": 1, + "style": {} + }, + "type": "node" + } + ], + "instanceArgs": { + "namespace": "html", + "tag": "div" + }, + "nodeType": "DOM", + "props": { + "className": "interact-flex-row-center" + }, + "type": "node" + }, + { + "children": [ + { + "children": [], + "instanceArgs": { + "namespace": "html", + "tag": "p" + }, + "nodeType": "DOM", + "props": { + "attributes": { + "data-bind": "text: formatted_val" + } + }, + "type": "node" + } + ], + "instanceArgs": { + "namespace": "html", + "tag": "div" + }, + "nodeType": "DOM", + "props": { + "className": "interact-flex-row-right" + }, + "type": "node" + } + ], + "instanceArgs": { + "namespace": "html", + "tag": "div" + }, + "nodeType": "DOM", + "props": { + "className": "interact-flex-row interact-widget" + }, + "type": "node" + } + ], + "instanceArgs": { + "handlers": { + "changes": [ + "(function (val){return (val!=this.model[\"changes\"]()) ? (this.valueFromJulia[\"changes\"]=true, this.model[\"changes\"](val)) : undefined})" + ], + "index": [ + "(function (val){return (val!=this.model[\"index\"]()) ? (this.valueFromJulia[\"index\"]=true, this.model[\"index\"](val)) : undefined})" + ] + }, + "id": "8993573112394589592", + "imports": { + "data": [ + { + "name": "knockout", + "type": "js", + "url": "/assetserver/c81693e18a21a2a47ca931b7b0468e21bcea2884-knockout.js" + }, + { + "name": "knockout_punches", + "type": "js", + "url": "/assetserver/7c7f52abb5758c346b01ad3f3376930685b8965e-knockout_punches.js" + }, + { + "name": null, + "type": "js", + "url": "/assetserver/3d6500f63e9c6eebe3f86caf8ccfcf7d4a5a8d7a-all.js" + }, + { + "name": null, + "type": "css", + "url": "/assetserver/05d37322a7c27c2f2b6ee513a40b2042681fcf4e-style.css" + }, + { + "name": null, + "type": "css", + "url": "/assetserver/b82866ae254ca3a407e7123c8867e1344c0744ba-bulma_confined.min.css" + } + ], + "type": "async_block" + }, + "mount_callbacks": [ + "function () {\n var handler = (function (ko, koPunches) {\n ko.punches.enableAll();\n ko.bindingHandlers.numericValue = {\n init: function(element, valueAccessor, allBindings, data, context) {\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\n stringified.subscribe(function(value) {\n var val = parseFloat(value);\n if (!isNaN(val)) {\n valueAccessor()(val);\n }\n });\n valueAccessor().subscribe(function(value) {\n var str = JSON.stringify(value);\n if ((str == \"0\") && ([\"-0\", \"-0.\"].indexOf(stringified()) >= 0))\n return;\n if ([\"null\", \"\"].indexOf(str) >= 0)\n return;\n stringified(str);\n });\n ko.applyBindingsToNode(\n element,\n {\n value: stringified,\n valueUpdate: allBindings.get('valueUpdate'),\n },\n context,\n );\n }\n };\n var json_data = {\"formatted_vals\":[\"0.0\",\"0.0244898\",\"0.0489796\",\"0.0734694\",\"0.0979592\",\"0.122449\",\"0.146939\",\"0.171429\",\"0.195918\",\"0.220408\",\"0.244898\",\"0.269388\",\"0.293878\",\"0.318367\",\"0.342857\",\"0.367347\",\"0.391837\",\"0.416327\",\"0.440816\",\"0.465306\",\"0.489796\",\"0.514286\",\"0.538776\",\"0.563265\",\"0.587755\",\"0.612245\",\"0.636735\",\"0.661224\",\"0.685714\",\"0.710204\",\"0.734694\",\"0.759184\",\"0.783673\",\"0.808163\",\"0.832653\",\"0.857143\",\"0.881633\",\"0.906122\",\"0.930612\",\"0.955102\",\"0.979592\",\"1.00408\",\"1.02857\",\"1.05306\",\"1.07755\",\"1.10204\",\"1.12653\",\"1.15102\",\"1.17551\",\"1.2\"],\"changes\":WebIO.getval({\"name\":\"changes\",\"scope\":\"8993573112394589592\",\"id\":\"17157373845006176120\",\"type\":\"observable\"}),\"index\":WebIO.getval({\"name\":\"index\",\"scope\":\"8993573112394589592\",\"id\":\"6446057052578992172\",\"type\":\"observable\"})};\n var self = this;\n function AppViewModel() {\n for (var key in json_data) {\n var el = json_data[key];\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\n }\n \n [this[\"formatted_val\"]=ko.computed( function(){\n return this.formatted_vals()[parseInt(this.index())-(1)];\n }\n,this)]\n [this[\"changes\"].subscribe((function (val){!(this.valueFromJulia[\"changes\"]) ? (WebIO.setval({\"name\":\"changes\",\"scope\":\"8993573112394589592\",\"id\":\"17157373845006176120\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"changes\"]=false}),self),this[\"index\"].subscribe((function (val){!(this.valueFromJulia[\"index\"]) ? (WebIO.setval({\"name\":\"index\",\"scope\":\"8993573112394589592\",\"id\":\"6446057052578992172\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"index\"]=false}),self)]\n \n }\n self.model = new AppViewModel();\n self.valueFromJulia = {};\n for (var key in json_data) {\n self.valueFromJulia[key] = false;\n }\n ko.applyBindings(self.model, self.dom);\n}\n);\n (WebIO.importBlock({\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"/assetserver/c81693e18a21a2a47ca931b7b0468e21bcea2884-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"/assetserver/7c7f52abb5758c346b01ad3f3376930685b8965e-knockout_punches.js\"}],\"type\":\"async_block\"})).then((imports) => handler.apply(this, imports));\n}\n" + ], + "observables": { + "changes": { + "id": "17157373845006176120", + "sync": false, + "value": 0 + }, + "index": { + "id": "6446057052578992172", + "sync": true, + "value": 25 + } + }, + "systemjs_options": null + }, + "nodeType": "Scope", + "props": {}, + "type": "node" + } + ], + "instanceArgs": { + "namespace": "html", + "tag": "div" + }, + "nodeType": "DOM", + "props": { + "className": "field interact-widget" + }, + "type": "node" + }, + { + "children": [ + { + "children": [], + "instanceArgs": { + "id": "4067442413821404723", + "name": "obs-node" + }, + "nodeType": "ObservableNode", + "props": {}, + "type": "node" + } + ], + "instanceArgs": { + "handlers": {}, + "id": "11188805320598803092", + "imports": { + "data": [], + "type": "async_block" + }, + "mount_callbacks": [], + "observables": { + "obs-node": { + "id": "4067442413821404723", + "sync": false, + "value": { + "children": [ + { + "children": [], + "instanceArgs": { + "namespace": "html", + "tag": "div" + }, + "nodeType": "DOM", + "props": { + "setInnerHtml": "\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n0\n\n\n10\n\n\n20\n\n\n30\n\n\n40\n\n\n50\n\n\n60\n\n\n70\n\n\n0\n\n\n2\n\n\n4\n\n\n6\n\n\n8\n\n\nPredator-prey dynamics\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + }, + "type": "node" + } + ], + "instanceArgs": { + "namespace": "html", + "tag": "div" + }, + "nodeType": "DOM", + "props": { + "className": "interact-flex-row interact-widget" + }, + "type": "node" + } + } + }, + "systemjs_options": null + }, + "nodeType": "Scope", + "props": {}, + "type": "node" + } + ], + "instanceArgs": { + "namespace": "html", + "tag": "div" + }, + "nodeType": "DOM", + "props": {}, + "type": "node" + }, "text/html": [ - "
\n", - "
\n", - "WebIO.mount(this.previousSibling,{"props":{},"nodeType":"DOM","type":"node","instanceArgs":{"namespace":"html","tag":"div"},"children":[{"props":{"className":"field"},"nodeType":"DOM","type":"node","instanceArgs":{"namespace":"html","tag":"div"},"children":[{"props":{},"nodeType":"Scope","type":"node","instanceArgs":{"imports":{"data":[{"name":"knockout","type":"js","url":"/assetserver/86aaaf4300cd90c5f620536dd2224bed4f19a561-knockout.js"},{"name":"knockout_punches","type":"js","url":"/assetserver/46a9638687b90cb7624fcc0fcabecc8e23adf106-knockout_punches.js"},{"name":null,"type":"js","url":"/assetserver/5b8f570f720ed176c139e80176ece461e1c229c6-all.js"},{"name":null,"type":"css","url":"/assetserver/326eab32751cadfae7d7d7e7c1cbf9936e4d911c-style.css"},{"name":null,"type":"css","url":"/assetserver/808fa7f9010f2b06edbbe0b3cde85d827adb68fb-main.css"}],"type":"async_block"},"id":"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203","handlers":{"formatted_vals":[(function (val){return (val!=this.model["formatted_vals"]()) ? (this.valueFromJulia["formatted_vals"]=true, this.model["formatted_vals"](val)) : undefined})],"_promises":{"importsLoaded":[function (ko, koPunches) {\n", - " ko.punches.enableAll();\n", - " ko.bindingHandlers.numericValue = {\n", - " init : function(element, valueAccessor, allBindings, data, context) {\n", - " var stringified = ko.observable(ko.unwrap(valueAccessor()));\n", - " stringified.subscribe(function(value) {\n", - " var val = parseFloat(value);\n", - " if (!isNaN(val)) {\n", - " valueAccessor()(val);\n", - " }\n", - " })\n", - " valueAccessor().subscribe(function(value) {\n", - " var str = JSON.stringify(value);\n", - " if ((str == "0") && (["-0", "-0."].indexOf(stringified()) >= 0))\n", - " return;\n", - " if (["null", ""].indexOf(str) >= 0)\n", - " return;\n", - " stringified(str);\n", - " })\n", - " ko.applyBindingsToNode(element, { value: stringified, valueUpdate: allBindings.get('valueUpdate')}, context);\n", - " }\n", - " };\n", - " var json_data = JSON.parse("{\\"formatted_vals\\":[\\"0.0\\",\\"0.0631579\\",\\"0.126316\\",\\"0.189474\\",\\"0.252632\\",\\"0.315789\\",\\"0.378947\\",\\"0.442105\\",\\"0.505263\\",\\"0.568421\\",\\"0.631579\\",\\"0.694737\\",\\"0.757895\\",\\"0.821053\\",\\"0.884211\\",\\"0.947368\\",\\"1.01053\\",\\"1.07368\\",\\"1.13684\\",\\"1.2\\"],\\"changes\\":0,\\"formatted_value\\":\\"0.568421\\",\\"index\\":10}");\n", - " var self = this;\n", - " function AppViewModel() {\n", - " for (var key in json_data) {\n", - " var el = json_data[key];\n", - " this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\n", - " }\n", - " \n", - " \n", - " [this["formatted_vals"].subscribe((function (val){!(this.valueFromJulia["formatted_vals"]) ? (WebIO.setval({"name":"formatted_vals","scope":"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203","id":"ob_03","type":"observable"},val)) : undefined; return this.valueFromJulia["formatted_vals"]=false}),self),this["changes"].subscribe((function (val){!(this.valueFromJulia["changes"]) ? (WebIO.setval({"name":"changes","scope":"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203","id":"ob_05","type":"observable"},val)) : undefined; return this.valueFromJulia["changes"]=false}),self),this["formatted_value"].subscribe((function (val){!(this.valueFromJulia["formatted_value"]) ? (WebIO.setval({"name":"formatted_value","scope":"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203","id":"ob_04","type":"observable"},val)) : undefined; return this.valueFromJulia["formatted_value"]=false}),self),this["index"].subscribe((function (val){!(this.valueFromJulia["index"]) ? (WebIO.setval({"name":"index","scope":"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203","id":"ob_02","type":"observable"},val)) : undefined; return this.valueFromJulia["index"]=false}),self)]\n", - " \n", + "\n", + " \n", + "
\n" ], "text/plain": [ - "Widget{:manipulate,Any}(OrderedDict{Symbol,Any}(:ϵ=>Widget{:slider,Float64}(OrderedDict{Symbol,Any}(:changes=>Observable{Int64} with 1 listeners. Value:\n", - "0,:index=>Observable{Any} with 2 listeners. Value:\n", - "10,:formatted_vals=>Observable{Any} with 1 listeners. Value:\n", - "[\"0.0\", \"0.0631579\", \"0.126316\", \"0.189474\", \"0.252632\", \"0.315789\", \"0.378947\", \"0.442105\", \"0.505263\", \"0.568421\", \"0.631579\", \"0.694737\", \"0.757895\", \"0.821053\", \"0.884211\", \"0.947368\", \"1.01053\", \"1.07368\", \"1.13684\", \"1.2\"],:formatted_value=>Observable{String} with 1 listeners. Value:\n", - "\"0.568421\",:value=>Observable{Float64} with 2 listeners. Value:\n", - "0.568421), Observable{Float64} with 2 listeners. Value:\n", - "0.568421, Scope(\"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203\", Node{DOM}(DOM(:html, :div), Any[Node{DOM}(DOM(:html, :div), Any[Node{DOM}(DOM(:html, :label), Any[\"ϵ\"], Dict{Symbol,Any}(:className=>\"interact \",:style=>Dict{Any,Any}(:padding=>\"5px 10px 0px 10px\")), 1)], Dict{Symbol,Any}(:attributes=>Dict(\"class\"=>\"interact-flex-row-left\")), 2), Node{DOM}(DOM(:html, :div), Any[Node{DOM}(DOM(:html, :input), Any[], Dict{Symbol,Any}(:max=>20,:min=>1,:attributes=>Dict{Any,Any}(:type=>\"range\",Symbol(\"data-bind\")=>\"numericValue: index, valueUpdate: 'input', event: {change : function () {this.changes(this.changes()+1)}}\",\"orient\"=>\"horizontal\"),:step=>1,:className=>\"slider slider is-fullwidth\",:style=>Dict{Any,Any}()), 0)], Dict{Symbol,Any}(:attributes=>Dict(\"class\"=>\"interact-flex-row-center\")), 1), Node{DOM}(DOM(:html, :div), Any[Node{DOM}(DOM(:html, :p), Any[], Dict{Symbol,Any}(:attributes=>Dict(\"data-bind\"=>\"text: formatted_value\")), 0)], Dict{Symbol,Any}(:attributes=>Dict(\"class\"=>\"interact-flex-row-right\")), 1)], Dict{Symbol,Any}(:attributes=>Dict(\"class\"=>\"interact-flex-row\")), 7), Dict{String,Tuple{Observables.AbstractObservable,Union{Nothing, Bool}}}(\"formatted_vals\"=>(Observable{Any} with 1 listeners. Value:\n", - "[\"0.0\", \"0.0631579\", \"0.126316\", \"0.189474\", \"0.252632\", \"0.315789\", \"0.378947\", \"0.442105\", \"0.505263\", \"0.568421\", \"0.631579\", \"0.694737\", \"0.757895\", \"0.821053\", \"0.884211\", \"0.947368\", \"1.01053\", \"1.07368\", \"1.13684\", \"1.2\"], nothing),\"changes\"=>(Observable{Int64} with 1 listeners. Value:\n", - "0, nothing),\"formatted_value\"=>(Observable{String} with 1 listeners. Value:\n", - "\"0.568421\", nothing),\"index\"=>(Observable{Any} with 2 listeners. Value:\n", - "10, nothing)), Set(String[]), nothing, Any[\"knockout\"=>\"/Users/abradley/.julia/packages/Knockout/JIqpG/src/../assets/knockout.js\", \"knockout_punches\"=>\"/Users/abradley/.julia/packages/Knockout/JIqpG/src/../assets/knockout_punches.js\", \"/Users/abradley/.julia/packages/InteractBase/3SqBl/src/../assets/all.js\", \"/Users/abradley/.julia/packages/InteractBase/3SqBl/src/../assets/style.css\", \"/Users/abradley/.julia/packages/InteractBulma/Ohu5Y/src/../assets/main.css\"], Dict{Any,Any}(\"formatted_vals\"=>Any[JSString(\"(function (val){return (val!=this.model[\\\"formatted_vals\\\"]()) ? (this.valueFromJulia[\\\"formatted_vals\\\"]=true, this.model[\\\"formatted_vals\\\"](val)) : undefined})\")],\"_promises\"=>Dict{Any,Any}(\"importsLoaded\"=>Any[JSString(\"function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init : function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n })\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n })\\n ko.applyBindingsToNode(element, { value: stringified, valueUpdate: allBindings.get('valueUpdate')}, context);\\n }\\n };\\n var json_data = JSON.parse(\\\"{\\\\\\\"formatted_vals\\\\\\\":[\\\\\\\"0.0\\\\\\\",\\\\\\\"0.0631579\\\\\\\",\\\\\\\"0.126316\\\\\\\",\\\\\\\"0.189474\\\\\\\",\\\\\\\"0.252632\\\\\\\",\\\\\\\"0.315789\\\\\\\",\\\\\\\"0.378947\\\\\\\",\\\\\\\"0.442105\\\\\\\",\\\\\\\"0.505263\\\\\\\",\\\\\\\"0.568421\\\\\\\",\\\\\\\"0.631579\\\\\\\",\\\\\\\"0.694737\\\\\\\",\\\\\\\"0.757895\\\\\\\",\\\\\\\"0.821053\\\\\\\",\\\\\\\"0.884211\\\\\\\",\\\\\\\"0.947368\\\\\\\",\\\\\\\"1.01053\\\\\\\",\\\\\\\"1.07368\\\\\\\",\\\\\\\"1.13684\\\\\\\",\\\\\\\"1.2\\\\\\\"],\\\\\\\"changes\\\\\\\":0,\\\\\\\"formatted_value\\\\\\\":\\\\\\\"0.568421\\\\\\\",\\\\\\\"index\\\\\\\":10}\\\");\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n \\n [this[\\\"formatted_vals\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"formatted_vals\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"formatted_vals\\\",\\\"scope\\\":\\\"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203\\\",\\\"id\\\":\\\"ob_03\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"formatted_vals\\\"]=false}),self),this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203\\\",\\\"id\\\":\\\"ob_05\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"formatted_value\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"formatted_value\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"formatted_value\\\",\\\"scope\\\":\\\"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203\\\",\\\"id\\\":\\\"ob_04\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"formatted_value\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203\\\",\\\"id\\\":\\\"ob_02\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n\")]),\"changes\"=>Any[JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")],\"formatted_value\"=>Any[JSString(\"(function (val){return (val!=this.model[\\\"formatted_value\\\"]()) ? (this.valueFromJulia[\\\"formatted_value\\\"]=true, this.model[\\\"formatted_value\\\"](val)) : undefined})\")],\"index\"=>Any[JSString(\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\"), JSString(\"(function (val){return WebIO.setval({\\\"name\\\":\\\"formatted_value\\\",\\\"scope\\\":\\\"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203\\\",\\\"id\\\":\\\"ob_04\\\",\\\"type\\\":\\\"observable\\\"},WebIO.getval({\\\"name\\\":\\\"formatted_vals\\\",\\\"scope\\\":\\\"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203\\\",\\\"id\\\":\\\"ob_03\\\",\\\"type\\\":\\\"observable\\\"})[(WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203\\\",\\\"id\\\":\\\"ob_02\\\",\\\"type\\\":\\\"observable\\\"})-1)])})\")]), ConnectionPool(Channel{Any}(sz_max:9223372036854775807,sz_curr:4), Set(AbstractConnection[]), Channel{AbstractConnection}(sz_max:32,sz_curr:0))), ##52#53{#dom#15{##dom#13#14{Dict{Any,Any},DOM}},typeof(scope)}(#dom#15{##dom#13#14{Dict{Any,Any},DOM}}(##dom#13#14{Dict{Any,Any},DOM}(Dict{Any,Any}(:className=>\"field\"), DOM(:html, :div))), scope))), Observable{Any} with 0 listeners. Value:\n", - "Plot{Plots.GRBackend() n=4}, nothing, getfield(Main, Symbol(\"##16#18\")){Observable{Any}}(Observable{Any} with 0 listeners. Value:\n", - "Plot{Plots.GRBackend() n=4}))" + "Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Scope(Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"ϵ\"], Dict{Symbol,Any}(:className => \"interact \",:style => Dict{Any,Any}(:padding => \"5px 10px 0px 10px\")))], Dict{Symbol,Any}(:className => \"interact-flex-row-left\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol,Any}(:max => 50,:min => 1,:attributes => Dict{Any,Any}(:type => \"range\",Symbol(\"data-bind\") => \"numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}\",\"orient\" => \"horizontal\"),:step => 1,:className => \"slider slider is-fullwidth\",:style => Dict{Any,Any}()))], Dict{Symbol,Any}(:className => \"interact-flex-row-center\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol,Any}(:attributes => Dict(\"data-bind\" => \"text: formatted_val\")))], Dict{Symbol,Any}(:className => \"interact-flex-row-right\"))], Dict{Symbol,Any}(:className => \"interact-flex-row interact-widget\")), Dict{String,Tuple{Observables.AbstractObservable,Union{Nothing, Bool}}}(\"changes\" => (Observable{Int64} with 1 listeners. Value:\n", + "0, nothing),\"index\" => (Observable{Any} with 2 listeners. Value:\n", + "25, nothing)), Set(String[]), nothing, Asset[Asset(\"js\", \"knockout\", \"/Users/abradley/.julia/packages/Knockout/IP1uR/src/../assets/knockout.js\"), Asset(\"js\", \"knockout_punches\", \"/Users/abradley/.julia/packages/Knockout/IP1uR/src/../assets/knockout_punches.js\"), Asset(\"js\", nothing, \"/Users/abradley/.julia/packages/InteractBase/NMcus/src/../assets/all.js\"), Asset(\"css\", nothing, \"/Users/abradley/.julia/packages/InteractBase/NMcus/src/../assets/style.css\"), Asset(\"css\", nothing, \"/Users/abradley/.julia/packages/Interact/SbgIk/src/../assets/bulma_confined.min.css\")], Dict{Any,Any}(\"changes\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")],\"index\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\")]), WebIO.ConnectionPool(Channel{Any}(sz_max:32,sz_curr:0), Set(AbstractConnection[]), Base.GenericCondition{Base.AlwaysLockedST}(Base.InvasiveLinkedList{Task}(Task (runnable) @0x000000013a31f850, Task (runnable) @0x000000013a31f850), Base.AlwaysLockedST(1))), WebIO.JSString[WebIO.JSString(\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"formatted_vals\\\":[\\\"0.0\\\",\\\"0.0244898\\\",\\\"0.0489796\\\",\\\"0.0734694\\\",\\\"0.0979592\\\",\\\"0.122449\\\",\\\"0.146939\\\",\\\"0.171429\\\",\\\"0.195918\\\",\\\"0.220408\\\",\\\"0.244898\\\",\\\"0.269388\\\",\\\"0.293878\\\",\\\"0.318367\\\",\\\"0.342857\\\",\\\"0.367347\\\",\\\"0.391837\\\",\\\"0.416327\\\",\\\"0.440816\\\",\\\"0.465306\\\",\\\"0.489796\\\",\\\"0.514286\\\",\\\"0.538776\\\",\\\"0.563265\\\",\\\"0.587755\\\",\\\"0.612245\\\",\\\"0.636735\\\",\\\"0.661224\\\",\\\"0.685714\\\",\\\"0.710204\\\",\\\"0.734694\\\",\\\"0.759184\\\",\\\"0.783673\\\",\\\"0.808163\\\",\\\"0.832653\\\",\\\"0.857143\\\",\\\"0.881633\\\",\\\"0.906122\\\",\\\"0.930612\\\",\\\"0.955102\\\",\\\"0.979592\\\",\\\"1.00408\\\",\\\"1.02857\\\",\\\"1.05306\\\",\\\"1.07755\\\",\\\"1.10204\\\",\\\"1.12653\\\",\\\"1.15102\\\",\\\"1.17551\\\",\\\"1.2\\\"],\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"8993573112394589592\\\",\\\"id\\\":\\\"17157373845006176120\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"8993573112394589592\\\",\\\"id\\\":\\\"6446057052578992172\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"formatted_val\\\"]=ko.computed( function(){\\n return this.formatted_vals()[parseInt(this.index())-(1)];\\n }\\n,this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"8993573112394589592\\\",\\\"id\\\":\\\"17157373845006176120\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"8993573112394589592\\\",\\\"id\\\":\\\"6446057052578992172\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/c81693e18a21a2a47ca931b7b0468e21bcea2884-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/7c7f52abb5758c346b01ad3f3376930685b8965e-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\")])], Dict{Symbol,Any}(:className => \"field interact-widget\")), Observable{Any} with 0 listeners. Value:\n", + "Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Plot{Plots.GRBackend() n=4}], Dict{Symbol,Any}(:className => \"interact-flex-row interact-widget\"))], Dict{Symbol,Any}())" ] }, - "execution_count": 31, - "metadata": {}, + "execution_count": 59, + "metadata": { + "application/vnd.webio.node+json": { + "kernelId": "6377aef2-6d2f-4eae-9275-a0465f22976e" + } + }, "output_type": "execute_result" } ], "source": [ "ϵmax = 1.2\n", - "Neps = 20\n", - "ϵvec = linspace(0.0,ϵmax,Neps)\n", + "Neps = 50\n", + "ϵvec = LinRange(0.0,ϵmax,Neps)\n", "\n", "p1=plot(size=(600,200))\n", "@manipulate for ϵ in ϵvec \n", " 🐇, 🐺 = pprey_shift(ϵ)\n", - " plot(t,🐇,label=L\"r(t)\",legend=:topright);plot!(t,🐺,label=L\"w(t)\")\n", + " plot(t,🐇,label=L\"r(t)\",legend=:topright);plot!(t,🐺,label=L\"w(t)\",foreground_color_legend = nothing)\n", " plot!(t,r̄*one.(t),label=L\"\\bar r\",s=:d)\n", " plot!(t,w̄*one.(t),label=L\"\\bar w\",s=:d)\n", - " ylims!(0,5);xlabel!(\"t\");ylabel!(\"population\")\n", + " ylims!(0,5);xlabel!(L\"t\");ylabel!(L\"\\textrm{Pop.}\")\n", " xlims!(0,70);ylims!(0,8)\n", - " title!(\"predator-prey dynamics\")\n", + " title!(\"Predator-prey dynamics\")\n", "end" ] }, @@ -13737,6 +11107,56 @@ "Fast enough to easily run and plot in real time while scanning parameter space." ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can easily use the same code to make an animated .gif to scan over the results:" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "┌ Info: Saved animation to \n", + "│ fn = /Users/abradley/Dropbox/Julia/ANZSUP2019/ANZSUP19_Stochastic/media/ppdynamics.gif\n", + "└ @ Plots /Users/abradley/.julia/packages/Plots/cc8wh/src/animation.jl:98\n" + ] + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "Plots.AnimatedGif(\"/Users/abradley/Dropbox/Julia/ANZSUP2019/ANZSUP19_Stochastic/media/ppdynamics.gif\")" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p1=plot()\n", + "anim=@animate for ϵ in ϵvec \n", + " 🐇, 🐺 = pprey_shift(ϵ)\n", + " plot(t,🐇,label=L\"r(t)\",legend=:topright,size=(600,200));plot!(t,🐺,label=L\"w(t)\",foreground_color_legend = nothing)\n", + " plot!(t,r̄*one.(t),label=L\"\\bar r\",s=:d)\n", + " plot!(t,w̄*one.(t),label=L\"\\bar w\",s=:d)\n", + " ylims!(0,5);xlabel!(L\"t\");ylabel!(L\"\\textrm{Pop.}\")\n", + " xlims!(0,70);ylims!(0,8)\n", + " title!(\"Predator-prey dynamics\")\n", + " annotate!(60,2,text(latexstring(\"\\\\epsilon=$(round(ϵ;digits=2))\"), :red,:left, 12))\n", + "end\n", + "gif(anim,\"./media/ppdynamics.gif\",fps=15)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -13747,16 +11167,20 @@ } ], "metadata": { + "@webio": { + "lastCommId": "bc18c2ae10cc45c7a3db56b9b65593af", + "lastKernelId": "6377aef2-6d2f-4eae-9275-a0465f22976e" + }, "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.4.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.4" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.0.3" + "version": "1.4.0" } }, "nbformat": 4, diff --git a/.ipynb_checkpoints/Workshop3-checkpoint.ipynb b/.ipynb_checkpoints/Workshop3-checkpoint.ipynb index a853ec5..3f46331 100644 --- a/.ipynb_checkpoints/Workshop3-checkpoint.ipynb +++ b/.ipynb_checkpoints/Workshop3-checkpoint.ipynb @@ -42,17 +42,17 @@ "## Workshop 3: Quantum Phase space\n", "Numerical solution of SDEs for physicists\n", "\n", - "- $\\texttt{DifferentialEquations.jl}$: fast, adaptive stochastic integration\n", + "- [DifferentialEquations.jl](https://github.com/SciML/DifferentialEquations.jl): fast, adaptive stochastic integration\n", "- Worked example: damped optical cavity \n", "\n", "\n", "References\n", "\n", - "- _The Quantum World of Ultracold Atoms and Light: Book I: Foundations of Quantum Optics_, C. W. Gardiner and P. Zoller, [Imperial College Press, London (2014)](https://www.worldscientific.com/worldscibooks/10.1142/p941)\n", - "- _Generalized P-representations in quantum optics_, P. D. Drumond and C. W. Gardiner, [J. Phys. A-Math. and Gen., __13__, 2353-2368 (1980)](http://iopscience.iop.org/article/10.1088/0305-4470/13/7/018/meta)\n", + "- *The Quantum World of Ultracold Atoms and Light: Book I: Foundations of Quantum Optics*, C. W. Gardiner and P. Zoller, [Imperial College Press, London (2014)](https://www.worldscientific.com/worldscibooks/10.1142/p941)\n", + "- *Generalized P-representations in quantum optics*, P. D. Drumond and C. W. Gardiner, [J. Phys. A-Math. and Gen., __13__, 2353-2368 (1980)](http://iopscience.iop.org/article/10.1088/0305-4470/13/7/018/meta)\n", "- [A deep introduction to julia](http://ucidatascienceinitiative.github.io/IntroToJulia/), Christopher Rackauckas\n", "- [_Stochastic Lifestyle_](http://www.stochasticlifestyle.com/), Christopher Rackauckas\n", - "- _Dynamics and statistical mechanics of ultra-cold Bose gases using c-field techniques_,\n", + "- *Dynamics and statistical mechanics of ultra-cold Bose gases using c-field techniques*,\n", "P. B. Blakie, A. S. Bradley, M. J. Davis, R. J. Ballagh, and C. W. Gardiner, [Advances in Phyiscs 57, 363 (2008)](https://doi.org/10.1080/00018730802564254)" ] }, @@ -65,24 +65,12 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "linspace (generic function with 1 method)" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "using DifferentialEquations, Statistics, Plots, LaTeXStrings, Revise\n", - "gr(grid=false,legend=false,size=(400,200),titlefontsize=12)\n", - "linspace(a,b,n) = LinRange(a,b,n) |> collect" + "gr(grid=false,legend=false,size=(400,200),titlefontsize=12)" ] }, { @@ -112,33 +100,20 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "\u001b[36mSDEProblem\u001b[0m with uType \u001b[36mFloat64\u001b[0m and tType \u001b[36mFloat64\u001b[0m. In-place: \u001b[36mfalse\u001b[0m\n", - "timespan: (0.0, 1.0)\n", - "u0: 0.0" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "γ = 0.1\n", "β = 2.1\n", "u0= 0.0\n", - "A(u,p,t) = -γ*u #drift\n", - "B(u,p,t) = β #diffusion\n", + "A(u,p,t) = -γ*u # drift\n", + "B(u,p,t) = β # diffusion\n", "\n", "t0 = 0.0; tf = 1.0; Nt = 200\n", "dt = .0001\n", "tspan = (t0,tf)\n", - "t = linspace(t0,tf,Nt)\n", + "t = LinRange(tspan...,Nt)\n", "prob = SDEProblem(A,B,u0,tspan)" ] }, @@ -151,152 +126,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.2\n", - "\n", - "\n", - "0.4\n", - "\n", - "\n", - "0.6\n", - "\n", - "\n", - "0.8\n", - "\n", - "\n", - "1.0\n", - "\n", - "\n", - "-1.5\n", - "\n", - "\n", - "-1.0\n", - "\n", - "\n", - "-0.5\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.5\n", - "\n", - "\n", - "1.0\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "\n" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sol = solve(prob,EM(),dt=dt,saveat=t)\n", "plot(sol,lw=1)" @@ -311,140 +143,9 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.2\n", - "\n", - "\n", - "0.4\n", - "\n", - "\n", - "0.6\n", - "\n", - "\n", - "0.8\n", - "\n", - "\n", - "1.0\n", - "\n", - "\n", - "-2\n", - "\n", - "\n", - "-1\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "\n" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sol = solve(prob,EulerHeun(),dt=dt,saveat=t)\n", "plot(sol,lw=1)" @@ -459,146 +160,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.2\n", - "\n", - "\n", - "0.4\n", - "\n", - "\n", - "0.6\n", - "\n", - "\n", - "0.8\n", - "\n", - "\n", - "1.0\n", - "\n", - "\n", - "-1\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "\n" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sol = solve(prob,LambaEM(),saveat=t)\n", "plot(sol,lw=1)" @@ -610,9 +174,7 @@ "source": [ "The trajectories look quite different! We are seeing the solution approach the steady state: adaptive solvers can stretch their legs and take bigger steps as dynamical timescales increase. Let's go back and check the timing. You can see this immediately translates to large gains in execution time. \n", "\n", - "Historically, general methods are of low order of convergence, and performant adaptivity was not available. \n", - "\n", - "> My humble opinion: _general_ adaptive methods that Rackauckas, Nie, and Lamba have been developing and spreading through $\\julia$ are a total game changer.\n", + "Historically, general methods are of low order of convergence, and performant adaptivity was not available. In my opinion, *general* adaptive methods that Rackauckas, Nie, and Lamba have been developing and sharing through $\\julia$ are a total game changer.\n", "\n", "See the article by [Rackauckas and Nie](https://www.aimsciences.org/article/doi/10.3934/dcdsb.2017133) for an in-depth discussion of rejection sampling with memory. " ] @@ -655,254 +217,27 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "MonteCarloProblem with problem SDEProblem" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "monte_prob = MonteCarloProblem(prob) #adaptive, as that was last definition of prob" + "monte_prob = MonteCarloProblem(prob) # adaptive, as that was last definition of prob" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "sol = solve(monte_prob,num_monte=1000,parallel_type=:threads);" + "sol = solve(monte_prob,trajectories=1000)" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.00\n", - "\n", - "\n", - "0.25\n", - "\n", - "\n", - "0.50\n", - "\n", - "\n", - "0.75\n", - "\n", - "\n", - "1.00\n", - "\n", - "\n", - "-3\n", - "\n", - "\n", - "-2\n", - "\n", - "\n", - "-1\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "Ornstein-Uhlenbeck process\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "u(t)\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "Middle 95%\n", - "\n", - "\n", - "\n", - "Middle 50%\n", - "\n", - "\n" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "summ = MonteCarloSummary(sol,0:0.01:1)\n", "plot(summ,labels=\"Middle 95%\")\n", @@ -929,20 +264,9 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(::Drift{getfield(Main, Symbol(\"##3#4\")),Nothing,Nothing,Nothing,Nothing,Nothing,Any,Any}) (generic function with 2 methods)" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "a = @ode_def_bare Drift begin\n", " du = -γ*u \n", @@ -951,20 +275,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(::Diffusion{getfield(Main, Symbol(\"##5#6\")),Nothing,Nothing,Nothing,Nothing,Nothing,Any,Any}) (generic function with 2 methods)" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "b = @ode_def_bare Diffusion begin\n", " du = β\n", @@ -973,60 +286,41 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "brownian (generic function with 1 method)" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "function brownian(Ntraj;parallel_type=:none)\n", - "#time \n", + "function brownian(Ntraj)\n", + "# time \n", "ti = 0.\n", "tf = 100.\n", "Nt = 100\n", "tspan = (ti,tf)\n", - "t = linspace(ti,tf,Nt)\n", + "t = LinRange(ti,tf,Nt)\n", "γ = 0.1; β = 0.5\n", "p = (γ,β)\n", " \n", - "#initial condition\n", + "# initial condition\n", "u0 = [6.0]\n", " \n", - "#define problem\n", + "# define problem\n", "prob = SDEProblem(a,b,u0,tspan,p)\n", " \n", - "alg = SRIW1() #higher order adaptive for diagonal noise\n", + "alg = SRIW1() # higher order adaptive for diagonal noise\n", "dt = 1/100\n", " \n", "monte_prob = MonteCarloProblem(prob)\n", "\n", "\n", - "return solve(monte_prob,alg,saveat=t,num_monte=Ntraj,parallel_type=parallel_type)\n", + "return solve(monte_prob,alg,saveat=t,trajectories=Ntraj)\n", "end" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "compile...\n" - ] - } - ], + "outputs": [], "source": [ "println(\"compile...\")\n", "brownian(1);" @@ -1034,1676 +328,40 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start...\n", - " 0.100663 seconds (162.32 k allocations: 10.932 MiB, 50.98% gc time)\n" - ] - } - ], + "outputs": [], "source": [ "Ntraj = 100\n", "println(\"start...\")\n", - "@time sol = brownian(Ntraj,parallel_type=:threads);" + "@time sol = brownian(Ntraj);" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "20\n", - "\n", - "\n", - "40\n", - "\n", - "\n", - "60\n", - "\n", - "\n", - "80\n", - "\n", - "\n", - "100\n", - "\n", - "\n", - "-2\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "6\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "plot(sol,lw=1) # few paths" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start...\n", - " 2.128262 seconds (7.53 M allocations: 515.665 MiB, 19.81% gc time)\n" - ] - } - ], + "outputs": [], "source": [ - "Ntraj = 5000 #let's get some clean statistics\n", + "Ntraj = 5000 # let's get some clean statistics\n", "println(\"start...\")\n", - "@time sol = brownian(Ntraj,parallel_type=:threads);" + "@time sol = brownian(Ntraj);" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "25\n", - "\n", - "\n", - "50\n", - "\n", - "\n", - "75\n", - "\n", - "\n", - "100\n", - "\n", - "\n", - "-2\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "6\n", - "\n", - "\n", - "Ornstein-Uhlenbeck process\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "u(t)\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "Middle 95%\n", - "\n", - "\n", - "\n", - "Middle 50%\n", - "\n", - "\n" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "summ = MonteCarloSummary(sol)\n", "plot(summ,labels=\"Middle 95%\")\n", @@ -2945,87 +603,57 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(::Diffusion{getfield(Main, Symbol(\"##10#11\")),Nothing,Nothing,Nothing,Nothing,Nothing,Any,Any}) (generic function with 2 methods)" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "drift = @ode_def_bare Drift begin\n", " dα = (-im*ω-γ/2)*α \n", - " #dᾱ = (im*ω-γ/2)*ᾱ #in +P these would be independent\n", + " # dᾱ = (im*ω-γ/2)*ᾱ # in +P these would be independent\n", " end ω γ n̄\n", "\n", - "diff = @ode_def_bare Diffusion begin\n", + "diffusion = @ode_def_bare Diffusion begin\n", " dα = sqrt(γ*n̄)\n", - " #dᾱ = sqrt(γ*n̄) #in +P these would be independent\n", + " # dᾱ = sqrt(γ*n̄) # in +P these would be independent\n", " end ω γ n̄" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "opticalcavity (generic function with 1 method)" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "function opticalcavity(Ntraj;parallel_type=:none)\n", - "#time \n", + "function opticalcavity(Ntraj)\n", + "# time \n", "ti = 0.\n", "tf = 50.\n", "Nt = 100\n", - "t = linspace(ti,tf,Nt)\n", + "t = LinRange(ti,tf,Nt)\n", "tspan = (ti,tf)\n", "\n", "ω = 1.0; γ = 0.1; n̄ = 10\n", "p = (ω,γ,n̄)\n", " \n", - "#initial condition (must of the same type as solution! here an array of length 1)\n", + "# initial condition (must of the same type as solution! here an array of length 1)\n", "a0 = [10.0+0.0*im]\n", " \n", " \n", - "prob = SDEProblem(drift,diff,a0,tspan,p)\n", - "alg = SRIW1() #higher order adaptive for diagonal noise\n", + "prob = SDEProblem(drift,diffusion,a0,tspan,p)\n", + "alg = SRIW1() # higher order adaptive for diagonal noise\n", "dt = 1/100\n", " \n", "monte_prob = MonteCarloProblem(prob)\n", "\n", - "return solve(monte_prob,alg,saveat=t,num_monte=Ntraj,parallel_type=parallel_type)\n", + "return solve(monte_prob,alg,saveat=t,trajectories=Ntraj)\n", "end" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "compile...\n" - ] - } - ], + "outputs": [], "source": [ "println(\"compile...\")\n", "opticalcavity(1);" @@ -3033,42 +661,33 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start...\n", - " 6.336602 seconds (35.08 M allocations: 1.201 GiB, 24.24% gc time)\n" - ] - } - ], + "outputs": [], "source": [ "Ntraj = 5000 \n", "println(\"start...\")\n", - "@time sol = opticalcavity(Ntraj,parallel_type=:threads);" + "@time sol = opticalcavity(Ntraj);" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "#trajectories are first index\n", - "#modes are second index\n", - "#time is third index\n", + "# trajectories are first index\n", + "# modes are second index\n", + "# time is third index\n", "α(j) = sol[j][1,:]\n", "\n", - "#trajectory average at each time, for each mode\n", + "# trajectory average at each time, for each mode\n", "n1 = zero(abs.(α(1)))\n", "for j in 1:Ntraj\n", " n1 += abs2.(α(j))\n", "end\n", "\n", - "n1 /= Ntraj; #divide by number of trajectories" + "n1 /= Ntraj; # divide by number of trajectories" ] }, { @@ -3082,26 +701,15 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "na (generic function with 1 method)" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "#we need the same parameters outside the function\n", + "# we need the same parameters outside the function\n", "ti = 0.\n", "tf = 50.\n", "Nt = 100\n", - "t = linspace(ti,tf,Nt);\n", + "t = LinRange(ti,tf,Nt);\n", "\n", "ω = 1.0\n", "γ = 0.1\n", @@ -3112,246 +720,9 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "10\n", - "\n", - "\n", - "20\n", - "\n", - "\n", - "30\n", - "\n", - "\n", - "40\n", - "\n", - "\n", - "50\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "25\n", - "\n", - "\n", - "50\n", - "\n", - "\n", - "75\n", - "\n", - "\n", - "100\n", - "\n", - "\n", - "Approach to thermal equilibrium\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "exact\n", - "\n", - "\n", - "\n", - "SDE\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "plot(t,na.(t),c=:red,lw=1,label=\"exact\",legend=:topright)\n", "plot!(t,n1,lw=6,c=:blue,alpha=.2,label=\"SDE\")\n", @@ -3366,8 +737,8 @@ "metadata": {}, "source": [ "## Remarks\n", - "- A simple example highlighted the key steps. You should now be able to work through any phase space mapping problem, find equivalent SDE's (approximately if truncation proves necessary), and solve them.\n", - "- The Wigner represtation has mappings that appear more symmetric. Moments of $W$, and hence stochastic averages over equivalent SDE's allow computation of _symmetric operator averages_, e.g. $\\overline{(\\alpha^*\\alpha)}_W=\\tfrac{1}{2}\\langle a^\\dagger a+a a^\\dagger\\rangle=\\langle a^\\dagger a\\rangle+\\tfrac{1}{2}$. This is a key distinction between $W$ and $P$, the latter giving _normally ordered operator averages_.\n", + "- We have considered a simple and familiar example to highlight the key steps. You should now be able to work through any phase space mapping problem, find equivalent SDE's (approximately if truncation proves necessary), and solve them.\n", + "- The Wigner represtation has mappings that appear more symmetric. Moments of $W$, and hence stochastic averages over equivalent SDE's allow computation of *symmetric operator averages*, e.g. $\\overline{(\\alpha^*\\alpha)}_W=\\tfrac{1}{2}\\langle a^\\dagger a+a a^\\dagger\\rangle=\\langle a^\\dagger a\\rangle+\\tfrac{1}{2}$. This is a key distinction between $W$ and $P$, the latter giving *normally ordered operator averages*.\n", "- This extra factor of $\\tfrac{1}{2}$ is the source of vacuum noise in the truncated Wigner initial conditions that is absent from $P$-function methods." ] }, @@ -3395,31 +766,23 @@ "# From symbolic to efficient numerical evaluation using SymPy\n", "In $\\julia$ you can do computer algebra work in [SymPy](https://github.com/JuliaPy/SymPy.jl) (not a Mathematica replacement, but can do a lot of standard computer algebra in an jupyter environment that has a comparable user experience), and then create fast compiled code using the $\\julia$ compiler, by using the function `lambdify`. \n", "\n", - "Let's see a simple example, namely finding a jacobian." + "Let's see a simple example, namely finding a jacobian. At this point there could be some namespace clashes, so before proceeding, restart and clear outputs using the kernel menu. " ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 1, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING: using SymPy.solve in module Main conflicts with an existing identifier.\n" - ] - } - ], + "outputs": [], "source": [ "using SymPy, BenchmarkTools\n", - "#(in this notebook we call SymPy methods by class to avoid \n", + "# (in this notebook we call SymPy methods by class to avoid \n", "# namespace clashes with other packages loaded above)" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -3428,7 +791,7 @@ "(x, y)" ] }, - "execution_count": 25, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -3439,7 +802,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -3448,7 +811,7 @@ "f (generic function with 1 method)" ] }, - "execution_count": 26, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -3459,13 +822,13 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "\\[\\left[ \\begin{array}{rr}- e^{- y^{2}} \\sin{\\left (x \\right )}&- 2 y e^{- y^{2}} \\cos{\\left (x \\right )}\\\\- 2 y e^{- y^{2}} \\cos{\\left (x \\right )}&2 \\left(2 y^{2} - 1\\right) e^{- y^{2}} \\sin{\\left (x \\right )}\\end{array}\\right]\\]" + "\\[\\left[ \\begin{array}{rr}- e^{- y^{2}} \\sin{\\left(x \\right)}&- 2 y e^{- y^{2}} \\cos{\\left(x \\right)}\\\\- 2 y e^{- y^{2}} \\cos{\\left(x \\right)}&2 \\left(2 y^{2} - 1\\right) e^{- y^{2}} \\sin{\\left(x \\right)}\\end{array}\\right]\\]" ], "text/plain": [ "2×2 Array{Sym,2}:\n", @@ -3473,49 +836,193 @@ " -2*y*exp(-y^2)*cos(x) 2*(2*y^2 - 1)*exp(-y^2)*sin(x)" ] }, - "execution_count": 27, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "#make jacobian sym expression using an array comprehension\n", + "# build jacobian as a sym expression using an array comprehension\n", "jac=[SymPy.diff(f(x,y), v1, v2) for v1 in [x,y], v2 in [x,y]]" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "search: \u001b[0m\u001b[1ml\u001b[22m\u001b[0m\u001b[1ma\u001b[22m\u001b[0m\u001b[1mm\u001b[22m\u001b[0m\u001b[1mb\u001b[22m\u001b[0m\u001b[1md\u001b[22m\u001b[0m\u001b[1mi\u001b[22m\u001b[0m\u001b[1mf\u001b[22m\u001b[0m\u001b[1my\u001b[22m\n", + "\n" + ] + }, + { + "data": { + "text/latex": [ + "\\begin{verbatim}\n", + " lambdify(ex, vars; typ, fns, values, use_julia_code, invoke_latest)\n", + "\\end{verbatim}\n", + "Take a symbolic expression and return an anonymous \\texttt{Julia} function\n", + "\n", + "Converts from a SymPy object to an expression by walking the SymPy expression tree and converting each step. Then creates a function. The function arguments are based on \\texttt{free\\_symbols}, and its ordering unless \\texttt{vars} is specified directly.\n", + "\n", + "\\begin{itemize}\n", + "\\item \\texttt{use\\_julia\\_code=false} will use SymPy's conversion to an expression, the default is \\texttt{false}\n", + "\n", + "\n", + "\\item \\texttt{invoke\\_latest=true} calls \\texttt{Base.invokelatest} to work around world age issues. This is th safe default, but setting to \\texttt{false} will result in faster-executing functions.\n", + "\n", + "\\end{itemize}\n", + "Example:\n", + "\n", + "\\begin{verbatim}\n", + "@vars x y z\n", + "ex = x^2 * sin(x)\n", + "fn = lambdify(ex)\n", + "fn(pi)\n", + "\n", + "ex = x + 2y + 3z\n", + "fn = lambdify(ex)\n", + "fn(1,2,3) # order is y,x,z\n", + "\n", + "fn = lambdify(ex, (x,y,z))\n", + "fn(1,2,3)\n", + "\\end{verbatim}\n", + "\\begin{quote}\n", + "\\textbf{note}\n", + "\n", + "Note\n", + "\n", + "Ideally, this would just be:\n", + "\n", + "\\end{quote}\n", + "\\begin{verbatim}\n", + "body = Meta.parse(julia_code(ex))\n", + "syms = Symbol.(free_symbols(ex))\n", + "fn = eval(Expr(:function, Expr(:call, gensym(), syms...), body))\n", + "\\end{verbatim}\n", + "Where the first line could also be \\texttt{convert(Expr, ex)}. However, the \\texttt{julia\\_code} method from sympy needs some attention.\n", + "\n" + ], + "text/markdown": [ + "```\n", + " lambdify(ex, vars; typ, fns, values, use_julia_code, invoke_latest)\n", + "```\n", + "\n", + "Take a symbolic expression and return an anonymous `Julia` function\n", + "\n", + "Converts from a SymPy object to an expression by walking the SymPy expression tree and converting each step. Then creates a function. The function arguments are based on `free_symbols`, and its ordering unless `vars` is specified directly.\n", + "\n", + " * `use_julia_code=false` will use SymPy's conversion to an expression, the default is `false`\n", + " * `invoke_latest=true` calls `Base.invokelatest` to work around world age issues. This is th safe default, but setting to `false` will result in faster-executing functions.\n", + "\n", + "Example:\n", + "\n", + "```\n", + "@vars x y z\n", + "ex = x^2 * sin(x)\n", + "fn = lambdify(ex)\n", + "fn(pi)\n", + "\n", + "ex = x + 2y + 3z\n", + "fn = lambdify(ex)\n", + "fn(1,2,3) # order is y,x,z\n", + "\n", + "fn = lambdify(ex, (x,y,z))\n", + "fn(1,2,3)\n", + "```\n", + "\n", + "!!! note\n", + " Ideally, this would just be:\n", + "\n", + "\n", + "```\n", + "body = Meta.parse(julia_code(ex))\n", + "syms = Symbol.(free_symbols(ex))\n", + "fn = eval(Expr(:function, Expr(:call, gensym(), syms...), body))\n", + "```\n", + "\n", + "Where the first line could also be `convert(Expr, ex)`. However, the `julia_code` method from sympy needs some attention.\n" + ], + "text/plain": [ + "\u001b[36m lambdify(ex, vars; typ, fns, values, use_julia_code, invoke_latest)\u001b[39m\n", + "\n", + " Take a symbolic expression and return an anonymous \u001b[36mJulia\u001b[39m function\n", + "\n", + " Converts from a SymPy object to an expression by walking the SymPy\n", + " expression tree and converting each step. Then creates a function. The\n", + " function arguments are based on \u001b[36mfree_symbols\u001b[39m, and its ordering unless \u001b[36mvars\u001b[39m\n", + " is specified directly.\n", + "\n", + " • \u001b[36muse_julia_code=false\u001b[39m will use SymPy's conversion to an expression,\n", + " the default is \u001b[36mfalse\u001b[39m\n", + "\n", + " • \u001b[36minvoke_latest=true\u001b[39m calls \u001b[36mBase.invokelatest\u001b[39m to work around world\n", + " age issues. This is th safe default, but setting to \u001b[36mfalse\u001b[39m will\n", + " result in faster-executing functions.\n", + "\n", + " Example:\n", + "\n", + "\u001b[36m @vars x y z\u001b[39m\n", + "\u001b[36m ex = x^2 * sin(x)\u001b[39m\n", + "\u001b[36m fn = lambdify(ex)\u001b[39m\n", + "\u001b[36m fn(pi)\u001b[39m\n", + "\u001b[36m \u001b[39m\n", + "\u001b[36m ex = x + 2y + 3z\u001b[39m\n", + "\u001b[36m fn = lambdify(ex)\u001b[39m\n", + "\u001b[36m fn(1,2,3) # order is y,x,z\u001b[39m\n", + "\u001b[36m \u001b[39m\n", + "\u001b[36m fn = lambdify(ex, (x,y,z))\u001b[39m\n", + "\u001b[36m fn(1,2,3)\u001b[39m\n", + "\n", + "\u001b[36m\u001b[1m │ \u001b[22m\u001b[39m\u001b[36m\u001b[1mNote\u001b[22m\u001b[39m\n", + "\u001b[36m\u001b[1m │\u001b[22m\u001b[39m\n", + "\u001b[36m\u001b[1m │\u001b[22m\u001b[39m Ideally, this would just be:\n", + "\n", + "\u001b[36m body = Meta.parse(julia_code(ex))\u001b[39m\n", + "\u001b[36m syms = Symbol.(free_symbols(ex))\u001b[39m\n", + "\u001b[36m fn = eval(Expr(:function, Expr(:call, gensym(), syms...), body))\u001b[39m\n", + "\n", + " Where the first line could also be \u001b[36mconvert(Expr, ex)\u001b[39m. However, the\n", + " \u001b[36mjulia_code\u001b[39m method from sympy needs some attention." + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "?lambdify" ] }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "#220 (generic function with 1 method)" + "#86 (generic function with 1 method)" ] }, - "execution_count": 28, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "#define a c-compiled function from symbolic expression\n", + "# define a c-compiled function from symbolic expression\n", "jac_lam=lambdify(jac,[x,y])" ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -3526,7 +1033,7 @@ " -0.382396 -0.176491" ] }, - "execution_count": 29, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -3544,7 +1051,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 40, "metadata": {}, "outputs": [ { @@ -3553,7 +1060,7 @@ "jac_native (generic function with 1 method)" ] }, - "execution_count": 30, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" } @@ -3565,7 +1072,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 41, "metadata": {}, "outputs": [ { @@ -3576,7 +1083,7 @@ " -0.382396 -0.176491" ] }, - "execution_count": 31, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -3587,122 +1094,80 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 73, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 146.044 ns (5 allocations: 176 bytes)\n" + " 421.011 μs (233 allocations: 7.42 KiB)\n" ] - }, - { - "data": { - "text/plain": [ - "2×2 Array{Float64,2}:\n", - " -0.0959189 -0.382396\n", - " -0.382396 -0.176491" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "@btime jac_native(.1,.2)" + "@btime subs(jac[1],(x,.1),(y,.2)),subs(jac[2],(x,.1),(y,.2)),subs(jac[3],(x,.1),(y,.2)),subs(jac[4],(x,.1),(y,.2));" ] }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 64, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 15.574 μs (69 allocations: 1.64 KiB)\n" + " 5.755 μs (63 allocations: 1.41 KiB)\n" ] - }, - { - "data": { - "text/plain": [ - "2×2 Array{Float64,2}:\n", - " -0.0959189 -0.382396\n", - " -0.382396 -0.176491" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "@btime jac_lam(.1,.2)" + "@btime jac_lam(.1,.2);" ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 65, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 595.861 μs (275 allocations: 8.84 KiB)\n" + " 97.844 ns (5 allocations: 176 bytes)\n" ] - }, - { - "data": { - "text/latex": [ - "\\[\\left[ \\begin{array}{rr}-0.0959188923887662&-0.38239579756468\\\\-0.38239579756468&-0.17649076199533\\end{array}\\right]\\]" - ], - "text/plain": [ - "2×2 Array{Sym,2}:\n", - " -0.0959188923887662 -0.382395797564680\n", - " -0.382395797564680 -0.176490761995330" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "@btime subs(jac,x=>.1,y=>.2)" + "@btime jac_native(.1,.2);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "So in this case lambdify is roughly 50 times faster than direct numerical evaualuation in SymPy, but 100 times slower than native julia.\n", + "So in this case lambdify is about 70 times faster than sympy, but still takes 6 times longer than native julia. \n", "\n", - "In this simple example, we had the luxury of writing down a native julia expression, but the value of this approach comes when such a baseline is not available due to the complexity of expressions involved. In which case, a factor of 50 is a welcome improvement!" + "In this simple example, we had the luxury of writing down a native julia expression, but the value of this approach comes when such a baseline is not available due to the complexity of expressions involved. In which case, a factor of 70 is a welcome improvement!" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.4.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.4" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.0.3" + "version": "1.4.0" } }, "nbformat": 4, diff --git a/Lecture 1.ipynb b/Lecture 1.ipynb index 1ba37f3..3545cbb 100644 --- a/Lecture 1.ipynb +++ b/Lecture 1.ipynb @@ -41,8 +41,8 @@ "source": [ "These lectures present an introduction to three related topics:\n", "\n", - "- _Quantum Phase Space_, where properties of a class of quantum dynamics problems are exploited to develop efficient means of solution using\n", - "- _Stochastic Differential Equations_, the numerical and mathematical framework underpinning the rigorous study of stochastic processes. We will use state of the art numerical solvers now available in\n", + "- *Quantum Phase Space*, where properties of a class of quantum dynamics problems are exploited to develop efficient means of solution using\n", + "- *Stochastic Differential Equations*, the numerical and mathematical framework underpinning the rigorous study of stochastic processes. We will use state of the art numerical solvers now available in\n", "- $\\julia$, a new language for high-performance technical computing. Solves the two-language problem." ] }, @@ -88,9 +88,9 @@ "\n", "References\n", "\n", - "- Chapter 4 of _Stochastic Methods - a Handbook for the Natural and Social Sciences_, C. W. Gardiner, [4-th edition, Springer, Berlin (2009)](https://www.springer.com/gp/book/9783540707127) \n", - "- _An algorithmic introduction to numerical simulation of stochastic differential equations_, D. J. Higham, [SIAM Review, __43__, 525-546 (2001)](https://epubs.siam.org/doi/abs/10.1137/S0036144500378302)\n", - "- _The Quantum World of Ultracold Atoms and Light: Book I: Foundations of Quantum Optics_, C. W. Gardiner and P. Zoller, [Imperial College Press, London (2014)](https://www.worldscientific.com/worldscibooks/10.1142/p941)\n", + "- Chapter 4 of *Stochastic Methods - a Handbook for the Natural and Social Sciences*, C. W. Gardiner, [4-th edition, Springer, Berlin (2009)](https://www.springer.com/gp/book/9783540707127) \n", + "- *An algorithmic introduction to numerical simulation of stochastic differential equations*, D. J. Higham, [SIAM Review, __43__, 525-546 (2001)](https://epubs.siam.org/doi/abs/10.1137/S0036144500378302)\n", + "- *The Quantum World of Ultracold Atoms and Light: Book I: Foundations of Quantum Optics*, C. W. Gardiner and P. Zoller, [Imperial College Press, London (2014)](https://www.worldscientific.com/worldscibooks/10.1142/p941)\n", "\n", "" ] @@ -317,7 +317,7 @@ "# Langevin\n", "A complimentary approach to Einstein's, with more direct microscipic construction of the dynamics: \n", "\n", - "> \"... _infiniment plus simple_\" than Einstein's treatment. [Langevin] \n", + "> \"... *infiniment plus simple*\" than Einstein's treatment. [Langevin] \n", "\n", "Our aim in these lectures is to show how one can combine the two approaches in the context of quantum mechanics to develop a tractable approach for solving many body quantum dynamics; the approach is also well suited to revealing semi-classical approximations and analytical insights. " ] @@ -552,15 +552,15 @@ ], "metadata": { "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.4.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.4" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.0.3" + "version": "1.4.0" } }, "nbformat": 4, diff --git a/Lecture 2.ipynb b/Lecture 2.ipynb index 90a6e30..3ebe462 100644 --- a/Lecture 2.ipynb +++ b/Lecture 2.ipynb @@ -45,10 +45,10 @@ "- Introduction to phase space mappings for bosons\n", "\n", "References\n", - "- _An algorithmic introduction to numerical simulation of stochastic differential equations_, D. J. Higham, [SIAM Review, __43__, 525-546 (2001)](https://epubs.siam.org/doi/abs/10.1137/S0036144500378302)\n", - "- _The Quantum World of Ultracold Atoms and Light: Book I: Foundations of Quantum Optics_, C. W. Gardiner and P. Zoller, [Imperial College Press, London (2014)](https://www.worldscientific.com/worldscibooks/10.1142/p941)\n", - "- _Quantum Noise - A Handbook of Markovian and Non-Markovian Quantum Stochastic Methods with Applications to Quantum Optics_, C. W. Gardiner, P. Zoller, [Springer-Verlag Berlin Heidelberg (2004)](https://www.springer.com/gp/book/9783540223016)\n", - "- _Quantum Optics_, D. F. Walls, G. J. Milburn, [Springer-Verlag Berlin Heidelberg (2008)](https://www.springer.com/gp/book/9783540285731)\n" + "- *An algorithmic introduction to numerical simulation of stochastic differential equations*, D. J. Higham, [SIAM Review, __43__, 525-546 (2001)](https://epubs.siam.org/doi/abs/10.1137/S0036144500378302)\n", + "- *The Quantum World of Ultracold Atoms and Light: Book I: Foundations of Quantum Optics*, C. W. Gardiner and P. Zoller, [Imperial College Press, London (2014)](https://www.worldscientific.com/worldscibooks/10.1142/p941)\n", + "- *Quantum Noise - A Handbook of Markovian and Non-Markovian Quantum Stochastic Methods with Applications to Quantum Optics*, C. W. Gardiner, P. Zoller, [Springer-Verlag Berlin Heidelberg (2004)](https://www.springer.com/gp/book/9783540223016)\n", + "- *Quantum Optics*, D. F. Walls, G. J. Milburn, [Springer-Verlag Berlin Heidelberg (2008)](https://www.springer.com/gp/book/9783540285731)\n" ] }, { @@ -56,7 +56,7 @@ "metadata": {}, "source": [ "# Wiener paths\n", - "We can sample a discretization of the Wiener process, build up from _Wiener increments_:\n", + "We can sample a discretization of the Wiener process, built up from *Wiener increments*:\n", "\n", "Our first aim is to see how to construct such individual paths, $W(t)$. " ] @@ -169,7 +169,7 @@ "$$(I)\\int_{t_0}^t G(t)dW(t)\\equiv \\lim_{n\\to\\infty}\\sum_{j=1}^n G(t_{j-1})\\Delta W_j\\tag{Ito},$$\n", " \n", " \n", - "where the crucial feature of the Ito form is that the noise is _non-anticipating_: The noises $\\Delta W_j$ and the integrand $G(t_{j-1})$ are independent over each small time increment $\\Delta t$. Here we have introduced the notation $(I)$ to denote an Ito integral.\n", + "where the crucial feature of the Ito form is that the noise is *non-anticipating*: The noises $\\Delta W_j$ and the integrand $G(t_{j-1})$ are independent over each small time increment $\\Delta t$. Here we have introduced the notation $(I)$ to denote an Ito integral.\n", "\n", "This definition is precisely the choice of discretization appearing in the discrete Ito SDE. Provided the SDE converges, it may be written as the ___Ito stochastic differential equation___\n", "\n", @@ -282,7 +282,7 @@ "\n", "$$\\langle u(t)^2\\rangle = \\langle u(0)^2\\rangle e^{-2\\gamma t}+\\frac{f}{2\\gamma}.$$\n", "\n", - "The steady state $\\langle u^2\\rangle_s=f/2\\gamma$ depends crucially on the Ito correction. In this case the result we have found using Ito calculus (a particular choice of discretization of the the Langevin equation) agrees with our formal integration of the Langevin equation (last lecture). There is an interesting reason behind this: for _additive noise_, the result is insensitive to the particular discretization choice. Shortly we will discuss an alternative discretization due to Stratonovich [denoted $(S)$], and you should be aware that for _multiplicative noise_ the two SDEs give different results [yes, there is a way to map between $(I)$ and $(S)$]." + "The steady state $\\langle u^2\\rangle_s=f/2\\gamma$ depends crucially on the Ito correction. In this case the result we have found using Ito calculus (a particular choice of discretization of the the Langevin equation) agrees with our formal integration of the Langevin equation (last lecture). There is an interesting reason behind this: for *additive noise*, the result is insensitive to the particular discretization choice. Shortly we will discuss an alternative discretization due to Stratonovich [denoted $(S)$], and you should be aware that for _multiplicative noise_ the two SDEs give different results [yes, there is a way to map between $(I)$ and $(S)$]." ] }, { @@ -400,7 +400,7 @@ "\n", "$$\\mathbb{1}=\\frac{1}{\\pi}\\int d^2\\alpha \\;|\\alpha\\rangle\\langle\\alpha|$$\n", "\n", - "__Exercise__ If you haven't done this before, prove it by using the number state expansion and evaluating the integral $d^2\\alpha\\equiv d\\alpha_rd\\alpha_i$.\n", + "__Exercise:__ If you haven't done this before, prove it by using the number state expansion and evaluating the integral $d^2\\alpha\\equiv d\\alpha_rd\\alpha_i$.\n", "\n", "Note there is no right eigestate of $a^\\dagger$, however, the action of $a^\\dagger$ on $|\\alpha\\rangle$ can be written in terms of a _differential operator_. \n", "\n", @@ -523,15 +523,15 @@ ], "metadata": { "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.4.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.4" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.0.3" + "version": "1.4.0" } }, "nbformat": 4, diff --git a/Workshop1.ipynb b/Workshop1.ipynb index beb3eb7..676980c 100644 --- a/Workshop1.ipynb +++ b/Workshop1.ipynb @@ -65,7 +65,7 @@ "\n", "- [julialang.org](https://julialang.org)\n", "- [juliaobserver](https://juliaobserver.com)\n", - "- _Julia: A Fresh Approach to Numerical Computing_, Jeff Bezanson, Alan Edelman, Stefan Karpinski and Viral B. Shah [SIAM Review, __59__, 65–98 (2017)](http://julialang.org/publications/julia-fresh-approach-BEKS.pdf)\n", + "- *Julia: A Fresh Approach to Numerical Computing*, Jeff Bezanson, Alan Edelman, Stefan Karpinski and Viral B. Shah [SIAM Review, __59__, 65–98 (2017)](http://julialang.org/publications/julia-fresh-approach-BEKS.pdf)\n", "- [Fun and sometimes useful julia packages](http://amoqt.otago.ac.nz/resources/juliajam)" ] }, @@ -162,16 +162,21 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "How to access Pkg mode in the REPL\n", + "To access Pkg mode in the REPL, type\n", "```julia\n", "julia> ]\n", "```\n", + "which will give you the prompt\n", "\n", + "```julia\n", + "(@v1.4) pkg>\n", + "```\n", "To add a package\n", "\n", "```julia\n", - "(1.0) pkg> add IJulia \n", - "```" + "(@v1.4) pkg> add IJulia \n", + "```\n", + "Then type backspace to go back to REPL mode. " ] }, { @@ -183,13 +188,171 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[32m\u001b[1mStatus\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + " \u001b[90m [537997a7]\u001b[39m\u001b[37m AbstractPlotting v0.10.1\u001b[39m\n", + " \u001b[90m [28f2ccd6]\u001b[39m\u001b[37m ApproxFun v0.11.11\u001b[39m\n", + " \u001b[90m [c52e3926]\u001b[39m\u001b[37m Atom v0.12.10\u001b[39m\n", + " \u001b[90m [6e4b80f9]\u001b[39m\u001b[37m BenchmarkTools v0.5.0\u001b[39m\n", + " \u001b[90m [159f3aea]\u001b[39m\u001b[37m Cairo v1.0.3\u001b[39m\n", + " \u001b[90m [13f3f980]\u001b[39m\u001b[37m CairoMakie v0.2.0\u001b[39m\n", + " \u001b[90m [35d6a980]\u001b[39m\u001b[37m ColorSchemes v3.7.0\u001b[39m\n", + " \u001b[90m [5ae59095]\u001b[39m\u001b[37m Colors v0.11.2\u001b[39m\n", + " \u001b[90m [861a8166]\u001b[39m\u001b[37m Combinatorics v1.0.0\u001b[39m\n", + " \u001b[90m [a81c6b42]\u001b[39m\u001b[37m Compose v0.8.2\u001b[39m\n", + " \u001b[90m [8f4d0f93]\u001b[39m\u001b[37m Conda v1.4.1\u001b[39m\n", + " \u001b[90m [e034abe6]\u001b[39m\u001b[37m Controlz v0.1.3\u001b[39m\n", + " \u001b[90m [a93c6f00]\u001b[39m\u001b[37m DataFrames v0.20.2\u001b[39m\n", + " \u001b[90m [0c46a032]\u001b[39m\u001b[37m DifferentialEquations v6.13.0\u001b[39m\n", + " \u001b[90m [31c24e10]\u001b[39m\u001b[37m Distributions v0.23.2\u001b[39m\n", + " \u001b[90m [e30172f5]\u001b[39m\u001b[37m Documenter v0.24.9\u001b[39m\n", + " \u001b[90m [634d3b9d]\u001b[39m\u001b[37m DrWatson v1.10.2\u001b[39m\n", + " \u001b[90m [7a1cc6ca]\u001b[39m\u001b[37m FFTW v1.2.0\u001b[39m\n", + " \u001b[90m [442a2c76]\u001b[39m\u001b[37m FastGaussQuadrature v0.4.2\u001b[39m\n", + " \u001b[90m [057dd010]\u001b[39m\u001b[37m FastTransforms v0.8.2\u001b[39m\n", + " \u001b[90m [5789e2e9]\u001b[39m\u001b[37m FileIO v1.2.4\u001b[39m\n", + " \u001b[90m [186bb1d3]\u001b[39m\u001b[37m Fontconfig v0.4.0\u001b[39m\n", + " \u001b[90m [f013a474]\u001b[39m\u001b[37m FourierGPE v0.1.0 #master (https://github.com/AshtonSBradley/FourierGPE.jl.git)\u001b[39m\n", + " \u001b[90m [92c85e6c]\u001b[39m\u001b[37m GSL v0.6.0\u001b[39m\n", + " \u001b[90m [19dc6840]\u001b[39m\u001b[37m HCubature v1.4.0\u001b[39m\n", + " \u001b[90m [7073ff75]\u001b[39m\u001b[37m IJulia v1.21.2\u001b[39m\n", + " \u001b[90m [6218d12a]\u001b[39m\u001b[37m ImageMagick v1.1.4\u001b[39m\n", + " \u001b[90m [c601a237]\u001b[39m\u001b[37m Interact v0.10.3\u001b[39m\n", + " \u001b[90m [a98d9a8b]\u001b[39m\u001b[37m Interpolations v0.12.9\u001b[39m\n", + " \u001b[90m [8197267c]\u001b[39m\u001b[37m IntervalSets v0.3.2\u001b[39m\n", + " \u001b[90m [c8e1da08]\u001b[39m\u001b[37m IterTools v1.3.0\u001b[39m\n", + " \u001b[90m [033835bb]\u001b[39m\u001b[37m JLD2 v0.1.12\u001b[39m\n", + " \u001b[90m [e5e0dc1b]\u001b[39m\u001b[37m Juno v0.8.1\u001b[39m\n", + " \u001b[90m [5ab0869b]\u001b[39m\u001b[37m KernelDensity v0.5.1\u001b[39m\n", + " \u001b[90m [b964fa9f]\u001b[39m\u001b[37m LaTeXStrings v1.1.0\u001b[39m\n", + " \u001b[90m [23fbe1c1]\u001b[39m\u001b[37m Latexify v0.13.0\u001b[39m\n", + " \u001b[90m [50d2b5c4]\u001b[39m\u001b[37m Lazy v0.15.0\u001b[39m\n", + " \u001b[90m [b13ce0c6]\u001b[39m\u001b[37m LibSndFile v2.3.0\u001b[39m\n", + " \u001b[90m [33e6dc65]\u001b[39m\u001b[37m MKL v0.2.0 #master (https://github.com/JuliaComputing/MKL.jl)\u001b[39m\n", + " \u001b[90m [ee78f7c6]\u001b[39m\u001b[37m Makie v0.10.0\u001b[39m\n", + " \u001b[90m [5a521ce4]\u001b[39m\u001b[37m MakieLayout v0.6.0\u001b[39m\n", + " \u001b[90m [eff96d63]\u001b[39m\u001b[37m Measurements v2.1.1\u001b[39m\n", + " \u001b[90m [442fdcdd]\u001b[39m\u001b[37m Measures v0.3.1\u001b[39m\n", + " \u001b[90m [a3a9e032]\u001b[39m\u001b[37m NIfTI v0.4.0\u001b[39m\n", + " \u001b[90m [76087f3c]\u001b[39m\u001b[37m NLopt v0.5.1\u001b[39m\n", + " \u001b[90m [1dea7af3]\u001b[39m\u001b[37m OrdinaryDiffEq v5.34.1\u001b[39m\n", + " \u001b[90m [3b7a836e]\u001b[39m\u001b[37m PGFPlots v3.2.1\u001b[39m\n", + " \u001b[90m [8314cec4]\u001b[39m\u001b[37m PGFPlotsX v1.2.6\u001b[39m\n", + " \u001b[90m [dd1b0cdc]\u001b[39m\u001b[37m PGPE v0.1.0 #master (https://github.com/AshtonSBradley/PGPE.jl.git)\u001b[39m\n", + " \u001b[90m [5432bcbf]\u001b[39m\u001b[37m PaddedViews v0.5.4\u001b[39m\n", + " \u001b[90m [65888b18]\u001b[39m\u001b[37m ParameterizedFunctions v5.3.0\u001b[39m\n", + " \u001b[90m [d96e819e]\u001b[39m\u001b[37m Parameters v0.12.0\u001b[39m\n", + " \u001b[90m [0e21426a]\u001b[39m\u001b[37m PhaseSpaceTools v0.1.0 #master (https://github.com/AshtonSBradley/PhaseSpaceTools.jl.git)\u001b[39m\n", + " \u001b[90m [5ad8b20f]\u001b[39m\u001b[37m PhysicalConstants v0.2.0\u001b[39m\n", + " \u001b[90m [91a5bcdd]\u001b[39m\u001b[37m Plots v0.29.9\u001b[39m\n", + " \u001b[90m [27ebfcd6]\u001b[39m\u001b[37m Primes v0.4.0\u001b[39m\n", + " \u001b[90m [438e738f]\u001b[39m\u001b[37m PyCall v1.91.4\u001b[39m\n", + " \u001b[90m [d330b81b]\u001b[39m\u001b[37m PyPlot v2.9.0\u001b[39m\n", + " \u001b[90m [1fd47b50]\u001b[39m\u001b[37m QuadGK v2.3.1\u001b[39m\n", + " \u001b[90m [6e0679c1]\u001b[39m\u001b[37m QuantumOptics v0.7.1\u001b[39m\n", + " \u001b[90m [71555da5]\u001b[39m\u001b[37m Reel v1.3.0\u001b[39m\n", + " \u001b[90m [295af30f]\u001b[39m\u001b[37m Revise v2.6.1\u001b[39m\n", + " \u001b[90m [92719e2c]\u001b[39m\u001b[37m SPGPE v0.1.0 #master (https://github.com/AshtonSBradley/SPGPE.jl.git)\u001b[39m\n", + " \u001b[90m [276daf66]\u001b[39m\u001b[37m SpecialFunctions v0.10.0\u001b[39m\n", + " \u001b[90m [2913bbd2]\u001b[39m\u001b[37m StatsBase v0.33.0\u001b[39m\n", + " \u001b[90m [24249f21]\u001b[39m\u001b[37m SymPy v1.0.7\u001b[39m\n", + " \u001b[90m [37f6aa50]\u001b[39m\u001b[37m TikzPictures v3.1.0\u001b[39m\n", + " \u001b[90m [28d57a85]\u001b[39m\u001b[37m Transducers v0.4.25\u001b[39m\n", + " \u001b[90m [1986cc42]\u001b[39m\u001b[37m Unitful v0.17.0\u001b[39m\n", + " \u001b[90m [b688e990]\u001b[39m\u001b[37m VortexDistributions v0.0.0 #master (https://github.com/AshtonSBradley/VortexDistributions.jl.git)\u001b[39m\n", + " \u001b[90m [8149f6b0]\u001b[39m\u001b[37m WAV v1.0.3\u001b[39m\n", + " \u001b[90m [44d3d7a6]\u001b[39m\u001b[37m Weave v0.9.4\u001b[39m\n", + " \u001b[90m [0f1e0344]\u001b[39m\u001b[37m WebIO v0.8.11\u001b[39m\n", + " \u001b[90m [c4c688b2]\u001b[39m\u001b[37m jlpkg v1.1.3\u001b[39m\n", + " \u001b[90m [37e2e46d]\u001b[39m\u001b[37m LinearAlgebra \u001b[39m\n", + " \u001b[90m [de0858da]\u001b[39m\u001b[37m Printf \u001b[39m\n", + " \u001b[90m [2f01184e]\u001b[39m\u001b[37m SparseArrays \u001b[39m\n", + " \u001b[90m [10745b16]\u001b[39m\u001b[37m Statistics \u001b[39m\n" + ] + } + ], "source": [ - "#how to access Pkg commands in jupyter\n", + "#how to execute Pkg commands in jupyter\n", "using Pkg\n", - "pkg\"status\" " + "pkg\"status\"" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Project.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n", + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.4/Manifest.toml`\n", + "\u001b[90m [no changes]\u001b[39m\n" + ] + } + ], + "source": [ + "# let's add all packages for these workshops\n", + "pkgs = [:Plots,:DifferentialEquations,:GSL, :SpecialFunctions,\n", + " :Statistics, :Plots, :LaTeXStrings, :Revise,:SymPy,:BenchmarkTools]\n", + "\n", + "for pkg in pkgs\n", + " Pkg.add(String(pkg))\n", + "end" ] }, { @@ -218,7 +381,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "You should now have access to the lectures as jupyter notebooks (no? let me know)." + "You should now have access to the lectures as jupyter notebooks." ] }, { @@ -231,7 +394,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 35, "metadata": {}, "outputs": [ { @@ -240,50 +403,28 @@ "Plots.GRBackend()" ] }, - "execution_count": 5, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "using Plots\n", - "# set defaults for GR backend\n", - "gr(titlefontsize=12,grid=false,legend=false,size=(600,200))" + "gr(titlefontsize=12,grid=false,legend=false,size=(600,200)) # set defaults for GR backend" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "linspace (generic function with 1 method)" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# let's add one useful function (more on this later)\n", - "linspace(a,b,n) = LinRange(a,b,n) |> collect" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, "outputs": [], "source": [ - "x = linspace(0,10,500);" + "x = LinRange(0,10,500);" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -292,166 +433,161 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.0\n", + "\n", + "0.0\n", "\n", - "\n", - "2.5\n", + "\n", + "2.5\n", "\n", - "\n", - "5.0\n", + "\n", + "5.0\n", "\n", - "\n", - "7.5\n", + "\n", + "7.5\n", "\n", - "\n", - "10.0\n", + "\n", + "10.0\n", "\n", - "\n", - "-1.0\n", + "\n", + "-1.0\n", "\n", - "\n", - "-0.5\n", + "\n", + "-0.5\n", "\n", - "\n", - "0.0\n", + "\n", + "0.0\n", "\n", - "\n", - "0.5\n", + "\n", + "0.5\n", "\n", - "\n", - "1.0\n", + "\n", + "1.0\n", "\n", - "\n", - "x\n", + "\n", + "x\n", "\n", - "\n", - "sin(x)\n", + "\n", + "sin(x)\n", "\n", - "\n", "\n" ] }, - "execution_count": 4, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "#first plot will take a few seconds\n", + "# first plot will take a few seconds\n", "plot(x,sin.(x)) \n", "xlabel!(\"x\");ylabel!(\"sin(x)\")" ] @@ -461,12 +597,12 @@ "metadata": {}, "source": [ "- Dot-calls: (large) extension of Matlab's local array operation syntax.\n", - "- `xlabel!()`: `!` at the end of the function name is a julia convention that declares: \"modifies the input\", also referred to as a _mutating function_; here the input is the current plot which doesn't neet to be declared. " + "- `xlabel!()`: `!` at the end of the function name is a julia convention that declares: \"modifies the input\", also referred to as a ___mutating function___; here the input is the current plot which doesn't neet to be declared. " ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -475,330 +611,322 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.0\n", + "\n", + "0.0\n", "\n", - "\n", - "2.5\n", + "\n", + "2.5\n", "\n", - "\n", - "5.0\n", + "\n", + "5.0\n", "\n", - "\n", - "7.5\n", + "\n", + "7.5\n", "\n", - "\n", - "10.0\n", + "\n", + "10.0\n", "\n", - "\n", - "-1.0\n", + "\n", + "-1.0\n", "\n", - "\n", - "-0.5\n", + "\n", + "-0.5\n", "\n", - "\n", - "0.0\n", + "\n", + "0.0\n", "\n", - "\n", - "0.5\n", + "\n", + "0.5\n", "\n", - "\n", - "1.0\n", + "\n", + "1.0\n", "\n", - "\n", - "x\n", + "\n", + "x\n", "\n", - "\n", - "sin(x)\n", + "\n", + "sin(x)\n", "\n", - "\n", - "\n", - "\n", + "\n", "\n" ] }, - "execution_count": 6, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "plot!(x,cos.(x).^2,fillrange=[zero(x) cos.(x).^2],\n", - " c=:blue,alpha=0.3)\n", - "\n", - "# line continuation: just break off, mid-command" + "plot!(x,cos.(x).^2,c=:blue,fill=(0,.3,:red))" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -807,15 +935,25 @@ "text": [ "2\n" ] + }, + { + "data": { + "text/plain": [ + "-2.185039863261519" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "z=2; println(z) #more than one command on same line" + "z=2; println(z);tan(z) #more than one command on same line" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -841,7 +979,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -850,7 +988,7 @@ "text": [ "from julia you can also easily use libraries from \n", " Python, R, C/Fortran, C++, and Java. \n", - " Did I mention that I like π = 3.1415926535897... ?\n" + " Did I mention that I like π ?\n" ] } ], @@ -869,18 +1007,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 14, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "┌ Info: Recompiling stale cache file /Users/abradley/.julia/compiled/v1.0/GSL/cuZHp.ji for GSL [92c85e6c-cbff-5e0c-80f7-495c94daaecd]\n", - "└ @ Base loading.jl:1190\n" - ] - } - ], + "outputs": [], "source": [ "#load some wrapper functions that call GSL\n", "using GSL" @@ -888,7 +1017,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -897,7 +1026,7 @@ "0.9776262465382961" ] }, - "execution_count": 11, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -915,25 +1044,16 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 16, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "┌ Info: Recompiling stale cache file /Users/abradley/.julia/compiled/v1.0/SpecialFunctions/78gOt.ji for SpecialFunctions [276daf66-3868-5448-9aa4-cd146d93841b]\n", - "└ @ Base loading.jl:1190\n" - ] - } - ], + "outputs": [], "source": [ "using SpecialFunctions" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -942,7 +1062,7 @@ "1.2020569031595951" ] }, - "execution_count": 13, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -953,7 +1073,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -962,7 +1082,7 @@ "0.7980219851462758 - 0.11374430805293854im" ] }, - "execution_count": 14, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -973,7 +1093,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -982,7 +1102,7 @@ "Complex{Float64}" ] }, - "execution_count": 15, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -1000,15 +1120,15 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "┌ Info: Recompiling stale cache file /Users/abradley/.julia/compiled/v1.0/PyCall/GkzkC.ji for PyCall [438e738f-606a-5dbb-bf0a-cddfbfd45ab0]\n", - "└ @ Base loading.jl:1190\n" + "┌ Info: Precompiling PyCall [438e738f-606a-5dbb-bf0a-cddfbfd45ab0]\n", + "└ @ Base loading.jl:1260\n" ] } ], @@ -1018,7 +1138,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -1027,14 +1147,14 @@ "0.0" ] }, - "execution_count": 17, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "@pyimport math\n", - "math.sin(math.pi / 4) - sin(pi / 4) # returns 0.0" + "pymath = pyimport(\"math\")\n", + "pymath.sin(pymath.pi / 4) - sin(pi / 4) # returns 0.0" ] }, { @@ -1080,7 +1200,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -1089,7 +1209,7 @@ "35.6" ] }, - "execution_count": 18, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -1100,7 +1220,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -1109,7 +1229,7 @@ "25" ] }, - "execution_count": 19, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -1120,7 +1240,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -1129,7 +1249,7 @@ "1.0545718e-34" ] }, - "execution_count": 20, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -1140,7 +1260,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -1149,7 +1269,7 @@ "3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405131996" ] }, - "execution_count": 21, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -2095,7 +2215,7 @@ "source": [ "# a for loop with string inerpolation\n", "for j in n\n", - " println(\"sum up to j: j = $j; julia gives $(sum(n[1:j])); Euler gives $(sumton(j))\")\n", + " println(\"sum up to j: j = $j; julia gives $(sum(n[1:j])); Gauss gives $(sumton(j))\")\n", "end" ] }, @@ -2116,7 +2236,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 28, "metadata": {}, "outputs": [ { @@ -2125,7 +2245,7 @@ "geometric (generic function with 1 method)" ] }, - "execution_count": 53, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -2160,7 +2280,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 29, "metadata": {}, "outputs": [ { @@ -2169,7 +2289,7 @@ "geomExact (generic function with 1 method)" ] }, - "execution_count": 54, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -2196,14 +2316,14 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 0.011034 seconds (14.05 k allocations: 748.988 KiB)\n" + " 0.000017 seconds\n" ] }, { @@ -2212,7 +2332,7 @@ "1.1111111111111112" ] }, - "execution_count": 55, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -2230,14 +2350,14 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 0.000033 seconds (5 allocations: 176 bytes)\n" + " 0.000019 seconds\n" ] }, { @@ -2246,7 +2366,7 @@ "1.1111111111111112" ] }, - "execution_count": 56, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -2257,25 +2377,17 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 32, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - " 21.047 μs (0 allocations: 0 bytes)\n" + "ename": "LoadError", + "evalue": "UndefVarError: @btime not defined", + "output_type": "error", + "traceback": [ + "UndefVarError: @btime not defined", + "" ] - }, - { - "data": { - "text/plain": [ - "1.1111111111111112" - ] - }, - "execution_count": 57, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ @@ -2425,364 +2537,11 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 38, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "339 methods for generic function *:" - ], - "text/plain": [ - "# 339 methods for generic function \"*\":\n", - "[1] *(x::Bool, z::Complex{Bool}) in Base at complex.jl:281\n", - "[2] *(x::Bool, y::Bool) in Base at bool.jl:106\n", - "[3] *(x::Bool, y::T) where T<:AbstractFloat in Base at bool.jl:118\n", - "[4] *(x::Bool, z::Complex) in Base at complex.jl:288\n", - "[5] *(x::Bool, y::AbstractIrrational) in Base at irrationals.jl:135\n", - "[6] *(a::Float16, b::Float16) in Base at float.jl:392\n", - "[7] *(x::Float32, y::Float32) in Base at float.jl:398\n", - "[8] *(x::Float64, y::Float64) in Base at float.jl:399\n", - "[9] *(z::Complex{Bool}, x::Bool) in Base at complex.jl:282\n", - "[10] *(z::Complex{Bool}, x::Real) in Base at complex.jl:300\n", - "[11] *(::Missing, ::Missing) in Base at missing.jl:92\n", - "[12] *(::Missing, ::Number) in Base at missing.jl:93\n", - "[13] *(d::Missing, x::AbstractString) in Base at missing.jl:139\n", - "[14] *(this::Base.Grisu.Float, other::Base.Grisu.Float) in Base.Grisu at grisu/float.jl:140\n", - "[15] *(c::BigInt, x::BigFloat) in Base.MPFR at mpfr.jl:353\n", - "[16] *(a::BigInt, b::BigInt, c::BigInt, d::BigInt, e::BigInt) in Base.GMP at gmp.jl:443\n", - "[17] *(a::BigInt, b::BigInt, c::BigInt, d::BigInt) in Base.GMP at gmp.jl:442\n", - "[18] *(a::BigInt, b::BigInt, c::BigInt) in Base.GMP at gmp.jl:441\n", - "[19] *(x::BigInt, y::BigInt) in Base.GMP at gmp.jl:412\n", - "[20] *(x::BigInt, c::Union{UInt16, UInt32, UInt64, UInt8}) in Base.GMP at gmp.jl:460\n", - "[21] *(x::BigInt, c::Union{Int16, Int32, Int64, Int8}) in Base.GMP at gmp.jl:462\n", - "[22] *(a::BigFloat, b::BigFloat, c::BigFloat, d::BigFloat, e::BigFloat) in Base.MPFR at mpfr.jl:503\n", - "[23] *(a::BigFloat, b::BigFloat, c::BigFloat, d::BigFloat) in Base.MPFR at mpfr.jl:496\n", - "[24] *(a::BigFloat, b::BigFloat, c::BigFloat) in Base.MPFR at mpfr.jl:490\n", - "[25] *(x::BigFloat, c::BigInt) in Base.MPFR at mpfr.jl:349\n", - "[26] *(x::BigFloat, y::BigFloat) in Base.MPFR at mpfr.jl:318\n", - "[27] *(x::BigFloat, c::Union{UInt16, UInt32, UInt64, UInt8}) in Base.MPFR at mpfr.jl:325\n", - "[28] *(x::BigFloat, c::Union{Int16, Int32, Int64, Int8}) in Base.MPFR at mpfr.jl:333\n", - "[29] *(x::BigFloat, c::Union{Float16, Float32, Float64}) in Base.MPFR at mpfr.jl:341\n", - "[30] *(B::BitArray{2}, J::LinearAlgebra.UniformScaling) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/uniformscaling.jl:145\n", - "[31] *(y::AbstractFloat, x::Bool) in Base at bool.jl:120\n", - "[32] *(x::T, y::T) where T<:Union{Int128, UInt128} in Base at int.jl:788\n", - "[33] *(x::T, y::T) where T<:Union{Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8} in Base at int.jl:54\n", - "[34] *(c::Union{UInt16, UInt32, UInt64, UInt8}, x::BigInt) in Base.GMP at gmp.jl:461\n", - "[35] *(c::Union{Int16, Int32, Int64, Int8}, x::BigInt) in Base.GMP at gmp.jl:463\n", - "[36] *(a::Integer, b::Integer) in Base at int.jl:800\n", - "[37] *(x::Real, r::StepRangeLen{#s57,#s56,S} where S where #s56<:Base.TwicePrecision where #s57<:Real) in Base at twiceprecision.jl:479\n", - "[38] *(z::Complex, w::Complex) in Base at complex.jl:268\n", - "[39] *(z::Complex, x::Bool) in Base at complex.jl:289\n", - "[40] *(x::Real, z::Complex{Bool}) in Base at complex.jl:299\n", - "[41] *(x::Real, z::Complex) in Base at complex.jl:311\n", - "[42] *(z::Complex, x::Real) in Base at complex.jl:312\n", - "[43] *(x::Rational, y::Rational) in Base at rational.jl:259\n", - "[44] *(a::Integer, index::CartesianIndex{N}) where N in Base.IteratorsMD at multidimensional.jl:115\n", - "[45] *(c::Union{UInt16, UInt32, UInt64, UInt8}, x::BigFloat) in Base.MPFR at mpfr.jl:329\n", - "[46] *(c::Union{Int16, Int32, Int64, Int8}, x::BigFloat) in Base.MPFR at mpfr.jl:337\n", - "[47] *(c::Union{Float16, Float32, Float64}, x::BigFloat) in Base.MPFR at mpfr.jl:345\n", - "[48] *(x::AbstractIrrational, y::AbstractIrrational) in Base at irrationals.jl:133\n", - "[49] *(y::Real, x::Dates.Period) in Dates at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/Dates/src/periods.jl:93\n", - "[50] *(x::Number) in Base at operators.jl:478\n", - "[51] *(x::T, y::T) where T<:Number in Base at promotion.jl:412\n", - "[52] *(x::Number, y::Number) in Base at promotion.jl:314\n", - "[53] *(x::Base.TwicePrecision{#s57} where #s57<:Union{Float16, Float32, Float64}, v::Integer) in Base at twiceprecision.jl:286\n", - "[54] *(x::Base.TwicePrecision, v::Number) in Base at twiceprecision.jl:282\n", - "[55] *(v::Number, x::Base.TwicePrecision) in Base at twiceprecision.jl:291\n", - "[56] *(x::Base.TwicePrecision{T}, y::Base.TwicePrecision{T}) where T in Base at twiceprecision.jl:294\n", - "[57] *(x::Base.TwicePrecision, y::Base.TwicePrecision) in Base at twiceprecision.jl:298\n", - "[58] *(r::StepRangeLen{#s57,#s56,S} where S where #s56<:Base.TwicePrecision where #s57<:Real, x::Real) in Base at twiceprecision.jl:481\n", - "[59] *(X::Union{DenseArray{P,N}, ReinterpretArray{P,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{P,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{P,N,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where N, y::Real) where P<:Dates.Period in Dates at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/Dates/src/periods.jl:98\n", - "[60] *(u::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, v::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:215\n", - "[61] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1967\n", - "[62] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:862\n", - "[63] *(v::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1954\n", - "[64] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:858\n", - "[65] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(AbstractArray{T,1} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2484\n", - "[66] *(adjQ::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractQ where #s576, adjB::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:631\n", - "[67] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s576, adjQ::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractQ where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:734\n", - "[68] *(u::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractQ where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:722\n", - "[69] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.LQPackedQ where #s576, adjB::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:183\n", - "[70] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s576, adjQ::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.LQPackedQ where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:220\n", - "[71] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, adjB::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:433\n", - "[72] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, adjB::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:434\n", - "[73] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, adjB::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:435\n", - "[74] *(adjD::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.Diagonal where #s576, adjA::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:293\n", - "[75] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:839\n", - "[76] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, adjD::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.Diagonal where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:292\n", - "[77] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(AbstractArray{T,1} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:848\n", - "[78] *(D::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.Diagonal where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.Diagonal where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:249\n", - "[79] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{Tv,Ti} where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:SparseArrays.SparseMatrixCSC{Tv,Ti} where #s574) where {Tv, Ti} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:146\n", - "[80] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TvA,TiA} where #s576, adjB::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:SparseArrays.SparseMatrixCSC{TvB,TiB} where #s574) where {TvA, TiA, TvB, TiB} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:19\n", - "[81] *(u::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, v::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:208\n", - "[82] *(u::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, v::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:219\n", - "[83] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:Union{DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where #s576, x::Union{DenseArray{S,1}, ReinterpretArray{S,1,S1,A} where S1 where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{S,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{S,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {T<:Union{Complex{Float32}, Complex{Float64}, Float32, Float64}, S} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:98\n", - "[84] *(xformA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.UpperTriangular where #s576, B::LinearAlgebra.LowerTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1647\n", - "[85] *(xformA::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.UnitUpperTriangular where #s574, B::LinearAlgebra.LowerTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1656\n", - "[86] *(xformA::LinearAlgebra.Adjoint{#s572,#s571} where #s571<:LinearAlgebra.LowerTriangular where #s572, B::LinearAlgebra.UpperTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1665\n", - "[87] *(xformA::LinearAlgebra.Adjoint{#s570,#s569} where #s569<:LinearAlgebra.UnitLowerTriangular where #s570, B::LinearAlgebra.UpperTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1674\n", - "[88] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1765\n", - "[89] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(AbstractArray{T,2} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1968\n", - "[90] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2481\n", - "[91] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:859\n", - "[92] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(AbstractArray{T,2} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2485\n", - "[93] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(AbstractArray{T,1} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2486\n", - "[94] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:213\n", - "[95] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractRotation where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:392\n", - "[96] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1805\n", - "[97] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:440\n", - "[98] *(v::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, A::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1952\n", - "[99] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:863\n", - "[100] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2491\n", - "[101] *(adjQ::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractQ where #s576, B::Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:617\n", - "[102] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s576, Q::LinearAlgebra.AbstractQ) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:727\n", - "[103] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.LQPackedQ where #s576, B::Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:163\n", - "[104] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s576, Q::LinearAlgebra.LQPackedQ) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:251\n", - "[105] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:836\n", - "[106] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(AbstractArray{T,2} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:849\n", - "[107] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(AbstractArray{T,1} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:850\n", - "[108] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(AbstractArray{T,2} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:851\n", - "[109] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:289\n", - "[110] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractRotation where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:394\n", - "[111] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:425\n", - "[112] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:841\n", - "[113] *(D::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.Diagonal where #s576, B::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:212\n", - "[114] *(x::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:508\n", - "[115] *(x::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, D::LinearAlgebra.Diagonal, y::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:509\n", - "[116] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(LinearAlgebra.Bidiagonal{T,V} where V<:AbstractArray{T,1}) where #s576, B::AbstractArray{T,1}) where T in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/bidiag.jl:496\n", - "[117] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractRotation where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:387\n", - "[118] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC where #s576, x::SparseArrays.AbstractSparseArray{Tv,Ti,1} where Ti where Tv) in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/sparsevector.jl:1676\n", - "[119] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{Tv,Ti} where #s576, B::SparseArrays.SparseMatrixCSC{Tv,Ti}) where {Tv, Ti} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:145\n", - "[120] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TvA,TiA} where #s576, B::SparseArrays.SparseMatrixCSC{TvB,TiB}) where {TvA, TiA, TvB, TiB} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:15\n", - "[121] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TA,S} where #s576, x::Union{DenseArray{Tx,1}, ReinterpretArray{Tx,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{Tx,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{Tx,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {TA, S, Tx} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:77\n", - "[122] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TA,S} where #s576, B::Union{DenseArray{Tx,2}, ReinterpretArray{Tx,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{Tx,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{Tx,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {TA, S, Tx} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:79\n", - "[123] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SuiteSparse.CHOLMOD.Sparse where #s576, B::SuiteSparse.CHOLMOD.Sparse) in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1332\n", - "[124] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SuiteSparse.CHOLMOD.Sparse where #s576, B::SuiteSparse.CHOLMOD.Dense) in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1341\n", - "[125] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SuiteSparse.CHOLMOD.Sparse where #s576, B::Union{Array{T,1}, Array{T,2}} where T) in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1343\n", - "[126] *(u::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, v::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:197\n", - "[127] *(u::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T), v::AbstractArray{T,1}) where T<:Real in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:198\n", - "[128] *(u::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, v::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:217\n", - "[129] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1970\n", - "[130] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:865\n", - "[131] *(v::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1955\n", - "[132] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:861\n", - "[133] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(AbstractArray{T,1} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2487\n", - "[134] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, transB::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:430\n", - "[135] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, transB::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:431\n", - "[136] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, transB::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:432\n", - "[137] *(transD::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.Diagonal where #s576, transA::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:291\n", - "[138] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:845\n", - "[139] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, transD::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.Diagonal where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:290\n", - "[140] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(AbstractArray{T,1} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:854\n", - "[141] *(D::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.Diagonal where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.Diagonal where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:251\n", - "[142] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{Tv,Ti} where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:SparseArrays.SparseMatrixCSC{Tv,Ti} where #s574) where {Tv, Ti} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:147\n", - "[143] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TvA,TiA} where #s576, transB::LinearAlgebra.Transpose{#s574,#s573} where #s573<:SparseArrays.SparseMatrixCSC{TvB,TiB} where #s574) where {TvA, TiA, TvB, TiB} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:17\n", - "[144] *(u::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, v::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:209\n", - "[145] *(u::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, v::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:213\n", - "[146] *(transx::LinearAlgebra.Transpose{#s576,#s575} where #s575<:Union{DenseArray{T,1}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where #s576, y::Union{DenseArray{T,1}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where T<:Union{Complex{Float32}, Complex{Float64}} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:39\n", - "[147] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:Union{DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where #s576, x::Union{DenseArray{S,1}, ReinterpretArray{S,1,S1,A} where S1 where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{S,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{S,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {T<:Union{Complex{Float32}, Complex{Float64}, Float32, Float64}, S} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:79\n", - "[148] *(xformA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.UpperTriangular where #s576, B::LinearAlgebra.LowerTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1647\n", - "[149] *(xformA::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.UnitUpperTriangular where #s574, B::LinearAlgebra.LowerTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1656\n", - "[150] *(xformA::LinearAlgebra.Transpose{#s572,#s571} where #s571<:LinearAlgebra.LowerTriangular where #s572, B::LinearAlgebra.UpperTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1665\n", - "[151] *(xformA::LinearAlgebra.Transpose{#s570,#s569} where #s569<:LinearAlgebra.UnitLowerTriangular where #s570, B::LinearAlgebra.UpperTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1674\n", - "[152] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1772\n", - "[153] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(AbstractArray{T,2} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1971\n", - "[154] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2482\n", - "[155] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:860\n", - "[156] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(AbstractArray{T,1} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2488\n", - "[157] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(AbstractArray{T,2} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2489\n", - "[158] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:222\n", - "[159] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractRotation where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:393\n", - "[160] *(transA::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574, B::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1813\n", - "[161] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:438\n", - "[162] *(v::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, A::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1953\n", - "[163] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:864\n", - "[164] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2493\n", - "[165] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:837\n", - "[166] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(AbstractArray{T,1} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:852\n", - "[167] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(AbstractArray{T,2} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:853\n", - "[168] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(AbstractArray{T,2} where T) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:855\n", - "[169] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:287\n", - "[170] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractRotation where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:395\n", - "[171] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:421\n", - "[172] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:843\n", - "[173] *(D::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.Diagonal where #s576, B::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:221\n", - "[174] *(x::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:511\n", - "[175] *(x::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, D::LinearAlgebra.Diagonal, y::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:512\n", - "[176] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractRotation where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:389\n", - "[177] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:Union{DenseArray{Ta,2}, ReinterpretArray{Ta,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{Ta,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{Ta,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where #s576, x::SparseArrays.AbstractSparseArray{Tx,Ti,1} where Ti) where {Ta, Tx} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/sparsevector.jl:1519\n", - "[178] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC where #s576, x::SparseArrays.AbstractSparseArray{Tv,Ti,1} where Ti where Tv) in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/sparsevector.jl:1673\n", - "[179] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{Tv,Ti} where #s576, B::SparseArrays.SparseMatrixCSC{Tv,Ti}) where {Tv, Ti} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:144\n", - "[180] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TvA,TiA} where #s576, B::SparseArrays.SparseMatrixCSC{TvB,TiB}) where {TvA, TiA, TvB, TiB} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:13\n", - "[181] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TA,S} where #s576, x::Union{DenseArray{Tx,1}, ReinterpretArray{Tx,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{Tx,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{Tx,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {TA, S, Tx} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:103\n", - "[182] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TA,S} where #s576, B::Union{DenseArray{Tx,2}, ReinterpretArray{Tx,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{Tx,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{Tx,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {TA, S, Tx} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:105\n", - "[183] *(u::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, v::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:200\n", - "[184] *(A::Union{DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}, x::Union{DenseArray{S,1}, ReinterpretArray{S,1,S1,A} where S1 where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{S,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{S,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {T<:Union{Complex{Float32}, Complex{Float64}, Float32, Float64}, S} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:45\n", - "[185] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:AbstractArray{T,2} where #s576, x::AbstractArray{S,1}) where {T, S} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:84\n", - "[186] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:AbstractArray{T,2} where #s576, x::AbstractArray{S,1}) where {T, S} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:103\n", - "[187] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576, B::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1805\n", - "[188] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576, B::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:426\n", - "[189] *(x::LinearAlgebra.Adjoint{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, A::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:122\n", - "[190] *(transA::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574, B::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1813\n", - "[191] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576, B::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:422\n", - "[192] *(x::LinearAlgebra.Transpose{T,#s576} where #s576<:(AbstractArray{T,1} where T) where T, A::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:123\n", - "[193] *(A::LinearAlgebra.SymTridiagonal, B::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/tridiag.jl:160\n", - "[194] *(A::LinearAlgebra.Tridiagonal, B::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/tridiag.jl:614\n", - "[195] *(A::LinearAlgebra.UpperTriangular, x::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:670\n", - "[196] *(A::LinearAlgebra.UnitUpperTriangular, x::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:673\n", - "[197] *(A::LinearAlgebra.LowerTriangular, x::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:670\n", - "[198] *(A::LinearAlgebra.UnitLowerTriangular, x::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:673\n", - "[199] *(A::Union{SymTridiagonal, Tridiagonal}, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1602\n", - "[200] *(A::LinearAlgebra.LowerTriangular, B::LinearAlgebra.LowerTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1607\n", - "[201] *(A::LinearAlgebra.UnitLowerTriangular, B::LinearAlgebra.LowerTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1615\n", - "[202] *(A::LinearAlgebra.UpperTriangular, B::LinearAlgebra.UpperTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1623\n", - "[203] *(A::LinearAlgebra.UnitUpperTriangular, B::LinearAlgebra.UpperTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1631\n", - "[204] *(A::LinearAlgebra.LowerTriangular, xformB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.UpperTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1720\n", - "[205] *(A::LinearAlgebra.LowerTriangular, xformB::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.UnitUpperTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1729\n", - "[206] *(A::LinearAlgebra.UpperTriangular, xformB::LinearAlgebra.Adjoint{#s572,#s571} where #s571<:LinearAlgebra.LowerTriangular where #s572) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1738\n", - "[207] *(A::LinearAlgebra.UpperTriangular, xformB::LinearAlgebra.Adjoint{#s570,#s569} where #s569<:LinearAlgebra.UnitLowerTriangular where #s570) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1747\n", - "[208] *(A::LinearAlgebra.LowerTriangular, xformB::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.UpperTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1720\n", - "[209] *(A::LinearAlgebra.LowerTriangular, xformB::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.UnitUpperTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1729\n", - "[210] *(A::LinearAlgebra.UpperTriangular, xformB::LinearAlgebra.Transpose{#s572,#s571} where #s571<:LinearAlgebra.LowerTriangular where #s572) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1738\n", - "[211] *(A::LinearAlgebra.UpperTriangular, xformB::LinearAlgebra.Transpose{#s570,#s569} where #s569<:LinearAlgebra.UnitLowerTriangular where #s570) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1747\n", - "[212] *(A::LinearAlgebra.AbstractTriangular, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1759\n", - "[213] *(A::LinearAlgebra.AbstractTriangular, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1780\n", - "[214] *(A::LinearAlgebra.AbstractTriangular, transB::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1787\n", - "[215] *(A::LinearAlgebra.AbstractTriangular, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:441\n", - "[216] *(A::LinearAlgebra.AbstractTriangular, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:Union{QRCompactWYQ, QRPackedQ} where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/special.jl:132\n", - "[217] *(A::LinearAlgebra.AbstractTriangular, B::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1965\n", - "[218] *(A::LinearAlgebra.AbstractTriangular, transB::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:439\n", - "[219] *(A::LinearAlgebra.AbstractTriangular, B::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1966\n", - "[220] *(A::LinearAlgebra.AbstractTriangular, B::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2478\n", - "[221] *(A::LinearAlgebra.AbstractTriangular, B::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,1} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2479\n", - "[222] *(A::LinearAlgebra.AbstractTriangular, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:161\n", - "[223] *(A::LinearAlgebra.AbstractTriangular, B::Union{Bidiagonal, SymTridiagonal, Tridiagonal}) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/bidiag.jl:491\n", - "[224] *(A::LinearAlgebra.AbstractTriangular, B::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractRotation where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:398\n", - "[225] *(A::LinearAlgebra.AbstractTriangular, B::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1798\n", - "[226] *(A::LinearAlgebra.AbstractTriangular, B::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1798\n", - "[227] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1963\n", - "[228] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1964\n", - "[229] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1969\n", - "[230] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1972\n", - "[231] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2492\n", - "[232] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractTriangular where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:2494\n", - "[233] *(A::LinearAlgebra.AbstractQ, b::Union{DenseArray{T,1}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:557\n", - "[234] *(A::LinearAlgebra.AbstractQ, B::Union{DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:569\n", - "[235] *(Q::LinearAlgebra.AbstractQ, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:624\n", - "[236] *(A::Union{DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T, Q::LinearAlgebra.AbstractQ) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:669\n", - "[237] *(A::Union{DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractQ where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/qr.jl:709\n", - "[238] *(A::LinearAlgebra.LQPackedQ, B::Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:152\n", - "[239] *(A::LinearAlgebra.LQPackedQ, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:176\n", - "[240] *(A::Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T, adjQ::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.LQPackedQ where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:215\n", - "[241] *(A::Union{DenseArray{T,1}, DenseArray{T,2}, ReinterpretArray{T,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{T,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{T,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}} where T, Q::LinearAlgebra.LQPackedQ) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:239\n", - "[242] *(A::Union{Hermitian{T,S}, Symmetric{T,S}} where S where T, B::Union{Hermitian{T,S}, Symmetric{T,S}} where S where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:417\n", - "[243] *(A::LinearAlgebra.Symmetric, x::Bool) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:445\n", - "[244] *(A::LinearAlgebra.Symmetric, x::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:447\n", - "[245] *(A::LinearAlgebra.Hermitian, x::Bool) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:445\n", - "[246] *(A::LinearAlgebra.Hermitian, x::Real) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:447\n", - "[247] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:840\n", - "[248] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:842\n", - "[249] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:844\n", - "[250] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Transpose{#s574,#s573} where #s573<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:846\n", - "[251] *(D::LinearAlgebra.Diagonal, x::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:156\n", - "[252] *(Da::LinearAlgebra.Diagonal, Db::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:158\n", - "[253] *(D::LinearAlgebra.Diagonal, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:162\n", - "[254] *(D::LinearAlgebra.Diagonal, B::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.Diagonal where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:230\n", - "[255] *(D::LinearAlgebra.Diagonal, B::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:231\n", - "[256] *(D::LinearAlgebra.Diagonal, adjQ::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:Union{QRCompactWYQ, QRPackedQ} where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:232\n", - "[257] *(A::LinearAlgebra.Diagonal, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:288\n", - "[258] *(D::LinearAlgebra.Diagonal, adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:234\n", - "[259] *(D::LinearAlgebra.Diagonal, B::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.Diagonal where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:240\n", - "[260] *(D::LinearAlgebra.Diagonal, B::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:241\n", - "[261] *(A::LinearAlgebra.Diagonal, transB::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:286\n", - "[262] *(D::LinearAlgebra.Diagonal, transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:243\n", - "[263] *(A::LinearAlgebra.Diagonal, B::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractRotation where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:397\n", - "[264] *(D::LinearAlgebra.Diagonal, A::SparseArrays.SparseMatrixCSC) in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:130\n", - "[265] *(D::LinearAlgebra.Diagonal, V::AbstractArray{T,1} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:159\n", - "[266] *(D::LinearAlgebra.Diagonal, A::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:166\n", - "[267] *(adjA::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:215\n", - "[268] *(transA::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:224\n", - "[269] *(A::LinearAlgebra.Bidiagonal, B::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/bidiag.jl:320\n", - "[270] *(A::Union{Bidiagonal, SymTridiagonal, Tridiagonal}, B::Union{Bidiagonal, SymTridiagonal, Tridiagonal}) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/bidiag.jl:492\n", - "[271] *(A::LinearAlgebra.Bidiagonal{T,V} where V<:AbstractArray{T,1}, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:AbstractArray{T,1} where #s576) where T in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/bidiag.jl:497\n", - "[272] *(A::LinearAlgebra.Bidiagonal{T,V} where V<:AbstractArray{T,1}, B::AbstractArray{T,1}) where T in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/bidiag.jl:495\n", - "[273] *(A::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractRotation where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:388\n", - "[274] *(A::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576, B::LinearAlgebra.Adjoint{#s574,#s573} where #s573<:LinearAlgebra.AbstractRotation where #s574) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:390\n", - "[275] *(x::Union{SubArray{T,1,#s576,Tuple{Slice{OneTo{Int64}},Int64},false} where #s576<:SparseMatrixCSC, SparseVector{T,Ti} where Ti<:Integer} where T, a::Number) in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/sparsevector.jl:1393\n", - "[276] *(X::Union{DenseArray{TX,2}, ReinterpretArray{TX,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{TX,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{TX,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}, A::SparseArrays.SparseMatrixCSC{TvA,TiA}) where {TX, TvA, TiA} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:118\n", - "[277] *(A::Union{DenseArray{Ta,2}, ReinterpretArray{Ta,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{Ta,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{Ta,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}, x::SparseArrays.AbstractSparseArray{Tx,Ti,1} where Ti) where {Ta, Tx} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/sparsevector.jl:1480\n", - "[278] *(A::SparseArrays.SparseMatrixCSC, x::SparseArrays.AbstractSparseArray{Tv,Ti,1} where Ti where Tv) in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/sparsevector.jl:1667\n", - "[279] *(A::SparseArrays.SparseMatrixCSC{Tv,Ti}, B::SparseArrays.SparseMatrixCSC{Tv,Ti}) where {Tv, Ti} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:141\n", - "[280] *(A::SparseArrays.SparseMatrixCSC{TvA,TiA}, B::SparseArrays.SparseMatrixCSC{TvB,TiB}) where {TvA, TiA, TvB, TiB} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:7\n", - "[281] *(A::SparseArrays.SparseMatrixCSC{Tv,Ti}, B::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{Tv,Ti} where #s576) where {Tv, Ti} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:143\n", - "[282] *(A::SparseArrays.SparseMatrixCSC{TvA,TiA}, transB::LinearAlgebra.Transpose{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TvB,TiB} where #s576) where {TvA, TiA, TvB, TiB} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:9\n", - "[283] *(A::SparseArrays.SparseMatrixCSC{Tv,Ti}, B::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{Tv,Ti} where #s576) where {Tv, Ti} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:142\n", - "[284] *(A::SparseArrays.SparseMatrixCSC{TvA,TiA}, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:SparseArrays.SparseMatrixCSC{TvB,TiB} where #s576) where {TvA, TiA, TvB, TiB} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:11\n", - "[285] *(A::SparseArrays.SparseMatrixCSC{TA,S}, x::Union{DenseArray{Tx,1}, ReinterpretArray{Tx,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{Tx,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{Tx,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {TA, S, Tx} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:51\n", - "[286] *(A::SparseArrays.SparseMatrixCSC{TA,S}, B::Union{DenseArray{Tx,2}, ReinterpretArray{Tx,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{Tx,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{Tx,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {TA, S, Tx} in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:53\n", - "[287] *(A::SparseArrays.SparseMatrixCSC, D::LinearAlgebra.Diagonal) in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/linalg.jl:134\n", - "[288] *(A::SuiteSparse.CHOLMOD.Sparse, B::SuiteSparse.CHOLMOD.Sparse) in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1307\n", - "[289] *(A::SuiteSparse.CHOLMOD.Sparse, B::SuiteSparse.CHOLMOD.Dense) in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1308\n", - "[290] *(A::SuiteSparse.CHOLMOD.Sparse, B::Union{Array{T,1}, Array{T,2}} where T) in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1309\n", - "[291] *(A::SuiteSparse.CHOLMOD.Sparse{Tv}, adjB::LinearAlgebra.Adjoint{Tv,SuiteSparse.CHOLMOD.Sparse{Tv}}) where Tv<:Float64 in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1312\n", - "[292] *(A::LinearAlgebra.Symmetric{Float64,SparseArrays.SparseMatrixCSC{Float64,Ti}}, B::Union{SparseMatrixCSC{Float64,Ti}, SparseVector{Float64,Ti}}) where Ti in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1849\n", - "[293] *(A::LinearAlgebra.Hermitian{Complex{Float64},SparseArrays.SparseMatrixCSC{Complex{Float64},Ti}}, B::Union{SparseMatrixCSC{Complex{Float64},Ti}, SparseVector{Complex{Float64},Ti}}) where Ti in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1851\n", - "[294] *(A::LinearAlgebra.Hermitian{Float64,SparseArrays.SparseMatrixCSC{Float64,Ti}}, B::Union{SparseMatrixCSC{Float64,Ti}, SparseVector{Float64,Ti}}) where Ti in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1853\n", - "[295] *(A::Union{SparseMatrixCSC{Float64,Ti}, SparseVector{Float64,Ti}}, B::LinearAlgebra.Symmetric{Float64,SparseArrays.SparseMatrixCSC{Float64,Ti}}) where Ti in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1856\n", - "[296] *(A::Union{SparseMatrixCSC{Complex{Float64},Ti}, SparseVector{Complex{Float64},Ti}}, B::LinearAlgebra.Hermitian{Complex{Float64},SparseArrays.SparseMatrixCSC{Complex{Float64},Ti}}) where Ti in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1858\n", - "[297] *(A::Union{SparseMatrixCSC{Float64,Ti}, SparseVector{Float64,Ti}}, B::LinearAlgebra.Hermitian{Float64,SparseArrays.SparseMatrixCSC{Float64,Ti}}) where Ti in SuiteSparse.CHOLMOD at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SuiteSparse/src/cholmod.jl:1860\n", - "[298] *(x::AbstractArray{#s57,2} where #s57<:Number) in Base at abstractarraymath.jl:99\n", - "[299] *(B::Number, A::LinearAlgebra.SymTridiagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/tridiag.jl:161\n", - "[300] *(B::Number, A::LinearAlgebra.Tridiagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/tridiag.jl:615\n", - "[301] *(x::Number, A::LinearAlgebra.UpperTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:680\n", - "[302] *(x::Number, A::LinearAlgebra.UnitUpperTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:683\n", - "[303] *(x::Number, A::LinearAlgebra.LowerTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:680\n", - "[304] *(x::Number, A::LinearAlgebra.UnitLowerTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:683\n", - "[305] *(x::Number, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:155\n", - "[306] *(B::Number, A::LinearAlgebra.Bidiagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/bidiag.jl:321\n", - "[307] *(a::Number, x::Union{SubArray{T,1,#s576,Tuple{Slice{OneTo{Int64}},Int64},false} where #s576<:SparseMatrixCSC, SparseVector{T,Ti} where Ti<:Integer} where T) in SparseArrays at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/SparseArrays/src/sparsevector.jl:1394\n", - "[308] *(A::Number, B::AbstractArray) in Base at arraymath.jl:52\n", - "[309] *(A::AbstractArray, B::Number) in Base at arraymath.jl:55\n", - "[310] *(s1::Union{AbstractChar, AbstractString}, ss::Union{AbstractChar, AbstractString}...) in Base at strings/basic.jl:229\n", - "[311] *(index::CartesianIndex, a::Integer) in Base.IteratorsMD at multidimensional.jl:116\n", - "[312] *(::Number, ::Missing) in Base at missing.jl:94\n", - "[313] *(d::AbstractString, x::Missing) in Base at missing.jl:140\n", - "[314] *(x::P, y::Real) where P<:Dates.Period in Dates at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/Dates/src/periods.jl:92\n", - "[315] *(u::AbstractArray{T,1} where T, v::Union{Adjoint{T,#s576}, Transpose{T,#s576}} where #s576<:(AbstractArray{T,1} where T) where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/adjtrans.jl:205\n", - "[316] *(A::AbstractArray{T,2} where T, B::LinearAlgebra.AbstractTriangular) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1929\n", - "[317] *(A::AbstractArray{T,2} where T, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1936\n", - "[318] *(A::AbstractArray{T,2} where T, transB::LinearAlgebra.Transpose{#s576,#s575} where #s575<:LinearAlgebra.AbstractTriangular where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/triangular.jl:1944\n", - "[319] *(A::AbstractArray{T,2} where T, transB::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Symmetric{T,S}, Symmetric{Complex{T},S}} where S where T<:Real) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:423\n", - "[320] *(A::AbstractArray{T,2} where T, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(Union{Hermitian{T,S}, Hermitian{Complex{T},S}, Symmetric{T,S}} where S where T<:Real) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/symmetric.jl:427\n", - "[321] *(A::AbstractArray{T,2} where T, D::LinearAlgebra.Diagonal) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/diagonal.jl:164\n", - "[322] *(A::AbstractArray{T,2} where T, adjR::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractRotation where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:14\n", - "[323] *(A::AbstractArray{T,2}, x::AbstractArray{S,1}) where {T, S} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:49\n", - "[324] *(a::AbstractArray{T,1} where T, transB::LinearAlgebra.Transpose{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:55\n", - "[325] *(a::AbstractArray{T,1} where T, adjB::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:(AbstractArray{T,2} where T) where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:59\n", - "[326] *(A::AbstractArray{T,1} where T, adjR::LinearAlgebra.Adjoint{#s576,#s575} where #s575<:LinearAlgebra.AbstractRotation where #s576) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:13\n", - "[327] *(a::AbstractArray{T,1} where T, B::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:62\n", - "[328] *(A::AbstractArray{T,2} where T, B::AbstractArray{T,2} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/matmul.jl:141\n", - "[329] *(A::LinearAlgebra.LQ{TA,S} where S<:AbstractArray{TA,2}, B::Union{DenseArray{TB,1}, DenseArray{TB,2}, ReinterpretArray{TB,2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReinterpretArray{TB,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{TB,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{TB,2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{TB,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}, SubArray{TB,2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {TA, TB} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/lq.jl:144\n", - "[330] *(J1::LinearAlgebra.UniformScaling, J2::LinearAlgebra.UniformScaling) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/uniformscaling.jl:144\n", - "[331] *(J::LinearAlgebra.UniformScaling, B::BitArray{2}) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/uniformscaling.jl:146\n", - "[332] *(A::AbstractArray{T,2} where T, J::LinearAlgebra.UniformScaling) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/uniformscaling.jl:147\n", - "[333] *(J::LinearAlgebra.UniformScaling, A::Union{AbstractArray{T,1}, AbstractArray{T,2}} where T) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/uniformscaling.jl:148\n", - "[334] *(x::Number, J::LinearAlgebra.UniformScaling) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/uniformscaling.jl:149\n", - "[335] *(J::LinearAlgebra.UniformScaling, x::Number) in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/uniformscaling.jl:150\n", - "[336] *(R::LinearAlgebra.AbstractRotation{T}, A::Union{AbstractArray{S,1}, AbstractArray{S,2}}) where {T, S} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:10\n", - "[337] *(A::AbstractArray{T,2}, R::LinearAlgebra.AbstractRotation{S}) where {T, S} in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:21\n", - "[338] *(G1::LinearAlgebra.Givens{T}, G2::LinearAlgebra.Givens{T}) where T in LinearAlgebra at /Applications/Julia-1.0.app/Contents/Resources/julia/share/julia/stdlib/v1.0/LinearAlgebra/src/givens.jl:381\n", - "[339] *(a, b, c, xs...) in Base at operators.jl:502" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "methods(*)" + "methods(*);" ] }, { @@ -3232,15 +2991,15 @@ ], "metadata": { "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.4.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.4" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.0.3" + "version": "1.4.0" } }, "nbformat": 4, diff --git a/Workshop2.ipynb b/Workshop2.ipynb index 9f40bff..e956ed1 100644 --- a/Workshop2.ipynb +++ b/Workshop2.ipynb @@ -44,7 +44,7 @@ "- Intro to `DifferentialEquations.jl`\n", "\n", "References\n", - "- _An algorithmic introduction to numerical simulation of stochastic differential equations_, D. J. Higham, [SIAM Review, __43__, 525-546 (2001)](https://epubs.siam.org/doi/abs/10.1137/S0036144500378302)" + "- *An algorithmic introduction to numerical simulation of stochastic differential equations*, D. J. Higham, [SIAM Review, __43__, 525-546 (2001)](https://epubs.siam.org/doi/abs/10.1137/S0036144500378302)" ] }, { @@ -76,38 +76,37 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "linspace (generic function with 1 method)" + "Plots.GRBackend()" ] }, - "execution_count": 2, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "using Statistics, Plots, LaTeXStrings, Revise\n", - "gr(grid=false,legend=false,size=(400,200),titlefontsize=12)\n", - "linspace(a,b,n) = LinRange(a,b,n) |> collect" + "gr(grid=false,legend=false,size=(400,200),titlefontsize=10)" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.3702151022483434" + "-1.2823779027693414" ] }, - "execution_count": 3, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -118,7 +117,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -128,6109 +127,3104 @@ "\n", "\n", " \n", - " \n", - " \n", - "\n", - "\n", - " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1000\n", - "\n", - "\n", - "2000\n", - "\n", - "\n", - "3000\n", - "\n", - "\n", - "-3\n", - "\n", - "\n", - "-2\n", - "\n", - "\n", - "-1\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "3000 samples drawn from N(0,1)\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1000\n", + "\n", + "\n", + "2000\n", + "\n", + "\n", + "3000\n", + "\n", + "\n", + "-3\n", + "\n", + "\n", + "-2\n", + "\n", + "\n", + "-1\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "3000 samples drawn from N(0,1)\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n" ] }, - "execution_count": 4, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -6238,23 +3232,23 @@ "source": [ "N = 3000\n", "x = randn(N)\n", - "n = 1:N |> collect # convert a range object to a vector\n", - "plot(n,x,seriestype=:scatter,ms=.5,size=(500,150))\n", + "n = 1:N \n", + "plot(n,x,seriestype=:scatter,ms=1,size=(500,150))\n", "title!(\"$N samples drawn from N(0,1)\")" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(-0.006670434549289595, 0.9932926596442568)" + "(0.032630586939194094, 1.0291156804040478)" ] }, - "execution_count": 5, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -6265,28 +3259,28 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "T = 1; N = 500; dt = T/N\n", - "t = linspace(0,T,N+1)\n", + "t = LinRange(0,T,N+1)\n", "W = zeros(N)\n", "ΔW = sqrt(dt)*randn(N); #all independent" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(0.005693050592574502, 0.0019063902581131131, 0.002, 501)" + "(0.0002865502988770673, 0.002052912724313275, 0.002, 501)" ] }, - "execution_count": 7, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -6308,7 +3302,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -6321,16 +3315,16 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(1.2781391611009483, 501)" + "(-0.1291695403659743, 501)" ] }, - "execution_count": 9, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -6341,7 +3335,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -6350,166 +3344,202 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", + "\n", + "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.00\n", - "\n", - "\n", - "0.25\n", - "\n", - "\n", - "0.50\n", - "\n", - "\n", - "0.75\n", - "\n", - "\n", - "1.00\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.5\n", - "\n", - "\n", - "1.0\n", - "\n", - "\n", - "1.5\n", - "\n", - "\n", - "2.0\n", - "\n", - "\n", - "2.5\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "W(t)\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0.00\n", + "\n", + "\n", + "0.25\n", + "\n", + "\n", + "0.50\n", + "\n", + "\n", + "0.75\n", + "\n", + "\n", + "1.00\n", + "\n", + "\n", + "-0.50\n", + "\n", + "\n", + "-0.25\n", + "\n", + "\n", + "0.00\n", + "\n", + "\n", + "0.25\n", + "\n", + "\n", + "0.50\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n" ] }, - "execution_count": 10, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -6517,7 +3547,7 @@ "source": [ "dt = T/N\n", "plot(t,W)\n", - "xlabel!(\"t\");ylabel!(\"W(t)\")" + "xlabel!(L\"t\");ylabel!(L\"W(t)\")" ] }, { @@ -6531,7 +3561,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -6540,7 +3570,7 @@ "wienerpath" ] }, - "execution_count": 11, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -6576,7 +3606,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -6635,7 +3665,7 @@ " a vector of length \u001b[36mN+1\u001b[39m." ] }, - "execution_count": 12, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -6654,7 +3684,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -6663,278 +3693,320 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.00\n", - "\n", - "\n", - "0.25\n", - "\n", - "\n", - "0.50\n", - "\n", - "\n", - "0.75\n", - "\n", - "\n", - "1.00\n", - "\n", - "\n", - "-3\n", - "\n", - "\n", - "-2\n", - "\n", - "\n", - "-1\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "W(t)\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "0.00\n", + "\n", + "\n", + "0.25\n", + "\n", + "\n", + "0.50\n", + "\n", + "\n", + "0.75\n", + "\n", + "\n", + "1.00\n", + "\n", + "\n", + "-3\n", + "\n", + "\n", + "-2\n", + "\n", + "\n", + "-1\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n" ] }, - "execution_count": 13, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -6945,12 +4017,12 @@ "p1=plot(t,W)\n", "plot!(t,sqrt.(t),linewidth=1,c=:black)\n", "plot!(t,-sqrt.(t),linewidth=1,c=:black)\n", - "ylims!(-3,3);xlabel!(\"t\");ylabel!(\"W(t)\")" + "ylims!(-3,3);xlabel!(L\"t\");ylabel!(L\"W(t)\")" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -6959,3269 +4031,3272 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", + "\n", + "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.00\n", - "\n", - "\n", - "0.25\n", - "\n", - "\n", - "0.50\n", - "\n", - "\n", - "0.75\n", - "\n", - "\n", - "1.00\n", - "\n", - "\n", - "-3\n", - "\n", - "\n", - "-2\n", - "\n", - "\n", - "-1\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "W(t)\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0.00\n", + "\n", + "\n", + "0.25\n", + "\n", + "\n", + "0.50\n", + "\n", + "\n", + "0.75\n", + "\n", + "\n", + "1.00\n", + "\n", + "\n", + "-3\n", + "\n", + "\n", + "-2\n", + "\n", + "\n", + "-1\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n" ] }, - "execution_count": 14, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -10246,7 +7321,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -10255,19 +7330,19 @@ "text": [ "┌ Info: Saved animation to \n", "│ fn = /Users/abradley/Dropbox/Julia/ANZSUP2019/ANZSUP19_Stochastic/media/wpaths.gif\n", - "└ @ Plots /Users/abradley/.julia/packages/Plots/UQI78/src/animation.jl:90\n" + "└ @ Plots /Users/abradley/.julia/packages/Plots/cc8wh/src/animation.jl:98\n" ] }, { "data": { "text/html": [ - "" + "" ], "text/plain": [ "Plots.AnimatedGif(\"/Users/abradley/Dropbox/Julia/ANZSUP2019/ANZSUP19_Stochastic/media/wpaths.gif\")" ] }, - "execution_count": 15, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -10304,7 +7379,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -10313,18 +7388,18 @@ "p (generic function with 1 method)" ] }, - "execution_count": 16, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "p(x,t) = exp(-x^2/(2t))/sqrt(2π*t) #scalar definition" + "p(x,t) = exp(-x^2/(2t))/sqrt(2π*t) # scalar function definition" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -10333,1180 +7408,1176 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.1\n", - "\n", - "\n", - "0.2\n", - "\n", - "\n", - "0.3\n", - "\n", - "\n", - "0.4\n", - "\n", - "\n", - "0.5\n", - "\n", - "\n", - "-2\n", - "\n", - "\n", - "-1\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0.0\n", + "\n", + "\n", + "0.1\n", + "\n", + "\n", + "0.2\n", + "\n", + "\n", + "0.3\n", + "\n", + "\n", + "0.4\n", + "\n", + "\n", + "0.5\n", + "\n", + "\n", + "-2\n", + "\n", + "\n", + "-1\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n" ] }, - "execution_count": 17, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "y = linspace(-2,2,500)\n", + "y = LinRange(-2,2,500)\n", "heatmap(t,y,p.(y,t'),size=(600,200),transpose=false) # broadcast\n", - "plot!(t,sqrt.(t),linewidth=1,c=:white)\n", - "plot!(t,-sqrt.(t),linewidth=1,c=:white)\n", + "plot!(t,sqrt.(t),lw=1,c=:white)\n", + "plot!(t,-sqrt.(t),lw=1,c=:white)\n", "xlims!(0,.5);ylims!(-2,2)" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 31, "metadata": {}, "outputs": [ { @@ -11514,7 +8585,7 @@ "output_type": "stream", "text": [ "┌ Warning: rainbow is found in more than one library: misc, colorcet. Choosing misc\n", - "└ @ PlotUtils /Users/abradley/.julia/packages/PlotUtils/m555i/src/color_gradients.jl:40\n" + "└ @ PlotUtils /Users/abradley/.julia/packages/PlotUtils/10ojB/src/color_gradients.jl:40\n" ] }, { @@ -11523,503 +8594,532 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0.0\n", + "\n", + "\n", + "0.2\n", + "\n", + "\n", + "0.4\n", + "\n", + "\n", + "0.6\n", + "\n", + "\n", + "0.8\n", + "\n", + "\n", + "1.0\n", + "\n", + "\n", + "-2\n", + "\n", + "\n", + "-1\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "6\n", + "\n", + "\n", + "8\n", + "\n", + "\n", + "\n", "\n", "\n" ] }, - "execution_count": 18, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# another plot example\n", - "p1=surface(t,y,p.(y,t'),color = :rainbow,size=(400,300))\n", + "p1=surface(t,y,p.(y,t'),c = :rainbow,size=(400,300))\n", "plot!(p1, camera=(40, 40))" ] }, @@ -12038,7 +9138,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 32, "metadata": {}, "outputs": [ { @@ -12047,620 +9147,588 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.00\n", - "\n", - "\n", - "0.25\n", - "\n", - "\n", - "0.50\n", - "\n", - "\n", - "0.75\n", - "\n", - "\n", - "1.00\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "5\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0.00\n", + "\n", + "\n", + "0.25\n", + "\n", + "\n", + "0.50\n", + "\n", + "\n", + "0.75\n", + "\n", + "\n", + "1.00\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", - "\n", - "\n", - "\n", - "y1\n", - "\n", - "\n", - "\n", - "y2\n", - "\n", - "\n", - "\n", - "y3\n", - "\n", - "\n", - "\n", - "mean of 1000 paths\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "y1\n", + "\n", + "\n", + "\n", + "y2\n", + "\n", + "\n", + "\n", + "y3\n", + "\n", + "\n", + "\n", + "mean of 1000 paths\n", + "\n", + "\n", + "\n", + "\n", "\n", "\n" ] }, - "execution_count": 19, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "T = 1; N = 500; Δt = T/N \n", - "t = linspace(0,T,N+1)\n", + "t = LinRange(0,T,N+1)\n", "Np = 1000\n", "ΔW = sqrt(Δt)*randn(N,Np)\n", "W = cumsum(ΔW,dims=1)\n", @@ -12691,8 +9759,8 @@ "metadata": {}, "source": [ "# Differential Equations\n", - "Chris Rackauckas (recent Math PhD at UC Irvine, now Postdoc at MIT) has written an ___utterly astonishing___ differential equation solving package in $\\julia$.\n", - "- He is an expert on SDE's, expert programmer and $\\julia$ whiz.\n", + "Chris Rackauckas (recent Math PhD at UC Irvine, now Postdoc at MIT) has written an julia maserpiece for solving differential equations in $\\julia$.\n", + "- An expert on SDE's, and expert programmer.\n", "- Wanted to compare results for different SDE methods and problems\n", "- Realized there was no decent package for numerical solving\n", "- `DifferentialEquations.jl` is now world-leading in every aspect of numerical solving\n", @@ -12719,32 +9787,31 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "┌ Info: Recompiling stale cache file /Users/abradley/.julia/compiled/v1.0/DifferentialEquations/UQdwS.ji for DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n", - "└ @ Base loading.jl:1190\n" + "┌ Info: Precompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n", + "└ @ Base loading.jl:1260\n" ] }, { "data": { "text/plain": [ - "linspace (generic function with 1 method)" + "Plots.GRBackend()" ] }, - "execution_count": 20, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "using DifferentialEquations, Statistics, Plots, LaTeXStrings, Revise\n", - "gr(grid=false,legend=false,size=(400,200),titlefontsize=12)\n", - "linspace(a,b,n) = LinRange(a,b,n) |> collect" + "gr(grid=false,legend=false,size=(400,200),titlefontsize=12)" ] }, { @@ -12784,7 +9851,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 36, "metadata": {}, "outputs": [ { @@ -12793,24 +9860,23 @@ "predatorprey! (generic function with 1 method)" ] }, - "execution_count": 21, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "#system parameters\n", + "# system parameters\n", "λ = .7 # 🐇 growth\n", "γ = 0.4 # 🐇 loss\n", "σ = 0.3 # 🐺 growth\n", "β = 1.2 # 🐺 loss\n", "\n", - "#define the equations of motion (standard first order form)\n", - "#in-place vector syntax\n", + "# define the equations of motion (standard first order form)\n", + "# in-place vector syntax\n", "function predatorprey!(du,u,p,t)\n", " du[1] = p[1]*u[1] - p[2]*u[2]*u[1]\n", " du[2] = -p[3]*u[2] + p[4]*u[1]*u[2]\n", - " return nothing #good practice if the function is mutating\n", "end" ] }, @@ -12831,16 +9897,16 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(::LotkaVolterra{getfield(Main, Symbol(\"##3#9\")),getfield(Main, Symbol(\"##4#10\")),getfield(Main, Symbol(\"##5#11\")),getfield(Main, Symbol(\"##6#12\")),getfield(Main, Symbol(\"##7#13\")),getfield(Main, Symbol(\"##8#14\")),Expr,Expr}) (generic function with 2 methods)" + "(::LotkaVolterra{var\"###ParameterizedDiffEqFunction#333\",var\"###ParameterizedTGradFunction#334\",var\"###ParameterizedJacobianFunction#335\",var\"###ParameterizedWFactFunction#336\",var\"###ParameterizedW_tFactFunction#337\",ModelingToolkit.ODESystem}) (generic function with 1 method)" ] }, - "execution_count": 22, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -12871,7 +9937,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 38, "metadata": {}, "outputs": [ { @@ -12879,10 +9945,10 @@ "text/plain": [ "\u001b[36mODEProblem\u001b[0m with uType \u001b[36mArray{Float64,1}\u001b[0m and tType \u001b[36mFloat64\u001b[0m. In-place: \u001b[36mtrue\u001b[0m\n", "timespan: (0.0, 0.2)\n", - "u0: [4.0, 1.75]" + "u0: [4.0, 1.7499999999999998]" ] }, - "execution_count": 23, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } @@ -12895,7 +9961,7 @@ "tf = .2\n", "Nt = 100\n", "tspan = (ti,tf)\n", - "t = linspace(ti,tf,Nt) \n", + "t = LinRange(ti,tf,Nt) \n", "params = [λ; γ; β; σ]\n", "\n", "#define the problem type\n", @@ -12911,19 +9977,19 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 10.066660 seconds (19.44 M allocations: 1002.656 MiB, 7.83% gc time)\n" + " 10.833241 seconds (33.65 M allocations: 1.708 GiB, 5.61% gc time)\n" ] } ], "source": [ - "#solve the problem, saving at specified time points\n", + "# solve the problem, saving at specified time points\n", "@time sol = solve(prob,saveat=t);" ] }, @@ -12936,25 +10002,25 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 0.000506 seconds (292 allocations: 39.820 KiB)\n" + " 0.000214 seconds (280 allocations: 38.445 KiB)\n" ] } ], "source": [ - "#solve the problem, saving at specified time points\n", + "# solve the problem, saving at specified time points\n", "@time sol = solve(prob,saveat=t);" ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 41, "metadata": {}, "outputs": [ { @@ -12963,151 +10029,146 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.00\n", + "\n", + "0.00\n", "\n", - "\n", - "0.05\n", + "\n", + "0.05\n", "\n", - "\n", - "0.10\n", + "\n", + "0.10\n", "\n", - "\n", - "0.15\n", + "\n", + "0.15\n", "\n", - "\n", - "0.20\n", + "\n", + "0.20\n", "\n", - "\n", - "0\n", + "\n", + "0\n", "\n", - "\n", - "2\n", + "\n", + "2\n", "\n", - "\n", - "4\n", + "\n", + "4\n", "\n", - "\n", - "6\n", + "\n", + "6\n", "\n", - "\n", - "8\n", + "\n", + "8\n", "\n", - "\n", - "t\n", + "\n", + "t\n", "\n", - "\n", - "population\n", + "\n", + "population\n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "rabbits\n", + "\n", + "rabbits\n", "\n", - "\n", - "\n", - "wolves\n", + "\n", + "wolves\n", "\n", "\n" ] }, - "execution_count": 26, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -13127,19 +10188,19 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 0.001809 seconds (395 allocations: 67.570 KiB)\n" + " 0.000273 seconds (382 allocations: 64.961 KiB)\n" ] } ], "source": [ - "#parameters\n", + "# parameters\n", "λ = .7 # 🐇 growth\n", "γ = 0.4 # 🐇 loss\n", "σ = 0.3 # 🐺 growth\n", @@ -13148,12 +10209,12 @@ "r̄ = β/σ; w̄ = λ/γ\n", "\n", "ϵ = .1\n", - "u0 = [β/σ + ϵ ; λ/γ - ϵ] #one slightly larger, one slightly smaller\n", + "u0 = [β/σ + ϵ ; λ/γ - ϵ] # one slightly larger, one slightly smaller\n", "ti = 0.0\n", "tf = 50.0\n", "Nt = 200\n", "tspan = (ti,tf)\n", - "t = linspace(ti,tf,Nt) \n", + "t = LinRange(ti,tf,Nt) \n", "\n", "prob = ODEProblem(pprey,u0,tspan,params)\n", "@time sol = solve(prob,saveat=t);" @@ -13161,7 +10222,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 47, "metadata": {}, "outputs": [ { @@ -13170,328 +10231,363 @@ "\n", "\n", "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", "\n", - " \n", - " \n", + " \n", + " \n", " \n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", + "\n", + "0\n", "\n", - "\n", - "10\n", + "\n", + "10\n", "\n", - "\n", - "20\n", + "\n", + "20\n", "\n", - "\n", - "30\n", + "\n", + "30\n", "\n", - "\n", - "40\n", + "\n", + "40\n", "\n", - "\n", - "50\n", + "\n", + "50\n", "\n", - "\n", - "60\n", + "\n", + "60\n", "\n", - "\n", - "70\n", + "\n", + "70\n", "\n", - "\n", - "0\n", + "\n", + "0\n", "\n", - "\n", - "1\n", + "\n", + "1\n", "\n", - "\n", - "2\n", + "\n", + "2\n", "\n", - "\n", - "3\n", + "\n", + "3\n", "\n", - "\n", - "4\n", + "\n", + "4\n", "\n", - "\n", - "5\n", + "\n", + "5\n", "\n", - "\n", - "t\n", + "\n", + "\n", "\n", - "\n", - "population\n", + "\n", + "\n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", "\n", - "\n", - "\n", - "\n", + "iVBORw0KGgoAAAANSUhEUgAAAEcAAAAvCAYAAACxF9coAAAEoklEQVRoge1b7W3yMBB+WnUA0xHc\n", + "DdyOEDYARgidIGKE0AlQR7CYIDBC2gmAEUw2uPcHvfQSEhLyQaj0nnRSgOR8ee7DvrMBEeGeeDKZ\n", + "0Gq1oj5k73Y7MsbQbrerJX9wMJidc2SMIc/zegGGOQxDUkpRHMeV4wwOCgOjtSatda/AMPu+TwAq\n", + "PWhwYIgInueRUoqcczcBh4hgjCGt9cUxBwcmCAICQNbamwFDdMo/AC6G8aDARFFUqWCfvFqtCACF\n", + "YVg4/qDgaK1rxX4Vc5INguBqOaxDUXgNBgxbzff9VsBweAAgpdTVsqy1BIAmk8l9gOOcI6VUZ17D\n", + "4BS9YB1mXaIoyjz/iAEoDEMkSQLP8/Dy8vLQRtZ2u02vPc9rJMP3fQDAx8dH9ochPIct1cUMhR+v\n", + "QQsvdM4Vyrg5MDxDnezSTlYcx63yjWROzDKp3zysPj8/ATQPAUldhBTTZDIB8KsfgNuDs16vAdwf\n", + "OPx8kiT4+voiANmwstaSMYYAkDHmLHtzfAZBkN6nta69vpBhUKfwu0W+KZLHi8IMMEopiqKIdrsd\n", + "cQzK9gHf4/s+xXFMzjmKooi01mSMqVROTrvXKO15Hkkg6vK1CZ/fmZcEDz+IYTQakbUW4/H4AQCW\n", + "yyUtFgsAgHMO1losFgvIe47HI3meh+/vbwCAtRbT6bR0ah6Px7TdbqGUwvF4rD2FbzYb4jGYrLXp\n", + "uMYYzGazzO9KKcxmM4xGo9rjTKdTWq/Xv/oRnVarecvzChY/SKJgkcTfM1c1qdgyXdRS0pu6ao5x\n", + "EYyfcgJEp/I974LyxjIFOO8wV/ZHWq5ki2TVGbcuy7CP4/i3NskXXtIyZfmEc5DWujK+ZQ3Utp7q\n", + "cn2Tfx+Wa62lp+12C2PMWWzGcZxeh2FYFqMP0+m0VjwnSZJeK6VqPVNGXU7hkqReh8MBj4fD4SyZ\n", + "7fd7ki/DCbgNOefS6+fn51ay+gInr9fTcrk8e/E+Bv8LniPJOVe8QpaDG2N6GbwppatXnEBuW9VL\n", + "kkZLkqQanL4s05T61C3v3Wfg9JFveLAiJa6lPsHJ58UzcPoKKZnspBLXktTv7e2tlU55yhvtIjh9\n", + "TZNNPSefb15fXzvLN0DWaFrrc3BkDdOlZWTibOo5db1ms9nQcrmk0htKSBrtDJzj8UiHwyH93HVM\n", + "a60BnBZYTUguTC/p9v7+3kh+3nNKl8997FvLkqTJ81y44kI/iEuaJvK5kObnM57T9xQuZe73+6vd\n", + "Xnoce2GeFotFablTRZxSWM/BwMn3Z+qQTOpFfZr5fE5KKczn80aJmsFP85l0K4g2QF8nHtCiMpf9\n", + "o7x+QRC0Oqkhd0U4ZAvbAH2ek+G8U6etmme5U7pardI2bZ3jJFXM/SuZrzI38CBdNL/rWKjJyzjn\n", + "yPf9tMdtjOmkE8iNO3niohcAqlhaf4jx8ywbcdJgg+yV894072ENTXKjMZPoh7BU2d70UMyenE8n\n", + "gynEzey2/eS2zLssd3M+h/nSqap70GFQcIY+E8jee5dnAon+nyatZD6HfMvk/CfOIRNlT7DfIv9w\n", + "GfInTrAzQLf47wPXYHW8dHBQiqx6L/+a+Qe2tocmdHTDOgAAAABJRU5ErkJggg==\n", + "\" transform=\"translate(1390, 120)\"/>\n", + "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "iVBORw0KGgoAAAANSUhEUgAAAFMAAAAvCAYAAACfUva6AAAFlklEQVRoge1b/3HbPAx9yXUApiPQ\n", + "G7AdQdlA7QhyJ3A9gpMJlIzAZALVI9iZQNYItDfA94c/ONBvUrKtpFfc4U45MxT5+AACIAUiwmfW\n", + "OI4pTVO6RN95npMxhvI89+p/cjCGqnOOjDEURdFFgGRdrVaklKLNZtP7nslBGQqk1pq01hcFkjVJ\n", + "EgLQy9DJgRmiURSRUoqcc1cBk4hgjCGtdec7JwcmVBeLBQEga+3VgCQ6+k8AnW5lcnBCNMuy3gld\n", + "UtM0JQC0Wq0a3z85QCGqtfbyXX3Km8pisQjuh8fQZO6TAxTKiiRJRgHJ5gqAlFLBfVlrCQDFcfw5\n", + "wXTOkVLqbKxkMJsA8VEeS5Zlpf+/xSeQ1WqFw+GAKIowm81uxvS1Xq9Pz1EUDeojSRIAwOPjY/mH\n", + "qVkXwoRz7OD4n5UYwXLnXGMfkwPVp7yDH9d9XF+bzWaUv5TKG5HcxD68mT8/PwMYbpJSzmHiLHEc\n", + "A3gfH4CPD+br6yuAjwcm///hcMB2uyUAdTNP05SMMQSAjDFBFZksyzr9mnOOOBVsC3zbzNKn0NCn\n", + "OIO/bOqP51L6MY5j0lpTlmXEE0fFL7Qpx4FoCBlYuT/fCckwJmSS1ff4augGx36TQ6wvTNvfv39T\n", + "URTY7Xan0COKIlqv13h8fMRyuaS7u7vWsKQWJjTIZrMp/f329obZbNbans1SKdXbt5TFYlEzY2st\n", + "3t7eAADGGPz8+bP0u1Iq2PSNMSiK4t19EL1nBVVT4qICelZNhgroYBFnD6x9LoRX/hy5uGTruYrJ\n", + "Eh/nHN0CR1YlSYJv376VmMcr2SfSsRtjWtv9+PHjhgNeAPj69Wtnv0VRAAhnZpOcc/NhkeMvigIn\n", + "VlVZWWVbl3/j4ik8c2du27WpyBx6bD5+zviyzdKstXRrrYVSqsZKa+3p2RjTmcaFrjq30Vq3tjkc\n", + "Dqfnscy8BCuB8riKosBtURRYLpe1hhzfAag5ayn7/Z7YHAG/wWqtobVG14bmnDs997mDPrkUmNVx\n", + "fXl4eKhNaL/fkxwAR/tNItv1AcRSFEWnbwU+BzOlOOeaMyBp4lrrs5o4cAyRLjWpqpyyExwXZWzV\n", + "SYpc5MPh0AymNPEuVgLhYO73e+Jy2jXkkqysWk8NzKqJh/jLPtMFjqzsYzsPrmnQoXJJMKt+vQZm\n", + "1QdWd3kpMqPxNaHX11evSUnnLgcdKnI+379/H9xPk1QXuQamBKhv0jKo9111a22v6wDOw8yqv+wi\n", + "xhCRi6y1roMZYrayrc+qv7y8EADc39/3TkqyfCgzfVn5588fenh4oNYGLSIXuRFMybauoBoog9nX\n", + "FjgWUmU62Sfcp3xPiPha2a9fvwb1X2Vma3EBHjVErnv6tOX0NKSOKIsTQ9I9n7lYawenmHEcl1LU\n", + "GjN9GAYcd3LJ4j5TXC6XiOM4KM6TbNrtdsFm6GM5y+USq9UqtGsA71bM46yBKTcH6XOaBiE3ia4K\n", + "03a7JWtt6bzERySYvhUsKXJ8TZnZfD4npRTm8/mgjYkX6+SPu8yj7coem0ae58Rt20wlz3NSSrVW\n", + "3/sUIypHbIZouM6yWCxG3aSTp6bsQlr9mzwH4mOMPM+JC6IMjgS02pbv9Iw572a/aYwJ7kPeBEnT\n", + "lJxzlGUZ+VwP7FPGQZKoF/0oikg68jiOGzeRNE1Ph2X8kra2QxkwZPLOOUqSpLTg56i0M9nkweCo\n", + "Dq+lkl1Tj4WoXLiWC/zhz82B97s9sgAzpciLEaWNbepV9tG2uz1TW0o1dp0cKF/lM/Sx50Fjle8H\n", + "fNr7maxdt3Y/whgmByhEp77TztbxV9xpJ/r3tcXZlePZa25Gf+V3QETlL9Su4T85Lf0rv1BjQK/x\n", + "7STn8D5W8CmC9ia5u7u72W63N0opPD09BZfnfGS329F6vcZms/EqHf4HRdInLyphCeoAAAAASUVO\n", + "RK5CYII=\n", + "\" transform=\"translate(1390, 180)\"/>\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n", "\n" ] }, - "execution_count": 28, + "execution_count": 47, "metadata": {}, "output_type": "execute_result" } @@ -13501,7 +10597,7 @@ "plot(t,🐇,label=L\"r(t)\",legend=:topright);plot!(t,🐺,label=L\"w(t)\")\n", "plot!(t,r̄*one.(t),label=L\"\\bar r\",s=:d)\n", "plot!(t,w̄*one.(t),label=L\"\\bar w\",s=:d)\n", - "ylims!(0,5);xlabel!(\"t\");ylabel!(\"population\")\n", + "ylims!(0,5);xlabel!(L\"t\");ylabel!(L\"\\textrm{Pop.}\")\n", "xlims!(0,70)" ] }, @@ -13516,7 +10612,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 48, "metadata": {}, "outputs": [ { @@ -13525,26 +10621,26 @@ "pprey_shift (generic function with 1 method)" ] }, - "execution_count": 29, + "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function pprey_shift(ϵ)\n", - "#parameters\n", + "# parameters\n", "λ = .7 # 🐇 growth\n", "γ = 0.4 # 🐇 loss\n", "σ = 0.3 # 🐺 growth\n", "β = 1.2 # 🐺 loss\n", "params = [λ; γ; β; σ]\n", "\n", - "u0 = [β/σ + ϵ ; λ/γ - ϵ] #one slightly larger, one slightly smaller\n", + "u0 = [β/σ + ϵ ; λ/γ - ϵ] # one slightly larger, one slightly smaller\n", "ti = 0.0\n", "tf = 50.0\n", "Nt = 200\n", "tspan = (ti,tf)\n", - "t = linspace(ti,tf,Nt) \n", + "t = LinRange(tspan...,Nt) \n", "\n", "prob = ODEProblem(pprey,u0,tspan,params)\n", "sol = solve(prob,saveat=t);\n", @@ -13555,60 +10651,69 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 49, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "┌ Info: Recompiling stale cache file /Users/abradley/.julia/compiled/v1.0/Interact/XmYW4.ji for Interact [c601a237-2ae4-5e1e-952c-7a85b0c7eef1]\n", - "└ @ Base loading.jl:1190\n" + "┌ Info: Precompiling Interact [c601a237-2ae4-5e1e-952c-7a85b0c7eef1]\n", + "└ @ Base loading.jl:1260\n" ] }, { "data": { "text/html": [ - " \n" - ], - "text/plain": [ - "HTML{String}(\" \\n\")" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "HTML{String}(\"\")" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "" + " warning_div.style.display = \"none\";\n", + " };\n", + " if (typeof Jupyter !== \"undefined\") {\n", + " console.log(\"WebIO detected Jupyter notebook environment.\");\n", + " // Jupyter notebook.\n", + " var extensions = (\n", + " Jupyter\n", + " && Jupyter.notebook.config.data\n", + " && Jupyter.notebook.config.data.load_extensions\n", + " );\n", + " if (extensions && extensions[\"webio-jupyter-notebook\"]) {\n", + " // Extension already loaded.\n", + " console.log(\"Jupyter WebIO nbextension detected; not loading ad-hoc.\");\n", + " hide();\n", + " return;\n", + " }\n", + " } else if (window.location.pathname.includes(\"/lab\")) {\n", + " // Guessing JupyterLa\n", + " console.log(\"Jupyter Lab detected; make sure the @webio/jupyter-lab-provider labextension is installed.\");\n", + " hide();\n", + " return;\n", + " }\n", + "})();\n", + "\n", + "\n", + "\n", + " Unable to load WebIO. Please make sure WebIO works for your Jupyter client.\n", + " For troubleshooting, please see \n", + " the WebIO/IJulia documentation.\n", + " \n", + "

\n" ], "text/plain": [ - "HTML{String}(\"\")" + "HTML{String}(\"\\n\\n Unable to load WebIO. Please make sure WebIO works for your Jupyter client.\\n For troubleshooting, please see \\n the WebIO/IJulia documentation.\\n \\n

\\n\")" ] }, "metadata": {}, @@ -13617,12 +10722,55 @@ { "data": { "text/html": [ - " \n" + "\n", + "\n", + " Unable to load WebIO. Please make sure WebIO works for your Jupyter client.\n", + " For troubleshooting, please see \n", + " the WebIO/IJulia documentation.\n", + " \n", + "

\n" ], "text/plain": [ - "HTML{String}(\" \\n\")" + "HTML{String}(\"\\n\\n Unable to load WebIO. Please make sure WebIO works for your Jupyter client.\\n For troubleshooting, please see \\n the WebIO/IJulia documentation.\\n \\n

\\n\")" ] }, "metadata": {}, @@ -13635,98 +10783,320 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 59, "metadata": { "scrolled": true }, "outputs": [ { "data": { + "application/vnd.webio.node+json": { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + "ϵ" + ], + "instanceArgs": { + "namespace": "html", + "tag": "label" + }, + "nodeType": "DOM", + "props": { + "className": "interact ", + "style": { + "padding": "5px 10px 0px 10px" + } + }, + "type": "node" + } + ], + "instanceArgs": { + "namespace": "html", + "tag": "div" + }, + "nodeType": "DOM", + "props": { + "className": "interact-flex-row-left" + }, + "type": "node" + }, + { + "children": [ + { + "children": [], + "instanceArgs": { + "namespace": "html", + "tag": "input" + }, + "nodeType": "DOM", + "props": { + "attributes": { + "data-bind": "numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}", + "orient": "horizontal", + "type": "range" + }, + "className": "slider slider is-fullwidth", + "max": 50, + "min": 1, + "step": 1, + "style": {} + }, + "type": "node" + } + ], + "instanceArgs": { + "namespace": "html", + "tag": "div" + }, + "nodeType": "DOM", + "props": { + "className": "interact-flex-row-center" + }, + "type": "node" + }, + { + "children": [ + { + "children": [], + "instanceArgs": { + "namespace": "html", + "tag": "p" + }, + "nodeType": "DOM", + "props": { + "attributes": { + "data-bind": "text: formatted_val" + } + }, + "type": "node" + } + ], + "instanceArgs": { + "namespace": "html", + "tag": "div" + }, + "nodeType": "DOM", + "props": { + "className": "interact-flex-row-right" + }, + "type": "node" + } + ], + "instanceArgs": { + "namespace": "html", + "tag": "div" + }, + "nodeType": "DOM", + "props": { + "className": "interact-flex-row interact-widget" + }, + "type": "node" + } + ], + "instanceArgs": { + "handlers": { + "changes": [ + "(function (val){return (val!=this.model[\"changes\"]()) ? (this.valueFromJulia[\"changes\"]=true, this.model[\"changes\"](val)) : undefined})" + ], + "index": [ + "(function (val){return (val!=this.model[\"index\"]()) ? (this.valueFromJulia[\"index\"]=true, this.model[\"index\"](val)) : undefined})" + ] + }, + "id": "8993573112394589592", + "imports": { + "data": [ + { + "name": "knockout", + "type": "js", + "url": "/assetserver/c81693e18a21a2a47ca931b7b0468e21bcea2884-knockout.js" + }, + { + "name": "knockout_punches", + "type": "js", + "url": "/assetserver/7c7f52abb5758c346b01ad3f3376930685b8965e-knockout_punches.js" + }, + { + "name": null, + "type": "js", + "url": "/assetserver/3d6500f63e9c6eebe3f86caf8ccfcf7d4a5a8d7a-all.js" + }, + { + "name": null, + "type": "css", + "url": "/assetserver/05d37322a7c27c2f2b6ee513a40b2042681fcf4e-style.css" + }, + { + "name": null, + "type": "css", + "url": "/assetserver/b82866ae254ca3a407e7123c8867e1344c0744ba-bulma_confined.min.css" + } + ], + "type": "async_block" + }, + "mount_callbacks": [ + "function () {\n var handler = (function (ko, koPunches) {\n ko.punches.enableAll();\n ko.bindingHandlers.numericValue = {\n init: function(element, valueAccessor, allBindings, data, context) {\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\n stringified.subscribe(function(value) {\n var val = parseFloat(value);\n if (!isNaN(val)) {\n valueAccessor()(val);\n }\n });\n valueAccessor().subscribe(function(value) {\n var str = JSON.stringify(value);\n if ((str == \"0\") && ([\"-0\", \"-0.\"].indexOf(stringified()) >= 0))\n return;\n if ([\"null\", \"\"].indexOf(str) >= 0)\n return;\n stringified(str);\n });\n ko.applyBindingsToNode(\n element,\n {\n value: stringified,\n valueUpdate: allBindings.get('valueUpdate'),\n },\n context,\n );\n }\n };\n var json_data = {\"formatted_vals\":[\"0.0\",\"0.0244898\",\"0.0489796\",\"0.0734694\",\"0.0979592\",\"0.122449\",\"0.146939\",\"0.171429\",\"0.195918\",\"0.220408\",\"0.244898\",\"0.269388\",\"0.293878\",\"0.318367\",\"0.342857\",\"0.367347\",\"0.391837\",\"0.416327\",\"0.440816\",\"0.465306\",\"0.489796\",\"0.514286\",\"0.538776\",\"0.563265\",\"0.587755\",\"0.612245\",\"0.636735\",\"0.661224\",\"0.685714\",\"0.710204\",\"0.734694\",\"0.759184\",\"0.783673\",\"0.808163\",\"0.832653\",\"0.857143\",\"0.881633\",\"0.906122\",\"0.930612\",\"0.955102\",\"0.979592\",\"1.00408\",\"1.02857\",\"1.05306\",\"1.07755\",\"1.10204\",\"1.12653\",\"1.15102\",\"1.17551\",\"1.2\"],\"changes\":WebIO.getval({\"name\":\"changes\",\"scope\":\"8993573112394589592\",\"id\":\"17157373845006176120\",\"type\":\"observable\"}),\"index\":WebIO.getval({\"name\":\"index\",\"scope\":\"8993573112394589592\",\"id\":\"6446057052578992172\",\"type\":\"observable\"})};\n var self = this;\n function AppViewModel() {\n for (var key in json_data) {\n var el = json_data[key];\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\n }\n \n [this[\"formatted_val\"]=ko.computed( function(){\n return this.formatted_vals()[parseInt(this.index())-(1)];\n }\n,this)]\n [this[\"changes\"].subscribe((function (val){!(this.valueFromJulia[\"changes\"]) ? (WebIO.setval({\"name\":\"changes\",\"scope\":\"8993573112394589592\",\"id\":\"17157373845006176120\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"changes\"]=false}),self),this[\"index\"].subscribe((function (val){!(this.valueFromJulia[\"index\"]) ? (WebIO.setval({\"name\":\"index\",\"scope\":\"8993573112394589592\",\"id\":\"6446057052578992172\",\"type\":\"observable\"},val)) : undefined; return this.valueFromJulia[\"index\"]=false}),self)]\n \n }\n self.model = new AppViewModel();\n self.valueFromJulia = {};\n for (var key in json_data) {\n self.valueFromJulia[key] = false;\n }\n ko.applyBindings(self.model, self.dom);\n}\n);\n (WebIO.importBlock({\"data\":[{\"name\":\"knockout\",\"type\":\"js\",\"url\":\"/assetserver/c81693e18a21a2a47ca931b7b0468e21bcea2884-knockout.js\"},{\"name\":\"knockout_punches\",\"type\":\"js\",\"url\":\"/assetserver/7c7f52abb5758c346b01ad3f3376930685b8965e-knockout_punches.js\"}],\"type\":\"async_block\"})).then((imports) => handler.apply(this, imports));\n}\n" + ], + "observables": { + "changes": { + "id": "17157373845006176120", + "sync": false, + "value": 0 + }, + "index": { + "id": "6446057052578992172", + "sync": true, + "value": 25 + } + }, + "systemjs_options": null + }, + "nodeType": "Scope", + "props": {}, + "type": "node" + } + ], + "instanceArgs": { + "namespace": "html", + "tag": "div" + }, + "nodeType": "DOM", + "props": { + "className": "field interact-widget" + }, + "type": "node" + }, + { + "children": [ + { + "children": [], + "instanceArgs": { + "id": "4067442413821404723", + "name": "obs-node" + }, + "nodeType": "ObservableNode", + "props": {}, + "type": "node" + } + ], + "instanceArgs": { + "handlers": {}, + "id": "11188805320598803092", + "imports": { + "data": [], + "type": "async_block" + }, + "mount_callbacks": [], + "observables": { + "obs-node": { + "id": "4067442413821404723", + "sync": false, + "value": { + "children": [ + { + "children": [], + "instanceArgs": { + "namespace": "html", + "tag": "div" + }, + "nodeType": "DOM", + "props": { + "setInnerHtml": "\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n0\n\n\n10\n\n\n20\n\n\n30\n\n\n40\n\n\n50\n\n\n60\n\n\n70\n\n\n0\n\n\n2\n\n\n4\n\n\n6\n\n\n8\n\n\nPredator-prey dynamics\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + }, + "type": "node" + } + ], + "instanceArgs": { + "namespace": "html", + "tag": "div" + }, + "nodeType": "DOM", + "props": { + "className": "interact-flex-row interact-widget" + }, + "type": "node" + } + } + }, + "systemjs_options": null + }, + "nodeType": "Scope", + "props": {}, + "type": "node" + } + ], + "instanceArgs": { + "namespace": "html", + "tag": "div" + }, + "nodeType": "DOM", + "props": {}, + "type": "node" + }, "text/html": [ - "
\n", - "
\n", - "WebIO.mount(this.previousSibling,{"props":{},"nodeType":"DOM","type":"node","instanceArgs":{"namespace":"html","tag":"div"},"children":[{"props":{"className":"field"},"nodeType":"DOM","type":"node","instanceArgs":{"namespace":"html","tag":"div"},"children":[{"props":{},"nodeType":"Scope","type":"node","instanceArgs":{"imports":{"data":[{"name":"knockout","type":"js","url":"/assetserver/86aaaf4300cd90c5f620536dd2224bed4f19a561-knockout.js"},{"name":"knockout_punches","type":"js","url":"/assetserver/46a9638687b90cb7624fcc0fcabecc8e23adf106-knockout_punches.js"},{"name":null,"type":"js","url":"/assetserver/5b8f570f720ed176c139e80176ece461e1c229c6-all.js"},{"name":null,"type":"css","url":"/assetserver/326eab32751cadfae7d7d7e7c1cbf9936e4d911c-style.css"},{"name":null,"type":"css","url":"/assetserver/808fa7f9010f2b06edbbe0b3cde85d827adb68fb-main.css"}],"type":"async_block"},"id":"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203","handlers":{"formatted_vals":[(function (val){return (val!=this.model["formatted_vals"]()) ? (this.valueFromJulia["formatted_vals"]=true, this.model["formatted_vals"](val)) : undefined})],"_promises":{"importsLoaded":[function (ko, koPunches) {\n", - " ko.punches.enableAll();\n", - " ko.bindingHandlers.numericValue = {\n", - " init : function(element, valueAccessor, allBindings, data, context) {\n", - " var stringified = ko.observable(ko.unwrap(valueAccessor()));\n", - " stringified.subscribe(function(value) {\n", - " var val = parseFloat(value);\n", - " if (!isNaN(val)) {\n", - " valueAccessor()(val);\n", - " }\n", - " })\n", - " valueAccessor().subscribe(function(value) {\n", - " var str = JSON.stringify(value);\n", - " if ((str == "0") && (["-0", "-0."].indexOf(stringified()) >= 0))\n", - " return;\n", - " if (["null", ""].indexOf(str) >= 0)\n", - " return;\n", - " stringified(str);\n", - " })\n", - " ko.applyBindingsToNode(element, { value: stringified, valueUpdate: allBindings.get('valueUpdate')}, context);\n", - " }\n", - " };\n", - " var json_data = JSON.parse("{\\"formatted_vals\\":[\\"0.0\\",\\"0.0631579\\",\\"0.126316\\",\\"0.189474\\",\\"0.252632\\",\\"0.315789\\",\\"0.378947\\",\\"0.442105\\",\\"0.505263\\",\\"0.568421\\",\\"0.631579\\",\\"0.694737\\",\\"0.757895\\",\\"0.821053\\",\\"0.884211\\",\\"0.947368\\",\\"1.01053\\",\\"1.07368\\",\\"1.13684\\",\\"1.2\\"],\\"changes\\":0,\\"formatted_value\\":\\"0.568421\\",\\"index\\":10}");\n", - " var self = this;\n", - " function AppViewModel() {\n", - " for (var key in json_data) {\n", - " var el = json_data[key];\n", - " this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\n", - " }\n", - " \n", - " \n", - " [this["formatted_vals"].subscribe((function (val){!(this.valueFromJulia["formatted_vals"]) ? (WebIO.setval({"name":"formatted_vals","scope":"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203","id":"ob_03","type":"observable"},val)) : undefined; return this.valueFromJulia["formatted_vals"]=false}),self),this["changes"].subscribe((function (val){!(this.valueFromJulia["changes"]) ? (WebIO.setval({"name":"changes","scope":"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203","id":"ob_05","type":"observable"},val)) : undefined; return this.valueFromJulia["changes"]=false}),self),this["formatted_value"].subscribe((function (val){!(this.valueFromJulia["formatted_value"]) ? (WebIO.setval({"name":"formatted_value","scope":"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203","id":"ob_04","type":"observable"},val)) : undefined; return this.valueFromJulia["formatted_value"]=false}),self),this["index"].subscribe((function (val){!(this.valueFromJulia["index"]) ? (WebIO.setval({"name":"index","scope":"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203","id":"ob_02","type":"observable"},val)) : undefined; return this.valueFromJulia["index"]=false}),self)]\n", - " \n", + "\n", + " \n", + "
\n" ], "text/plain": [ - "Widget{:manipulate,Any}(OrderedDict{Symbol,Any}(:ϵ=>Widget{:slider,Float64}(OrderedDict{Symbol,Any}(:changes=>Observable{Int64} with 1 listeners. Value:\n", - "0,:index=>Observable{Any} with 2 listeners. Value:\n", - "10,:formatted_vals=>Observable{Any} with 1 listeners. Value:\n", - "[\"0.0\", \"0.0631579\", \"0.126316\", \"0.189474\", \"0.252632\", \"0.315789\", \"0.378947\", \"0.442105\", \"0.505263\", \"0.568421\", \"0.631579\", \"0.694737\", \"0.757895\", \"0.821053\", \"0.884211\", \"0.947368\", \"1.01053\", \"1.07368\", \"1.13684\", \"1.2\"],:formatted_value=>Observable{String} with 1 listeners. Value:\n", - "\"0.568421\",:value=>Observable{Float64} with 2 listeners. Value:\n", - "0.568421), Observable{Float64} with 2 listeners. Value:\n", - "0.568421, Scope(\"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203\", Node{DOM}(DOM(:html, :div), Any[Node{DOM}(DOM(:html, :div), Any[Node{DOM}(DOM(:html, :label), Any[\"ϵ\"], Dict{Symbol,Any}(:className=>\"interact \",:style=>Dict{Any,Any}(:padding=>\"5px 10px 0px 10px\")), 1)], Dict{Symbol,Any}(:attributes=>Dict(\"class\"=>\"interact-flex-row-left\")), 2), Node{DOM}(DOM(:html, :div), Any[Node{DOM}(DOM(:html, :input), Any[], Dict{Symbol,Any}(:max=>20,:min=>1,:attributes=>Dict{Any,Any}(:type=>\"range\",Symbol(\"data-bind\")=>\"numericValue: index, valueUpdate: 'input', event: {change : function () {this.changes(this.changes()+1)}}\",\"orient\"=>\"horizontal\"),:step=>1,:className=>\"slider slider is-fullwidth\",:style=>Dict{Any,Any}()), 0)], Dict{Symbol,Any}(:attributes=>Dict(\"class\"=>\"interact-flex-row-center\")), 1), Node{DOM}(DOM(:html, :div), Any[Node{DOM}(DOM(:html, :p), Any[], Dict{Symbol,Any}(:attributes=>Dict(\"data-bind\"=>\"text: formatted_value\")), 0)], Dict{Symbol,Any}(:attributes=>Dict(\"class\"=>\"interact-flex-row-right\")), 1)], Dict{Symbol,Any}(:attributes=>Dict(\"class\"=>\"interact-flex-row\")), 7), Dict{String,Tuple{Observables.AbstractObservable,Union{Nothing, Bool}}}(\"formatted_vals\"=>(Observable{Any} with 1 listeners. Value:\n", - "[\"0.0\", \"0.0631579\", \"0.126316\", \"0.189474\", \"0.252632\", \"0.315789\", \"0.378947\", \"0.442105\", \"0.505263\", \"0.568421\", \"0.631579\", \"0.694737\", \"0.757895\", \"0.821053\", \"0.884211\", \"0.947368\", \"1.01053\", \"1.07368\", \"1.13684\", \"1.2\"], nothing),\"changes\"=>(Observable{Int64} with 1 listeners. Value:\n", - "0, nothing),\"formatted_value\"=>(Observable{String} with 1 listeners. Value:\n", - "\"0.568421\", nothing),\"index\"=>(Observable{Any} with 2 listeners. Value:\n", - "10, nothing)), Set(String[]), nothing, Any[\"knockout\"=>\"/Users/abradley/.julia/packages/Knockout/JIqpG/src/../assets/knockout.js\", \"knockout_punches\"=>\"/Users/abradley/.julia/packages/Knockout/JIqpG/src/../assets/knockout_punches.js\", \"/Users/abradley/.julia/packages/InteractBase/3SqBl/src/../assets/all.js\", \"/Users/abradley/.julia/packages/InteractBase/3SqBl/src/../assets/style.css\", \"/Users/abradley/.julia/packages/InteractBulma/Ohu5Y/src/../assets/main.css\"], Dict{Any,Any}(\"formatted_vals\"=>Any[JSString(\"(function (val){return (val!=this.model[\\\"formatted_vals\\\"]()) ? (this.valueFromJulia[\\\"formatted_vals\\\"]=true, this.model[\\\"formatted_vals\\\"](val)) : undefined})\")],\"_promises\"=>Dict{Any,Any}(\"importsLoaded\"=>Any[JSString(\"function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init : function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n })\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n })\\n ko.applyBindingsToNode(element, { value: stringified, valueUpdate: allBindings.get('valueUpdate')}, context);\\n }\\n };\\n var json_data = JSON.parse(\\\"{\\\\\\\"formatted_vals\\\\\\\":[\\\\\\\"0.0\\\\\\\",\\\\\\\"0.0631579\\\\\\\",\\\\\\\"0.126316\\\\\\\",\\\\\\\"0.189474\\\\\\\",\\\\\\\"0.252632\\\\\\\",\\\\\\\"0.315789\\\\\\\",\\\\\\\"0.378947\\\\\\\",\\\\\\\"0.442105\\\\\\\",\\\\\\\"0.505263\\\\\\\",\\\\\\\"0.568421\\\\\\\",\\\\\\\"0.631579\\\\\\\",\\\\\\\"0.694737\\\\\\\",\\\\\\\"0.757895\\\\\\\",\\\\\\\"0.821053\\\\\\\",\\\\\\\"0.884211\\\\\\\",\\\\\\\"0.947368\\\\\\\",\\\\\\\"1.01053\\\\\\\",\\\\\\\"1.07368\\\\\\\",\\\\\\\"1.13684\\\\\\\",\\\\\\\"1.2\\\\\\\"],\\\\\\\"changes\\\\\\\":0,\\\\\\\"formatted_value\\\\\\\":\\\\\\\"0.568421\\\\\\\",\\\\\\\"index\\\\\\\":10}\\\");\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n \\n [this[\\\"formatted_vals\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"formatted_vals\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"formatted_vals\\\",\\\"scope\\\":\\\"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203\\\",\\\"id\\\":\\\"ob_03\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"formatted_vals\\\"]=false}),self),this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203\\\",\\\"id\\\":\\\"ob_05\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"formatted_value\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"formatted_value\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"formatted_value\\\",\\\"scope\\\":\\\"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203\\\",\\\"id\\\":\\\"ob_04\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"formatted_value\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203\\\",\\\"id\\\":\\\"ob_02\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n\")]),\"changes\"=>Any[JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")],\"formatted_value\"=>Any[JSString(\"(function (val){return (val!=this.model[\\\"formatted_value\\\"]()) ? (this.valueFromJulia[\\\"formatted_value\\\"]=true, this.model[\\\"formatted_value\\\"](val)) : undefined})\")],\"index\"=>Any[JSString(\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\"), JSString(\"(function (val){return WebIO.setval({\\\"name\\\":\\\"formatted_value\\\",\\\"scope\\\":\\\"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203\\\",\\\"id\\\":\\\"ob_04\\\",\\\"type\\\":\\\"observable\\\"},WebIO.getval({\\\"name\\\":\\\"formatted_vals\\\",\\\"scope\\\":\\\"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203\\\",\\\"id\\\":\\\"ob_03\\\",\\\"type\\\":\\\"observable\\\"})[(WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"knockout-component-731d733a-dc0d-4f19-8a23-86e6ab6ac203\\\",\\\"id\\\":\\\"ob_02\\\",\\\"type\\\":\\\"observable\\\"})-1)])})\")]), ConnectionPool(Channel{Any}(sz_max:9223372036854775807,sz_curr:4), Set(AbstractConnection[]), Channel{AbstractConnection}(sz_max:32,sz_curr:0))), ##52#53{#dom#15{##dom#13#14{Dict{Any,Any},DOM}},typeof(scope)}(#dom#15{##dom#13#14{Dict{Any,Any},DOM}}(##dom#13#14{Dict{Any,Any},DOM}(Dict{Any,Any}(:className=>\"field\"), DOM(:html, :div))), scope))), Observable{Any} with 0 listeners. Value:\n", - "Plot{Plots.GRBackend() n=4}, nothing, getfield(Main, Symbol(\"##16#18\")){Observable{Any}}(Observable{Any} with 0 listeners. Value:\n", - "Plot{Plots.GRBackend() n=4}))" + "Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Scope(Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"ϵ\"], Dict{Symbol,Any}(:className => \"interact \",:style => Dict{Any,Any}(:padding => \"5px 10px 0px 10px\")))], Dict{Symbol,Any}(:className => \"interact-flex-row-left\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol,Any}(:max => 50,:min => 1,:attributes => Dict{Any,Any}(:type => \"range\",Symbol(\"data-bind\") => \"numericValue: index, valueUpdate: 'input', event: {change: function (){this.changes(this.changes()+1)}}\",\"orient\" => \"horizontal\"),:step => 1,:className => \"slider slider is-fullwidth\",:style => Dict{Any,Any}()))], Dict{Symbol,Any}(:className => \"interact-flex-row-center\")), Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol,Any}(:attributes => Dict(\"data-bind\" => \"text: formatted_val\")))], Dict{Symbol,Any}(:className => \"interact-flex-row-right\"))], Dict{Symbol,Any}(:className => \"interact-flex-row interact-widget\")), Dict{String,Tuple{Observables.AbstractObservable,Union{Nothing, Bool}}}(\"changes\" => (Observable{Int64} with 1 listeners. Value:\n", + "0, nothing),\"index\" => (Observable{Any} with 2 listeners. Value:\n", + "25, nothing)), Set(String[]), nothing, Asset[Asset(\"js\", \"knockout\", \"/Users/abradley/.julia/packages/Knockout/IP1uR/src/../assets/knockout.js\"), Asset(\"js\", \"knockout_punches\", \"/Users/abradley/.julia/packages/Knockout/IP1uR/src/../assets/knockout_punches.js\"), Asset(\"js\", nothing, \"/Users/abradley/.julia/packages/InteractBase/NMcus/src/../assets/all.js\"), Asset(\"css\", nothing, \"/Users/abradley/.julia/packages/InteractBase/NMcus/src/../assets/style.css\"), Asset(\"css\", nothing, \"/Users/abradley/.julia/packages/Interact/SbgIk/src/../assets/bulma_confined.min.css\")], Dict{Any,Any}(\"changes\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")],\"index\" => Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"index\\\"]()) ? (this.valueFromJulia[\\\"index\\\"]=true, this.model[\\\"index\\\"](val)) : undefined})\")]), WebIO.ConnectionPool(Channel{Any}(sz_max:32,sz_curr:0), Set(AbstractConnection[]), Base.GenericCondition{Base.AlwaysLockedST}(Base.InvasiveLinkedList{Task}(Task (runnable) @0x000000013a31f850, Task (runnable) @0x000000013a31f850), Base.AlwaysLockedST(1))), WebIO.JSString[WebIO.JSString(\"function () {\\n var handler = (function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init: function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n });\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n });\\n ko.applyBindingsToNode(\\n element,\\n {\\n value: stringified,\\n valueUpdate: allBindings.get('valueUpdate'),\\n },\\n context,\\n );\\n }\\n };\\n var json_data = {\\\"formatted_vals\\\":[\\\"0.0\\\",\\\"0.0244898\\\",\\\"0.0489796\\\",\\\"0.0734694\\\",\\\"0.0979592\\\",\\\"0.122449\\\",\\\"0.146939\\\",\\\"0.171429\\\",\\\"0.195918\\\",\\\"0.220408\\\",\\\"0.244898\\\",\\\"0.269388\\\",\\\"0.293878\\\",\\\"0.318367\\\",\\\"0.342857\\\",\\\"0.367347\\\",\\\"0.391837\\\",\\\"0.416327\\\",\\\"0.440816\\\",\\\"0.465306\\\",\\\"0.489796\\\",\\\"0.514286\\\",\\\"0.538776\\\",\\\"0.563265\\\",\\\"0.587755\\\",\\\"0.612245\\\",\\\"0.636735\\\",\\\"0.661224\\\",\\\"0.685714\\\",\\\"0.710204\\\",\\\"0.734694\\\",\\\"0.759184\\\",\\\"0.783673\\\",\\\"0.808163\\\",\\\"0.832653\\\",\\\"0.857143\\\",\\\"0.881633\\\",\\\"0.906122\\\",\\\"0.930612\\\",\\\"0.955102\\\",\\\"0.979592\\\",\\\"1.00408\\\",\\\"1.02857\\\",\\\"1.05306\\\",\\\"1.07755\\\",\\\"1.10204\\\",\\\"1.12653\\\",\\\"1.15102\\\",\\\"1.17551\\\",\\\"1.2\\\"],\\\"changes\\\":WebIO.getval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"8993573112394589592\\\",\\\"id\\\":\\\"17157373845006176120\\\",\\\"type\\\":\\\"observable\\\"}),\\\"index\\\":WebIO.getval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"8993573112394589592\\\",\\\"id\\\":\\\"6446057052578992172\\\",\\\"type\\\":\\\"observable\\\"})};\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"formatted_val\\\"]=ko.computed( function(){\\n return this.formatted_vals()[parseInt(this.index())-(1)];\\n }\\n,this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"8993573112394589592\\\",\\\"id\\\":\\\"17157373845006176120\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"index\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"index\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"index\\\",\\\"scope\\\":\\\"8993573112394589592\\\",\\\"id\\\":\\\"6446057052578992172\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"index\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n);\\n (WebIO.importBlock({\\\"data\\\":[{\\\"name\\\":\\\"knockout\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/c81693e18a21a2a47ca931b7b0468e21bcea2884-knockout.js\\\"},{\\\"name\\\":\\\"knockout_punches\\\",\\\"type\\\":\\\"js\\\",\\\"url\\\":\\\"/assetserver/7c7f52abb5758c346b01ad3f3376930685b8965e-knockout_punches.js\\\"}],\\\"type\\\":\\\"async_block\\\"})).then((imports) => handler.apply(this, imports));\\n}\\n\")])], Dict{Symbol,Any}(:className => \"field interact-widget\")), Observable{Any} with 0 listeners. Value:\n", + "Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[Plot{Plots.GRBackend() n=4}], Dict{Symbol,Any}(:className => \"interact-flex-row interact-widget\"))], Dict{Symbol,Any}())" ] }, - "execution_count": 31, - "metadata": {}, + "execution_count": 59, + "metadata": { + "application/vnd.webio.node+json": { + "kernelId": "6377aef2-6d2f-4eae-9275-a0465f22976e" + } + }, "output_type": "execute_result" } ], "source": [ "ϵmax = 1.2\n", - "Neps = 20\n", - "ϵvec = linspace(0.0,ϵmax,Neps)\n", + "Neps = 50\n", + "ϵvec = LinRange(0.0,ϵmax,Neps)\n", "\n", "p1=plot(size=(600,200))\n", "@manipulate for ϵ in ϵvec \n", " 🐇, 🐺 = pprey_shift(ϵ)\n", - " plot(t,🐇,label=L\"r(t)\",legend=:topright);plot!(t,🐺,label=L\"w(t)\")\n", + " plot(t,🐇,label=L\"r(t)\",legend=:topright);plot!(t,🐺,label=L\"w(t)\",foreground_color_legend = nothing)\n", " plot!(t,r̄*one.(t),label=L\"\\bar r\",s=:d)\n", " plot!(t,w̄*one.(t),label=L\"\\bar w\",s=:d)\n", - " ylims!(0,5);xlabel!(\"t\");ylabel!(\"population\")\n", + " ylims!(0,5);xlabel!(L\"t\");ylabel!(L\"\\textrm{Pop.}\")\n", " xlims!(0,70);ylims!(0,8)\n", - " title!(\"predator-prey dynamics\")\n", + " title!(\"Predator-prey dynamics\")\n", "end" ] }, @@ -13737,6 +11107,56 @@ "Fast enough to easily run and plot in real time while scanning parameter space." ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can easily use the same code to make an animated .gif to scan over the results:" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "┌ Info: Saved animation to \n", + "│ fn = /Users/abradley/Dropbox/Julia/ANZSUP2019/ANZSUP19_Stochastic/media/ppdynamics.gif\n", + "└ @ Plots /Users/abradley/.julia/packages/Plots/cc8wh/src/animation.jl:98\n" + ] + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "Plots.AnimatedGif(\"/Users/abradley/Dropbox/Julia/ANZSUP2019/ANZSUP19_Stochastic/media/ppdynamics.gif\")" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p1=plot()\n", + "anim=@animate for ϵ in ϵvec \n", + " 🐇, 🐺 = pprey_shift(ϵ)\n", + " plot(t,🐇,label=L\"r(t)\",legend=:topright,size=(600,200));plot!(t,🐺,label=L\"w(t)\",foreground_color_legend = nothing)\n", + " plot!(t,r̄*one.(t),label=L\"\\bar r\",s=:d)\n", + " plot!(t,w̄*one.(t),label=L\"\\bar w\",s=:d)\n", + " ylims!(0,5);xlabel!(L\"t\");ylabel!(L\"\\textrm{Pop.}\")\n", + " xlims!(0,70);ylims!(0,8)\n", + " title!(\"Predator-prey dynamics\")\n", + " annotate!(60,2,text(latexstring(\"\\\\epsilon=$(round(ϵ;digits=2))\"), :red,:left, 12))\n", + "end\n", + "gif(anim,\"./media/ppdynamics.gif\",fps=15)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -13747,16 +11167,20 @@ } ], "metadata": { + "@webio": { + "lastCommId": "bc18c2ae10cc45c7a3db56b9b65593af", + "lastKernelId": "6377aef2-6d2f-4eae-9275-a0465f22976e" + }, "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.4.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.4" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.0.3" + "version": "1.4.0" } }, "nbformat": 4, diff --git a/Workshop3.ipynb b/Workshop3.ipynb index a853ec5..3f46331 100644 --- a/Workshop3.ipynb +++ b/Workshop3.ipynb @@ -42,17 +42,17 @@ "## Workshop 3: Quantum Phase space\n", "Numerical solution of SDEs for physicists\n", "\n", - "- $\\texttt{DifferentialEquations.jl}$: fast, adaptive stochastic integration\n", + "- [DifferentialEquations.jl](https://github.com/SciML/DifferentialEquations.jl): fast, adaptive stochastic integration\n", "- Worked example: damped optical cavity \n", "\n", "\n", "References\n", "\n", - "- _The Quantum World of Ultracold Atoms and Light: Book I: Foundations of Quantum Optics_, C. W. Gardiner and P. Zoller, [Imperial College Press, London (2014)](https://www.worldscientific.com/worldscibooks/10.1142/p941)\n", - "- _Generalized P-representations in quantum optics_, P. D. Drumond and C. W. Gardiner, [J. Phys. A-Math. and Gen., __13__, 2353-2368 (1980)](http://iopscience.iop.org/article/10.1088/0305-4470/13/7/018/meta)\n", + "- *The Quantum World of Ultracold Atoms and Light: Book I: Foundations of Quantum Optics*, C. W. Gardiner and P. Zoller, [Imperial College Press, London (2014)](https://www.worldscientific.com/worldscibooks/10.1142/p941)\n", + "- *Generalized P-representations in quantum optics*, P. D. Drumond and C. W. Gardiner, [J. Phys. A-Math. and Gen., __13__, 2353-2368 (1980)](http://iopscience.iop.org/article/10.1088/0305-4470/13/7/018/meta)\n", "- [A deep introduction to julia](http://ucidatascienceinitiative.github.io/IntroToJulia/), Christopher Rackauckas\n", "- [_Stochastic Lifestyle_](http://www.stochasticlifestyle.com/), Christopher Rackauckas\n", - "- _Dynamics and statistical mechanics of ultra-cold Bose gases using c-field techniques_,\n", + "- *Dynamics and statistical mechanics of ultra-cold Bose gases using c-field techniques*,\n", "P. B. Blakie, A. S. Bradley, M. J. Davis, R. J. Ballagh, and C. W. Gardiner, [Advances in Phyiscs 57, 363 (2008)](https://doi.org/10.1080/00018730802564254)" ] }, @@ -65,24 +65,12 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "linspace (generic function with 1 method)" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "using DifferentialEquations, Statistics, Plots, LaTeXStrings, Revise\n", - "gr(grid=false,legend=false,size=(400,200),titlefontsize=12)\n", - "linspace(a,b,n) = LinRange(a,b,n) |> collect" + "gr(grid=false,legend=false,size=(400,200),titlefontsize=12)" ] }, { @@ -112,33 +100,20 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "\u001b[36mSDEProblem\u001b[0m with uType \u001b[36mFloat64\u001b[0m and tType \u001b[36mFloat64\u001b[0m. In-place: \u001b[36mfalse\u001b[0m\n", - "timespan: (0.0, 1.0)\n", - "u0: 0.0" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "γ = 0.1\n", "β = 2.1\n", "u0= 0.0\n", - "A(u,p,t) = -γ*u #drift\n", - "B(u,p,t) = β #diffusion\n", + "A(u,p,t) = -γ*u # drift\n", + "B(u,p,t) = β # diffusion\n", "\n", "t0 = 0.0; tf = 1.0; Nt = 200\n", "dt = .0001\n", "tspan = (t0,tf)\n", - "t = linspace(t0,tf,Nt)\n", + "t = LinRange(tspan...,Nt)\n", "prob = SDEProblem(A,B,u0,tspan)" ] }, @@ -151,152 +126,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.2\n", - "\n", - "\n", - "0.4\n", - "\n", - "\n", - "0.6\n", - "\n", - "\n", - "0.8\n", - "\n", - "\n", - "1.0\n", - "\n", - "\n", - "-1.5\n", - "\n", - "\n", - "-1.0\n", - "\n", - "\n", - "-0.5\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.5\n", - "\n", - "\n", - "1.0\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "\n" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sol = solve(prob,EM(),dt=dt,saveat=t)\n", "plot(sol,lw=1)" @@ -311,140 +143,9 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.2\n", - "\n", - "\n", - "0.4\n", - "\n", - "\n", - "0.6\n", - "\n", - "\n", - "0.8\n", - "\n", - "\n", - "1.0\n", - "\n", - "\n", - "-2\n", - "\n", - "\n", - "-1\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "\n" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sol = solve(prob,EulerHeun(),dt=dt,saveat=t)\n", "plot(sol,lw=1)" @@ -459,146 +160,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.2\n", - "\n", - "\n", - "0.4\n", - "\n", - "\n", - "0.6\n", - "\n", - "\n", - "0.8\n", - "\n", - "\n", - "1.0\n", - "\n", - "\n", - "-1\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "\n" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sol = solve(prob,LambaEM(),saveat=t)\n", "plot(sol,lw=1)" @@ -610,9 +174,7 @@ "source": [ "The trajectories look quite different! We are seeing the solution approach the steady state: adaptive solvers can stretch their legs and take bigger steps as dynamical timescales increase. Let's go back and check the timing. You can see this immediately translates to large gains in execution time. \n", "\n", - "Historically, general methods are of low order of convergence, and performant adaptivity was not available. \n", - "\n", - "> My humble opinion: _general_ adaptive methods that Rackauckas, Nie, and Lamba have been developing and spreading through $\\julia$ are a total game changer.\n", + "Historically, general methods are of low order of convergence, and performant adaptivity was not available. In my opinion, *general* adaptive methods that Rackauckas, Nie, and Lamba have been developing and sharing through $\\julia$ are a total game changer.\n", "\n", "See the article by [Rackauckas and Nie](https://www.aimsciences.org/article/doi/10.3934/dcdsb.2017133) for an in-depth discussion of rejection sampling with memory. " ] @@ -655,254 +217,27 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "MonteCarloProblem with problem SDEProblem" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "monte_prob = MonteCarloProblem(prob) #adaptive, as that was last definition of prob" + "monte_prob = MonteCarloProblem(prob) # adaptive, as that was last definition of prob" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "sol = solve(monte_prob,num_monte=1000,parallel_type=:threads);" + "sol = solve(monte_prob,trajectories=1000)" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.00\n", - "\n", - "\n", - "0.25\n", - "\n", - "\n", - "0.50\n", - "\n", - "\n", - "0.75\n", - "\n", - "\n", - "1.00\n", - "\n", - "\n", - "-3\n", - "\n", - "\n", - "-2\n", - "\n", - "\n", - "-1\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "Ornstein-Uhlenbeck process\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "u(t)\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "Middle 95%\n", - "\n", - "\n", - "\n", - "Middle 50%\n", - "\n", - "\n" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "summ = MonteCarloSummary(sol,0:0.01:1)\n", "plot(summ,labels=\"Middle 95%\")\n", @@ -929,20 +264,9 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(::Drift{getfield(Main, Symbol(\"##3#4\")),Nothing,Nothing,Nothing,Nothing,Nothing,Any,Any}) (generic function with 2 methods)" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "a = @ode_def_bare Drift begin\n", " du = -γ*u \n", @@ -951,20 +275,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(::Diffusion{getfield(Main, Symbol(\"##5#6\")),Nothing,Nothing,Nothing,Nothing,Nothing,Any,Any}) (generic function with 2 methods)" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "b = @ode_def_bare Diffusion begin\n", " du = β\n", @@ -973,60 +286,41 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "brownian (generic function with 1 method)" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "function brownian(Ntraj;parallel_type=:none)\n", - "#time \n", + "function brownian(Ntraj)\n", + "# time \n", "ti = 0.\n", "tf = 100.\n", "Nt = 100\n", "tspan = (ti,tf)\n", - "t = linspace(ti,tf,Nt)\n", + "t = LinRange(ti,tf,Nt)\n", "γ = 0.1; β = 0.5\n", "p = (γ,β)\n", " \n", - "#initial condition\n", + "# initial condition\n", "u0 = [6.0]\n", " \n", - "#define problem\n", + "# define problem\n", "prob = SDEProblem(a,b,u0,tspan,p)\n", " \n", - "alg = SRIW1() #higher order adaptive for diagonal noise\n", + "alg = SRIW1() # higher order adaptive for diagonal noise\n", "dt = 1/100\n", " \n", "monte_prob = MonteCarloProblem(prob)\n", "\n", "\n", - "return solve(monte_prob,alg,saveat=t,num_monte=Ntraj,parallel_type=parallel_type)\n", + "return solve(monte_prob,alg,saveat=t,trajectories=Ntraj)\n", "end" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "compile...\n" - ] - } - ], + "outputs": [], "source": [ "println(\"compile...\")\n", "brownian(1);" @@ -1034,1676 +328,40 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start...\n", - " 0.100663 seconds (162.32 k allocations: 10.932 MiB, 50.98% gc time)\n" - ] - } - ], + "outputs": [], "source": [ "Ntraj = 100\n", "println(\"start...\")\n", - "@time sol = brownian(Ntraj,parallel_type=:threads);" + "@time sol = brownian(Ntraj);" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "20\n", - "\n", - "\n", - "40\n", - "\n", - "\n", - "60\n", - "\n", - "\n", - "80\n", - "\n", - "\n", - "100\n", - "\n", - "\n", - "-2\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "6\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "plot(sol,lw=1) # few paths" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start...\n", - " 2.128262 seconds (7.53 M allocations: 515.665 MiB, 19.81% gc time)\n" - ] - } - ], + "outputs": [], "source": [ - "Ntraj = 5000 #let's get some clean statistics\n", + "Ntraj = 5000 # let's get some clean statistics\n", "println(\"start...\")\n", - "@time sol = brownian(Ntraj,parallel_type=:threads);" + "@time sol = brownian(Ntraj);" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "25\n", - "\n", - "\n", - "50\n", - "\n", - "\n", - "75\n", - "\n", - "\n", - "100\n", - "\n", - "\n", - "-2\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "6\n", - "\n", - "\n", - "Ornstein-Uhlenbeck process\n", - "\n", - "\n", - "t\n", - "\n", - "\n", - "u(t)\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "Middle 95%\n", - "\n", - "\n", - "\n", - "Middle 50%\n", - "\n", - "\n" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "summ = MonteCarloSummary(sol)\n", "plot(summ,labels=\"Middle 95%\")\n", @@ -2945,87 +603,57 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(::Diffusion{getfield(Main, Symbol(\"##10#11\")),Nothing,Nothing,Nothing,Nothing,Nothing,Any,Any}) (generic function with 2 methods)" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "drift = @ode_def_bare Drift begin\n", " dα = (-im*ω-γ/2)*α \n", - " #dᾱ = (im*ω-γ/2)*ᾱ #in +P these would be independent\n", + " # dᾱ = (im*ω-γ/2)*ᾱ # in +P these would be independent\n", " end ω γ n̄\n", "\n", - "diff = @ode_def_bare Diffusion begin\n", + "diffusion = @ode_def_bare Diffusion begin\n", " dα = sqrt(γ*n̄)\n", - " #dᾱ = sqrt(γ*n̄) #in +P these would be independent\n", + " # dᾱ = sqrt(γ*n̄) # in +P these would be independent\n", " end ω γ n̄" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "opticalcavity (generic function with 1 method)" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "function opticalcavity(Ntraj;parallel_type=:none)\n", - "#time \n", + "function opticalcavity(Ntraj)\n", + "# time \n", "ti = 0.\n", "tf = 50.\n", "Nt = 100\n", - "t = linspace(ti,tf,Nt)\n", + "t = LinRange(ti,tf,Nt)\n", "tspan = (ti,tf)\n", "\n", "ω = 1.0; γ = 0.1; n̄ = 10\n", "p = (ω,γ,n̄)\n", " \n", - "#initial condition (must of the same type as solution! here an array of length 1)\n", + "# initial condition (must of the same type as solution! here an array of length 1)\n", "a0 = [10.0+0.0*im]\n", " \n", " \n", - "prob = SDEProblem(drift,diff,a0,tspan,p)\n", - "alg = SRIW1() #higher order adaptive for diagonal noise\n", + "prob = SDEProblem(drift,diffusion,a0,tspan,p)\n", + "alg = SRIW1() # higher order adaptive for diagonal noise\n", "dt = 1/100\n", " \n", "monte_prob = MonteCarloProblem(prob)\n", "\n", - "return solve(monte_prob,alg,saveat=t,num_monte=Ntraj,parallel_type=parallel_type)\n", + "return solve(monte_prob,alg,saveat=t,trajectories=Ntraj)\n", "end" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "compile...\n" - ] - } - ], + "outputs": [], "source": [ "println(\"compile...\")\n", "opticalcavity(1);" @@ -3033,42 +661,33 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start...\n", - " 6.336602 seconds (35.08 M allocations: 1.201 GiB, 24.24% gc time)\n" - ] - } - ], + "outputs": [], "source": [ "Ntraj = 5000 \n", "println(\"start...\")\n", - "@time sol = opticalcavity(Ntraj,parallel_type=:threads);" + "@time sol = opticalcavity(Ntraj);" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "#trajectories are first index\n", - "#modes are second index\n", - "#time is third index\n", + "# trajectories are first index\n", + "# modes are second index\n", + "# time is third index\n", "α(j) = sol[j][1,:]\n", "\n", - "#trajectory average at each time, for each mode\n", + "# trajectory average at each time, for each mode\n", "n1 = zero(abs.(α(1)))\n", "for j in 1:Ntraj\n", " n1 += abs2.(α(j))\n", "end\n", "\n", - "n1 /= Ntraj; #divide by number of trajectories" + "n1 /= Ntraj; # divide by number of trajectories" ] }, { @@ -3082,26 +701,15 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "na (generic function with 1 method)" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "#we need the same parameters outside the function\n", + "# we need the same parameters outside the function\n", "ti = 0.\n", "tf = 50.\n", "Nt = 100\n", - "t = linspace(ti,tf,Nt);\n", + "t = LinRange(ti,tf,Nt);\n", "\n", "ω = 1.0\n", "γ = 0.1\n", @@ -3112,246 +720,9 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "10\n", - "\n", - "\n", - "20\n", - "\n", - "\n", - "30\n", - "\n", - "\n", - "40\n", - "\n", - "\n", - "50\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "25\n", - "\n", - "\n", - "50\n", - "\n", - "\n", - "75\n", - "\n", - "\n", - "100\n", - "\n", - "\n", - "Approach to thermal equilibrium\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "exact\n", - "\n", - "\n", - "\n", - "SDE\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "plot(t,na.(t),c=:red,lw=1,label=\"exact\",legend=:topright)\n", "plot!(t,n1,lw=6,c=:blue,alpha=.2,label=\"SDE\")\n", @@ -3366,8 +737,8 @@ "metadata": {}, "source": [ "## Remarks\n", - "- A simple example highlighted the key steps. You should now be able to work through any phase space mapping problem, find equivalent SDE's (approximately if truncation proves necessary), and solve them.\n", - "- The Wigner represtation has mappings that appear more symmetric. Moments of $W$, and hence stochastic averages over equivalent SDE's allow computation of _symmetric operator averages_, e.g. $\\overline{(\\alpha^*\\alpha)}_W=\\tfrac{1}{2}\\langle a^\\dagger a+a a^\\dagger\\rangle=\\langle a^\\dagger a\\rangle+\\tfrac{1}{2}$. This is a key distinction between $W$ and $P$, the latter giving _normally ordered operator averages_.\n", + "- We have considered a simple and familiar example to highlight the key steps. You should now be able to work through any phase space mapping problem, find equivalent SDE's (approximately if truncation proves necessary), and solve them.\n", + "- The Wigner represtation has mappings that appear more symmetric. Moments of $W$, and hence stochastic averages over equivalent SDE's allow computation of *symmetric operator averages*, e.g. $\\overline{(\\alpha^*\\alpha)}_W=\\tfrac{1}{2}\\langle a^\\dagger a+a a^\\dagger\\rangle=\\langle a^\\dagger a\\rangle+\\tfrac{1}{2}$. This is a key distinction between $W$ and $P$, the latter giving *normally ordered operator averages*.\n", "- This extra factor of $\\tfrac{1}{2}$ is the source of vacuum noise in the truncated Wigner initial conditions that is absent from $P$-function methods." ] }, @@ -3395,31 +766,23 @@ "# From symbolic to efficient numerical evaluation using SymPy\n", "In $\\julia$ you can do computer algebra work in [SymPy](https://github.com/JuliaPy/SymPy.jl) (not a Mathematica replacement, but can do a lot of standard computer algebra in an jupyter environment that has a comparable user experience), and then create fast compiled code using the $\\julia$ compiler, by using the function `lambdify`. \n", "\n", - "Let's see a simple example, namely finding a jacobian." + "Let's see a simple example, namely finding a jacobian. At this point there could be some namespace clashes, so before proceeding, restart and clear outputs using the kernel menu. " ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 1, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING: using SymPy.solve in module Main conflicts with an existing identifier.\n" - ] - } - ], + "outputs": [], "source": [ "using SymPy, BenchmarkTools\n", - "#(in this notebook we call SymPy methods by class to avoid \n", + "# (in this notebook we call SymPy methods by class to avoid \n", "# namespace clashes with other packages loaded above)" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -3428,7 +791,7 @@ "(x, y)" ] }, - "execution_count": 25, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -3439,7 +802,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -3448,7 +811,7 @@ "f (generic function with 1 method)" ] }, - "execution_count": 26, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -3459,13 +822,13 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "\\[\\left[ \\begin{array}{rr}- e^{- y^{2}} \\sin{\\left (x \\right )}&- 2 y e^{- y^{2}} \\cos{\\left (x \\right )}\\\\- 2 y e^{- y^{2}} \\cos{\\left (x \\right )}&2 \\left(2 y^{2} - 1\\right) e^{- y^{2}} \\sin{\\left (x \\right )}\\end{array}\\right]\\]" + "\\[\\left[ \\begin{array}{rr}- e^{- y^{2}} \\sin{\\left(x \\right)}&- 2 y e^{- y^{2}} \\cos{\\left(x \\right)}\\\\- 2 y e^{- y^{2}} \\cos{\\left(x \\right)}&2 \\left(2 y^{2} - 1\\right) e^{- y^{2}} \\sin{\\left(x \\right)}\\end{array}\\right]\\]" ], "text/plain": [ "2×2 Array{Sym,2}:\n", @@ -3473,49 +836,193 @@ " -2*y*exp(-y^2)*cos(x) 2*(2*y^2 - 1)*exp(-y^2)*sin(x)" ] }, - "execution_count": 27, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "#make jacobian sym expression using an array comprehension\n", + "# build jacobian as a sym expression using an array comprehension\n", "jac=[SymPy.diff(f(x,y), v1, v2) for v1 in [x,y], v2 in [x,y]]" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "search: \u001b[0m\u001b[1ml\u001b[22m\u001b[0m\u001b[1ma\u001b[22m\u001b[0m\u001b[1mm\u001b[22m\u001b[0m\u001b[1mb\u001b[22m\u001b[0m\u001b[1md\u001b[22m\u001b[0m\u001b[1mi\u001b[22m\u001b[0m\u001b[1mf\u001b[22m\u001b[0m\u001b[1my\u001b[22m\n", + "\n" + ] + }, + { + "data": { + "text/latex": [ + "\\begin{verbatim}\n", + " lambdify(ex, vars; typ, fns, values, use_julia_code, invoke_latest)\n", + "\\end{verbatim}\n", + "Take a symbolic expression and return an anonymous \\texttt{Julia} function\n", + "\n", + "Converts from a SymPy object to an expression by walking the SymPy expression tree and converting each step. Then creates a function. The function arguments are based on \\texttt{free\\_symbols}, and its ordering unless \\texttt{vars} is specified directly.\n", + "\n", + "\\begin{itemize}\n", + "\\item \\texttt{use\\_julia\\_code=false} will use SymPy's conversion to an expression, the default is \\texttt{false}\n", + "\n", + "\n", + "\\item \\texttt{invoke\\_latest=true} calls \\texttt{Base.invokelatest} to work around world age issues. This is th safe default, but setting to \\texttt{false} will result in faster-executing functions.\n", + "\n", + "\\end{itemize}\n", + "Example:\n", + "\n", + "\\begin{verbatim}\n", + "@vars x y z\n", + "ex = x^2 * sin(x)\n", + "fn = lambdify(ex)\n", + "fn(pi)\n", + "\n", + "ex = x + 2y + 3z\n", + "fn = lambdify(ex)\n", + "fn(1,2,3) # order is y,x,z\n", + "\n", + "fn = lambdify(ex, (x,y,z))\n", + "fn(1,2,3)\n", + "\\end{verbatim}\n", + "\\begin{quote}\n", + "\\textbf{note}\n", + "\n", + "Note\n", + "\n", + "Ideally, this would just be:\n", + "\n", + "\\end{quote}\n", + "\\begin{verbatim}\n", + "body = Meta.parse(julia_code(ex))\n", + "syms = Symbol.(free_symbols(ex))\n", + "fn = eval(Expr(:function, Expr(:call, gensym(), syms...), body))\n", + "\\end{verbatim}\n", + "Where the first line could also be \\texttt{convert(Expr, ex)}. However, the \\texttt{julia\\_code} method from sympy needs some attention.\n", + "\n" + ], + "text/markdown": [ + "```\n", + " lambdify(ex, vars; typ, fns, values, use_julia_code, invoke_latest)\n", + "```\n", + "\n", + "Take a symbolic expression and return an anonymous `Julia` function\n", + "\n", + "Converts from a SymPy object to an expression by walking the SymPy expression tree and converting each step. Then creates a function. The function arguments are based on `free_symbols`, and its ordering unless `vars` is specified directly.\n", + "\n", + " * `use_julia_code=false` will use SymPy's conversion to an expression, the default is `false`\n", + " * `invoke_latest=true` calls `Base.invokelatest` to work around world age issues. This is th safe default, but setting to `false` will result in faster-executing functions.\n", + "\n", + "Example:\n", + "\n", + "```\n", + "@vars x y z\n", + "ex = x^2 * sin(x)\n", + "fn = lambdify(ex)\n", + "fn(pi)\n", + "\n", + "ex = x + 2y + 3z\n", + "fn = lambdify(ex)\n", + "fn(1,2,3) # order is y,x,z\n", + "\n", + "fn = lambdify(ex, (x,y,z))\n", + "fn(1,2,3)\n", + "```\n", + "\n", + "!!! note\n", + " Ideally, this would just be:\n", + "\n", + "\n", + "```\n", + "body = Meta.parse(julia_code(ex))\n", + "syms = Symbol.(free_symbols(ex))\n", + "fn = eval(Expr(:function, Expr(:call, gensym(), syms...), body))\n", + "```\n", + "\n", + "Where the first line could also be `convert(Expr, ex)`. However, the `julia_code` method from sympy needs some attention.\n" + ], + "text/plain": [ + "\u001b[36m lambdify(ex, vars; typ, fns, values, use_julia_code, invoke_latest)\u001b[39m\n", + "\n", + " Take a symbolic expression and return an anonymous \u001b[36mJulia\u001b[39m function\n", + "\n", + " Converts from a SymPy object to an expression by walking the SymPy\n", + " expression tree and converting each step. Then creates a function. The\n", + " function arguments are based on \u001b[36mfree_symbols\u001b[39m, and its ordering unless \u001b[36mvars\u001b[39m\n", + " is specified directly.\n", + "\n", + " • \u001b[36muse_julia_code=false\u001b[39m will use SymPy's conversion to an expression,\n", + " the default is \u001b[36mfalse\u001b[39m\n", + "\n", + " • \u001b[36minvoke_latest=true\u001b[39m calls \u001b[36mBase.invokelatest\u001b[39m to work around world\n", + " age issues. This is th safe default, but setting to \u001b[36mfalse\u001b[39m will\n", + " result in faster-executing functions.\n", + "\n", + " Example:\n", + "\n", + "\u001b[36m @vars x y z\u001b[39m\n", + "\u001b[36m ex = x^2 * sin(x)\u001b[39m\n", + "\u001b[36m fn = lambdify(ex)\u001b[39m\n", + "\u001b[36m fn(pi)\u001b[39m\n", + "\u001b[36m \u001b[39m\n", + "\u001b[36m ex = x + 2y + 3z\u001b[39m\n", + "\u001b[36m fn = lambdify(ex)\u001b[39m\n", + "\u001b[36m fn(1,2,3) # order is y,x,z\u001b[39m\n", + "\u001b[36m \u001b[39m\n", + "\u001b[36m fn = lambdify(ex, (x,y,z))\u001b[39m\n", + "\u001b[36m fn(1,2,3)\u001b[39m\n", + "\n", + "\u001b[36m\u001b[1m │ \u001b[22m\u001b[39m\u001b[36m\u001b[1mNote\u001b[22m\u001b[39m\n", + "\u001b[36m\u001b[1m │\u001b[22m\u001b[39m\n", + "\u001b[36m\u001b[1m │\u001b[22m\u001b[39m Ideally, this would just be:\n", + "\n", + "\u001b[36m body = Meta.parse(julia_code(ex))\u001b[39m\n", + "\u001b[36m syms = Symbol.(free_symbols(ex))\u001b[39m\n", + "\u001b[36m fn = eval(Expr(:function, Expr(:call, gensym(), syms...), body))\u001b[39m\n", + "\n", + " Where the first line could also be \u001b[36mconvert(Expr, ex)\u001b[39m. However, the\n", + " \u001b[36mjulia_code\u001b[39m method from sympy needs some attention." + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "?lambdify" ] }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "#220 (generic function with 1 method)" + "#86 (generic function with 1 method)" ] }, - "execution_count": 28, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "#define a c-compiled function from symbolic expression\n", + "# define a c-compiled function from symbolic expression\n", "jac_lam=lambdify(jac,[x,y])" ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -3526,7 +1033,7 @@ " -0.382396 -0.176491" ] }, - "execution_count": 29, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -3544,7 +1051,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 40, "metadata": {}, "outputs": [ { @@ -3553,7 +1060,7 @@ "jac_native (generic function with 1 method)" ] }, - "execution_count": 30, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" } @@ -3565,7 +1072,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 41, "metadata": {}, "outputs": [ { @@ -3576,7 +1083,7 @@ " -0.382396 -0.176491" ] }, - "execution_count": 31, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -3587,122 +1094,80 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 73, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 146.044 ns (5 allocations: 176 bytes)\n" + " 421.011 μs (233 allocations: 7.42 KiB)\n" ] - }, - { - "data": { - "text/plain": [ - "2×2 Array{Float64,2}:\n", - " -0.0959189 -0.382396\n", - " -0.382396 -0.176491" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "@btime jac_native(.1,.2)" + "@btime subs(jac[1],(x,.1),(y,.2)),subs(jac[2],(x,.1),(y,.2)),subs(jac[3],(x,.1),(y,.2)),subs(jac[4],(x,.1),(y,.2));" ] }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 64, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 15.574 μs (69 allocations: 1.64 KiB)\n" + " 5.755 μs (63 allocations: 1.41 KiB)\n" ] - }, - { - "data": { - "text/plain": [ - "2×2 Array{Float64,2}:\n", - " -0.0959189 -0.382396\n", - " -0.382396 -0.176491" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "@btime jac_lam(.1,.2)" + "@btime jac_lam(.1,.2);" ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 65, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 595.861 μs (275 allocations: 8.84 KiB)\n" + " 97.844 ns (5 allocations: 176 bytes)\n" ] - }, - { - "data": { - "text/latex": [ - "\\[\\left[ \\begin{array}{rr}-0.0959188923887662&-0.38239579756468\\\\-0.38239579756468&-0.17649076199533\\end{array}\\right]\\]" - ], - "text/plain": [ - "2×2 Array{Sym,2}:\n", - " -0.0959188923887662 -0.382395797564680\n", - " -0.382395797564680 -0.176490761995330" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "@btime subs(jac,x=>.1,y=>.2)" + "@btime jac_native(.1,.2);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "So in this case lambdify is roughly 50 times faster than direct numerical evaualuation in SymPy, but 100 times slower than native julia.\n", + "So in this case lambdify is about 70 times faster than sympy, but still takes 6 times longer than native julia. \n", "\n", - "In this simple example, we had the luxury of writing down a native julia expression, but the value of this approach comes when such a baseline is not available due to the complexity of expressions involved. In which case, a factor of 50 is a welcome improvement!" + "In this simple example, we had the luxury of writing down a native julia expression, but the value of this approach comes when such a baseline is not available due to the complexity of expressions involved. In which case, a factor of 70 is a welcome improvement!" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.4.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.4" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.0.3" + "version": "1.4.0" } }, "nbformat": 4, diff --git a/media/ppdynamics.gif b/media/ppdynamics.gif new file mode 100644 index 0000000..b605767 Binary files /dev/null and b/media/ppdynamics.gif differ diff --git a/media/wpaths.gif b/media/wpaths.gif index 04011d6..be5e45b 100644 Binary files a/media/wpaths.gif and b/media/wpaths.gif differ