diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 0ec8f44e..71b16ea1 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -35,6 +35,10 @@ repos:
- id: mixed-line-ending
- id: trailing-whitespace
+ exclude: >
+ (?x)^(
+ .*\.svg
+ )$
- repo: https://github.com/ComPWA/repo-maintenance
rev: 0.0.26
diff --git a/docs/report/.gitignore b/docs/report/.gitignore
index ce25684b..a4579e98 100644
--- a/docs/report/.gitignore
+++ b/docs/report/.gitignore
@@ -4,5 +4,6 @@
*.png
*.svg
+!002-*.svg
!006-*.svg
!008-*.svg
diff --git a/docs/report/002-collapsed-expression-tree.svg b/docs/report/002-collapsed-expression-tree.svg
new file mode 100644
index 00000000..9e89e187
--- /dev/null
+++ b/docs/report/002-collapsed-expression-tree.svg
@@ -0,0 +1,67 @@
+
+
+
+
+
diff --git a/docs/report/002-f0(980)-graph.svg b/docs/report/002-f0(980)-graph.svg
new file mode 100644
index 00000000..aad04519
--- /dev/null
+++ b/docs/report/002-f0(980)-graph.svg
@@ -0,0 +1,67 @@
+
+
+
+
+
diff --git a/docs/report/002-f0-graph.svg b/docs/report/002-f0-graph.svg
new file mode 100644
index 00000000..e0ff6dd7
--- /dev/null
+++ b/docs/report/002-f0-graph.svg
@@ -0,0 +1,71 @@
+
+
+
+
+
diff --git a/docs/report/002-histogram-m12.svg b/docs/report/002-histogram-m12.svg
new file mode 100644
index 00000000..2ad84fe1
--- /dev/null
+++ b/docs/report/002-histogram-m12.svg
@@ -0,0 +1,1261 @@
+
+
+
diff --git a/docs/report/002-runtime-vs-operations.svg b/docs/report/002-runtime-vs-operations.svg
new file mode 100644
index 00000000..91e62f75
--- /dev/null
+++ b/docs/report/002-runtime-vs-operations.svg
@@ -0,0 +1,750 @@
+
+
+
diff --git a/docs/report/002-simple-expression-tree.svg b/docs/report/002-simple-expression-tree.svg
new file mode 100644
index 00000000..a56cae89
--- /dev/null
+++ b/docs/report/002-simple-expression-tree.svg
@@ -0,0 +1,307 @@
+
+
+
+
+
diff --git a/docs/report/002.ipynb b/docs/report/002.ipynb
index 1af70f5a..29acfdce 100644
--- a/docs/report/002.ipynb
+++ b/docs/report/002.ipynb
@@ -62,6 +62,7 @@
},
"outputs": [],
"source": [
+ "%config InlineBackend.figure_formats = ['svg']\n",
"import inspect\n",
"import logging\n",
"import timeit\n",
@@ -80,7 +81,7 @@
"from tensorwaves.data.transform import HelicityTransformer\n",
"from tensorwaves.model import LambdifiedFunction, SympyModel\n",
"\n",
- "logger = logging.getLogger()"
+ "LOGGER = logging.getLogger()"
]
},
{
@@ -107,94 +108,19 @@
},
"outputs": [],
"source": [
- "logger.setLevel(logging.ERROR)"
+ "LOGGER.setLevel(logging.ERROR)"
]
},
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- "\n",
- "\n"
- ],
- "text/plain": [
- ""
- ]
- },
- "execution_count": null,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "metadata": {
+ "keep_output": false,
+ "tags": [
+ "remove-output"
+ ]
+ },
+ "outputs": [],
"source": [
"result = q.generate_transitions(\n",
" initial_state=(\"J/psi(1S)\", [-1, +1]),\n",
@@ -207,6 +133,29 @@
"graphviz.Source(dot)"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "jupyter": {
+ "source_hidden": true
+ },
+ "tags": [
+ "remove-cell"
+ ]
+ },
+ "outputs": [],
+ "source": [
+ "graphviz.Source(dot).render(\"002-f0(980)-graph\", format=\"svg\");"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "![](002-f0(980)-graph.svg)"
+ ]
+ },
{
"cell_type": "code",
"execution_count": null,
@@ -278,14 +227,14 @@
{
"data": {
"text/plain": [
- "['A[J/\\\\psi(1S)_{-1} \\\\to f_{0}(980)_{0} \\\\gamma_{+1,L=2,S=1}; f_{0}(980)_{0} \\\\to \\\\pi^{0}_{0} \\\\pi^{0}_{0,L=0,S=0}]',\n",
- " 'A[J/\\\\psi(1S)_{-1} \\\\to f_{0}(980)_{0} \\\\gamma_{+1,L=0,S=1}; f_{0}(980)_{0} \\\\to \\\\pi^{0}_{0} \\\\pi^{0}_{0,L=0,S=0}]',\n",
+ "['A[J/\\\\psi(1S)_{+1} \\\\to f_{0}(980)_{0} \\\\gamma_{-1,L=2,S=1}; f_{0}(980)_{0} \\\\to \\\\pi^{0}_{0} \\\\pi^{0}_{0,L=0,S=0}]',\n",
+ " 'A[J/\\\\psi(1S)_{+1} \\\\to f_{0}(980)_{0} \\\\gamma_{-1,L=0,S=1}; f_{0}(980)_{0} \\\\to \\\\pi^{0}_{0} \\\\pi^{0}_{0,L=0,S=0}]',\n",
" 'A[J/\\\\psi(1S)_{-1} \\\\to f_{0}(980)_{0} \\\\gamma_{-1,L=2,S=1}; f_{0}(980)_{0} \\\\to \\\\pi^{0}_{0} \\\\pi^{0}_{0,L=0,S=0}]',\n",
" 'A[J/\\\\psi(1S)_{-1} \\\\to f_{0}(980)_{0} \\\\gamma_{-1,L=0,S=1}; f_{0}(980)_{0} \\\\to \\\\pi^{0}_{0} \\\\pi^{0}_{0,L=0,S=0}]',\n",
+ " 'A[J/\\\\psi(1S)_{-1} \\\\to f_{0}(980)_{0} \\\\gamma_{+1,L=2,S=1}; f_{0}(980)_{0} \\\\to \\\\pi^{0}_{0} \\\\pi^{0}_{0,L=0,S=0}]',\n",
+ " 'A[J/\\\\psi(1S)_{-1} \\\\to f_{0}(980)_{0} \\\\gamma_{+1,L=0,S=1}; f_{0}(980)_{0} \\\\to \\\\pi^{0}_{0} \\\\pi^{0}_{0,L=0,S=0}]',\n",
" 'A[J/\\\\psi(1S)_{+1} \\\\to f_{0}(980)_{0} \\\\gamma_{+1,L=2,S=1}; f_{0}(980)_{0} \\\\to \\\\pi^{0}_{0} \\\\pi^{0}_{0,L=0,S=0}]',\n",
- " 'A[J/\\\\psi(1S)_{+1} \\\\to f_{0}(980)_{0} \\\\gamma_{+1,L=0,S=1}; f_{0}(980)_{0} \\\\to \\\\pi^{0}_{0} \\\\pi^{0}_{0,L=0,S=0}]',\n",
- " 'A[J/\\\\psi(1S)_{+1} \\\\to f_{0}(980)_{0} \\\\gamma_{-1,L=2,S=1}; f_{0}(980)_{0} \\\\to \\\\pi^{0}_{0} \\\\pi^{0}_{0,L=0,S=0}]',\n",
- " 'A[J/\\\\psi(1S)_{+1} \\\\to f_{0}(980)_{0} \\\\gamma_{-1,L=0,S=1}; f_{0}(980)_{0} \\\\to \\\\pi^{0}_{0} \\\\pi^{0}_{0,L=0,S=0}]']"
+ " 'A[J/\\\\psi(1S)_{+1} \\\\to f_{0}(980)_{0} \\\\gamma_{+1,L=0,S=1}; f_{0}(980)_{0} \\\\to \\\\pi^{0}_{0} \\\\pi^{0}_{0,L=0,S=0}]']"
]
},
"execution_count": null,
@@ -387,93 +336,41 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- "\n",
- "\n"
- ],
- "text/plain": [
- ""
- ]
- },
- "execution_count": null,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "metadata": {
+ "keep_output": false,
+ "tags": [
+ "remove-output"
+ ]
+ },
+ "outputs": [],
"source": [
"dot = sp.dotprint(intensity_expr)\n",
"graphviz.Source(dot)"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "jupyter": {
+ "source_hidden": true
+ },
+ "tags": [
+ "remove-cell"
+ ]
+ },
+ "outputs": [],
+ "source": [
+ "graphviz.Source(dot).render(\"002-collapsed-expression-tree\", format=\"svg\");"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "![](002-collapsed-expression-tree.svg)"
+ ]
+ },
{
"cell_type": "code",
"execution_count": null,
@@ -501,333 +398,41 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- "\n",
- "\n"
- ],
- "text/plain": [
- ""
- ]
- },
- "execution_count": null,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "metadata": {
+ "keep_output": false,
+ "tags": [
+ "remove-output"
+ ]
+ },
+ "outputs": [],
"source": [
"dot = sp.dotprint(amplitude_expr)\n",
"graphviz.Source(dot)"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "jupyter": {
+ "source_hidden": true
+ },
+ "tags": [
+ "remove-cell"
+ ]
+ },
+ "outputs": [],
+ "source": [
+ "graphviz.Source(dot).render(\"002-simple-expression-tree\", format=\"svg\");"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "![](002-simple-expression-tree.svg)"
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {},
@@ -876,8 +481,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "CPU times: user 1.36 s, sys: 6.02 ms, total: 1.37 s\n",
- "Wall time: 1.37 s\n"
+ "CPU times: user 1.46 s, sys: 703 µs, total: 1.46 s\n",
+ "Wall time: 1.46 s\n"
]
}
],
@@ -917,7 +522,7 @@
},
"outputs": [],
"source": [
- "logger.setLevel(logging.INFO)"
+ "LOGGER.setLevel(logging.INFO)"
]
},
{
@@ -939,8 +544,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "CPU times: user 1.47 s, sys: 24.4 ms, total: 1.49 s\n",
- "Wall time: 1.49 s\n"
+ "CPU times: user 1.56 s, sys: 4.94 ms, total: 1.56 s\n",
+ "Wall time: 1.56 s\n"
]
}
],
@@ -986,8 +591,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "CPU times: user 427 ms, sys: 467 µs, total: 427 ms\n",
- "Wall time: 423 ms\n"
+ "CPU times: user 547 ms, sys: 3.85 ms, total: 550 ms\n",
+ "Wall time: 547 ms\n"
]
}
],
@@ -1134,7 +739,7 @@
},
"outputs": [],
"source": [
- "logger.setLevel(logging.ERROR)\n",
+ "LOGGER.setLevel(logging.ERROR)\n",
"warnings.filterwarnings(\"ignore\")"
]
},
@@ -1160,30 +765,17 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "jupyter": {
- "source_hidden": true
- },
+ "keep_output": false,
"tags": [
- "hide-input"
+ "hide-input",
+ "remove-output"
]
},
- "outputs": [
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- "