diff --git a/docs/034/index.ipynb b/docs/034/index.ipynb new file mode 100644 index 0000000..7d8d215 --- /dev/null +++ b/docs/034/index.ipynb @@ -0,0 +1,469 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "remove-cell" + ] + }, + "source": [ + "```{autolink-concat}\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "physics" + ] + }, + "source": [ + "::::{margin}\n", + ":::{card} Wigner $D$ and Pauli matrices\n", + "TR-034\n", + "^^^\n", + "This report shows the symbolic representation of the Wigner-$d$ and -$D$ matrix elements and shows how $D^\\tfrac{1}{2}$ is related to the Pauli matrices.\n", + ":::\n", + "::::" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Wigner $D$ and Pauli matrices" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "source_hidden": true + }, + "mystnb": { + "code_prompt_show": "Import Python libraries" + }, + "tags": [ + "hide-cell", + "remove-output" + ] + }, + "outputs": [], + "source": [ + "import sympy as sp\n", + "from ampform.io import aslatex\n", + "from IPython.display import Math\n", + "from sympy import pi\n", + "from sympy.physics.matrices import msigma\n", + "from sympy.physics.quantum.spin import Rotation as Wigner\n", + "\n", + "j, m, mp = sp.symbols(R\"j m m^{\\prime}\", nonnegative=True, rational=True)\n", + "alpha, beta, gamma = sp.symbols(\"alpha beta gamma\", real=True)\n", + "half = sp.Rational(0.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Big Wigner $D$ matrices" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "source_hidden": true + }, + "mystnb": { + "code_prompt_show": "Helper functions" + }, + "tags": [ + "hide-input" + ] + }, + "outputs": [], + "source": [ + "def render_wigner_big_d(j: sp.Rational) -> Math:\n", + " symbol = Wigner.D(j, m, mp, alpha, beta, gamma)\n", + " expr = get_wigner_big_d(j)\n", + " return Math(aslatex({symbol: sp.latex(expr)}))\n", + "\n", + "\n", + "def get_wigner_big_d(j: sp.Rational) -> sp.Matrix:\n", + " dim = int(2 * j + 1)\n", + " return sp.Matrix([\n", + " [\n", + " Wigner.D(j, x - j, y - j, alpha, beta, gamma).doit().simplify()\n", + " for x in range(dim)\n", + " ]\n", + " for y in range(dim)\n", + " ])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "keep_output" + ] + }, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\begin{array}{rcl}\n", + " D^{\\frac{1}{2}}_{m,m^{\\prime}}\\left(\\alpha,\\beta,\\gamma\\right) &=& \\left[\\begin{matrix}e^{\\frac{i \\left(\\alpha + \\gamma\\right)}{2}} \\cos{\\left(\\frac{\\beta}{2} \\right)} & - e^{- \\frac{i \\left(\\alpha - \\gamma\\right)}{2}} \\sin{\\left(\\frac{\\beta}{2} \\right)}\\\\e^{\\frac{i \\left(\\alpha - \\gamma\\right)}{2}} \\sin{\\left(\\frac{\\beta}{2} \\right)} & e^{- \\frac{i \\left(\\alpha + \\gamma\\right)}{2}} \\cos{\\left(\\frac{\\beta}{2} \\right)}\\end{matrix}\\right] \\\\\n", + "\\end{array}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "render_wigner_big_d(j=half)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "keep_output" + ] + }, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\begin{array}{rcl}\n", + " D^{1}_{m,m^{\\prime}}\\left(\\alpha,\\beta,\\gamma\\right) &=& \\left[\\begin{matrix}\\frac{\\left(\\cos{\\left(\\beta \\right)} + 1\\right) e^{i \\left(\\alpha + \\gamma\\right)}}{2} & - \\frac{\\sqrt{2} e^{i \\gamma} \\sin{\\left(\\beta \\right)}}{2} & \\frac{\\left(1 - \\cos{\\left(\\beta \\right)}\\right) e^{i \\left(- \\alpha + \\gamma\\right)}}{2}\\\\\\frac{\\sqrt{2} e^{i \\alpha} \\sin{\\left(\\beta \\right)}}{2} & \\cos{\\left(\\beta \\right)} & - \\frac{\\sqrt{2} e^{- i \\alpha} \\sin{\\left(\\beta \\right)}}{2}\\\\\\frac{\\left(1 - \\cos{\\left(\\beta \\right)}\\right) e^{i \\left(\\alpha - \\gamma\\right)}}{2} & \\frac{\\sqrt{2} e^{- i \\gamma} \\sin{\\left(\\beta \\right)}}{2} & \\frac{\\left(\\cos{\\left(\\beta \\right)} + 1\\right) e^{- i \\left(\\alpha + \\gamma\\right)}}{2}\\end{matrix}\\right] \\\\\n", + "\\end{array}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "render_wigner_big_d(j=1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Small Wigner $d$ matrices" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "source_hidden": true + }, + "mystnb": { + "code_prompt_show": "Helper functions" + }, + "tags": [ + "hide-input" + ] + }, + "outputs": [], + "source": [ + "def render_wigner_small_d(j: sp.Rational) -> Math:\n", + " symbol = Wigner.d(j, m, mp, beta)\n", + " expr = get_wigner_small_d(j)\n", + " return Math(aslatex({symbol: sp.latex(expr)}))\n", + "\n", + "\n", + "def get_wigner_small_d(j: sp.Rational) -> sp.Matrix:\n", + " dim = int(2 * j + 1)\n", + " return sp.Matrix([\n", + " [Wigner.d(j, x - j, y - j, beta).doit().simplify() for x in range(dim)]\n", + " for y in range(dim)\n", + " ])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "keep_output" + ] + }, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\begin{array}{rcl}\n", + " d^{\\frac{1}{2}}_{m,m^{\\prime}}\\left(\\beta\\right) &=& \\left[\\begin{matrix}\\cos{\\left(\\frac{\\beta}{2} \\right)} & - \\sin{\\left(\\frac{\\beta}{2} \\right)}\\\\\\sin{\\left(\\frac{\\beta}{2} \\right)} & \\cos{\\left(\\frac{\\beta}{2} \\right)}\\end{matrix}\\right] \\\\\n", + "\\end{array}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "render_wigner_small_d(j=half)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "keep_output" + ] + }, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\begin{array}{rcl}\n", + " d^{1}_{m,m^{\\prime}}\\left(\\beta\\right) &=& \\left[\\begin{matrix}\\frac{\\cos{\\left(\\beta \\right)}}{2} + \\frac{1}{2} & - \\frac{\\sqrt{2} \\sin{\\left(\\beta \\right)}}{2} & \\frac{1}{2} - \\frac{\\cos{\\left(\\beta \\right)}}{2}\\\\\\frac{\\sqrt{2} \\sin{\\left(\\beta \\right)}}{2} & \\cos{\\left(\\beta \\right)} & - \\frac{\\sqrt{2} \\sin{\\left(\\beta \\right)}}{2}\\\\\\frac{1}{2} - \\frac{\\cos{\\left(\\beta \\right)}}{2} & \\frac{\\sqrt{2} \\sin{\\left(\\beta \\right)}}{2} & \\frac{\\cos{\\left(\\beta \\right)}}{2} + \\frac{1}{2}\\end{matrix}\\right] \\\\\n", + "\\end{array}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "render_wigner_small_d(j=1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "full-width", + "keep_output" + ] + }, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\begin{array}{rcl}\n", + " d^{\\frac{3}{2}}_{m,m^{\\prime}}\\left(\\beta\\right) &=& \\left[\\begin{matrix}\\frac{3 \\cos{\\left(\\frac{\\beta}{2} \\right)}}{4} + \\frac{\\cos{\\left(\\frac{3 \\beta}{2} \\right)}}{4} & - \\frac{\\sqrt{3} \\left(\\sin{\\left(\\frac{\\beta}{2} \\right)} + \\sin{\\left(\\frac{3 \\beta}{2} \\right)}\\right)}{4} & \\frac{\\sqrt{3} \\left(\\cos{\\left(\\frac{\\beta}{2} \\right)} - \\cos{\\left(\\frac{3 \\beta}{2} \\right)}\\right)}{4} & - \\frac{3 \\sin{\\left(\\frac{\\beta}{2} \\right)}}{4} + \\frac{\\sin{\\left(\\frac{3 \\beta}{2} \\right)}}{4}\\\\\\frac{\\sqrt{3} \\left(\\sin{\\left(\\frac{\\beta}{2} \\right)} + \\sin{\\left(\\frac{3 \\beta}{2} \\right)}\\right)}{4} & \\frac{\\cos{\\left(\\frac{\\beta}{2} \\right)}}{4} + \\frac{3 \\cos{\\left(\\frac{3 \\beta}{2} \\right)}}{4} & \\frac{\\sin{\\left(\\frac{\\beta}{2} \\right)}}{4} - \\frac{3 \\sin{\\left(\\frac{3 \\beta}{2} \\right)}}{4} & \\frac{\\sqrt{3} \\left(\\cos{\\left(\\frac{\\beta}{2} \\right)} - \\cos{\\left(\\frac{3 \\beta}{2} \\right)}\\right)}{4}\\\\\\frac{\\sqrt{3} \\left(\\cos{\\left(\\frac{\\beta}{2} \\right)} - \\cos{\\left(\\frac{3 \\beta}{2} \\right)}\\right)}{4} & - \\frac{\\sin{\\left(\\frac{\\beta}{2} \\right)}}{4} + \\frac{3 \\sin{\\left(\\frac{3 \\beta}{2} \\right)}}{4} & \\frac{\\cos{\\left(\\frac{\\beta}{2} \\right)}}{4} + \\frac{3 \\cos{\\left(\\frac{3 \\beta}{2} \\right)}}{4} & - \\frac{\\sqrt{3} \\left(\\sin{\\left(\\frac{\\beta}{2} \\right)} + \\sin{\\left(\\frac{3 \\beta}{2} \\right)}\\right)}{4}\\\\\\frac{3 \\sin{\\left(\\frac{\\beta}{2} \\right)}}{4} - \\frac{\\sin{\\left(\\frac{3 \\beta}{2} \\right)}}{4} & \\frac{\\sqrt{3} \\left(\\cos{\\left(\\frac{\\beta}{2} \\right)} - \\cos{\\left(\\frac{3 \\beta}{2} \\right)}\\right)}{4} & \\frac{\\sqrt{3} \\left(\\sin{\\left(\\frac{\\beta}{2} \\right)} + \\sin{\\left(\\frac{3 \\beta}{2} \\right)}\\right)}{4} & \\frac{3 \\cos{\\left(\\frac{\\beta}{2} \\right)}}{4} + \\frac{\\cos{\\left(\\frac{3 \\beta}{2} \\right)}}{4}\\end{matrix}\\right] \\\\\n", + "\\end{array}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "render_wigner_small_d(j=3 * half)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Relation to Pauli matrices" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note how the Pauli matrices are related to the rotation around each axis in 3D space, which lives in $SO(3)$, and each Wigner-$D$ matrix, which lives in $SU(2)$:\n", + "\n", + "$$\n", + "\\begin{array}{rcl}\n", + "\\sigma_x &=& i \\, D^\\tfrac{1}{2}(-\\pi,0,0) \\\\\n", + "\\sigma_y &=& i \\, D^\\tfrac{1}{2}(0,+\\pi,0) \\\\\n", + "\\sigma_z &=& i \\, D^\\tfrac{1}{2}(0,0,-\\pi) \\,.\n", + "\\end{array}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "hide-input", + "keep_output" + ] + }, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\begin{array}{rcl}\n", + " \\sigma_x &=& \\left[\\begin{matrix}0 & 1\\\\1 & 0\\end{matrix}\\right] \\\\\n", + " \\sigma_y &=& \\left[\\begin{matrix}0 & - i\\\\i & 0\\end{matrix}\\right] \\\\\n", + " \\sigma_z &=& \\left[\\begin{matrix}1 & 0\\\\0 & -1\\end{matrix}\\right] \\\\\n", + "\\end{array}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Math(aslatex({Rf\"\\sigma_{x}\": sp.latex(msigma(i)) for i, x in enumerate(\"xyz\", 1)}))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "keep_output" + ] + }, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\left[\\begin{matrix}1 & 0\\\\0 & -1\\end{matrix}\\right]$" + ], + "text/plain": [ + "Matrix([\n", + "[1, 0],\n", + "[0, -1]])" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sp.I * get_wigner_big_d(j=half).subs({\n", + " alpha: -pi,\n", + " beta: 0,\n", + " gamma: 0,\n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "keep_output" + ] + }, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\left[\\begin{matrix}0 & - i\\\\i & 0\\end{matrix}\\right]$" + ], + "text/plain": [ + "Matrix([\n", + "[0, -I],\n", + "[I, 0]])" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sp.I * get_wigner_big_d(j=half).subs({\n", + " alpha: 0,\n", + " beta: pi,\n", + " gamma: 0,\n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "keep_output" + ] + }, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\left[\\begin{matrix}1 & 0\\\\0 & -1\\end{matrix}\\right]$" + ], + "text/plain": [ + "Matrix([\n", + "[1, 0],\n", + "[0, -1]])" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sp.I * get_wigner_big_d(j=half).subs({\n", + " alpha: 0,\n", + " beta: 0,\n", + " gamma: -pi,\n", + "})" + ] + } + ], + "metadata": { + "colab": { + "toc_visible": true + }, + "kernelspec": { + "display_name": "Pyproject Local", + "language": "python", + "name": "pyproject_local_kernel" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.8" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/034/pyproject.toml b/docs/034/pyproject.toml new file mode 100644 index 0000000..25c8c00 --- /dev/null +++ b/docs/034/pyproject.toml @@ -0,0 +1,25 @@ +[project] +dependencies = [ + "ampform", + "sympy", +] +name = "technical-report" +requires-python = "~=3.12.0" +version = "0.1.0" + +[tool.ruff] +preview = true + +[tool.ruff.lint] +ignore = [ + "CPY001", + "D103", + "D203", + "D212", +] +select = ["ALL"] + +[tool.ruff.lint.flake8-comprehensions] +allow-dict-calls-with-keyword-arguments = true + +[tool.uv.workspace] diff --git a/docs/034/uv.lock b/docs/034/uv.lock new file mode 100644 index 0000000..4bf68fb --- /dev/null +++ b/docs/034/uv.lock @@ -0,0 +1,227 @@ +version = 1 +requires-python = ">=3.12.0, <3.13" + +[[package]] +name = "ampform" +version = "0.15.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "qrules" }, + { name = "sympy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/23/1c/3871ab0d982be05eb73b71a55628d3385ea09641e91399ffb6d7520f05b5/ampform-0.15.6.tar.gz", hash = "sha256:fffdfb997ead36dc146e72cce937227b2709bef75db9cdacdc61b9139e8b2417", size = 366368 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/48/3f09a743f4e5d3694e52ea3db17a71c85a4995abc358e4c44d6f4ecef529/ampform-0.15.6-py3-none-any.whl", hash = "sha256:80e74f17880cf0a8f8941912c314adeff8522fcec683b37ed194ed7679255fda", size = 86608 }, +] + +[[package]] +name = "attrs" +version = "25.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/49/7c/fdf464bcc51d23881d110abd74b512a42b3d5d376a55a831b44c603ae17f/attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e", size = 810562 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fc/30/d4986a882011f9df997a55e6becd864812ccfcd821d64aac8570ee39f719/attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a", size = 63152 }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, +] + +[[package]] +name = "frozendict" +version = "2.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/59/19eb300ba28e7547538bdf603f1c6c34793240a90e1a7b61b65d8517e35e/frozendict-2.4.6.tar.gz", hash = "sha256:df7cd16470fbd26fc4969a208efadc46319334eb97def1ddf48919b351192b8e", size = 316416 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/13/d9839089b900fa7b479cce495d62110cddc4bd5630a04d8469916c0e79c5/frozendict-2.4.6-py311-none-any.whl", hash = "sha256:d065db6a44db2e2375c23eac816f1a022feb2fa98cbb50df44a9e83700accbea", size = 16148 }, + { url = "https://files.pythonhosted.org/packages/ba/d0/d482c39cee2ab2978a892558cf130681d4574ea208e162da8958b31e9250/frozendict-2.4.6-py312-none-any.whl", hash = "sha256:49344abe90fb75f0f9fdefe6d4ef6d4894e640fadab71f11009d52ad97f370b9", size = 16146 }, +] + +[[package]] +name = "hepunits" +version = "2.3.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3a/d1/d6bae778eddaa133408c6d6cc85425ed2f3c4730809341b234f7d71cebb2/hepunits-2.3.5.tar.gz", hash = "sha256:9434cd2d6a722c949e9e9e22bd0b59587f69025bd37356e5c70635f1b37036d8", size = 13537 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/aa/44/afb4051adec67d014ad8bfe45a068ec21f95b1dd357411772c9a5baa0b97/hepunits-2.3.5-py3-none-any.whl", hash = "sha256:7f4511be95a1f0b87f297e035c0d3515cacdfd92a43306d466cd46cf19ba1b8d", size = 14403 }, +] + +[[package]] +name = "jsonschema" +version = "4.23.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/2e/03362ee4034a4c917f697890ccd4aec0800ccf9ded7f511971c75451deec/jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4", size = 325778 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/4a/4f9dbeb84e8850557c02365a0eee0649abe5eb1d84af92a25731c6c0f922/jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566", size = 88462 }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2024.10.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/10/db/58f950c996c793472e336ff3655b13fbcf1e3b359dcf52dcf3ed3b52c352/jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272", size = 15561 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/0f/8910b19ac0670a0f80ce1008e5e751c4a57e14d2c4c13a482aa6079fa9d6/jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf", size = 18459 }, +] + +[[package]] +name = "mpmath" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198 }, +] + +[[package]] +name = "particle" +version = "0.25.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "hepunits" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/94/61/64e0ea33fe808b055c3d71e4a14c4eee17f4a793319f60db3c151c167ebd/particle-0.25.2.tar.gz", hash = "sha256:1fa4bbee38bfeaef08a40b2779b4c30c5ce4fa2865a10c02acfe90679b4e61e9", size = 316882 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/67/6e/7477258cd4dc56f81fa47d3a7d81c3bd2c3f44e632f72714fc46e90faa79/particle-0.25.2-py3-none-any.whl", hash = "sha256:7181ce6112d0a6d6a3cdda4a789d86e67fdfdc4f08246b8b9037fa2048dbc64e", size = 290492 }, +] + +[[package]] +name = "python-constraint" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/37/8b/5f1bc2734ca611943e1d6733ee244238679f6410a10cd45ede55a61a8402/python-constraint-1.4.0.tar.bz2", hash = "sha256:501d6f17afe0032dfc6ea6c0f8acc12e44f992733f00e8538961031ef27ccb8e", size = 18416 } + +[[package]] +name = "pyyaml" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 }, + { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 }, + { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 }, + { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 }, + { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 }, + { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 }, + { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 }, + { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 }, + { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 }, +] + +[[package]] +name = "qrules" +version = "0.10.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "frozendict" }, + { name = "jsonschema" }, + { name = "particle" }, + { name = "python-constraint" }, + { name = "pyyaml" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cf/8e/101313599b3f7db1198491e56f5c746617a6d55c0ad722d06873a1124c75/qrules-0.10.5.tar.gz", hash = "sha256:63dd44cc64962779c0fa3c2506ad7679e450cef847a6db346f9648fa330b6fd7", size = 272633 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/99/a63e865c51106b9371c43b6250b359ceb2d4e5807106cddfac1a9e1c3b3a/qrules-0.10.5-py3-none-any.whl", hash = "sha256:7958a8343cb1e79ec931d416ee3b334a1f40f72109dbb763cf4c8c54892ced52", size = 80335 }, +] + +[[package]] +name = "referencing" +version = "0.36.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775 }, +] + +[[package]] +name = "rpds-py" +version = "0.22.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/80/cce854d0921ff2f0a9fa831ba3ad3c65cee3a46711addf39a2af52df2cfd/rpds_py-0.22.3.tar.gz", hash = "sha256:e32fee8ab45d3c2db6da19a5323bc3362237c8b653c70194414b892fd06a080d", size = 26771 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/47/3383ee3bd787a2a5e65a9b9edc37ccf8505c0a00170e3a5e6ea5fbcd97f7/rpds_py-0.22.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:27e98004595899949bd7a7b34e91fa7c44d7a97c40fcaf1d874168bb652ec67e", size = 352334 }, + { url = "https://files.pythonhosted.org/packages/40/14/aa6400fa8158b90a5a250a77f2077c0d0cd8a76fce31d9f2b289f04c6dec/rpds_py-0.22.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1978d0021e943aae58b9b0b196fb4895a25cc53d3956b8e35e0b7682eefb6d56", size = 342111 }, + { url = "https://files.pythonhosted.org/packages/7d/06/395a13bfaa8a28b302fb433fb285a67ce0ea2004959a027aea8f9c52bad4/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:655ca44a831ecb238d124e0402d98f6212ac527a0ba6c55ca26f616604e60a45", size = 384286 }, + { url = "https://files.pythonhosted.org/packages/43/52/d8eeaffab047e6b7b7ef7f00d5ead074a07973968ffa2d5820fa131d7852/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:feea821ee2a9273771bae61194004ee2fc33f8ec7db08117ef9147d4bbcbca8e", size = 391739 }, + { url = "https://files.pythonhosted.org/packages/83/31/52dc4bde85c60b63719610ed6f6d61877effdb5113a72007679b786377b8/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22bebe05a9ffc70ebfa127efbc429bc26ec9e9b4ee4d15a740033efda515cf3d", size = 427306 }, + { url = "https://files.pythonhosted.org/packages/70/d5/1bab8e389c2261dba1764e9e793ed6830a63f830fdbec581a242c7c46bda/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3af6e48651c4e0d2d166dc1b033b7042ea3f871504b6805ba5f4fe31581d8d38", size = 442717 }, + { url = "https://files.pythonhosted.org/packages/82/a1/a45f3e30835b553379b3a56ea6c4eb622cf11e72008229af840e4596a8ea/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67ba3c290821343c192f7eae1d8fd5999ca2dc99994114643e2f2d3e6138b15", size = 385721 }, + { url = "https://files.pythonhosted.org/packages/a6/27/780c942de3120bdd4d0e69583f9c96e179dfff082f6ecbb46b8d6488841f/rpds_py-0.22.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:02fbb9c288ae08bcb34fb41d516d5eeb0455ac35b5512d03181d755d80810059", size = 415824 }, + { url = "https://files.pythonhosted.org/packages/94/0b/aa0542ca88ad20ea719b06520f925bae348ea5c1fdf201b7e7202d20871d/rpds_py-0.22.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f56a6b404f74ab372da986d240e2e002769a7d7102cc73eb238a4f72eec5284e", size = 561227 }, + { url = "https://files.pythonhosted.org/packages/0d/92/3ed77d215f82c8f844d7f98929d56cc321bb0bcfaf8f166559b8ec56e5f1/rpds_py-0.22.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0a0461200769ab3b9ab7e513f6013b7a97fdeee41c29b9db343f3c5a8e2b9e61", size = 587424 }, + { url = "https://files.pythonhosted.org/packages/09/42/cacaeb047a22cab6241f107644f230e2935d4efecf6488859a7dd82fc47d/rpds_py-0.22.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8633e471c6207a039eff6aa116e35f69f3156b3989ea3e2d755f7bc41754a4a7", size = 555953 }, + { url = "https://files.pythonhosted.org/packages/e6/52/c921dc6d5f5d45b212a456c1f5b17df1a471127e8037eb0972379e39dff4/rpds_py-0.22.3-cp312-cp312-win32.whl", hash = "sha256:593eba61ba0c3baae5bc9be2f5232430453fb4432048de28399ca7376de9c627", size = 221339 }, + { url = "https://files.pythonhosted.org/packages/f2/c7/f82b5be1e8456600395366f86104d1bd8d0faed3802ad511ef6d60c30d98/rpds_py-0.22.3-cp312-cp312-win_amd64.whl", hash = "sha256:d115bffdd417c6d806ea9069237a4ae02f513b778e3789a359bc5856e0404cc4", size = 235786 }, +] + +[[package]] +name = "sympy" +version = "1.13.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mpmath" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/11/8a/5a7fd6284fa8caac23a26c9ddf9c30485a48169344b4bd3b0f02fef1890f/sympy-1.13.3.tar.gz", hash = "sha256:b27fd2c6530e0ab39e275fc9b683895367e51d5da91baa8d3d64db2565fec4d9", size = 7533196 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/ff/c87e0622b1dadea79d2fb0b25ade9ed98954c9033722eb707053d310d4f3/sympy-1.13.3-py3-none-any.whl", hash = "sha256:54612cf55a62755ee71824ce692986f23c88ffa77207b30c1368eda4a7060f73", size = 6189483 }, +] + +[[package]] +name = "technical-report" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "ampform" }, + { name = "sympy" }, +] + +[package.metadata] +requires-dist = [ + { name = "ampform" }, + { name = "sympy" }, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 }, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 }, +] diff --git a/docs/conf.py b/docs/conf.py index b010dbd..595c45d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -52,6 +52,7 @@ def get_nb_exclusion_patterns() -> list[str]: "031/*", "032/*", "033/*", + "034/*", } exclusions.update(frozen_notebooks) return sorted(exclusions)