149 lines
4.2 KiB
Plaintext
149 lines
4.2 KiB
Plaintext
|
{
|
||
|
"cells": [
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 1,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"using Combinatorics"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 2,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"text/plain": [
|
||
|
"num_diagrams_small_form (generic function with 3 methods)"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"function num_diagrams(m::Int, e::Int, u::Int = 0, t::Int = 0)\n",
|
||
|
" n = e + u + t\n",
|
||
|
" return Int(factorial(3n-3) / factorial(2n-1)) * binomial(m+3n-3, 3n-3) * factorial(m) * factorial(e) * factorial(u) * factorial(t)\n",
|
||
|
"end\n",
|
||
|
"\n",
|
||
|
"function num_diagrams_small_form(m::Int, e::Int, u::Int = 0, t::Int = 0)\n",
|
||
|
" n = e + u + t\n",
|
||
|
" return Int(factorial(m+3n-3) / factorial(2n-1)) * factorial(e) * factorial(u) * factorial(t)\n",
|
||
|
"end"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 3,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"8\n",
|
||
|
"8\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"# Trident:\n",
|
||
|
"println(num_diagrams(1, 2))\n",
|
||
|
"println(num_diagrams_small_form(1, 2))"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 4,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"[2, 6, 24, 120, 720, 5040, 40320]\n",
|
||
|
"[2, 6, 24, 120, 720, 5040, 40320]\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"# n-Photon Compton:\n",
|
||
|
"println([num_diagrams(n, 1) for n in 2:8])\n",
|
||
|
"println([num_diagrams_small_form(n, 1) for n in 2:8])"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 5,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"[2, 36, 1728, 158400, 23587200, 5181926400]\n",
|
||
|
"[2, 36, 1728, 158400, 23587200, 5181926400]\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"# fermion scattering\n",
|
||
|
"println([num_diagrams(0, n) for n in 2:7])\n",
|
||
|
"println([num_diagrams_small_form(0, n) for n in 2:7])"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 7,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"n=1, e=1, u=0, t=0 || m=0: 1 | m=1: 1 | m=2: 2 | m=3: 6 | m=4: 24 | m=5: 120\n",
|
||
|
"n=2, e=1, u=1, t=0 || m=0: 1 | m=1: 4 | m=2: 20 | m=3: 120 | m=4: 840 | m=5: 6720\n",
|
||
|
"n=2, e=2, u=0, t=0 || m=0: 2 | m=1: 8 | m=2: 40 | m=3: 240 | m=4: 1680 | m=5: 13440\n",
|
||
|
"n=3, e=1, u=1, t=1 || m=0: 6 | m=1: 42 | m=2: 336 | m=3: 3024 | m=4: 30240 | m=5: 332640\n",
|
||
|
"n=3, e=2, u=1, t=0 || m=0: 12 | m=1: 84 | m=2: 672 | m=3: 6048 | m=4: 60480 | m=5: 665280\n",
|
||
|
"n=3, e=3, u=0, t=0 || m=0: 36 | m=1: 252 | m=2: 2016 | m=3: 18144 | m=4: 181440 | m=5: 1995840\n",
|
||
|
"n=4, e=2, u=1, t=1 || m=0: 144 | m=1: 1440 | m=2: 15840 | m=3: 190080 | m=4: 2471040 | m=5: 34594560\n",
|
||
|
"n=4, e=2, u=2, t=0 || m=0: 288 | m=1: 2880 | m=2: 31680 | m=3: 380160 | m=4: 4942080 | m=5: 69189120\n",
|
||
|
"n=4, e=3, u=1, t=0 || m=0: 432 | m=1: 4320 | m=2: 47520 | m=3: 570240 | m=4: 7413120 | m=5: 103783680\n",
|
||
|
"n=4, e=4, u=0, t=0 || m=0: 1728 | m=1: 17280 | m=2: 190080 | m=3: 2280960 | m=4: 29652480 | m=5: 415134720\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"# tables\n",
|
||
|
"i = 0\n",
|
||
|
"nums = [[1, 0, 0], [1, 1, 0], [2, 0, 0], [1, 1, 1], [2, 1, 0], [3, 0, 0], [2, 1, 1], [2, 2, 0], [3, 1, 0], [4, 0, 0]]\n",
|
||
|
"for (e, u, t) in nums\n",
|
||
|
" i += 1\n",
|
||
|
" if (u + t + e == 0) continue end\n",
|
||
|
" println(\"n=$(e + u + t), e=$e, u=$u, t=$t || m=0: $(num_diagrams(0, e, u, t)) | m=1: $(num_diagrams(1, e, u, t)) | m=2: $(num_diagrams(2, e, u, t)) | m=3: $(num_diagrams(3, e, u, t)) | m=4: $(num_diagrams(4, e, u, t)) | m=5: $(num_diagrams(5, e, u, t))\")\n",
|
||
|
"end"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"metadata": {
|
||
|
"kernelspec": {
|
||
|
"display_name": "Julia 1.10.2",
|
||
|
"language": "julia",
|
||
|
"name": "julia-1.10"
|
||
|
},
|
||
|
"language_info": {
|
||
|
"file_extension": ".jl",
|
||
|
"mimetype": "application/julia",
|
||
|
"name": "julia",
|
||
|
"version": "1.10.2"
|
||
|
}
|
||
|
},
|
||
|
"nbformat": 4,
|
||
|
"nbformat_minor": 2
|
||
|
}
|