From 16c404a372198143aa944ff580dd5816619000c3 Mon Sep 17 00:00:00 2001 From: Shuhei Ohno Date: Thu, 30 Nov 2023 06:30:32 +0900 Subject: [PATCH] Fix Template --- .../workflows/{documentation.yml => CI.yml} | 104 ++-- .github/workflows/CompatHelper.yml | 16 + .github/workflows/TagBot.yml | 31 ++ .gitignore | 1 + Project.toml | 16 +- README.md | 3 +- developer.ipynb | 492 +++++++++++------- docs/Project.toml | 1 + docs/jmd2md.jl | 20 + docs/src/HarmonicOscillator.md | 52 +- docs/src/HydrogenAtom.md | 120 ++--- docs/src/InfinitePotentialWell.md | 10 +- docs/src/MorsePotential.md | 112 ++-- .../src/assets/fig/HarmonicOscillator_5_1.png | Bin 59935 -> 60130 bytes src/Antiq.jl | 2 +- src/HarmonicOscillator.jl | 2 +- test/HarmonicOscillator.jl | 4 +- 17 files changed, 599 insertions(+), 387 deletions(-) rename .github/workflows/{documentation.yml => CI.yml} (61%) create mode 100644 .github/workflows/CompatHelper.yml create mode 100644 .github/workflows/TagBot.yml create mode 100644 docs/jmd2md.jl diff --git a/.github/workflows/documentation.yml b/.github/workflows/CI.yml similarity index 61% rename from .github/workflows/documentation.yml rename to .github/workflows/CI.yml index 2169ed4..ca6b92b 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/CI.yml @@ -1,40 +1,64 @@ -name: Documentation -on: - push: - branches: - - main - tags: ['*'] - pull_request: -concurrency: - # Skip intermediate builds: always. - # Cancel intermediate builds: only if it is a pull request build. - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} -jobs: - docs: - name: Documentation - runs-on: ubuntu-latest - permissions: - contents: write - statuses: write - steps: - - uses: actions/checkout@v3 - - uses: julia-actions/setup-julia@v1 - with: - version: '1' - - name: Configure doc environment - run: | - julia --project=docs/ -e ' - using Pkg - Pkg.develop(PackageSpec(path=pwd())) - Pkg.instantiate()' - - uses: julia-actions/julia-buildpkg@v1 - - uses: julia-actions/julia-docdeploy@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: | - julia --project=docs -e ' - using Documenter: DocMeta, doctest - using Antiq - DocMeta.setdocmeta!(Antiq, :DocTestSetup, :(using Antiq); recursive=true) - doctest(Antiq)' \ No newline at end of file +name: CI +on: + push: + branches: + - main + tags: ['*'] + pull_request: +concurrency: + # Skip intermediate builds: always. + # Cancel intermediate builds: only if it is a pull request build. + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} +jobs: + test: + name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + version: + - '1.0' + - '1.6' + - '1.7' + - 'nightly' + os: + - ubuntu-latest + arch: + - x64 + steps: + - uses: actions/checkout@v3 + - uses: julia-actions/setup-julia@v1 + with: + version: ${{ matrix.version }} + arch: ${{ matrix.arch }} + - uses: julia-actions/cache@v1 + - uses: julia-actions/julia-buildpkg@v1 + - uses: julia-actions/julia-runtest@v1 + docs: + name: Documentation + runs-on: ubuntu-latest + permissions: + contents: write + statuses: write + steps: + - uses: actions/checkout@v3 + - uses: julia-actions/setup-julia@v1 + with: + version: '1' + - name: Configure doc environment + run: | + julia --project=docs/ -e ' + using Pkg + Pkg.develop(PackageSpec(path=pwd())) + Pkg.instantiate()' + - uses: julia-actions/julia-buildpkg@v1 + - uses: julia-actions/julia-docdeploy@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - run: | + julia --project=docs -e ' + using Documenter: DocMeta, doctest + using Antiq + DocMeta.setdocmeta!(Antiq, :DocTestSetup, :(using Antiq); recursive=true) + doctest(Antiq)' diff --git a/.github/workflows/CompatHelper.yml b/.github/workflows/CompatHelper.yml new file mode 100644 index 0000000..cba9134 --- /dev/null +++ b/.github/workflows/CompatHelper.yml @@ -0,0 +1,16 @@ +name: CompatHelper +on: + schedule: + - cron: 0 0 * * * + workflow_dispatch: +jobs: + CompatHelper: + runs-on: ubuntu-latest + steps: + - name: Pkg.add("CompatHelper") + run: julia -e 'using Pkg; Pkg.add("CompatHelper")' + - name: CompatHelper.main() + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + COMPATHELPER_PRIV: ${{ secrets.DOCUMENTER_KEY }} + run: julia -e 'using CompatHelper; CompatHelper.main()' diff --git a/.github/workflows/TagBot.yml b/.github/workflows/TagBot.yml new file mode 100644 index 0000000..2bacdb8 --- /dev/null +++ b/.github/workflows/TagBot.yml @@ -0,0 +1,31 @@ +name: TagBot +on: + issue_comment: + types: + - created + workflow_dispatch: + inputs: + lookback: + default: 3 +permissions: + actions: read + checks: read + contents: write + deployments: read + issues: read + discussions: read + packages: read + pages: read + pull-requests: read + repository-projects: read + security-events: read + statuses: read +jobs: + TagBot: + if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot' + runs-on: ubuntu-latest + steps: + - uses: JuliaRegistries/TagBot@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + ssh: ${{ secrets.DOCUMENTER_KEY }} diff --git a/.gitignore b/.gitignore index 6c39b88..dcbb5ff 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ *.jl.*.cov *.jl.cov *.jl.mem +/Manifest.toml /docs/Manifest.toml /docs/build/ diff --git a/Project.toml b/Project.toml index 10ac33d..5e40c0a 100644 --- a/Project.toml +++ b/Project.toml @@ -1,18 +1,26 @@ name = "Antiq" uuid = "be6e5d0e-34a5-4c8f-af83-e1b5389203d8" authors = ["Shuhei Ohno"] -version = "1.0.0-DEV" +version = "0.0.16" [deps] -Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" -Weave = "44d3d7a6-8a23-5bf8-98c5-b353f8df5ec9" + +[weakdeps] +Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" [compat] julia = "1.1" [extras] +LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a" +Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" +QuadGK = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +Suppressor = "fd094767-a336-5f1f-9728-57cf17d0bbfb" +Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] -test = ["Test"] +test = ["Test", "Suppressor", "Printf", "Markdown", "QuadGK", "Symbolics", "Latexify", "LaTeXStrings"] diff --git a/README.md b/README.md index 9c2e772..f91c0fd 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ # Antiq.jl +[![Build Status](https://github.com/ohno/Antiq.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/ohno/Antiq.jl/actions/workflows/CI.yml?query=branch%3Amain) [![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://ohno.github.io/Antiq.jl/stable/) [![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://ohno.github.io/Antiq.jl/dev/) -[![Build Status](https://github.com/ohno/Antiq.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/ohno/Antiq.jl/actions/workflows/CI.yml?query=branch%3Amain) -[![Coverage](https://codecov.io/gh/ohno/Antiq.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/ohno/Antiq.jl) Please see [here](https://ohno.github.io/Antiq.jl/dev/HydrogenAtom/). \ No newline at end of file diff --git a/developer.ipynb b/developer.ipynb index cb5e090..151741d 100644 --- a/developer.ipynb +++ b/developer.ipynb @@ -13,9 +13,7 @@ "source": [ "## PkgTemplates.jl\n", "\n", - "~~https://qiita.com/cometscome_phys/items/989389db3540ebd9e026#%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%81%AE%E7%99%BB%E9%8C%B2~~\n", - "\n", - "https://juliaci.github.io/PkgTemplates.jl/stable/user/#A-More-Complicated-Example-1\n", + "https://qiita.com/SatoshiTerasaki/items/7dbb809c962e794a9df6\n", "\n", "```julia\n", "# using Pkg\n", @@ -24,20 +22,28 @@ "\n", "t = Template(;\n", " user=\"ohno\",\n", - " authors=[\"Shuhei Ohno\"],\n", - " dir=\"../\",\n", - " julia=v\"1.1\",\n", - " plugins=[\n", - " License(; name=\"MIT\"),\n", - " Git(; manifest=true, ssh=true),\n", - " GitHubActions(; x86=true),\n", - " Codecov(),\n", + " authors = [\"Shuhei Ohno\"]\n", + " dir = pwd(),\n", + " julia=v\"1\",\n", + " plugins = [\n", + " License(; name = \"MIT\"),\n", + " ProjectFile(; version=v\"0.0.1\"),\n", + " Git(; manifest = false, ssh = true),\n", + " GitHubActions(;\n", + " extra_versions = [\"1.6\", \"1.7\", \"nightly\"]\n", + " ),\n", " Documenter{GitHubActions}(),\n", + " Readme(;\n", + " inline_badges = true,\n", + " badge_order = DataType[\n", + " GitHubActions,\n", + " Documenter{GitHubActions},\n", + " ],\n", + " ),\n", " ],\n", ")\n", "\n", "generate(\"Antiq.jl\", t)\n", - "mv(\"Antiq\", \"Antiq.jl\")\n", "```" ] }, @@ -76,22 +82,23 @@ "name": "stderr", "output_type": "stream", "text": [ - "\u001b[32m\u001b[1m Activating\u001b[22m\u001b[39m project at `C:\\Users\\user\\Desktop\\GitHub\\Antiq.jl`\n" + "\u001b[32m\u001b[1m Activating\u001b[22m\u001b[39m project at `C:\\Users\\user\\Desktop\\GitHub\\Antiq.jl`\n", + "\u001b[32m\u001b[1m No Changes\u001b[22m\u001b[39m to `C:\\Users\\user\\Desktop\\GitHub\\Antiq.jl\\Project.toml`\n", + "\u001b[32m\u001b[1m No Changes\u001b[22m\u001b[39m to `C:\\Users\\user\\Desktop\\GitHub\\Antiq.jl\\Manifest.toml`\n" ] } ], "source": [ "versioninfo()\n", + "\n", "using Pkg\n", + "# Pkg.add(\"Weave\")\n", "# Pkg.add(\"Revise\")\n", + "# using Weave\n", "using Revise\n", - "Pkg.activate(\"./\")\n", - "\n", - "# # Dependency\n", - "# Pkg.add(\"SpecialFunctions\")\n", - "# using SpecialFunctions\n", "\n", - "# Antiq.jl\n", + "Pkg.activate(\"./\")\n", + "Pkg.resolve()\n", "using Antiq" ] }, @@ -218,7 +225,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Weave.jl" + "## runtests" ] }, { @@ -232,25 +239,208 @@ "name": "stderr", "output_type": "stream", "text": [ + "\u001b[32m\u001b[1m Testing\u001b[22m\u001b[39m Antiq\n", + "\u001b[32m\u001b[1m Status\u001b[22m\u001b[39m `C:\\Users\\user\\AppData\\Local\\Temp\\jl_Qj7MVW\\Project.toml`\n", + " \u001b[90m [be6e5d0e] \u001b[39mAntiq v0.0.16 `C:\\Users\\user\\Desktop\\GitHub\\Antiq.jl`\n", + " \u001b[90m [b964fa9f] \u001b[39mLaTeXStrings v1.3.1\n", + " \u001b[90m [23fbe1c1] \u001b[39mLatexify v0.16.1\n", + " \u001b[90m [1fd47b50] \u001b[39mQuadGK v2.9.1\n", + "\u001b[32m⌃\u001b[39m\u001b[90m [276daf66] \u001b[39mSpecialFunctions v2.3.0\n", + " \u001b[90m [fd094767] \u001b[39mSuppressor v0.2.6\n", + " \u001b[90m [0c5d862f] \u001b[39mSymbolics v5.10.0\n", + " \u001b[90m [d6f4376e] \u001b[39mMarkdown `@stdlib/Markdown`\n", + " \u001b[90m [de0858da] \u001b[39mPrintf `@stdlib/Printf`\n", + " \u001b[90m [8dfed614] \u001b[39mTest `@stdlib/Test`\n", + "\u001b[32m\u001b[1m Status\u001b[22m\u001b[39m `C:\\Users\\user\\AppData\\Local\\Temp\\jl_Qj7MVW\\Manifest.toml`\n", + " \u001b[90m [47edcb42] \u001b[39mADTypes v0.2.5\n", + "\u001b[33m⌅\u001b[39m\u001b[90m [c3fe647b] \u001b[39mAbstractAlgebra v0.32.5\n", + " \u001b[90m [1520ce14] \u001b[39mAbstractTrees v0.4.4\n", + " \u001b[90m [79e6a3ab] \u001b[39mAdapt v3.7.1\n", + " \u001b[90m [be6e5d0e] \u001b[39mAntiq v0.0.16 `C:\\Users\\user\\Desktop\\GitHub\\Antiq.jl`\n", + "\u001b[33m⌅\u001b[39m\u001b[90m [4fba245c] \u001b[39mArrayInterface v7.5.1\n", + " \u001b[90m [e2ed5e7c] \u001b[39mBijections v0.1.6\n", + " \u001b[90m [49dc2e85] \u001b[39mCalculus v0.5.1\n", + " \u001b[90m [d360d2e6] \u001b[39mChainRulesCore v1.18.0\n", + " \u001b[90m [9e997f8a] \u001b[39mChangesOfVariables v0.1.8\n", + " \u001b[90m [861a8166] \u001b[39mCombinatorics v1.0.2\n", + " \u001b[90m [38540f10] \u001b[39mCommonSolve v0.2.4\n", + " \u001b[90m [bbf7d656] \u001b[39mCommonSubexpressions v0.3.0\n", + " \u001b[90m [34da2185] \u001b[39mCompat v4.10.0\n", + " \u001b[90m [b152e2b5] \u001b[39mCompositeTypes v0.1.3\n", + " \u001b[90m [187b0558] \u001b[39mConstructionBase v1.5.4\n", + " \u001b[90m [9a962f9c] \u001b[39mDataAPI v1.15.0\n", + " \u001b[90m [864edb3b] \u001b[39mDataStructures v0.18.15\n", + " \u001b[90m [e2d170a0] \u001b[39mDataValueInterfaces v1.0.0\n", + " \u001b[90m [b429d917] \u001b[39mDensityInterface v0.4.0\n", + " \u001b[90m [163ba53b] \u001b[39mDiffResults v1.1.0\n", + " \u001b[90m [b552c78f] \u001b[39mDiffRules v1.15.1\n", + " \u001b[90m [31c24e10] \u001b[39mDistributions v0.25.103\n", + " \u001b[90m [ffbed154] \u001b[39mDocStringExtensions v0.9.3\n", + "\u001b[33m⌅\u001b[39m\u001b[90m [5b8099bc] \u001b[39mDomainSets v0.6.7\n", + " \u001b[90m [fa6b7ba4] \u001b[39mDualNumbers v0.6.8\n", + " \u001b[90m [7c1d4256] \u001b[39mDynamicPolynomials v0.5.3\n", + " \u001b[90m [4e289a0a] \u001b[39mEnumX v1.0.4\n", + " \u001b[90m [e2ba6199] \u001b[39mExprTools v0.1.10\n", + " \u001b[90m [1a297f60] \u001b[39mFillArrays v1.8.0\n", + " \u001b[90m [59287772] \u001b[39mFormatting v0.4.2\n", + " \u001b[90m [f6369f11] \u001b[39mForwardDiff v0.10.36\n", + " \u001b[90m [069b7b12] \u001b[39mFunctionWrappers v1.1.3\n", + " \u001b[90m [77dc65aa] \u001b[39mFunctionWrappersWrappers v0.1.3\n", + " \u001b[90m [46192b85] \u001b[39mGPUArraysCore v0.1.5\n", + "\u001b[33m⌅\u001b[39m\u001b[90m [0b43b601] \u001b[39mGroebner v0.4.4\n", + " \u001b[90m [d5909c97] \u001b[39mGroupsCore v0.4.0\n", + " \u001b[90m [34004b35] \u001b[39mHypergeometricFunctions v0.3.23\n", + " \u001b[90m [615f187c] \u001b[39mIfElse v0.1.1\n", + " \u001b[90m [18e54dd8] \u001b[39mIntegerMathUtils v0.1.2\n", + " \u001b[90m [8197267c] \u001b[39mIntervalSets v0.7.8\n", + " \u001b[90m [3587e190] \u001b[39mInverseFunctions v0.1.12\n", + " \u001b[90m [92d709cd] \u001b[39mIrrationalConstants v0.2.2\n", + " \u001b[90m [82899510] \u001b[39mIteratorInterfaceExtensions v1.0.0\n", + "\u001b[32m⌃\u001b[39m\u001b[90m [692b3bcd] \u001b[39mJLLWrappers v1.4.1\n", + " \u001b[90m [b964fa9f] \u001b[39mLaTeXStrings v1.3.1\n", + " \u001b[90m [2ee39098] \u001b[39mLabelledArrays v1.14.0\n", + " \u001b[90m [984bce1d] \u001b[39mLambertW v0.4.6\n", + " \u001b[90m [23fbe1c1] \u001b[39mLatexify v0.16.1\n", + " \u001b[90m [50d2b5c4] \u001b[39mLazy v0.15.1\n", + "\u001b[32m⌃\u001b[39m\u001b[90m [2ab3a3ac] \u001b[39mLogExpFunctions v0.3.24\n", + " \u001b[90m [1914dd2f] \u001b[39mMacroTools v0.5.11\n", + " \u001b[90m [e1d29d7a] \u001b[39mMissings v1.1.0\n", + " \u001b[90m [102ac46a] \u001b[39mMultivariatePolynomials v0.5.3\n", + " \u001b[90m [d8a4904e] \u001b[39mMutableArithmetics v1.3.3\n", + " \u001b[90m [77ba4419] \u001b[39mNaNMath v1.0.2\n", + " \u001b[90m [bac558e1] \u001b[39mOrderedCollections v1.6.3\n", + " \u001b[90m [90014a1f] \u001b[39mPDMats v0.11.30\n", + " \u001b[90m [d236fae5] \u001b[39mPreallocationTools v0.4.12\n", + " \u001b[90m [aea7be01] \u001b[39mPrecompileTools v1.2.0\n", + "\u001b[32m⌃\u001b[39m\u001b[90m [21216c6a] \u001b[39mPreferences v1.4.0\n", + " \u001b[90m [27ebfcd6] \u001b[39mPrimes v0.5.5\n", + " \u001b[90m [1fd47b50] \u001b[39mQuadGK v2.9.1\n", + " \u001b[90m [fb686558] \u001b[39mRandomExtensions v0.4.4\n", + " \u001b[90m [3cdcf5f2] \u001b[39mRecipesBase v1.3.4\n", + " \u001b[90m [731186ca] \u001b[39mRecursiveArrayTools v2.38.10\n", + " \u001b[90m [189a3867] \u001b[39mReexport v1.2.2\n", + " \u001b[90m [ae029012] \u001b[39mRequires v1.3.0\n", + " \u001b[90m [79098fc4] \u001b[39mRmath v0.7.1\n", + " \u001b[90m [7e49a35a] \u001b[39mRuntimeGeneratedFunctions v0.5.12\n", + " \u001b[90m [fdea26ae] \u001b[39mSIMD v3.4.6\n", + "\u001b[33m⌅\u001b[39m\u001b[90m [0bca4576] \u001b[39mSciMLBase v2.6.0\n", + " \u001b[90m [c0aeaf25] \u001b[39mSciMLOperators v0.3.7\n", + " \u001b[90m [efcf1570] \u001b[39mSetfield v1.1.1\n", + " \u001b[90m [66db9d55] \u001b[39mSnoopPrecompile v1.0.3\n", + " \u001b[90m [a2af1166] \u001b[39mSortingAlgorithms v1.2.0\n", + "\u001b[32m⌃\u001b[39m\u001b[90m [276daf66] \u001b[39mSpecialFunctions v2.3.0\n", + " \u001b[90m [90137ffa] \u001b[39mStaticArrays v1.7.0\n", + " \u001b[90m [1e83bf80] \u001b[39mStaticArraysCore v1.4.2\n", + " \u001b[90m [82ae8749] \u001b[39mStatsAPI v1.7.0\n", + " \u001b[90m [2913bbd2] \u001b[39mStatsBase v0.34.2\n", + " \u001b[90m [4c63d2b9] \u001b[39mStatsFuns v1.3.0\n", + " \u001b[90m [fd094767] \u001b[39mSuppressor v0.2.6\n", + " \u001b[90m [2efcf032] \u001b[39mSymbolicIndexingInterface v0.2.2\n", + " \u001b[90m [d1185830] \u001b[39mSymbolicUtils v1.4.0\n", + " \u001b[90m [0c5d862f] \u001b[39mSymbolics v5.10.0\n", + " \u001b[90m [3783bdb8] \u001b[39mTableTraits v1.0.1\n", + " \u001b[90m [bd369af6] \u001b[39mTables v1.11.1\n", + " \u001b[90m [a759f4b9] \u001b[39mTimerOutputs v0.5.23\n", + " \u001b[90m [a2a6695c] \u001b[39mTreeViews v0.3.0\n", + " \u001b[90m [410a4b4d] \u001b[39mTricks v0.1.8\n", + " \u001b[90m [781d530d] \u001b[39mTruncatedStacktraces v1.4.0\n", + " \u001b[90m [a7c27f48] \u001b[39mUnityper v0.1.5\n", + " \u001b[90m [700de1a5] \u001b[39mZygoteRules v0.2.4\n", + " \u001b[90m [efe28fd5] \u001b[39mOpenSpecFun_jll v0.5.5+0\n", + " \u001b[90m [f50d1b31] \u001b[39mRmath_jll v0.4.0+0\n", + " \u001b[90m [0dad84c5] \u001b[39mArgTools v1.1.1 `@stdlib/ArgTools`\n", + " \u001b[90m [56f22d72] \u001b[39mArtifacts `@stdlib/Artifacts`\n", + " \u001b[90m [2a0f44e3] \u001b[39mBase64 `@stdlib/Base64`\n", + " \u001b[90m [ade2ca70] \u001b[39mDates `@stdlib/Dates`\n", + " \u001b[90m [8ba89e20] \u001b[39mDistributed `@stdlib/Distributed`\n", + " \u001b[90m [f43a241f] \u001b[39mDownloads v1.6.0 `@stdlib/Downloads`\n", + " \u001b[90m [7b1f6079] \u001b[39mFileWatching `@stdlib/FileWatching`\n", + " \u001b[90m [9fa8497b] \u001b[39mFuture `@stdlib/Future`\n", + " \u001b[90m [b77e0a4c] \u001b[39mInteractiveUtils `@stdlib/InteractiveUtils`\n", + " \u001b[90m [b27032c2] \u001b[39mLibCURL v0.6.3 `@stdlib/LibCURL`\n", + " \u001b[90m [76f85450] \u001b[39mLibGit2 `@stdlib/LibGit2`\n", + " \u001b[90m [8f399da3] \u001b[39mLibdl `@stdlib/Libdl`\n", + " \u001b[90m [37e2e46d] \u001b[39mLinearAlgebra `@stdlib/LinearAlgebra`\n", + " \u001b[90m [56ddb016] \u001b[39mLogging `@stdlib/Logging`\n", + " \u001b[90m [d6f4376e] \u001b[39mMarkdown `@stdlib/Markdown`\n", + " \u001b[90m [ca575930] \u001b[39mNetworkOptions v1.2.0 `@stdlib/NetworkOptions`\n", + " \u001b[90m [44cfe95a] \u001b[39mPkg v1.8.0 `@stdlib/Pkg`\n", + " \u001b[90m [de0858da] \u001b[39mPrintf `@stdlib/Printf`\n", + " \u001b[90m [3fa0cd96] \u001b[39mREPL `@stdlib/REPL`\n", + " \u001b[90m [9a3f8284] \u001b[39mRandom `@stdlib/Random`\n", + " \u001b[90m [ea8e919c] \u001b[39mSHA v0.7.0 `@stdlib/SHA`\n", + " \u001b[90m [9e88b42a] \u001b[39mSerialization `@stdlib/Serialization`\n", + " \u001b[90m [6462fe0b] \u001b[39mSockets `@stdlib/Sockets`\n", + " \u001b[90m [2f01184e] \u001b[39mSparseArrays `@stdlib/SparseArrays`\n", + " \u001b[90m [10745b16] \u001b[39mStatistics `@stdlib/Statistics`\n", + " \u001b[90m [4607b0f0] \u001b[39mSuiteSparse `@stdlib/SuiteSparse`\n", + " \u001b[90m [fa267f1f] \u001b[39mTOML v1.0.0 `@stdlib/TOML`\n", + " \u001b[90m [a4e569a6] \u001b[39mTar v1.10.1 `@stdlib/Tar`\n", + " \u001b[90m [8dfed614] \u001b[39mTest `@stdlib/Test`\n", + " \u001b[90m [cf7118a7] \u001b[39mUUIDs `@stdlib/UUIDs`\n", + " \u001b[90m [4ec0a83e] \u001b[39mUnicode `@stdlib/Unicode`\n", + " \u001b[90m [e66e0078] \u001b[39mCompilerSupportLibraries_jll v0.5.2+0 `@stdlib/CompilerSupportLibraries_jll`\n", + " \u001b[90m [deac9b47] \u001b[39mLibCURL_jll v7.84.0+0 `@stdlib/LibCURL_jll`\n", + " \u001b[90m [29816b5a] \u001b[39mLibSSH2_jll v1.10.2+0 `@stdlib/LibSSH2_jll`\n", + " \u001b[90m [c8ffd9c3] \u001b[39mMbedTLS_jll v2.28.0+0 `@stdlib/MbedTLS_jll`\n", + " \u001b[90m [14a3606d] \u001b[39mMozillaCACerts_jll v2022.2.1 `@stdlib/MozillaCACerts_jll`\n", + " \u001b[90m [4536629a] \u001b[39mOpenBLAS_jll v0.3.20+0 `@stdlib/OpenBLAS_jll`\n", + " \u001b[90m [05823500] \u001b[39mOpenLibm_jll v0.8.1+0 `@stdlib/OpenLibm_jll`\n", + " \u001b[90m [83775a58] \u001b[39mZlib_jll v1.2.12+3 `@stdlib/Zlib_jll`\n", + " \u001b[90m [8e850b90] \u001b[39mlibblastrampoline_jll v5.1.1+0 `@stdlib/libblastrampoline_jll`\n", + " \u001b[90m [8e850ede] \u001b[39mnghttp2_jll v1.48.0+0 `@stdlib/nghttp2_jll`\n", + " \u001b[90m [3f19e933] \u001b[39mp7zip_jll v17.4.0+0 `@stdlib/p7zip_jll`\n", + "\u001b[36m\u001b[1m Info\u001b[22m\u001b[39m Packages marked with \u001b[32m⌃\u001b[39m and \u001b[33m⌅\u001b[39m have new versions available, but those with \u001b[33m⌅\u001b[39m are restricted by compatibility constraints from upgrading.\n", + "\u001b[32m\u001b[1m Testing\u001b[22m\u001b[39m Running tests...\n", + "WARNING: replacing module MorsePotential1669411154543485985.\n", + "\u001b[0m\u001b[1mTest Summary: | \u001b[22m\u001b[32m\u001b[1mPass \u001b[22m\u001b[39m\u001b[36m\u001b[1mTotal \u001b[22m\u001b[39m\u001b[0m\u001b[1m Time\u001b[22m\n", + "Antiq.jl | \u001b[32m2052 \u001b[39m\u001b[36m 2052 \u001b[39m\u001b[0m1m33.8s\n", + "\u001b[32m\u001b[1m Testing\u001b[22m\u001b[39m Antiq tests passed \n" + ] + } + ], + "source": [ + "# pwd() |> display\n", + "# include(\"./test/runtests.jl\")\n", + "Pkg.test()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Weave.jl" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "The latest version of Julia in the `release` channel is 1.9.4+0.x64.w64.mingw32. You currently have `1.9.2+0.x64.w64.mingw32` installed. Run:\n", + "\n", + " juliaup update\n", + "\n", + "to install Julia 1.9.4+0.x64.w64.mingw32 and update the `release` channel to that version.\n", "┌ Info: Weaving chunk 1 from line 55\n", - "│ progress = 0.0\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.0\n", "┌ Info: Weaving chunk 2 from line 62\n", - "│ progress = 0.16666666666666666\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.16666666666666666\n", "┌ Info: Weaving chunk 3 from line 70\n", - "│ progress = 0.3333333333333333\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.3333333333333333\n", "┌ Info: Weaving chunk 4 from line 77\n", - "│ progress = 0.5\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.5\n", "┌ Info: Weaving chunk 5 from line 89\n", - "│ progress = 0.6666666666666666\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.6666666666666666\n", "┌ Info: Weaving chunk 6 from line 107\n", - "│ progress = 0.8333333333333334\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", - "WARNING: replacing module InfinitePotentialWell8472295553246349096.\n" + "└ progress = 0.8333333333333334\n", + "WARNING: replacing module InfinitePotentialWell8472295553246349096.\n", + "┌ Info: Weaved all chunks\n", + "└ progress = 1\n" ] }, { @@ -258,7 +448,21 @@ "output_type": "stream", "text": [ "m.match = \".jl\\\")\\n```\\n\\n```\"\n", - "m.offset = 3032\n", + "m.offset = " + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[ Info: Weaved to C:\\Users\\user\\Desktop\\GitHub\\Antiq.jl\\docs\\src\\InfinitePotentialWell.md\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3032\n", "m.match = \"```\\n```\\n\\n\\n\"\n", "m.offset = 25354\n" ] @@ -267,38 +471,23 @@ "name": "stderr", "output_type": "stream", "text": [ - "┌ Info: Weaved all chunks\n", - "│ progress = 1\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:90\n", - "┌ Info: Weaved to C:\\Users\\user\\Desktop\\GitHub\\Antiq.jl\\docs\\src\\InfinitePotentialWell.md\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\Weave.jl:228\n", "┌ Info: Weaving chunk 1 from line 93\n", - "│ progress = 0.0\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.0\n", "┌ Info: Weaving chunk 2 from line 100\n", - "│ progress = 0.14285714285714285\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.14285714285714285\n", "┌ Info: Weaving chunk 3 from line 108\n", - "│ progress = 0.2857142857142857\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.2857142857142857\n", "┌ Info: Weaving chunk 4 from line 115\n", - "│ progress = 0.42857142857142855\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.42857142857142855\n", "┌ Info: Weaving chunk 5 from line 122\n", - "│ progress = 0.5714285714285714\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.5714285714285714\n", "┌ Info: Weaving chunk 6 from line 134\n", - "│ progress = 0.7142857142857143\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.7142857142857143\n", "┌ Info: Weaving chunk 7 from line 152\n", - "│ progress = 0.8571428571428571\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.8571428571428571\n", "WARNING: replacing module HarmonicOscillator3094684212771689889.\n", "┌ Info: Weaved all chunks\n", - "│ progress = 1\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:90\n", - "┌ Info: Weaved to C:\\Users\\user\\Desktop\\GitHub\\Antiq.jl\\docs\\src\\HarmonicOscillator.md\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\Weave.jl:228\n" + "└ progress = 1\n" ] }, { @@ -308,36 +497,32 @@ "m.match = \".jl\\\")\\n```\\n\\n```\"\n", "m.offset = 6290\n", "m.match = \"```\\n```\\n\\n\\n\"\n", - "m.offset = 31655\n" + "m.offset = 32717\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ + "[ Info: Weaved to C:\\Users\\user\\Desktop\\GitHub\\Antiq.jl\\docs\\src\\HarmonicOscillator.md\n", "┌ Info: Weaving chunk 1 from line 85\n", - "│ progress = 0.0\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.0\n", "┌ Info: Weaving chunk 2 from line 92\n", - "│ progress = 0.14285714285714285\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.14285714285714285\n", "┌ Info: Weaving chunk 3 from line 102\n", - "│ progress = 0.2857142857142857\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.2857142857142857\n", "┌ Info: Weaving chunk 4 from line 109\n", - "│ progress = 0.42857142857142855\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.42857142857142855\n", "┌ Info: Weaving chunk 5 from line 116\n", - "│ progress = 0.5714285714285714\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.5714285714285714\n", "┌ Info: Weaving chunk 6 from line 129\n", - "│ progress = 0.7142857142857143\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.7142857142857143\n", "WARNING: replacing module MorsePotential1669411154543485985.\n", "┌ Info: Weaving chunk 7 from line 152\n", - "│ progress = 0.8571428571428571\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", - "WARNING: replacing module MorsePotential1669411154543485985.\n" + "└ progress = 0.8571428571428571\n", + "WARNING: replacing module MorsePotential1669411154543485985.\n", + "┌ Info: Weaved all chunks\n", + "└ progress = 1\n" ] }, { @@ -347,46 +532,32 @@ "m.match = \".jl\\\")\\n```\\n\\n```\"\n", "m.offset = 5890\n", "m.match = \"```\\n```\\n\\n\\n\"\n", - "m.offset = 52840\n" + "m.offset = 53552\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "┌ Info: Weaved all chunks\n", - "│ progress = 1\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:90\n", - "┌ Info: Weaved to C:\\Users\\user\\Desktop\\GitHub\\Antiq.jl\\docs\\src\\MorsePotential.md\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\Weave.jl:228\n", + "[ Info: Weaved to C:\\Users\\user\\Desktop\\GitHub\\Antiq.jl\\docs\\src\\MorsePotential.md\n", "┌ Info: Weaving chunk 1 from line 156\n", - "│ progress = 0.0\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", - "WARNING: replacing module HydrogenAtom11641542298082958385.\n", + "└ progress = 0.0\n", "┌ Info: Weaving chunk 2 from line 163\n", - "│ progress = 0.1111111111111111\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.1111111111111111\n", "┌ Info: Weaving chunk 3 from line 173\n", - "│ progress = 0.2222222222222222\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.2222222222222222\n", "┌ Info: Weaving chunk 4 from line 180\n", - "│ progress = 0.3333333333333333\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.3333333333333333\n", "┌ Info: Weaving chunk 5 from line 188\n", - "│ progress = 0.4444444444444444\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.4444444444444444\n", "┌ Info: Weaving chunk 6 from line 213\n", - "│ progress = 0.5555555555555556\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.5555555555555556\n", "┌ Info: Weaving chunk 7 from line 221\n", - "│ progress = 0.6666666666666666\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.6666666666666666\n", "┌ Info: Weaving chunk 8 from line 232\n", - "│ progress = 0.7777777777777778\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.7777777777777778\n", "┌ Info: Weaving chunk 9 from line 247\n", - "│ progress = 0.8888888888888888\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:66\n", + "└ progress = 0.8888888888888888\n", "WARNING: replacing module HydrogenAtom11641542298082958385.\n", "WARNING: replacing module MorsePotential1669411154543485985.\n" ] @@ -398,7 +569,7 @@ "m.match = \".jl\\\")\\n```\\n\\n```\"\n", "m.offset = 13690\n", "m.match = \"```\\n```\\n\\n\\n\"\n", - "m.offset = 102783\n" + "m.offset = 104725\n" ] }, { @@ -406,41 +577,23 @@ "output_type": "stream", "text": [ "┌ Info: Weaved all chunks\n", - "│ progress = 1\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\run.jl:90\n", - "┌ Info: Weaved to C:\\Users\\user\\Desktop\\GitHub\\Antiq.jl\\docs\\src\\HydrogenAtom.md\n", - "└ @ Weave C:\\Users\\user\\.julia\\packages\\Weave\\f7Ly3\\src\\Weave.jl:228\n" + "└ progress = 1\n", + "[ Info: Weaved to C:\\Users\\user\\Desktop\\GitHub\\Antiq.jl\\docs\\src\\HydrogenAtom.md\n" ] + }, + { + "data": { + "text/plain": [ + "Process(`\u001b[4mjulia\u001b[24m \u001b[4m--project=docs/\u001b[24m \u001b[4m-e\u001b[24m \u001b[4m'cd(\"docs\"); include(\"jmd2md.jl\")'\u001b[24m`, ProcessExited(0))" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "# import Pkg; Pkg.add(\"Weave\")\n", - "using Weave\n", - "\n", - "files = [\n", - " \"InfinitePotentialWell\"\n", - " \"HarmonicOscillator\"\n", - " \"MorsePotential\"\n", - " \"HydrogenAtom\"\n", - "]\n", - "\n", - "for file in files\n", - " weave(\"./docs/src/jmd/$file.jmd\", doctype=\"github\", out_path=\"./docs/src/\", fig_path=\"./assets/fig/\")\n", - " text = Antiq.load(\"./docs/src/$file.md\")\n", - " # remove ``` after include(...s)\n", - " for m in eachmatch(r\"\\.jl\\\"\\)\\n```[.\\n]*?```\", text)\n", - " @show m.match\n", - " @show m.offset\n", - " text = replace(text, m.match => \".jl\\\")\\n```\")\n", - " end\n", - " # remove ``` at the end of file\n", - " for m in eachmatch(r\"```\\n```[\\s\\n]*?\\z\", text)\n", - " @show m.match\n", - " @show m.offset\n", - " text = replace(text, m.match => \"\\n```\\n\")\n", - " end\n", - " Antiq.save(\"./docs/src/$file.md\", text)\n", - "end" + "run(`julia --project=docs/ -e 'cd(\"docs\"); include(\"jmd2md.jl\")'`)" ] }, { @@ -452,76 +605,34 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "┌ Info: SetupBuildDirectory: setting up build directory.\n", - "└ @ Documenter.Builder C:\\Users\\user\\.julia\\packages\\Documenter\\H5y27\\src\\Builder.jl:87\n", - "┌ Info: Doctest: running doctests.\n", - "└ @ Documenter.Builder C:\\Users\\user\\.julia\\packages\\Documenter\\H5y27\\src\\Builder.jl:212\n", - "┌ Info: ExpandTemplates: expanding markdown templates.\n", - "└ @ Documenter.Builder C:\\Users\\user\\.julia\\packages\\Documenter\\H5y27\\src\\Builder.jl:225\n", - "┌ Info: CrossReferences: building cross-references.\n", - "└ @ Documenter.Builder C:\\Users\\user\\.julia\\packages\\Documenter\\H5y27\\src\\Builder.jl:231\n", - "┌ Info: CheckDocument: running document checks.\n", - "└ @ Documenter.Builder C:\\Users\\user\\.julia\\packages\\Documenter\\H5y27\\src\\Builder.jl:237\n", - "┌ Info: Populate: populating indices.\n", - "└ @ Documenter.Builder C:\\Users\\user\\.julia\\packages\\Documenter\\H5y27\\src\\Builder.jl:245\n", - "┌ Info: RenderDocument: rendering document.\n", - "└ @ Documenter.Builder C:\\Users\\user\\.julia\\packages\\Documenter\\H5y27\\src\\Builder.jl:260\n", - "┌ Info: HTMLWriter: rendering HTML pages.\n", - "└ @ Documenter.Writers.HTMLWriter C:\\Users\\user\\.julia\\packages\\Documenter\\H5y27\\src\\Writers\\HTMLWriter.jl:714\n", + "The latest version of Julia in the `release` channel is 1.9.4+0.x64.w64.mingw32. You currently have `1.9.2+0.x64.w64.mingw32` installed. Run:\n", + "\n", + " juliaup update\n", + "\n", + "to install Julia 1.9.4+0.x64.w64.mingw32 and update the `release` channel to that version.\n", + "[ Info: SetupBuildDirectory: setting up build directory.\n", + "[ Info: Doctest: running doctests.\n", + "[ Info: ExpandTemplates: expanding markdown templates.\n", + "[ Info: CrossReferences: building cross-references.\n", + "[ Info: CheckDocument: running document checks.\n", + "[ Info: Populate: populating indices.\n", + "[ Info: RenderDocument: rendering document.\n", + "[ Info: HTMLWriter: rendering HTML pages.\n", "┌ Warning: Documenter could not auto-detect the building environment Skipping deployment.\n", - "└ @ Documenter C:\\Users\\user\\.julia\\packages\\Documenter\\H5y27\\src\\deployconfig.jl:75\n" - ] - } - ], - "source": [ - "# run(`cmd /C cd \\& julia ./docs/make.jl`)\n", - "include(\"./docs/make.jl\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## runtests" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING: replacing module InfinitePotentialWell8472295553246349096.\n", - "WARNING: replacing module HarmonicOscillator3094684212771689889.\n", - "WARNING: replacing module MorsePotential1669411154543485985.\n", - "WARNING: replacing module HydrogenAtom11641542298082958385.\n", - "WARNING: replacing module MorsePotential1669411154543485985.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[0m\u001b[1mTest Summary: | \u001b[22m\u001b[32m\u001b[1mPass \u001b[22m\u001b[39m\u001b[36m\u001b[1mTotal \u001b[22m\u001b[39m\u001b[0m\u001b[1m Time\u001b[22m\n", - "Antiq.jl | \u001b[32m2052 \u001b[39m\u001b[36m 2052 \u001b[39m\u001b[0m44.4s\n" + "└ @ Documenter C:\\Users\\user\\.julia\\packages\\Documenter\\bYYzK\\src\\deployconfig.jl:75\n" ] }, { "data": { "text/plain": [ - "Test.DefaultTestSet(\"Antiq.jl\", Any[Test.DefaultTestSet(\"<ψᵢ|ψⱼ> = ∫ψₙ*ψₙdx = δᵢⱼ\", Any[], 100, false, false, true, 1.701193274726e9, 1.701193275384e9), Test.DefaultTestSet(\"<ψₙ|H|ψₙ> = ∫ψₙ*Tψₙdx = Eₙ\", Any[], 80, false, false, true, 1.701193275393e9, 1.701193276053e9), Test.DefaultTestSet(\"<ψₙ|x|ψₙ> = L/2\", Any[], 4, false, false, true, 1.701193276059e9, 1.701193276423e9), Test.DefaultTestSet(\"<ψₙ|x²|ψₙ> = 2L²/π³(π³/6-π/4)\", Any[], 4, false, false, true, 1.701193276433e9, 1.701193276847e9), Test.DefaultTestSet(\"<ψₙ|p|ψₙ> = ∫ψₙ*(-iℏd/dx)ψₙdx = 0\", Any[], 4, false, false, true, 1.701193276857e9, 1.701193277383e9), Test.DefaultTestSet(\"<ψₙ|p²|ψₙ> = ∫ψₙ*(-ℏ²d²/dx²)ψₙdx = π²ℏ²/L²\", Any[], 4, false, false, true, 1.701193277403e9, 1.701193277881e9), Test.DefaultTestSet(\"Hₙ(x) = (-1)ⁿ exp(x²) dⁿ/dxⁿ exp(-x²) = ...\", Any[], 10, false, false, true, 1.701193277918e9, 1.701193278115e9), Test.DefaultTestSet(\"∫Hⱼ(x)Hᵢ(x)exp(-x²)dx = √π2ʲj!δᵢⱼ\", Any[], 100, false, false, true, 1.701193278124e9, 1.7011932788e9), Test.DefaultTestSet(\"<ψᵢ|ψⱼ> = δᵢⱼ\", Any[], 100, false, false, true, 1.70119327881e9, 1.701193279526e9), Test.DefaultTestSet(\"2 × <ψₙ|V|ψₙ> = Eₙ\", Any[], 40, false, false, true, 1.701193279531e9, 1.701193280049e9) … Test.DefaultTestSet(\"Pₙᵐ(x) = √(1-x²)ᵐ dᵐ/dxᵐ Pₙ(x); Pₙ(x) = 1/(2ⁿn!) dⁿ/dxⁿ (x²-1)ⁿ\", Any[], 15, false, false, true, 1.701193286143e9, 1.701193286309e9), Test.DefaultTestSet(\"∫Pᵢᵐ(x)Pⱼᵐ(x)dx = 2(j+m)!/(2j+1)(j-m)! δᵢⱼ\", Any[], 355, false, false, true, 1.701193286321e9, 1.701193287009e9), Test.DefaultTestSet(\"∫Yₗ₁ₘ₁(θ,φ)Yₗ₂ₘ₂(θ,φ)sinθdθdφ = δₗ₁ₗ₂δₘ₁ₘ₂\", Any[], 81, false, false, true, 1.70119328702e9, 1.701193288943e9), Test.DefaultTestSet(\"Lₙᵏ(x) = dᵏ/dxᵏ Lₙ(x); Lₙ(x) = 1/(n!) eˣ dⁿ/dxⁿ e⁻ˣ xⁿ\", Any[], 15, false, false, true, 1.70119328895e9, 1.701193289218e9), Test.DefaultTestSet(\"∫exp(-x)xᵏLᵢᵏ(x)Lⱼᵏ(x)dx = (2i+k)!/(i+k)! δᵢⱼ\", Any[], 204, false, false, true, 1.701193289228e9, 1.701193289921e9), Test.DefaultTestSet(\"∫|Rₙₗ(r)|²r²dr = δₙ₁ₙ₂δₗ₁ₗ₂\", Any[], 45, false, false, true, 1.70119328993e9, 1.701193290451e9), Test.DefaultTestSet(\"∫r|Rₙₗ(r)|²r²dr = (a₀×mₑ/μ)/2Z × [3n²-l(l+1)]; 1/μ = 1/mₑ + 1/mₚ\", Any[], 45, false, false, true, 1.701193290456e9, 1.70119329088e9), Test.DefaultTestSet(\"∫r²|Rₙₗ(r)|²r²dr = (a₀×mₑ/μ)²/2Z² × n²[5n²+1-3l(l+1)]; 1/μ = 1/mₑ + 1/mₚ\", Any[], 45, false, false, true, 1.701193290887e9, 1.701193291336e9), Test.DefaultTestSet(\"<ψₙ|V|ψₙ> / 2 = Eₙ\", Any[], 10, false, false, true, 1.70119329134e9, 1.701193291834e9), Test.DefaultTestSet(\"<ψₙ₁ₗ₁ₘ₁|ψₙ₂ₗ₂ₘ₂> = δₙ₁ₙ₂δₗ₁ₗ₂δₘ₁ₘ₂\", Any[], 196, false, false, true, 1.701193291842e9, 1.701193318941e9)], 0, false, false, true, 1.701193274569e9, 1.701193318941e9)" + "Process(`\u001b[4mjulia\u001b[24m \u001b[4m--project=docs/\u001b[24m \u001b[4m-e\u001b[24m \u001b[4m'cd(\"docs\"); include(\"make.jl\")'\u001b[24m`, ProcessExited(0))" ] }, "execution_count": 5, @@ -530,8 +641,9 @@ } ], "source": [ - "# pwd() |> display\n", - "include(\"./test/runtests.jl\")" + "# run(`cmd /C cd \\& julia ./docs/make.jl`)\n", + "# include(\"./docs/make.jl\")\n", + "run(`julia --project=docs/ -e 'cd(\"docs\"); include(\"make.jl\")'`)" ] } ], diff --git a/docs/Project.toml b/docs/Project.toml index 3a3e3b5..c5c56a2 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -1,3 +1,4 @@ [deps] Antiq = "be6e5d0e-34a5-4c8f-af83-e1b5389203d8" +Weave = "44d3d7a6-8a23-5bf8-98c5-b353f8df5ec9" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" diff --git a/docs/jmd2md.jl b/docs/jmd2md.jl new file mode 100644 index 0000000..b004d2c --- /dev/null +++ b/docs/jmd2md.jl @@ -0,0 +1,20 @@ +using Antiq +using Weave + +for file in Antiq.models + weave("./src/jmd/$file.jmd", doctype="github", out_path="./src/", fig_path="./assets/fig/") + text = Antiq.load("./src/$file.md") + # remove ``` after include(...s) + for m in eachmatch(r"\.jl\"\)\n```[.\n]*?```", text) + @show m.match + @show m.offset + text = replace(text, m.match => ".jl\")\n```") + end + # remove ``` at the end of file + for m in eachmatch(r"```\n```[\s\n]*?\z", text) + @show m.match + @show m.offset + text = replace(text, m.match => "\n```\n") + end + Antiq.save("./src/$file.md", text) +end diff --git a/docs/src/HarmonicOscillator.md b/docs/src/HarmonicOscillator.md index fdabfb6..c77f31a 100644 --- a/docs/src/HarmonicOscillator.md +++ b/docs/src/HarmonicOscillator.md @@ -193,7 +193,7 @@ include("../../../test/HarmonicOscillator.jl") ```math \begin{aligned} H_{0}(x) - = e^{x^{2}} e^{ - x^{2}} + = e^{ - x^{2}} e^{x^{2}} &= 1 \\ &= 1 \end{aligned} @@ -213,7 +213,7 @@ include("../../../test/HarmonicOscillator.jl") ```math \begin{aligned} H_{2}(x) - = e^{x^{2}} \frac{\mathrm{d}^{2} e^{ - x^{2}}}{\mathrm{d}x^{2}} + = e^{x^{2}} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d} e^{ - x^{2}}}{\mathrm{d}x} &= -2 + 4 x^{2} \\ &= -2 + 4 x^{2} \end{aligned} @@ -223,9 +223,9 @@ include("../../../test/HarmonicOscillator.jl") ```math \begin{aligned} H_{3}(x) - = - e^{x^{2}} \frac{\mathrm{d}^{3} e^{ - x^{2}}}{\mathrm{d}x^{3}} - &= 8 x^{3} - 12 x \\ - &= 8 x^{3} - 12 x + = - \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d} e^{ - x^{2}}}{\mathrm{d}x} e^{x^{2}} + &= - 12 x + 8 x^{3} \\ + &= - 12 x + 8 x^{3} \end{aligned} ``` @@ -233,7 +233,7 @@ include("../../../test/HarmonicOscillator.jl") ```math \begin{aligned} H_{4}(x) - = e^{x^{2}} \frac{\mathrm{d}^{4} e^{ - x^{2}}}{\mathrm{d}x^{4}} + = e^{x^{2}} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d} e^{ - x^{2}}}{\mathrm{d}x} &= 12 - 48 x^{2} + 16 x^{4} \\ &= 12 - 48 x^{2} + 16 x^{4} \end{aligned} @@ -243,9 +243,9 @@ include("../../../test/HarmonicOscillator.jl") ```math \begin{aligned} H_{5}(x) - = - e^{x^{2}} \frac{\mathrm{d}^{5} e^{ - x^{2}}}{\mathrm{d}x^{5}} - &= 32 x^{5} + 120 x - 160 x^{3} \\ - &= 32 x^{5} + 120 x - 160 x^{3} + = - \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d} e^{ - x^{2}}}{\mathrm{d}x} e^{x^{2}} + &= 120 x - 160 x^{3} + 32 x^{5} \\ + &= 120 x - 160 x^{3} + 32 x^{5} \end{aligned} ``` @@ -253,9 +253,9 @@ include("../../../test/HarmonicOscillator.jl") ```math \begin{aligned} H_{6}(x) - = e^{x^{2}} \frac{\mathrm{d}^{6} e^{ - x^{2}}}{\mathrm{d}x^{6}} - &= -120 + 720 x^{2} + 64 x^{6} - 480 x^{4} \\ - &= -120 + 720 x^{2} + 64 x^{6} - 480 x^{4} + = e^{x^{2}} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d} e^{ - x^{2}}}{\mathrm{d}x} + &= -120 + 720 x^{2} - 480 x^{4} + 64 x^{6} \\ + &= -120 + 720 x^{2} - 480 x^{4} + 64 x^{6} \end{aligned} ``` @@ -263,9 +263,9 @@ include("../../../test/HarmonicOscillator.jl") ```math \begin{aligned} H_{7}(x) - = - e^{x^{2}} \frac{\mathrm{d}^{7} e^{ - x^{2}}}{\mathrm{d}x^{7}} - &= 128 x^{7} - 1344 x^{5} - 1680 x + 3360 x^{3} \\ - &= 128 x^{7} - 1344 x^{5} - 1680 x + 3360 x^{3} + = - e^{x^{2}} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d} e^{ - x^{2}}}{\mathrm{d}x} + &= - 1680 x + 3360 x^{3} - 1344 x^{5} + 128 x^{7} \\ + &= - 1680 x + 3360 x^{3} - 1344 x^{5} + 128 x^{7} \end{aligned} ``` @@ -273,9 +273,9 @@ include("../../../test/HarmonicOscillator.jl") ```math \begin{aligned} H_{8}(x) - = e^{x^{2}} \frac{\mathrm{d}^{8} e^{ - x^{2}}}{\mathrm{d}x^{8}} - &= 1680 - 13440 x^{2} - 3584 x^{6} + 13440 x^{4} + 256 x^{8} \\ - &= 1680 - 13440 x^{2} - 3584 x^{6} + 13440 x^{4} + 256 x^{8} + = e^{x^{2}} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d} e^{ - x^{2}}}{\mathrm{d}x} + &= 1680 - 13440 x^{2} + 13440 x^{4} - 3584 x^{6} + 256 x^{8} \\ + &= 1680 - 13440 x^{2} + 13440 x^{4} - 3584 x^{6} + 256 x^{8} \end{aligned} ``` @@ -283,15 +283,15 @@ include("../../../test/HarmonicOscillator.jl") ```math \begin{aligned} H_{9}(x) - = - e^{x^{2}} \frac{\mathrm{d}^{9} e^{ - x^{2}}}{\mathrm{d}x^{9}} - &= 512 x^{9} - 9216 x^{7} + 30240 x + 48384 x^{5} - 80640 x^{3} \\ - &= 512 x^{9} - 9216 x^{7} + 30240 x + 48384 x^{5} - 80640 x^{3} + = - e^{x^{2}} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d} e^{ - x^{2}}}{\mathrm{d}x} + &= 30240 x - 80640 x^{3} + 48384 x^{5} - 9216 x^{7} + 512 x^{9} \\ + &= 30240 x - 80640 x^{3} + 48384 x^{5} - 9216 x^{7} + 512 x^{9} \end{aligned} ``` ``` Test Summary: | Pass Total Time -Hₙ(x) = (-1)ⁿ exp(x²) dⁿ/dxⁿ exp(-x²) = ... | 10 10 34.9s +Hₙ(x) = (-1)ⁿ exp(x²) dⁿ/dxⁿ exp(-x²) = ... | 10 10 35.0s ``` #### Normalization & Orthogonality of $H_n(x)$ @@ -403,7 +403,7 @@ Hₙ(x) = (-1)ⁿ exp(x²) dⁿ/dxⁿ exp(-x²) = ... | 10 10 34.9s 9 8 0.0000000016298145 0.0000000000000000 0.0000000000000000% ✔ 9 9 329312283.3492956757545471 329312283.3492959141731262 0.0000000000000724% ✔ Test Summary: | Pass Total Time -∫Hⱼ(x)Hᵢ(x)exp(-x²)dx = √π2ʲj!δᵢⱼ | 100 100 1.0s +∫Hⱼ(x)Hᵢ(x)exp(-x²)dx = √π2ʲj!δᵢⱼ | 100 100 1.2s ``` #### Normalization & Orthogonality of $\psi_n(x)$ @@ -515,7 +515,7 @@ Test Summary: | Pass Total Time 9 8 -0.0000000000000000 0.0000000000000000 0.0000000000000000% ✔ 9 9 0.9999999999999998 1.0000000000000000 0.0000000000000222% ✔ Test Summary: | Pass Total Time -<ψᵢ|ψⱼ> = δᵢⱼ | 100 100 0.7s +<ψᵢ|ψⱼ> = δᵢⱼ | 100 100 1.2s ``` #### Virial Theorem @@ -569,7 +569,7 @@ The virial theorem $\langle T \rangle = \langle V \rangle$ and the definition of 5.0 8 8.4999999999999929 8.5000000000000000 0.0000000000000836% ✔ 5.0 9 9.5000000000000000 9.5000000000000000 0.0000000000000000% ✔ Test Summary: | Pass Total Time -2 × <ψₙ|V|ψₙ> = Eₙ | 40 40 0.6s +2 × <ψₙ|V|ψₙ> = Eₙ | 40 40 1.0s ``` #### Eigen Values @@ -677,6 +677,6 @@ are given by the sum of 2 Taylor series: 5.0 8 19.0065551524155296 19.0065778087482116 0.0001192025882298% ✔ 5.0 9 21.2426175047498660 21.2426457862480049 0.0001331354786194% ✔ Test Summary: | Pass Total Time -∫ψₙ*Hψₙdx = <ψₙ|H|ψₙ> = Eₙ | 40 40 0.6s +∫ψₙ*Hψₙdx = <ψₙ|H|ψₙ> = Eₙ | 40 40 1.4s ``` diff --git a/docs/src/HydrogenAtom.md b/docs/src/HydrogenAtom.md index 1483bcc..fd9289d 100644 --- a/docs/src/HydrogenAtom.md +++ b/docs/src/HydrogenAtom.md @@ -345,7 +345,7 @@ include("../../../test/HydrogenAtom.jl") ```math \begin{aligned} P_{2}^{0}(x) - = \frac{1}{8} \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} \left( -1 + x^{2} \right)^{2} + = \frac{1}{8} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \left( -1 + x^{2} \right)^{2} &= \frac{-1}{2} + \frac{3}{2} x^{2} \\ &= \frac{-1}{2} + \frac{3}{2} x^{2} \end{aligned} @@ -355,7 +355,7 @@ include("../../../test/HydrogenAtom.jl") ```math \begin{aligned} P_{2}^{1}(x) - = \left( 1 - x^{2} \right)^{\frac{1}{2}} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{8} \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} \left( -1 + x^{2} \right)^{2} + = \left( 1 - x^{2} \right)^{\frac{1}{2}} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{8} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \left( -1 + x^{2} \right)^{2} &= 3 \left( 1 - x^{2} \right)^{\frac{1}{2}} x \\ &= 3 \left( 1 - x^{2} \right)^{\frac{1}{2}} x \end{aligned} @@ -365,7 +365,7 @@ include("../../../test/HydrogenAtom.jl") ```math \begin{aligned} P_{2}^{2}(x) - = \left( 1 - x^{2} \right) \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} \frac{1}{8} \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} \left( -1 + x^{2} \right)^{2} + = \left( 1 - x^{2} \right) \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{8} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \left( -1 + x^{2} \right)^{2} &= 3 - 3 x^{2} \\ &= 3 - 3 x^{2} \end{aligned} @@ -375,7 +375,7 @@ include("../../../test/HydrogenAtom.jl") ```math \begin{aligned} P_{3}^{0}(x) - = \frac{1}{48} \frac{\mathrm{d}^{3}}{\mathrm{d}x^{3}} \left( -1 + x^{2} \right)^{3} + = \frac{1}{48} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \left( -1 + x^{2} \right)^{3} &= - \frac{3}{2} x + \frac{5}{2} x^{3} \\ &= - \frac{3}{2} x + \frac{5}{2} x^{3} \end{aligned} @@ -385,9 +385,9 @@ include("../../../test/HydrogenAtom.jl") ```math \begin{aligned} P_{3}^{1}(x) - = \left( 1 - x^{2} \right)^{\frac{1}{2}} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{48} \frac{\mathrm{d}^{3}}{\mathrm{d}x^{3}} \left( -1 + x^{2} \right)^{3} - &= - \frac{3}{2} \left( 1 - x^{2} \right)^{\frac{1}{2}} + \frac{15}{2} \left( 1 - x^{2} \right)^{\frac{1}{2}} x^{2} \\ - &= - \frac{3}{2} \left( 1 - x^{2} \right)^{\frac{1}{2}} + \frac{15}{2} \left( 1 - x^{2} \right)^{\frac{1}{2}} x^{2} + = \left( 1 - x^{2} \right)^{\frac{1}{2}} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{48} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \left( -1 + x^{2} \right)^{3} + &= - \frac{3}{2} \left( 1 - x^{2} \right)^{\frac{1}{2}} + \frac{15}{2} x^{2} \left( 1 - x^{2} \right)^{\frac{1}{2}} \\ + &= - \frac{3}{2} \left( 1 - x^{2} \right)^{\frac{1}{2}} + \frac{15}{2} x^{2} \left( 1 - x^{2} \right)^{\frac{1}{2}} \end{aligned} ``` @@ -395,7 +395,7 @@ include("../../../test/HydrogenAtom.jl") ```math \begin{aligned} P_{3}^{2}(x) - = \left( 1 - x^{2} \right) \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} \frac{1}{48} \frac{\mathrm{d}^{3}}{\mathrm{d}x^{3}} \left( -1 + x^{2} \right)^{3} + = \left( 1 - x^{2} \right) \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{48} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \left( -1 + x^{2} \right)^{3} &= 15 x - 15 x^{3} \\ &= 15 x - 15 x^{3} \end{aligned} @@ -405,7 +405,7 @@ include("../../../test/HydrogenAtom.jl") ```math \begin{aligned} P_{3}^{3}(x) - = \left( 1 - x^{2} \right)^{\frac{3}{2}} \frac{\mathrm{d}^{3}}{\mathrm{d}x^{3}} \frac{1}{48} \frac{\mathrm{d}^{3}}{\mathrm{d}x^{3}} \left( -1 + x^{2} \right)^{3} + = \left( 1 - x^{2} \right)^{\frac{3}{2}} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{48} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \left( -1 + x^{2} \right)^{3} &= 15 \left( 1 - x^{2} \right)^{\frac{3}{2}} \\ &= 15 \left( 1 - x^{2} \right)^{\frac{3}{2}} \end{aligned} @@ -415,7 +415,7 @@ include("../../../test/HydrogenAtom.jl") ```math \begin{aligned} P_{4}^{0}(x) - = \frac{1}{384} \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} \left( -1 + x^{2} \right)^{4} + = \frac{1}{384} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \left( -1 + x^{2} \right)^{4} &= \frac{3}{8} - \frac{15}{4} x^{2} + \frac{35}{8} x^{4} \\ &= \frac{3}{8} - \frac{15}{4} x^{2} + \frac{35}{8} x^{4} \end{aligned} @@ -425,9 +425,9 @@ include("../../../test/HydrogenAtom.jl") ```math \begin{aligned} P_{4}^{1}(x) - = \left( 1 - x^{2} \right)^{\frac{1}{2}} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{384} \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} \left( -1 + x^{2} \right)^{4} - &= - \frac{15}{2} \left( 1 - x^{2} \right)^{\frac{1}{2}} x + \frac{35}{2} \left( 1 - x^{2} \right)^{\frac{1}{2}} x^{3} \\ - &= - \frac{15}{2} \left( 1 - x^{2} \right)^{\frac{1}{2}} x + \frac{35}{2} \left( 1 - x^{2} \right)^{\frac{1}{2}} x^{3} + = \left( 1 - x^{2} \right)^{\frac{1}{2}} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{384} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \left( -1 + x^{2} \right)^{4} + &= - \frac{15}{2} \left( 1 - x^{2} \right)^{\frac{1}{2}} x + \frac{35}{2} x^{3} \left( 1 - x^{2} \right)^{\frac{1}{2}} \\ + &= - \frac{15}{2} \left( 1 - x^{2} \right)^{\frac{1}{2}} x + \frac{35}{2} x^{3} \left( 1 - x^{2} \right)^{\frac{1}{2}} \end{aligned} ``` @@ -435,7 +435,7 @@ include("../../../test/HydrogenAtom.jl") ```math \begin{aligned} P_{4}^{2}(x) - = \left( 1 - x^{2} \right) \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} \frac{1}{384} \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} \left( -1 + x^{2} \right)^{4} + = \left( 1 - x^{2} \right) \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{384} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \left( -1 + x^{2} \right)^{4} &= \frac{-15}{2} + 60 x^{2} - \frac{105}{2} x^{4} \\ &= \frac{-15}{2} + 60 x^{2} - \frac{105}{2} x^{4} \end{aligned} @@ -445,7 +445,7 @@ include("../../../test/HydrogenAtom.jl") ```math \begin{aligned} P_{4}^{3}(x) - = \left( 1 - x^{2} \right)^{\frac{3}{2}} \frac{\mathrm{d}^{3}}{\mathrm{d}x^{3}} \frac{1}{384} \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} \left( -1 + x^{2} \right)^{4} + = \left( 1 - x^{2} \right)^{\frac{3}{2}} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{384} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \left( -1 + x^{2} \right)^{4} &= 105 \left( 1 - x^{2} \right)^{\frac{3}{2}} x \\ &= 105 \left( 1 - x^{2} \right)^{\frac{3}{2}} x \end{aligned} @@ -455,15 +455,15 @@ include("../../../test/HydrogenAtom.jl") ```math \begin{aligned} P_{4}^{4}(x) - = \left( 1 - x^{2} \right)^{2} \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} \frac{1}{384} \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} \left( -1 + x^{2} \right)^{4} + = \left( 1 - x^{2} \right)^{2} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{384} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \left( -1 + x^{2} \right)^{4} &= 105 \left( 1 - x^{2} \right)^{2} \\ &= 105 \left( 1 - x^{2} \right)^{2} \end{aligned} ``` ``` -Test Summary: | Pass Total Time -Pₙᵐ(x) = √(1-x²)ᵐ dᵐ/dxᵐ Pₙ(x); Pₙ(x) = 1/(2ⁿn!) dⁿ/dxⁿ (x²-1)ⁿ | 15 15 17.3s +Test Summary: | Pass Total Time +Pₙᵐ(x) = √(1-x²)ᵐ dᵐ/dxᵐ Pₙ(x); Pₙ(x) = 1/(2ⁿn!) dⁿ/dxⁿ (x²-1)ⁿ | 15 15 1.9s ``` #### Normalization & Orthogonality of $P_n^m(x)$ @@ -829,7 +829,7 @@ Pₙᵐ(x) = √(1-x²)ᵐ dᵐ/dxᵐ Pₙ(x); Pₙ(x) = 1/(2ⁿn!) dⁿ/dxⁿ ( 5 9 8 -0.0000000013969839 0.0000000000000000 0.0000000000000000% ✔ 5 9 9 382360926.3157894611358643 382360926.3157894611358643 0.0000000000000000% ✔ Test Summary: | Pass Total Time -∫Pᵢᵐ(x)Pⱼᵐ(x)dx = 2(j+m)!/(2j+1)(j-m)! δᵢⱼ | 355 355 1.0s +∫Pᵢᵐ(x)Pⱼᵐ(x)dx = 2(j+m)!/(2j+1)(j-m)! δᵢⱼ | 355 355 1.5s ``` #### Normalization & Orthogonality of $Y_{lm}(\theta,\varphi)$ @@ -925,7 +925,7 @@ Y_{lm}(\theta,\varphi)^* Y_{l'm'}(\theta,\varphi) \sin(\theta) 2 2 2 1 0.0000000000000000 0.0000000000000000 0.0000000000000000% ✔ 2 2 2 2 1.0000000000000002 1.0000000000000000 0.0000000000000222% ✔ Test Summary: | Pass Total Time -∫Yₗ₁ₘ₁(θ,φ)Yₗ₂ₘ₂(θ,φ)sinθdθdφ = δₗ₁ₗ₂δₘ₁ₘ₂ | 81 81 2.8s +∫Yₗ₁ₘ₁(θ,φ)Yₗ₂ₘ₂(θ,φ)sinθdθdφ = δₗ₁ₗ₂δₘ₁ₘ₂ | 81 81 3.1s ``` #### Associated Laguerre Polynomials $L_n^{k}(x)$ @@ -944,7 +944,7 @@ Test Summary: | Pass Total Time ```math \begin{aligned} L_{0}^{0}(x) - = e^{x} e^{ - x} + = e^{ - x} e^{x} &= 1 \\ &= 1 \\ &= 1 @@ -955,7 +955,7 @@ Test Summary: | Pass Total Time ```math \begin{aligned} L_{1}^{0}(x) - = e^{x} \frac{\mathrm{d}}{\mathrm{d}x} x e^{ - x} + = \frac{\mathrm{d}}{\mathrm{d}x} x e^{ - x} e^{x} &= 1 - x \\ &= 1 - x \\ &= 1 - x @@ -966,7 +966,7 @@ Test Summary: | Pass Total Time ```math \begin{aligned} L_{1}^{1}(x) - = \frac{\mathrm{d}}{\mathrm{d}x} e^{x} \frac{\mathrm{d}}{\mathrm{d}x} x e^{ - x} + = \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x e^{ - x} e^{x} &= -1 \\ &= -1 \\ &= -1 @@ -977,10 +977,10 @@ Test Summary: | Pass Total Time ```math \begin{aligned} L_{2}^{0}(x) - = \frac{1}{2} e^{x} \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} x^{2} e^{ - x} - &= 1 + \frac{1}{2} x^{2} - 2 x \\ - &= 1 + \frac{1}{2} x^{2} - 2 x \\ - &= 1 + \frac{1}{2} x^{2} - 2 x + = \frac{1}{2} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{2} e^{ - x} e^{x} + &= 1 - 2 x + \frac{1}{2} x^{2} \\ + &= 1 - 2 x + \frac{1}{2} x^{2} \\ + &= 1 - 2 x + \frac{1}{2} x^{2} \end{aligned} ``` @@ -988,7 +988,7 @@ Test Summary: | Pass Total Time ```math \begin{aligned} L_{2}^{1}(x) - = \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{2} e^{x} \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} x^{2} e^{ - x} + = \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{2} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{2} e^{ - x} e^{x} &= -2 + x \\ &= -2 + x \\ &= -2 + x @@ -999,7 +999,7 @@ Test Summary: | Pass Total Time ```math \begin{aligned} L_{2}^{2}(x) - = \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} \frac{1}{2} e^{x} \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} x^{2} e^{ - x} + = \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{2} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{2} e^{ - x} e^{x} &= 1 \\ &= 1 \\ &= 1 @@ -1010,10 +1010,10 @@ Test Summary: | Pass Total Time ```math \begin{aligned} L_{3}^{0}(x) - = \frac{1}{6} e^{x} \frac{\mathrm{d}^{3}}{\mathrm{d}x^{3}} x^{3} e^{ - x} - &= 1 + \frac{3}{2} x^{2} - \frac{1}{6} x^{3} - 3 x \\ - &= 1 + \frac{3}{2} x^{2} - \frac{1}{6} x^{3} - 3 x \\ - &= 1 + \frac{3}{2} x^{2} - \frac{1}{6} x^{3} - 3 x + = \frac{1}{6} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{3} e^{ - x} e^{x} + &= 1 - 3 x + \frac{3}{2} x^{2} - \frac{1}{6} x^{3} \\ + &= 1 - 3 x + \frac{3}{2} x^{2} - \frac{1}{6} x^{3} \\ + &= 1 - 3 x + \frac{3}{2} x^{2} - \frac{1}{6} x^{3} \end{aligned} ``` @@ -1021,10 +1021,10 @@ Test Summary: | Pass Total Time ```math \begin{aligned} L_{3}^{1}(x) - = \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{6} e^{x} \frac{\mathrm{d}^{3}}{\mathrm{d}x^{3}} x^{3} e^{ - x} - &= -3 - \frac{1}{2} x^{2} + 3 x \\ - &= -3 - \frac{1}{2} x^{2} + 3 x \\ - &= -3 - \frac{1}{2} x^{2} + 3 x + = \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{6} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{3} e^{ - x} e^{x} + &= -3 + 3 x - \frac{1}{2} x^{2} \\ + &= -3 + 3 x - \frac{1}{2} x^{2} \\ + &= -3 + 3 x - \frac{1}{2} x^{2} \end{aligned} ``` @@ -1032,7 +1032,7 @@ Test Summary: | Pass Total Time ```math \begin{aligned} L_{3}^{2}(x) - = \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} \frac{1}{6} e^{x} \frac{\mathrm{d}^{3}}{\mathrm{d}x^{3}} x^{3} e^{ - x} + = \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{6} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{3} e^{ - x} e^{x} &= 3 - x \\ &= 3 - x \\ &= 3 - x @@ -1043,7 +1043,7 @@ Test Summary: | Pass Total Time ```math \begin{aligned} L_{3}^{3}(x) - = \frac{\mathrm{d}^{3}}{\mathrm{d}x^{3}} \frac{1}{6} e^{x} \frac{\mathrm{d}^{3}}{\mathrm{d}x^{3}} x^{3} e^{ - x} + = \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{6} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{3} e^{ - x} e^{x} &= -1 \\ &= -1 \\ &= -1 @@ -1054,10 +1054,10 @@ Test Summary: | Pass Total Time ```math \begin{aligned} L_{4}^{0}(x) - = \frac{1}{24} e^{x} \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} x^{4} e^{ - x} - &= 1 + 3 x^{2} + \frac{1}{24} x^{4} - \frac{2}{3} x^{3} - 4 x \\ - &= 1 + 3 x^{2} + \frac{1}{24} x^{4} - \frac{2}{3} x^{3} - 4 x \\ - &= 1 + 3 x^{2} + \frac{1}{24} x^{4} - \frac{2}{3} x^{3} - 4 x + = \frac{1}{24} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{4} e^{ - x} e^{x} + &= 1 - 4 x + 3 x^{2} - \frac{2}{3} x^{3} + \frac{1}{24} x^{4} \\ + &= 1 - 4 x + 3 x^{2} - \frac{2}{3} x^{3} + \frac{1}{24} x^{4} \\ + &= 1 - 4 x + 3 x^{2} - \frac{2}{3} x^{3} + \frac{1}{24} x^{4} \end{aligned} ``` @@ -1065,10 +1065,10 @@ Test Summary: | Pass Total Time ```math \begin{aligned} L_{4}^{1}(x) - = \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{24} e^{x} \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} x^{4} e^{ - x} - &= -4 - 2 x^{2} + \frac{1}{6} x^{3} + 6 x \\ - &= -4 - 2 x^{2} + \frac{1}{6} x^{3} + 6 x \\ - &= -4 - 2 x^{2} + \frac{1}{6} x^{3} + 6 x + = \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{24} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{4} e^{ - x} e^{x} + &= -4 + 6 x - 2 x^{2} + \frac{1}{6} x^{3} \\ + &= -4 + 6 x - 2 x^{2} + \frac{1}{6} x^{3} \\ + &= -4 + 6 x - 2 x^{2} + \frac{1}{6} x^{3} \end{aligned} ``` @@ -1076,10 +1076,10 @@ Test Summary: | Pass Total Time ```math \begin{aligned} L_{4}^{2}(x) - = \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} \frac{1}{24} e^{x} \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} x^{4} e^{ - x} - &= 6 + \frac{1}{2} x^{2} - 4 x \\ - &= 6 + \frac{1}{2} x^{2} - 4 x \\ - &= 6 + \frac{1}{2} x^{2} - 4 x + = \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{24} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{4} e^{ - x} e^{x} + &= 6 - 4 x + \frac{1}{2} x^{2} \\ + &= 6 - 4 x + \frac{1}{2} x^{2} \\ + &= 6 - 4 x + \frac{1}{2} x^{2} \end{aligned} ``` @@ -1087,7 +1087,7 @@ Test Summary: | Pass Total Time ```math \begin{aligned} L_{4}^{3}(x) - = \frac{\mathrm{d}^{3}}{\mathrm{d}x^{3}} \frac{1}{24} e^{x} \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} x^{4} e^{ - x} + = \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{24} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{4} e^{ - x} e^{x} &= -4 + x \\ &= -4 + x \\ &= -4 + x @@ -1098,7 +1098,7 @@ Test Summary: | Pass Total Time ```math \begin{aligned} L_{4}^{4}(x) - = \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} \frac{1}{24} e^{x} \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} x^{4} e^{ - x} + = \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{1}{24} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{4} e^{ - x} e^{x} &= 1 \\ &= 1 \\ &= 1 @@ -1107,7 +1107,7 @@ Test Summary: | Pass Total Time ``` Test Summary: | Pass Total Time -Lₙᵏ(x) = dᵏ/dxᵏ Lₙ(x); Lₙ(x) = 1/(n!) eˣ dⁿ/dxⁿ e⁻ˣ xⁿ | 15 15 5.8s +Lₙᵏ(x) = dᵏ/dxᵏ Lₙ(x); Lₙ(x) = 1/(n!) eˣ dⁿ/dxⁿ e⁻ˣ xⁿ | 15 15 0.9s ``` #### Normalization & Orthogonality of $L_n^{k}(x)$ @@ -1324,7 +1324,7 @@ Replace $n+k$ with $n$ for [the definition of Wolfram MathWorld](https://mathwor 7 7 6 5039.9999999999854481 5040.0000000000000000 0.0000000000002887% ✔ 7 7 7 5040.0000000000000000 5040.0000000000000000 0.0000000000000000% ✔ Test Summary: | Pass Total Time -∫exp(-x)xᵏLᵢᵏ(x)Lⱼᵏ(x)dx = (2i+k)!/(i+k)! δᵢⱼ | 204 204 0.7s +∫exp(-x)xᵏLᵢᵏ(x)Lⱼᵏ(x)dx = (2i+k)!/(i+k)! δᵢⱼ | 204 204 1.4s ``` #### Normalization of $R_{nl}(r)$ @@ -1380,7 +1380,7 @@ Test Summary: | Pass Total Time 9 7 1.0000000000000007 1.0000000000000000 0.0000000000000666% ✔ 9 8 0.9999999999999994 1.0000000000000000 0.0000000000000555% ✔ Test Summary: | Pass Total Time -∫|Rₙₗ(r)|²r²dr = δₙ₁ₙ₂δₗ₁ₗ₂ | 45 45 0.6s +∫|Rₙₗ(r)|²r²dr = δₙ₁ₙ₂δₗ₁ₗ₂ | 45 45 1.1s ``` #### Expected Value of $r$ @@ -1444,7 +1444,7 @@ Reference: 9 7 93.5000000000000000 93.5000000000000000 0.0000000000000000% ✔ 9 8 85.4999999999999716 85.5000000000000000 0.0000000000000332% ✔ Test Summary: | Pass Total Time -∫r|Rₙₗ(r)|²r²dr = (a₀×mₑ/μ)/2Z × [3n²-l(l+1)]; 1/μ = 1/mₑ + 1/mₚ | 45 45 0.4s +∫r|Rₙₗ(r)|²r²dr = (a₀×mₑ/μ)/2Z × [3n²-l(l+1)]; 1/μ = 1/mₑ + 1/mₚ | 45 45 0.9s ``` #### Expected Value of $r^2$ @@ -1508,7 +1508,7 @@ Reference: 9 7 9638.9999999999909051 9639.0000000000000000 0.0000000000000944% ✔ 9 8 7694.9999999999981810 7695.0000000000000000 0.0000000000000236% ✔ Test Summary: | Pass Total Time -∫r²|Rₙₗ(r)|²r²dr = (a₀×mₑ/μ)²/2Z² × n²[5n²+1-3l(l+1)]; 1/μ = 1/mₑ + 1/mₚ | 45 45 0.5s +∫r²|Rₙₗ(r)|²r²dr = (a₀×mₑ/μ)²/2Z² × n²[5n²+1-3l(l+1)]; 1/μ = 1/mₑ + 1/mₚ | 45 45 1.0s ``` #### Virial Theorem @@ -1531,7 +1531,7 @@ The virial theorem $2\langle T \rangle + \langle V \rangle = 0$ and the definiti 9 -0.0123456790123456 -0.0123456790123457 0.0000000000002389% ✔ 10 -0.0100000000000004 -0.0100000000000000 0.0000000000036256% ✔ Test Summary: | Pass Total Time -<ψₙ|V|ψₙ> / 2 = Eₙ | 10 10 0.8s +<ψₙ|V|ψₙ> / 2 = Eₙ | 10 10 0.9s ``` #### Normalization & Orthogonality of $\psi_n(r,\theta,\varphi)$ @@ -1738,6 +1738,6 @@ Test Summary: | Pass Total Time 3 3 2 2 2 1 0.0000000000000000 0.0000000000000000 0.0000000000000000% ✔ 3 3 2 2 2 2 1.0003006285656155 1.0000000000000000 0.0300628565615524% ✔ Test Summary: | Pass Total Time -<ψₙ₁ₗ₁ₘ₁|ψₙ₂ₗ₂ₘ₂> = δₙ₁ₙ₂δₗ₁ₗ₂δₘ₁ₘ₂ | 196 196 27.4s +<ψₙ₁ₗ₁ₘ₁|ψₙ₂ₗ₂ₘ₂> = δₙ₁ₙ₂δₗ₁ₗ₂δₘ₁ₘ₂ | 196 196 26.8s ``` diff --git a/docs/src/InfinitePotentialWell.md b/docs/src/InfinitePotentialWell.md index 88db340..f611e80 100644 --- a/docs/src/InfinitePotentialWell.md +++ b/docs/src/InfinitePotentialWell.md @@ -239,7 +239,7 @@ include("../../../test/InfinitePotentialWell.jl") 10 9 0.0000000000000001 0.0000000000000000 0.0000000000000000% ✔ 10 10 1.0000000000000002 1.0000000000000000 0.0000000000000222% ✔ Test Summary: | Pass Total Time -<ψᵢ|ψⱼ> = ∫ψₙ*ψₙdx = δᵢⱼ | 100 100 2.3s +<ψᵢ|ψⱼ> = ∫ψₙ*ψₙdx = δᵢⱼ | 100 100 1.5s ``` #### Eigen Values @@ -386,7 +386,7 @@ are given by the sum of 2 Taylor series: 1.0 1.0 1.0 9 399.718711951912 399.718978244119 0.000066619856% ✔ 1.0 1.0 1.0 10 493.479814178266 493.480220054468 0.000082247714% ✔ Test Summary: | Pass Total Time -<ψₙ|H|ψₙ> = ∫ψₙ*Tψₙdx = Eₙ | 80 80 0.9s +<ψₙ|H|ψₙ> = ∫ψₙ*Tψₙdx = Eₙ | 80 80 1.2s ``` #### Expected Value of $x$ @@ -406,7 +406,7 @@ Reference: 1.0 1 0.5000000000000002 0.5000000000000000 0.0000000000000444% ✔ 7.0 1 3.5000000000000000 3.5000000000000000 0.0000000000000000% ✔ Test Summary: | Pass Total Time -<ψₙ|x|ψₙ> = L/2 | 4 4 0.4s +<ψₙ|x|ψₙ> = L/2 | 4 4 0.7s ``` #### Expected Value of $x^2$ @@ -425,7 +425,7 @@ Reference: 1.0 1 0.2826727415121645 0.2826727415121645 0.0000000000000196% ✔ 7.0 1 13.8509643340960604 13.8509643340960569 0.0000000000000256% ✔ Test Summary: | Pass Total Time -<ψₙ|x²|ψₙ> = 2L²/π³(π³/6-π/4) | 4 4 0.4s +<ψₙ|x²|ψₙ> = 2L²/π³(π³/6-π/4) | 4 4 0.5s ``` #### Expected Value of $p$ @@ -503,7 +503,7 @@ are given by the sum of 2 Taylor series: 1.0 1 0.0000000000001066 0.0000000000000000 0.0000000000000000% ✔ 7.0 1 0.0000000000000252 0.0000000000000000 0.0000000000000000% ✔ Test Summary: | Pass Total Time -<ψₙ|p|ψₙ> = ∫ψₙ*(-iℏd/dx)ψₙdx = 0 | 4 4 0.7s +<ψₙ|p|ψₙ> = ∫ψₙ*(-iℏd/dx)ψₙdx = 0 | 4 4 0.9s ``` #### Expected Value of $p^2$ diff --git a/docs/src/MorsePotential.md b/docs/src/MorsePotential.md index 3c37f59..3752f84 100644 --- a/docs/src/MorsePotential.md +++ b/docs/src/MorsePotential.md @@ -197,7 +197,7 @@ include("../../../test/MorsePotential.jl") ```math \begin{aligned} L_{0}^{(0)}(x) - = e^{x} e^{ - x} + = e^{ - x} e^{x} &= 1 \\ &= 1 \end{aligned} @@ -207,7 +207,7 @@ include("../../../test/MorsePotential.jl") ```math \begin{aligned} L_{1}^{(0)}(x) - = e^{x} \frac{\mathrm{d}}{\mathrm{d}x} x e^{ - x} + = \frac{\mathrm{d}}{\mathrm{d}x} x e^{ - x} e^{x} &= 1 - x \\ &= 1 - x \end{aligned} @@ -227,9 +227,9 @@ include("../../../test/MorsePotential.jl") ```math \begin{aligned} L_{2}^{(0)}(x) - = \frac{1}{2} e^{x} \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} x^{2} e^{ - x} - &= 1 + \frac{1}{2} x^{2} - 2 x \\ - &= 1 + \frac{1}{2} x^{2} - 2 x + = \frac{1}{2} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{2} e^{ - x} e^{x} + &= 1 - 2 x + \frac{1}{2} x^{2} \\ + &= 1 - 2 x + \frac{1}{2} x^{2} \end{aligned} ``` @@ -237,9 +237,9 @@ include("../../../test/MorsePotential.jl") ```math \begin{aligned} L_{2}^{(1)}(x) - = \frac{\frac{1}{2} e^{x} \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} x^{3} e^{ - x}}{x} - &= 3 + \frac{1}{2} x^{2} - 3 x \\ - &= 3 + \frac{1}{2} x^{2} - 3 x + = \frac{\frac{1}{2} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{3} e^{ - x} e^{x}}{x} + &= 3 - 3 x + \frac{1}{2} x^{2} \\ + &= 3 - 3 x + \frac{1}{2} x^{2} \end{aligned} ``` @@ -247,9 +247,9 @@ include("../../../test/MorsePotential.jl") ```math \begin{aligned} L_{2}^{(2)}(x) - = \frac{\frac{1}{2} e^{x} \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} x^{4} e^{ - x}}{x^{2}} - &= 6 + \frac{1}{2} x^{2} - 4 x \\ - &= 6 + \frac{1}{2} x^{2} - 4 x + = \frac{\frac{1}{2} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{4} e^{ - x} e^{x}}{x^{2}} + &= 6 - 4 x + \frac{1}{2} x^{2} \\ + &= 6 - 4 x + \frac{1}{2} x^{2} \end{aligned} ``` @@ -257,9 +257,9 @@ include("../../../test/MorsePotential.jl") ```math \begin{aligned} L_{3}^{(0)}(x) - = \frac{1}{6} e^{x} \frac{\mathrm{d}^{3}}{\mathrm{d}x^{3}} x^{3} e^{ - x} - &= 1 + \frac{3}{2} x^{2} - \frac{1}{6} x^{3} - 3 x \\ - &= 1 + \frac{3}{2} x^{2} - \frac{1}{6} x^{3} - 3 x + = \frac{1}{6} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{3} e^{ - x} e^{x} + &= 1 - 3 x + \frac{3}{2} x^{2} - \frac{1}{6} x^{3} \\ + &= 1 - 3 x + \frac{3}{2} x^{2} - \frac{1}{6} x^{3} \end{aligned} ``` @@ -267,9 +267,9 @@ include("../../../test/MorsePotential.jl") ```math \begin{aligned} L_{3}^{(1)}(x) - = \frac{\frac{1}{6} e^{x} \frac{\mathrm{d}^{3}}{\mathrm{d}x^{3}} x^{4} e^{ - x}}{x} - &= 4 + 2 x^{2} - \frac{1}{6} x^{3} - 6 x \\ - &= 4 + 2 x^{2} - \frac{1}{6} x^{3} - 6 x + = \frac{\frac{1}{6} e^{x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{4} e^{ - x}}{x} + &= 4 - 6 x + 2 x^{2} - \frac{1}{6} x^{3} \\ + &= 4 - 6 x + 2 x^{2} - \frac{1}{6} x^{3} \end{aligned} ``` @@ -277,9 +277,9 @@ include("../../../test/MorsePotential.jl") ```math \begin{aligned} L_{3}^{(2)}(x) - = \frac{\frac{1}{6} e^{x} \frac{\mathrm{d}^{3}}{\mathrm{d}x^{3}} x^{5} e^{ - x}}{x^{2}} - &= 10 + \frac{5}{2} x^{2} - \frac{1}{6} x^{3} - 10 x \\ - &= 10 + \frac{5}{2} x^{2} - \frac{1}{6} x^{3} - 10 x + = \frac{\frac{1}{6} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{5} e^{ - x} e^{x}}{x^{2}} + &= 10 - 10 x + \frac{5}{2} x^{2} - \frac{1}{6} x^{3} \\ + &= 10 - 10 x + \frac{5}{2} x^{2} - \frac{1}{6} x^{3} \end{aligned} ``` @@ -287,9 +287,9 @@ include("../../../test/MorsePotential.jl") ```math \begin{aligned} L_{3}^{(3)}(x) - = \frac{\frac{1}{6} e^{x} \frac{\mathrm{d}^{3}}{\mathrm{d}x^{3}} x^{6} e^{ - x}}{x^{3}} - &= 20 + 3 x^{2} - \frac{1}{6} x^{3} - 15 x \\ - &= 20 + 3 x^{2} - \frac{1}{6} x^{3} - 15 x + = \frac{\frac{1}{6} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{6} e^{ - x} e^{x}}{x^{3}} + &= 20 - 15 x + 3 x^{2} - \frac{1}{6} x^{3} \\ + &= 20 - 15 x + 3 x^{2} - \frac{1}{6} x^{3} \end{aligned} ``` @@ -297,9 +297,9 @@ include("../../../test/MorsePotential.jl") ```math \begin{aligned} L_{4}^{(0)}(x) - = \frac{1}{24} e^{x} \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} x^{4} e^{ - x} - &= 1 + 3 x^{2} + \frac{1}{24} x^{4} - \frac{2}{3} x^{3} - 4 x \\ - &= 1 + 3 x^{2} + \frac{1}{24} x^{4} - \frac{2}{3} x^{3} - 4 x + = \frac{1}{24} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{4} e^{ - x} e^{x} + &= 1 - 4 x + 3 x^{2} - \frac{2}{3} x^{3} + \frac{1}{24} x^{4} \\ + &= 1 - 4 x + 3 x^{2} - \frac{2}{3} x^{3} + \frac{1}{24} x^{4} \end{aligned} ``` @@ -307,9 +307,9 @@ include("../../../test/MorsePotential.jl") ```math \begin{aligned} L_{4}^{(1)}(x) - = \frac{\frac{1}{24} e^{x} \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} x^{5} e^{ - x}}{x} - &= 5 + 5 x^{2} + \frac{1}{24} x^{4} - \frac{5}{6} x^{3} - 10 x \\ - &= 5 + 5 x^{2} + \frac{1}{24} x^{4} - \frac{5}{6} x^{3} - 10 x + = \frac{\frac{1}{24} e^{x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{5} e^{ - x}}{x} + &= 5 - 10 x + 5 x^{2} - \frac{5}{6} x^{3} + \frac{1}{24} x^{4} \\ + &= 5 - 10 x + 5 x^{2} - \frac{5}{6} x^{3} + \frac{1}{24} x^{4} \end{aligned} ``` @@ -317,9 +317,9 @@ include("../../../test/MorsePotential.jl") ```math \begin{aligned} L_{4}^{(2)}(x) - = \frac{\frac{1}{24} e^{x} \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} x^{6} e^{ - x}}{x^{2}} - &= 15 + \frac{15}{2} x^{2} + \frac{1}{24} x^{4} - x^{3} - 20 x \\ - &= 15 + \frac{15}{2} x^{2} + \frac{1}{24} x^{4} - x^{3} - 20 x + = \frac{\frac{1}{24} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{6} e^{ - x} e^{x}}{x^{2}} + &= 15 - 20 x + \frac{15}{2} x^{2} - x^{3} + \frac{1}{24} x^{4} \\ + &= 15 - 20 x + \frac{15}{2} x^{2} - x^{3} + \frac{1}{24} x^{4} \end{aligned} ``` @@ -327,9 +327,9 @@ include("../../../test/MorsePotential.jl") ```math \begin{aligned} L_{4}^{(3)}(x) - = \frac{\frac{1}{24} e^{x} \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} x^{7} e^{ - x}}{x^{3}} - &= 35 + \frac{21}{2} x^{2} + \frac{1}{24} x^{4} - \frac{7}{6} x^{3} - 35 x \\ - &= 35 + \frac{21}{2} x^{2} + \frac{1}{24} x^{4} - \frac{7}{6} x^{3} - 35 x + = \frac{\frac{1}{24} e^{x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{7} e^{ - x}}{x^{3}} + &= 35 - 35 x + \frac{21}{2} x^{2} - \frac{7}{6} x^{3} + \frac{1}{24} x^{4} \\ + &= 35 - 35 x + \frac{21}{2} x^{2} - \frac{7}{6} x^{3} + \frac{1}{24} x^{4} \end{aligned} ``` @@ -337,15 +337,15 @@ include("../../../test/MorsePotential.jl") ```math \begin{aligned} L_{4}^{(4)}(x) - = \frac{\frac{1}{24} e^{x} \frac{\mathrm{d}^{4}}{\mathrm{d}x^{4}} x^{8} e^{ - x}}{x^{4}} - &= 70 + 14 x^{2} + \frac{1}{24} x^{4} - \frac{4}{3} x^{3} - 56 x \\ - &= 70 + 14 x^{2} + \frac{1}{24} x^{4} - \frac{4}{3} x^{3} - 56 x + = \frac{\frac{1}{24} e^{x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} \frac{\mathrm{d}}{\mathrm{d}x} x^{8} e^{ - x}}{x^{4}} + &= 70 - 56 x + 14 x^{2} - \frac{4}{3} x^{3} + \frac{1}{24} x^{4} \\ + &= 70 - 56 x + 14 x^{2} - \frac{4}{3} x^{3} + \frac{1}{24} x^{4} \end{aligned} ``` ``` -Test Summary: | Pass Total Time -Lₙ⁽ᵅ⁾(x) = x⁻ᵅeˣ/n! dⁿ/dxⁿ xⁿ⁺ᵅe⁻ˣ | 15 15 7.8s +Test Summary: | Pass Total Time +Lₙ⁽ᵅ⁾(x) = x⁻ᵅeˣ/n! dⁿ/dxⁿ xⁿ⁺ᵅe⁻ˣ | 15 15 20.0s ``` #### Normalization & Orthogonality of $L_n^{(\alpha)}(x)$ @@ -869,7 +869,7 @@ Test Summary: | Pass Total Time 9 8 0.0000000000003093 0.0000000000000000 0.0000000000000000% ✔ 9 9 1.0000000000154354 1.0000000000000000 0.0000000015435431% ✔ Test Summary: | Pass Total Time -<ψᵢ|ψⱼ> = δᵢⱼ | 100 100 1.7s +<ψᵢ|ψⱼ> = δᵢⱼ | 100 100 1.9s ``` #### Eigen Values @@ -940,20 +940,20 @@ are given by the sum of 2 Taylor series: 0.10000 1 -0.0875766292083366 -0.0875766290728626 0.0000001546919476% ✔ 0.10000 2 -0.0782012653591236 -0.0782012650053099 0.0000004524398330% ✔ 0.10000 3 -0.0693565382661101 -0.0693565377016763 0.0000008138149329% ✔ -0.10000 4 -0.0610424487769010 -0.0610424471619618 0.0000026456004304% ✔ -0.10000 5 -0.0532589961311517 -0.0532589933861664 0.0000051540315631% ✔ -0.10000 6 -0.0460061778289177 -0.0460061763742900 0.0000031618096040% ✔ -0.10000 7 -0.0392839977431083 -0.0392839961263328 0.0000041156085192% ✔ -0.10000 8 -0.0330924678509620 -0.0330924526422947 0.0000459581146490% ✔ -0.10000 9 -0.0274314677918593 -0.0274315459221756 0.0002848192245706% ✔ +0.10000 4 -0.0610424487768959 -0.0610424471619618 0.0000026455920072% ✔ +0.10000 5 -0.0532589961311526 -0.0532589933861664 0.0000051540333741% ✔ +0.10000 6 -0.0460061778289117 -0.0460061763742900 0.0000031617965576% ✔ +0.10000 7 -0.0392839977431085 -0.0392839961263328 0.0000041156089608% ✔ +0.10000 8 -0.0330924678509606 -0.0330924526422947 0.0000459581104973% ✔ +0.10000 9 -0.0274314677918590 -0.0274315459221756 0.0002848192256583% ✔ 0.20000 0 -0.0953874611439631 -0.0953874610810323 0.0000000659738844% ✔ 0.20000 1 -0.0816891004273675 -0.0816891001758958 0.0000003078400078% ✔ 0.20000 2 -0.0690520133797856 -0.0690520127985975 0.0000008416671348% ✔ 0.20000 3 -0.0574761998667120 -0.0574761989491373 0.0000015964429232% ✔ 0.20000 4 -0.0469616603170172 -0.0469616586275153 0.0000035976196186% ✔ 0.20000 5 -0.0375083932021688 -0.0375083918337316 0.0000036483494226% ✔ -0.20000 6 -0.0291164003400069 -0.0291163985677860 0.0000060866763527% ✔ -0.20000 7 -0.0217856840623444 -0.0217856788296786 0.0000240188326428% ✔ +0.20000 6 -0.0291164003400053 -0.0291163985677860 0.0000060866708238% ✔ +0.20000 7 -0.0217856840623437 -0.0217856788296786 0.0000240188297604% ✔ 0.20000 8 -0.0155162375387778 -0.0155162326194094 0.0000317046571552% ✔ 0.20000 9 -0.0103080627546147 -0.0103080599369784 0.0000273343029443% ✔ 0.30000 0 -0.0937952146950324 -0.0937952146053093 0.0000000956584648% ✔ @@ -966,17 +966,17 @@ are given by the sum of 2 Taylor series: 0.30000 7 -0.0118311981022458 -0.0118311967467099 0.0000114573015073% ✔ 0.30000 8 -0.0064896942752905 -0.0064896925053676 0.0000272728303901% ✔ 0.30000 9 -0.0027401008929208 -0.0027400985557827 0.0000852939413987% ✔ -0.10273 0 -0.0974137779681661 -0.0974137779441826 0.0000000246202580% ✔ +0.10273 0 -0.0974137779674584 -0.0974137779441826 0.0000000238937717% ✔ 0.10273 1 -0.0873809242053181 -0.0873809240676091 0.0000001575961943% ✔ 0.10273 2 -0.0778931751450495 -0.0778931747885570 0.0000004576684890% ✔ 0.10273 3 -0.0689505306599348 -0.0689505301070264 0.0000008018914211% ✔ 0.10273 4 -0.0605529890953712 -0.0605529900230172 0.0000015319574295% ✔ -0.10273 5 -0.0527005572549315 -0.0527005545365296 0.0000051582036490% ✔ -0.10273 6 -0.0453932228176848 -0.0453932236475634 0.0000018281991459% ✔ -0.10273 7 -0.0386310171570861 -0.0386309973561186 0.0000512566820760% ✔ -0.10273 8 -0.0324138862460414 -0.0324138756621953 0.0000326522081163% ✔ -0.10273 9 -0.0267420183757886 -0.0267418585657935 0.0005976024244662% ✔ +0.10273 5 -0.0527005572549377 -0.0527005545365296 0.0000051582153937% ✔ +0.10273 6 -0.0453932228176823 -0.0453932236475634 0.0000018282046030% ✔ +0.10273 7 -0.0386310171570861 -0.0386309973561186 0.0000512566822197% ✔ +0.10273 8 -0.0324138862460601 -0.0324138756621953 0.0000326522656802% ✔ +0.10273 9 -0.0267420183757886 -0.0267418585657935 0.0005976024244533% ✔ Test Summary: | Pass Total Time -<ψₙ|H|ψₙ> = ∫ψₙ*Hψₙdx = Eₙ | 40 40 3.7s +<ψₙ|H|ψₙ> = ∫ψₙ*Hψₙdx = Eₙ | 40 40 4.5s ``` diff --git a/docs/src/assets/fig/HarmonicOscillator_5_1.png b/docs/src/assets/fig/HarmonicOscillator_5_1.png index 41c16acc450ed8d7f657aa976d31dfb62820f5a3..918db39c4c5d0d5f46809e19ec21f8f3644229f6 100644 GIT binary patch literal 60130 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 literal 59935 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 z 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 diff --git a/src/Antiq.jl b/src/Antiq.jl index 96093dd..341db43 100644 --- a/src/Antiq.jl +++ b/src/Antiq.jl @@ -35,7 +35,7 @@ module Antiq function antiq(model; parameters...) # check existence of model if model ∉ models - throw(ErrorException("\`:$(model)\` is not in the supported models $(models).")) + throw(ErrorException("\`:$(model)\` is not in the list of supported models $(models).")) end # load source code file if Sys.iswindows() diff --git a/src/HarmonicOscillator.jl b/src/HarmonicOscillator.jl index 620dcd8..bfe3e32 100644 --- a/src/HarmonicOscillator.jl +++ b/src/HarmonicOscillator.jl @@ -19,6 +19,6 @@ module HarmonicOscillator end # Hermite polynomials - H(x; n=0) = factorial(n) * sum(m -> (-1)^m // (factorial(m) * factorial(n-2*m)) * (2*x)^(n-2*m), 0:Int(floor(n/2))) + H(x; n=0) = factorial(n) * sum(i -> (-1)^i // (factorial(i) * factorial(n-2*i)) * (2*x)^(n-2*i), 0:Int(floor(n/2))) end diff --git a/test/HarmonicOscillator.jl b/test/HarmonicOscillator.jl index 2dde7c2..0377be7 100644 --- a/test/HarmonicOscillator.jl +++ b/test/HarmonicOscillator.jl @@ -24,7 +24,7 @@ println(raw""" ``` """) -@testset "Hₙ(x) = (-1)ⁿ exp(x²) dⁿ/dxⁿ exp(-x²) = ..." begin +@testset "Hₙ(x) = (-1)ⁿ exp(x²) dⁿ/dxⁿ exp(-x²) = ..." begin for n in 0:9 # Rodrigues' formula @variables x @@ -36,7 +36,7 @@ println(raw""" e = simplify(d, expand=true) # simplify # closed-form eq1 = latexify(e, env=:raw) - eq2 = latexify(HO.H(x, n=n), env=:raw) + eq2 = latexify(simplify(HO.H(x, n=n), expand=true), env=:raw) # judge acceptance = (eq1 == eq2) println("``n=$n:`` ", acceptance ? "✔" : "✗")