cosmowap 0.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. cosmowap-0.0.2/LICENSE.txt +21 -0
  2. cosmowap-0.0.2/PKG-INFO +111 -0
  3. cosmowap-0.0.2/README.md +97 -0
  4. cosmowap-0.0.2/pyproject.toml +32 -0
  5. cosmowap-0.0.2/setup.cfg +4 -0
  6. cosmowap-0.0.2/src/cosmo_wap/__init__.py +1 -0
  7. cosmowap-0.0.2/src/cosmo_wap/bk/GR0.py +29 -0
  8. cosmowap-0.0.2/src/cosmo_wap/bk/GR1.py +85 -0
  9. cosmowap-0.0.2/src/cosmo_wap/bk/GR2.py +27 -0
  10. cosmowap-0.0.2/src/cosmo_wap/bk/GR_0.py +16 -0
  11. cosmowap-0.0.2/src/cosmo_wap/bk/GR_1.py +17 -0
  12. cosmowap-0.0.2/src/cosmo_wap/bk/GR_2.py +17 -0
  13. cosmowap-0.0.2/src/cosmo_wap/bk/PNG_terms.py +15 -0
  14. cosmowap-0.0.2/src/cosmo_wap/bk/RR1.py +100 -0
  15. cosmowap-0.0.2/src/cosmo_wap/bk/RR2.py +30 -0
  16. cosmowap-0.0.2/src/cosmo_wap/bk/RR_1.py +14 -0
  17. cosmowap-0.0.2/src/cosmo_wap/bk/WA1.py +108 -0
  18. cosmowap-0.0.2/src/cosmo_wap/bk/WA2.py +30 -0
  19. cosmowap-0.0.2/src/cosmo_wap/bk/WARR.py +33 -0
  20. cosmowap-0.0.2/src/cosmo_wap/bk/WA_1.py +19 -0
  21. cosmowap-0.0.2/src/cosmo_wap/bk/WA_2.py +16 -0
  22. cosmowap-0.0.2/src/cosmo_wap/bk/WSGR.py +61 -0
  23. cosmowap-0.0.2/src/cosmo_wap/bk/__init__.py +0 -0
  24. cosmowap-0.0.2/src/cosmo_wap/bk/cov.py +60 -0
  25. cosmowap-0.0.2/src/cosmo_wap/data_library/SKAO1Data.txt +10 -0
  26. cosmowap-0.0.2/src/cosmo_wap/data_library/SKAO2Data.txt +20 -0
  27. cosmowap-0.0.2/src/cosmo_wap/data_library/snr_surveyparams.txt +14 -0
  28. cosmowap-0.0.2/src/cosmo_wap/integrate.py +43 -0
  29. cosmowap-0.0.2/src/cosmo_wap/main.py +379 -0
  30. cosmowap-0.0.2/src/cosmo_wap/peak_background_bias.py +291 -0
  31. cosmowap-0.0.2/src/cosmo_wap/pk/Pk_0.py +109 -0
  32. cosmowap-0.0.2/src/cosmo_wap/pk/Pk_WS.py +172 -0
  33. cosmowap-0.0.2/src/cosmo_wap/pk/Pk_WSGR.py +82 -0
  34. cosmowap-0.0.2/src/cosmo_wap/pk/__init__.py +0 -0
  35. cosmowap-0.0.2/src/cosmo_wap/survey_params.py +133 -0
  36. cosmowap-0.0.2/src/cosmo_wap/useful_funcs.py +52 -0
  37. cosmowap-0.0.2/src/cosmowap.egg-info/PKG-INFO +111 -0
  38. cosmowap-0.0.2/src/cosmowap.egg-info/SOURCES.txt +38 -0
  39. cosmowap-0.0.2/src/cosmowap.egg-info/dependency_links.txt +1 -0
  40. cosmowap-0.0.2/src/cosmowap.egg-info/top_level.txt +1 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Chris Addis
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,111 @@
1
+ Metadata-Version: 2.1
2
+ Name: cosmowap
3
+ Version: 0.0.2
4
+ Summary: package for computing power spectra and bispectra
5
+ Author-email: Chris Addis <c.l.j.addis@qmul.ac.uk>
6
+ License: MIT
7
+ Project-URL: homepage, https://github.com/craddis1/CosmoWAP
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Requires-Python: >=3.8
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE.txt
14
+
15
+ # CosmoWAP
16
+
17
+ **Cosmo**logy with **W**ide-separation, rel**A**tivistic and **P**rimordial non-Gaussian contibutions.
18
+
19
+ CosmoWAP is an effort to provide a (hopefully) self consistent framwork to compute contribtuions to the fourier power spectrum and bispectrum from wide-separation and relatvisitic effects as well as contribution from Primordial non-Gaussianity (PNG).
20
+ These expression can be very cumbersome and it can be tricky to check for consistency in the community and so hopefully this code should be useful in that regard.
21
+
22
+ CosmoWAP is a *Python* package to analyse the power spectra and bispectra but the analytical expressions themselves are computed analytically in Mathematica using routines which are publicly avalable at [*MathWAP*](https://github.com/craddis1/MathWAP) and then exported as .py files. therefore the main functionality of CosmoWAP is to take these expressions and implement them for a given cosmology (from CLASS) and survey parameters.
23
+
24
+ ## Installation
25
+
26
+
27
+
28
+ ## Features
29
+
30
+ CosmoWAP computes redshift spadce expressions for the 3D Fourier *power spectrum* (and it's multipoles with multi-tracer capabilites) as well as the *bispectrum* (with Sccoccimarro spherical harmonic multipoles), it also can be used for:
31
+
32
+ - Wide separation (WS) effects (i.e. wide angle and radial redshift contributions) up to second order in the WS expansion
33
+ - Relativistic (GR) effects (inlding projection and dynamical effects - see ... for currently implemented kernels) up to $\left(\frac{\mathcal{H}}{k}\right)^2$
34
+ - Primordial non-Gaussian (PNG) contribution for local, equilateral and orthogonal types (in progress)
35
+
36
+ ### additional features
37
+
38
+ - Gaussian covariances along with routines for Fisher and SNR analyses (in progress)
39
+ - Inclusion of Finger-of-God damping
40
+
41
+ ## Documentation
42
+
43
+ see documentation .... (Add)
44
+
45
+ ## Usage
46
+ Based on work in [arXiv:2407.00168](https://arxiv.org/abs/2407.00168)
47
+
48
+ Also for PNG stuff please refer too: arXiv:24xx.xxxx
49
+
50
+
51
+ Updating documentiation - old stuff below...
52
+
53
+ ## Overview
54
+
55
+ - \mathematica_routines\The_bispectrum.nb outputs expressions for each different in the bispectrum for different multipoles
56
+
57
+ - These are then stored in \bkterms as .py files
58
+
59
+ - \Library\WS_cosmo: takes in a cosmology from class and survey specifications and returns required parameters to use files in \bkterms - see example.py for usage
60
+
61
+ ## quickstart
62
+
63
+ Download the repository...
64
+
65
+ To get started see example.ipynb or example_pk.ipynb for a quick guide on using the computed expressions...
66
+
67
+ CLASS, matplotlib, scipy and numpy are the only dependencies
68
+
69
+ ## python functions
70
+
71
+ Outputs are converted to python format and stored in \bk_terms
72
+
73
+ ### Notebooks
74
+
75
+ For an example notebook for using these expressions see:
76
+
77
+ - example.ipynb
78
+
79
+ - bk_SNR.ipynb includes code to compute and plot the SNR and fisher stuff for multipoles
80
+
81
+ - bk_plots.ipynb contains a bunch of functions that maybe be useful but is not clean
82
+
83
+ In these notebooks everything is designed to use \Library\WS_cosmo.py where cosmology and survey biases are defined and from that object all bispectrum terms can be computed.
84
+
85
+
86
+ ## Multi-tracer Power spectrum multipoles
87
+
88
+ This includes relatvistic and wide separation effects up to second order. The format should be similar as to that of the bispectrum.
89
+
90
+ - The_powerspectrum.nb, Pk_funcsandrules.nb, Pk_expansions.nb: mathematica routines for power spectrum computation.
91
+
92
+ - Library/WS_cosmo.py: Again is the backend to get input parameters for a given survey and cosmology for the saved python functions.
93
+
94
+ - See example_pk.ipynb for example usage.
95
+
96
+
97
+ ## Errors
98
+
99
+ Some syntax has been updated so there will inevitably be several errors lying around - particular in the bigger notebooks - please let me know!
100
+
101
+ ## Usage
102
+
103
+ Feel free to edit or just take any part that may be useful but please refer to:
104
+ [arXiv:2407.00168](https://arxiv.org/abs/2407.00168)
105
+
106
+ ## Contact
107
+
108
+ Stuff will be added as time goes by - I plan on adding PNG stuff with scale dependent biases for different shapes of PNG (therefore including HOD for bias modelling)
109
+
110
+ Feel free to drop me a line if you have any feedback!
111
+ If youre having any problems or have any ideas to make it better- Feel free to get in contact :) - c.l.j.addis@qmul.ac.uk
@@ -0,0 +1,97 @@
1
+ # CosmoWAP
2
+
3
+ **Cosmo**logy with **W**ide-separation, rel**A**tivistic and **P**rimordial non-Gaussian contibutions.
4
+
5
+ CosmoWAP is an effort to provide a (hopefully) self consistent framwork to compute contribtuions to the fourier power spectrum and bispectrum from wide-separation and relatvisitic effects as well as contribution from Primordial non-Gaussianity (PNG).
6
+ These expression can be very cumbersome and it can be tricky to check for consistency in the community and so hopefully this code should be useful in that regard.
7
+
8
+ CosmoWAP is a *Python* package to analyse the power spectra and bispectra but the analytical expressions themselves are computed analytically in Mathematica using routines which are publicly avalable at [*MathWAP*](https://github.com/craddis1/MathWAP) and then exported as .py files. therefore the main functionality of CosmoWAP is to take these expressions and implement them for a given cosmology (from CLASS) and survey parameters.
9
+
10
+ ## Installation
11
+
12
+
13
+
14
+ ## Features
15
+
16
+ CosmoWAP computes redshift spadce expressions for the 3D Fourier *power spectrum* (and it's multipoles with multi-tracer capabilites) as well as the *bispectrum* (with Sccoccimarro spherical harmonic multipoles), it also can be used for:
17
+
18
+ - Wide separation (WS) effects (i.e. wide angle and radial redshift contributions) up to second order in the WS expansion
19
+ - Relativistic (GR) effects (inlding projection and dynamical effects - see ... for currently implemented kernels) up to $\left(\frac{\mathcal{H}}{k}\right)^2$
20
+ - Primordial non-Gaussian (PNG) contribution for local, equilateral and orthogonal types (in progress)
21
+
22
+ ### additional features
23
+
24
+ - Gaussian covariances along with routines for Fisher and SNR analyses (in progress)
25
+ - Inclusion of Finger-of-God damping
26
+
27
+ ## Documentation
28
+
29
+ see documentation .... (Add)
30
+
31
+ ## Usage
32
+ Based on work in [arXiv:2407.00168](https://arxiv.org/abs/2407.00168)
33
+
34
+ Also for PNG stuff please refer too: arXiv:24xx.xxxx
35
+
36
+
37
+ Updating documentiation - old stuff below...
38
+
39
+ ## Overview
40
+
41
+ - \mathematica_routines\The_bispectrum.nb outputs expressions for each different in the bispectrum for different multipoles
42
+
43
+ - These are then stored in \bkterms as .py files
44
+
45
+ - \Library\WS_cosmo: takes in a cosmology from class and survey specifications and returns required parameters to use files in \bkterms - see example.py for usage
46
+
47
+ ## quickstart
48
+
49
+ Download the repository...
50
+
51
+ To get started see example.ipynb or example_pk.ipynb for a quick guide on using the computed expressions...
52
+
53
+ CLASS, matplotlib, scipy and numpy are the only dependencies
54
+
55
+ ## python functions
56
+
57
+ Outputs are converted to python format and stored in \bk_terms
58
+
59
+ ### Notebooks
60
+
61
+ For an example notebook for using these expressions see:
62
+
63
+ - example.ipynb
64
+
65
+ - bk_SNR.ipynb includes code to compute and plot the SNR and fisher stuff for multipoles
66
+
67
+ - bk_plots.ipynb contains a bunch of functions that maybe be useful but is not clean
68
+
69
+ In these notebooks everything is designed to use \Library\WS_cosmo.py where cosmology and survey biases are defined and from that object all bispectrum terms can be computed.
70
+
71
+
72
+ ## Multi-tracer Power spectrum multipoles
73
+
74
+ This includes relatvistic and wide separation effects up to second order. The format should be similar as to that of the bispectrum.
75
+
76
+ - The_powerspectrum.nb, Pk_funcsandrules.nb, Pk_expansions.nb: mathematica routines for power spectrum computation.
77
+
78
+ - Library/WS_cosmo.py: Again is the backend to get input parameters for a given survey and cosmology for the saved python functions.
79
+
80
+ - See example_pk.ipynb for example usage.
81
+
82
+
83
+ ## Errors
84
+
85
+ Some syntax has been updated so there will inevitably be several errors lying around - particular in the bigger notebooks - please let me know!
86
+
87
+ ## Usage
88
+
89
+ Feel free to edit or just take any part that may be useful but please refer to:
90
+ [arXiv:2407.00168](https://arxiv.org/abs/2407.00168)
91
+
92
+ ## Contact
93
+
94
+ Stuff will be added as time goes by - I plan on adding PNG stuff with scale dependent biases for different shapes of PNG (therefore including HOD for bias modelling)
95
+
96
+ Feel free to drop me a line if you have any feedback!
97
+ If youre having any problems or have any ideas to make it better- Feel free to get in contact :) - c.l.j.addis@qmul.ac.uk
@@ -0,0 +1,32 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "cosmowap"
7
+ version = "0.0.2"
8
+ authors = [
9
+ { name="Chris Addis", email="c.l.j.addis@qmul.ac.uk" },
10
+ ]
11
+ description = "package for computing power spectra and bispectra"
12
+ requires-python = ">=3.8"
13
+ readme = "README.md"
14
+ license = { text = "MIT" }
15
+ classifiers = [
16
+ "Programming Language :: Python :: 3",
17
+ "License :: OSI Approved :: MIT License",
18
+ "Operating System :: OS Independent",
19
+ ]
20
+
21
+ [project.urls]
22
+ homepage = "https://github.com/craddis1/CosmoWAP"
23
+
24
+ [tool.setuptools]
25
+ package-dir = {"" = "src"}
26
+ include-package-data = true
27
+
28
+ [tool.setuptools.package-data]
29
+ "cosmo_wap" = ["data_library/*.txt"]
30
+
31
+ [tool.setuptools.packages.find]
32
+ where = ["src"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1 @@
1
+ from .main import CosmoWAP
@@ -0,0 +1,29 @@
1
+ import numpy as np
2
+
3
+ #Netwonian, plane parallel constant redshift limit
4
+ class Bk0:
5
+ def l0(cosmo_functions,k1,k2,k3=None,theta=None,zz=0,r=0,s=0,nonlin=False,growth2=False):
6
+
7
+ #get generic cosmology parameters
8
+ k1,k2,k3,theta,Pk1,Pk2,Pk3,Pkd1,Pkd2,Pkd3,Pkdd1,Pkdd2,Pkdd3,d,K,C,f,D1,b1,b2,g2 = cosmo_functions.get_params(k1,k2,k3,theta,zz,nonlin=nonlin,growth2=growth2)
9
+
10
+ cos = lambda x: np.cos(x)
11
+ sin = lambda x: np.sin(x)
12
+
13
+ perm12 = D1**4*Pk1*Pk2*(420*C*b1**2*f*k1**3*k2 - 420*C*b1**2*f*k1**2*k2**2*cos(3*theta) + 420*C*b1**2*f*k1*k2**3 - 42*C*b1*f**2*k1**3*k2*cos(4*theta) + 378*C*b1*f**2*k1**3*k2 - 504*C*b1*f**2*k1**2*k2**2*cos(3*theta) - 42*C*b1*f**2*k1*k2**3*cos(4*theta) + 378*C*b1*f**2*k1*k2**3 - 36*C*f**3*k1**3*k2*cos(4*theta) + 72*C*f**3*k1**3*k2 - 126*C*f**3*k1**2*k2**2*cos(3*theta) - 18*C*f**3*k1**2*k2**2*cos(5*theta) - 36*C*f**3*k1*k2**3*cos(4*theta) + 72*C*f**3*k1*k2**3 + 630*K*b1**3*k1*k2*k3**2 + 420*K*b1**2*f*k1*k2*k3**2 - 21*K*b1*f**2*k1*k2*k3**2*cos(4*theta) + 63*K*b1*f**2*k1*k2*k3**2 + 840*b1**3*f*k1*k2*k3**2 + 1890*b1**3*k1*k2*k3**2 + 1260*b1**2*b2*k1*k2*k3**2 + 1176*b1**2*f**2*k1*k2*k3**2 + 840*b1**2*f*k1**3*k2 + 420*b1**2*f*k1**2*k2**2*cos(3*theta) + 840*b1**2*f*k1*k2**3 + 1260*b1**2*f*k1*k2*k3**2 - 1260*b1**2*g2*k1*k2*k3**2 + 840*b1*b2*f*k1*k2*k3**2 + 36*b1*f**3*k1**2*k3**2*cos(3*theta) + 648*b1*f**3*k1*k2*k3**2 + 36*b1*f**3*k2**2*k3**2*cos(3*theta) + 42*b1*f**2*k1**4*cos(3*theta) + 42*b1*f**2*k1**3*k2*cos(4*theta) + 966*b1*f**2*k1**3*k2 + 588*b1*f**2*k1**2*k2**2*cos(3*theta) + 42*b1*f**2*k1**2*k3**2*cos(3*theta) + 42*b1*f**2*k1*k2**3*cos(4*theta) + 966*b1*f**2*k1*k2**3 + 21*b1*f**2*k1*k2*k3**2*cos(4*theta) + 273*b1*f**2*k1*k2*k3**2 + 42*b1*f**2*k2**4*cos(3*theta) + 42*b1*f**2*k2**2*k3**2*cos(3*theta) - 840*b1*f*g2*k1*k2*k3**2 + 168*b2*f**2*k1*k2*k3**2 + 20*f**4*k1**2*k3**2*cos(3*theta) + 8*f**4*k1*k2*k3**2*cos(4*theta) + 144*f**4*k1*k2*k3**2 + 20*f**4*k2**2*k3**2*cos(3*theta) + 36*f**3*k1**4*cos(3*theta) + 54*f**3*k1**3*k2*cos(4*theta) + 306*f**3*k1**3*k2 + 270*f**3*k1**2*k2**2*cos(3*theta) + 18*f**3*k1**2*k2**2*cos(5*theta) + 54*f**3*k1*k2**3*cos(4*theta) + 306*f**3*k1*k2**3 + 36*f**3*k2**4*cos(3*theta) + 42*f**2*g2*k1*k2*k3**2*cos(4*theta) - 126*f**2*g2*k1*k2*k3**2 - 2*k1*k2*(315*b1**3*k3**2*(K - 1) - 42*b1**2*(4*f**2*k3**2 - 5*f*(k1**2*(C - 2) + k2**2*(C - 2) + k3**2*(K - 1)) + 15*g2*k3**2) - 3*b1*f*(72*f**2*k3**2 - 7*f*(k1**2*(8*C - 24) + k2**2*(8*C - 24) + k3**2*(K - 5)) + 140*g2*k3**2) - 2*f**2*(32*f**2*k3**2 + f*(90 - 9*C)*(k1**2 + k2**2) + k3**2*(21*b2 + 21*g2)))*cos(2*theta) + (420*b1**3*k3**2*(f + 3)*(k1**2 + k2**2) + 84*b1**2*f*(5*k1**4 + k1**2*(k2**2*(5*C + 25) + k3**2*(9*f + 10)) + 5*k2**4 + k2**2*k3**2*(9*f + 10)) + 42*b1*f**2*(11*k1**4 + k1**2*(k2**2*(12*C + 58) + k3**2*(12*f + 5)) + 11*k2**4 + k2**2*k3**2*(12*f + 5)) + 24*f**3*(5*f*k2**2*k3**2 + 6*k1**4 + k1**2*(5*f*k3**2 + k2**2*(6*C + 33)) + 6*k2**4))*cos(theta))/(1260*k1*k2*k3**2)
14
+ perm13 = -D1**4*Pk1*Pk3*(840*C*b1**2*f*k1**3*k3**2 + 420*C*b1**2*f*k1*k2**2*k3**2 - 840*C*b1**2*f*k1*k3**4 + 336*C*b1*f**2*k1**5 + 168*C*b1*f**2*k1**4*k2*cos(3*theta) + 42*C*b1*f**2*k1**3*k2**2*cos(4*theta) + 1722*C*b1*f**2*k1**3*k2**2 + 252*C*b1*f**2*k1**2*k2**3*cos(3*theta) + 168*C*b1*f**2*k1**2*k2*k3**2*cos(3*theta) + 252*C*b1*f**2*k1*k2**4 + 42*C*b1*f**2*k1*k2**2*k3**2*cos(4*theta) - 294*C*b1*f**2*k1*k2**2*k3**2 - 336*C*b1*f**2*k1*k3**4 + 216*C*f**3*k1**5 + 216*C*f**3*k1**4*k2*cos(3*theta) + 108*C*f**3*k1**3*k2**2*cos(4*theta) + 1008*C*f**3*k1**3*k2**2 - 216*C*f**3*k1**3*k3**2 + 342*C*f**3*k1**2*k2**3*cos(3*theta) + 18*C*f**3*k1**2*k2**3*cos(5*theta) - 72*C*f**3*k1**2*k2*k3**2*cos(3*theta) + 36*C*f**3*k1*k2**4*cos(4*theta) + 144*C*f**3*k1*k2**4 - 216*C*f**3*k1*k2**2*k3**2 + 1260*K*b1**3*k1**3*k3**2 + 630*K*b1**3*k1*k2**2*k3**2 - 1260*K*b1**3*k1*k3**4 + 420*K*b1**2*f*k1**5 + 1470*K*b1**2*f*k1**3*k2**2 + 210*K*b1**2*f*k1**2*k2**3*cos(3*theta) + 210*K*b1**2*f*k1*k2**4 - 210*K*b1**2*f*k1*k2**2*k3**2 - 420*K*b1**2*f*k1*k3**4 + 252*K*b1*f**2*k1**5 + 798*K*b1*f**2*k1**3*k2**2 - 252*K*b1*f**2*k1**3*k3**2 + 210*K*b1*f**2*k1**2*k2**3*cos(3*theta) + 21*K*b1*f**2*k1*k2**4*cos(4*theta) + 105*K*b1*f**2*k1*k2**4 - 168*K*b1*f**2*k1*k2**2*k3**2 - 420*b1**3*f*k1*k2**2*k3**2 - 630*b1**3*k1*k2**2*k3**2 - 1260*b1**2*b2*k1*k3**4 - 504*b1**2*f**2*k1**3*k2**2 - 252*b1**2*f**2*k1*k2**4 + 336*b1**2*f**2*k1*k2**2*k3**2 - 630*b1**2*f*k1**3*k2**2 - 420*b1**2*f*k1**3*k3**2 - 210*b1**2*f*k1**2*k2**3*cos(3*theta) - 210*b1**2*f*k1*k2**4 - 210*b1**2*f*k1*k2**2*k3**2 + 420*b1**2*f*k1*k3**4 - 2520*b1**2*g2*k1**3*k3**2 - 1260*b1**2*g2*k1*k2**2*k3**2 + 2520*b1**2*g2*k1*k3**4 - 420*b1*b2*f*k1**3*k3**2 - 420*b1*b2*f*k1*k2**2*k3**2 - 420*b1*b2*f*k1*k3**4 - 216*b1*f**3*k1**3*k2**2 + 216*b1*f**3*k1*k2**4 + 324*b1*f**3*k1*k2**2*k3**2 + 36*b1*f**3*k2**3*k3**2*cos(3*theta) - 168*b1*f**2*k1**5 - 126*b1*f**2*k1**4*k2*cos(3*theta) - 42*b1*f**2*k1**3*k2**2*cos(4*theta) - 1596*b1*f**2*k1**3*k2**2 - 420*b1*f**2*k1**2*k2**3*cos(3*theta) - 84*b1*f**2*k1**2*k2*k3**2*cos(3*theta) - 21*b1*f**2*k1*k2**4*cos(4*theta) - 357*b1*f**2*k1*k2**4 - 42*b1*f**2*k1*k2**2*k3**2*cos(4*theta) + 546*b1*f**2*k1*k2**2*k3**2 + 168*b1*f**2*k1*k3**4 + 42*b1*f**2*k2**3*k3**2*cos(3*theta) + 42*b1*f**2*k2*k3**4*cos(3*theta) - 840*b1*f*g2*k1**5 - 2940*b1*f*g2*k1**3*k2**2 - 420*b1*f*g2*k1**2*k2**3*cos(3*theta) - 420*b1*f*g2*k1*k2**4 + 420*b1*f*g2*k1*k2**2*k3**2 + 840*b1*f*g2*k1*k3**4 - 252*b2*f**2*k1**3*k3**2 - 168*b2*f**2*k1*k2**2*k3**2 + 80*f**4*k1**3*k2**2 + 60*f**4*k1**2*k2**3*cos(3*theta) + 12*f**4*k1*k2**4*cos(4*theta) + 216*f**4*k1*k2**4 + 20*f**4*k2**5*cos(3*theta) - 108*f**3*k1**5 - 144*f**3*k1**4*k2*cos(3*theta) - 90*f**3*k1**3*k2**2*cos(4*theta) - 738*f**3*k1**3*k2**2 + 108*f**3*k1**3*k3**2 - 306*f**3*k1**2*k2**3*cos(3*theta) - 18*f**3*k1**2*k2**3*cos(5*theta) + 72*f**3*k1**2*k2*k3**2*cos(3*theta) - 36*f**3*k1*k2**4*cos(4*theta) - 144*f**3*k1*k2**4 + 18*f**3*k1*k2**2*k3**2*cos(4*theta) + 270*f**3*k1*k2**2*k3**2 + 36*f**3*k2**3*k3**2*cos(3*theta) - 504*f**2*g2*k1**5 - 1596*f**2*g2*k1**3*k2**2 + 504*f**2*g2*k1**3*k3**2 - 420*f**2*g2*k1**2*k2**3*cos(3*theta) - 42*f**2*g2*k1*k2**4*cos(4*theta) - 210*f**2*g2*k1*k2**4 + 336*f**2*g2*k1*k2**2*k3**2 + 6*k1*(105*b1**3*k2**2*k3**2*(K - 1) + 7*b1**2*k2**2*(f**2*(-6*k1**2 + 4*k3**2) + 5*f*(k1**2*(5*K - 3) + k2**2*(K - 1) + k3**2*(2*C + K - 1)) - 30*g2*k3**2) + b1*f*(12*f**2*k2**2*(-2*k1**2 + 2*k2**2 + 3*k3**2) + 7*f*(k1**4*(4*C - 2) + k1**2*k2**2*(30*C + 17*K - 33) + k2**4*(6*C + 3*K - 9) + k2**2*k3**2*(6*C - 2*K + 6) + k3**4*(2 - 4*C)) - 70*g2*k2**2*(5*k1**2 + k2**2 + k3**2)) + 2*f**2*(f**2*(5*k1**2*k2**2 + 16*k2**4) + 3*f*(k1**4*(4*C - 2) + k1**2*(k2**2*(29*C - 22) + k3**2*(2 - 4*C)) + k2**4*(5*C - 5) + k2**2*k3**2*(7 - 4*C)) - 7*k2**2*(b2*k3**2 + g2*(17*k1**2 + 3*k2**2 - 2*k3**2))))*cos(2*theta) + 6*k2*(70*b1**3*k3**2*(-k1**2*(-6*K + f + 3) + k3**2*(f + 3)) - 7*b1**2*(6*f**2*(k1**4 + 3*k1**2*k2**2 - k3**2*(2*k2**2 + k3**2)) - 5*f*(k1**4*(8*K - 2) + k1**2*(k2**2*(7*K - 5) + k3**2*(8*C - 6)) + 2*k3**2*(k2**2 + 2*k3**2)) + 120*g2*k1**2*k3**2) + b1*f*(-6*f**2*(5*k1**4 - 5*k1**2*k3**2 - 5*k2**4 - 9*k2**2*k3**2) + 7*f*(k1**4*(44*C + 24*K - 33) + k1**2*(k2**2*(42*C + 19*K - 50) - k3**2*(4*C + 12*K - 8)) + 11*k2**2*k3**2 + 5*k3**4) - 70*k1**2*(2*b2*k3**2 + 8*g2*k1**2 + 7*g2*k2**2)) + 2*f**2*(10*f**2*(3*k1**2*k2**2 + k2**4) + 3*f*(k1**4*(34*C - 21) + k1**2*(k2**2*(30*C - 26) + k3**2*(13 - 18*C)) + 4*k2**2*k3**2) - 7*k1**2*(6*b2*k3**2 + g2*(24*k1**2 + 19*k2**2 - 12*k3**2))))*cos(theta))/(1260*k1*k3**4)
15
+ perm23 = -D1**4*Pk2*Pk3*(420*C*b1**2*f*k1**2*k2*k3**2 + 840*C*b1**2*f*k2**3*k3**2 - 840*C*b1**2*f*k2*k3**4 + 252*C*b1*f**2*k1**4*k2 + 252*C*b1*f**2*k1**3*k2**2*cos(3*theta) + 42*C*b1*f**2*k1**2*k2**3*cos(4*theta) + 1722*C*b1*f**2*k1**2*k2**3 + 42*C*b1*f**2*k1**2*k2*k3**2*cos(4*theta) - 294*C*b1*f**2*k1**2*k2*k3**2 + 168*C*b1*f**2*k1*k2**4*cos(3*theta) + 168*C*b1*f**2*k1*k2**2*k3**2*cos(3*theta) + 336*C*b1*f**2*k2**5 - 336*C*b1*f**2*k2*k3**4 + 36*C*f**3*k1**4*k2*cos(4*theta) + 144*C*f**3*k1**4*k2 + 342*C*f**3*k1**3*k2**2*cos(3*theta) + 18*C*f**3*k1**3*k2**2*cos(5*theta) + 108*C*f**3*k1**2*k2**3*cos(4*theta) + 1008*C*f**3*k1**2*k2**3 - 216*C*f**3*k1**2*k2*k3**2 + 216*C*f**3*k1*k2**4*cos(3*theta) - 72*C*f**3*k1*k2**2*k3**2*cos(3*theta) + 216*C*f**3*k2**5 - 216*C*f**3*k2**3*k3**2 + 630*K*b1**3*k1**2*k2*k3**2 + 1260*K*b1**3*k2**3*k3**2 - 1260*K*b1**3*k2*k3**4 + 210*K*b1**2*f*k1**4*k2 + 210*K*b1**2*f*k1**3*k2**2*cos(3*theta) + 1470*K*b1**2*f*k1**2*k2**3 - 210*K*b1**2*f*k1**2*k2*k3**2 + 420*K*b1**2*f*k2**5 - 420*K*b1**2*f*k2*k3**4 + 21*K*b1*f**2*k1**4*k2*cos(4*theta) + 105*K*b1*f**2*k1**4*k2 + 210*K*b1*f**2*k1**3*k2**2*cos(3*theta) + 798*K*b1*f**2*k1**2*k2**3 - 168*K*b1*f**2*k1**2*k2*k3**2 + 252*K*b1*f**2*k2**5 - 252*K*b1*f**2*k2**3*k3**2 - 420*b1**3*f*k1**2*k2*k3**2 - 630*b1**3*k1**2*k2*k3**2 - 1260*b1**2*b2*k2*k3**4 - 252*b1**2*f**2*k1**4*k2 - 504*b1**2*f**2*k1**2*k2**3 + 336*b1**2*f**2*k1**2*k2*k3**2 - 210*b1**2*f*k1**4*k2 - 210*b1**2*f*k1**3*k2**2*cos(3*theta) - 630*b1**2*f*k1**2*k2**3 - 210*b1**2*f*k1**2*k2*k3**2 - 420*b1**2*f*k2**3*k3**2 + 420*b1**2*f*k2*k3**4 - 1260*b1**2*g2*k1**2*k2*k3**2 - 2520*b1**2*g2*k2**3*k3**2 + 2520*b1**2*g2*k2*k3**4 - 420*b1*b2*f*k1**2*k2*k3**2 - 420*b1*b2*f*k2**3*k3**2 - 420*b1*b2*f*k2*k3**4 + 216*b1*f**3*k1**4*k2 + 36*b1*f**3*k1**3*k3**2*cos(3*theta) - 216*b1*f**3*k1**2*k2**3 + 324*b1*f**3*k1**2*k2*k3**2 - 21*b1*f**2*k1**4*k2*cos(4*theta) - 357*b1*f**2*k1**4*k2 - 420*b1*f**2*k1**3*k2**2*cos(3*theta) + 42*b1*f**2*k1**3*k3**2*cos(3*theta) - 42*b1*f**2*k1**2*k2**3*cos(4*theta) - 1596*b1*f**2*k1**2*k2**3 - 42*b1*f**2*k1**2*k2*k3**2*cos(4*theta) + 546*b1*f**2*k1**2*k2*k3**2 - 126*b1*f**2*k1*k2**4*cos(3*theta) - 84*b1*f**2*k1*k2**2*k3**2*cos(3*theta) + 42*b1*f**2*k1*k3**4*cos(3*theta) - 168*b1*f**2*k2**5 + 168*b1*f**2*k2*k3**4 - 420*b1*f*g2*k1**4*k2 - 420*b1*f*g2*k1**3*k2**2*cos(3*theta) - 2940*b1*f*g2*k1**2*k2**3 + 420*b1*f*g2*k1**2*k2*k3**2 - 840*b1*f*g2*k2**5 + 840*b1*f*g2*k2*k3**4 - 168*b2*f**2*k1**2*k2*k3**2 - 252*b2*f**2*k2**3*k3**2 + 20*f**4*k1**5*cos(3*theta) + 12*f**4*k1**4*k2*cos(4*theta) + 216*f**4*k1**4*k2 + 60*f**4*k1**3*k2**2*cos(3*theta) + 80*f**4*k1**2*k2**3 - 36*f**3*k1**4*k2*cos(4*theta) - 144*f**3*k1**4*k2 - 306*f**3*k1**3*k2**2*cos(3*theta) - 18*f**3*k1**3*k2**2*cos(5*theta) + 36*f**3*k1**3*k3**2*cos(3*theta) - 90*f**3*k1**2*k2**3*cos(4*theta) - 738*f**3*k1**2*k2**3 + 18*f**3*k1**2*k2*k3**2*cos(4*theta) + 270*f**3*k1**2*k2*k3**2 - 144*f**3*k1*k2**4*cos(3*theta) + 72*f**3*k1*k2**2*k3**2*cos(3*theta) - 108*f**3*k2**5 + 108*f**3*k2**3*k3**2 - 42*f**2*g2*k1**4*k2*cos(4*theta) - 210*f**2*g2*k1**4*k2 - 420*f**2*g2*k1**3*k2**2*cos(3*theta) - 1596*f**2*g2*k1**2*k2**3 + 336*f**2*g2*k1**2*k2*k3**2 - 504*f**2*g2*k2**5 + 504*f**2*g2*k2**3*k3**2 + 6*k1*(70*b1**3*k3**2*(-k2**2*(-6*K + f + 3) + k3**2*(f + 3)) - 7*b1**2*(6*f**2*(k1**2*(3*k2**2 - 2*k3**2) + k2**4 - k3**4) - 5*f*(k1**2*(k2**2*(7*K - 5) + 2*k3**2) + k2**4*(8*K - 2) + k2**2*k3**2*(8*C - 6) + 4*k3**4) + 120*g2*k2**2*k3**2) + b1*f*(6*f**2*(5*k1**4 + 9*k1**2*k3**2 - 5*k2**4 + 5*k2**2*k3**2) + 7*f*(k1**2*(k2**2*(42*C + 19*K - 50) + 11*k3**2) + k2**4*(44*C + 24*K - 33) - k2**2*k3**2*(4*C + 12*K - 8) + 5*k3**4) - 70*k2**2*(2*b2*k3**2 + 7*g2*k1**2 + 8*g2*k2**2)) + 2*f**2*(10*f**2*(k1**4 + 3*k1**2*k2**2) + 3*f*(k1**2*(k2**2*(30*C - 26) + 4*k3**2) + k2**4*(34*C - 21) + k2**2*k3**2*(13 - 18*C)) - 7*k2**2*(6*b2*k3**2 + g2*(19*k1**2 + 24*k2**2 - 12*k3**2))))*cos(theta) + 6*k2*(105*b1**3*k1**2*k3**2*(K - 1) + 7*b1**2*k1**2*(f**2*(-6*k2**2 + 4*k3**2) + 5*f*(k1**2*(K - 1) + k2**2*(5*K - 3) + k3**2*(2*C + K - 1)) - 30*g2*k3**2) + b1*f*(12*f**2*k1**2*(2*k1**2 - 2*k2**2 + 3*k3**2) + 7*f*(k1**4*(6*C + 3*K - 9) + k1**2*(k2**2*(30*C + 17*K - 33) + k3**2*(6*C - 2*K + 6)) + (4*C - 2)*(k2**4 - k3**4)) - 70*g2*k1**2*(k1**2 + 5*k2**2 + k3**2)) + 2*f**2*(f**2*(16*k1**4 + 5*k1**2*k2**2) + 3*f*(k1**4*(5*C - 5) + k1**2*(k2**2*(29*C - 22) + k3**2*(7 - 4*C)) + k2**2*(4*C - 2)*(k2**2 - k3**2)) - 7*k1**2*(b2*k3**2 + g2*(3*k1**2 + 17*k2**2 - 2*k3**2))))*cos(2*theta))/(1260*k2*k3**4)
16
+ return np.sqrt((4*np.pi))*(perm12+perm13+perm23)
17
+
18
+ def l2(cosmo_functions,k1,k2,k3=None,theta=None,zz=0,r=0,s=0,nonlin=False,growth2=False):
19
+
20
+ #get generic cosmology parameters
21
+ k1,k2,k3,theta,Pk1,Pk2,Pk3,Pkd1,Pkd2,Pkd3,Pkdd1,Pkdd2,Pkdd3,d,K,C,f,D1,b1,b2,g2 = cosmo_functions.get_params(k1,k2,k3,theta,zz,nonlin=nonlin,growth2=growth2)
22
+
23
+ cos = lambda x: np.cos(x)
24
+ sin = lambda x: np.sin(x)
25
+
26
+ perm12 = D1**4*Pk1*Pk2*f*(3696*C*b1**2*k1**3*k2 - 3696*C*b1**2*k1**2*k2**2*cos(3*theta) - 1386*C*b1**2*k1*k2**3*cos(4*theta) - 462*C*b1**2*k1*k2**3 - 726*C*b1*f*k1**3*k2*cos(4*theta) + 4158*C*b1*f*k1**3*k2 - 4554*C*b1*f*k1**2*k2**2*cos(3*theta) - 594*C*b1*f*k1**2*k2**2*cos(5*theta) - 1914*C*b1*f*k1*k2**3*cos(4*theta) + 594*C*b1*f*k1*k2**3 - 594*C*f**2*k1**3*k2*cos(4*theta) + 858*C*f**2*k1**3*k2 - 1254*C*f**2*k1**2*k2**2*cos(3*theta) - 462*C*f**2*k1**2*k2**2*cos(5*theta) - 528*C*f**2*k1*k2**3*cos(4*theta) - 66*C*f**2*k1*k2**3*cos(6*theta) + 528*C*f**2*k1*k2**3 - 693*K*b1**2*k1*k2*k3**2*cos(4*theta) + 1617*K*b1**2*k1*k2*k3**2 - 363*K*b1*f*k1*k2*k3**2*cos(4*theta) + 495*K*b1*f*k1*k2*k3**2 + 4620*b1**3*k1*k2*k3**2 + 594*b1**2*f*k1**2*k3**2*cos(3*theta) + 10824*b1**2*f*k1*k2*k3**2 + 1188*b1**2*f*k2**2*k3**2*cos(3*theta) + 7392*b1**2*k1**3*k2 + 5082*b1**2*k1**2*k2**2*cos(3*theta) + 1386*b1**2*k1**2*k3**2*cos(3*theta) + 1386*b1**2*k1*k2**3*cos(4*theta) + 6006*b1**2*k1*k2**3 + 693*b1**2*k1*k2*k3**2*cos(4*theta) + 7623*b1**2*k1*k2*k3**2 + 1386*b1**2*k2**4*cos(3*theta) + 1386*b1**2*k2**2*k3**2*cos(3*theta) + 4620*b1*b2*k1*k2*k3**2 + 924*b1*f**2*k1**2*k3**2*cos(3*theta) + 396*b1*f**2*k1*k2*k3**2*cos(4*theta) + 7920*b1*f**2*k1*k2*k3**2 + 1584*b1*f**2*k2**2*k3**2*cos(3*theta) + 726*b1*f*k1**4*cos(3*theta) + 1320*b1*f*k1**3*k2*cos(4*theta) + 11352*b1*f*k1**3*k2 + 9570*b1*f*k1**2*k2**2*cos(3*theta) + 594*b1*f*k1**2*k2**2*cos(5*theta) + 726*b1*f*k1**2*k3**2*cos(3*theta) + 2508*b1*f*k1*k2**3*cos(4*theta) + 10164*b1*f*k1*k2**3 + 363*b1*f*k1*k2*k3**2*cos(4*theta) + 2937*b1*f*k1*k2*k3**2 + 1914*b1*f*k2**4*cos(3*theta) + 726*b1*f*k2**2*k3**2*cos(3*theta) + 1386*b1*g2*k1*k2*k3**2*cos(4*theta) - 3234*b1*g2*k1*k2*k3**2 + 1716*b2*f*k1*k2*k3**2 + 410*f**3*k1**2*k3**2*cos(3*theta) + 272*f**3*k1*k2*k3**2*cos(4*theta) + 2016*f**3*k1*k2*k3**2 + 530*f**3*k2**2*k3**2*cos(3*theta) + 30*f**3*k2**2*k3**2*cos(5*theta) + 594*f**2*k1**4*cos(3*theta) + 1056*f**2*k1**3*k2*cos(4*theta) + 4224*f**2*k1**3*k2 + 4422*f**2*k1**2*k2**2*cos(3*theta) + 528*f**2*k1**2*k2**2*cos(5*theta) + 1254*f**2*k1*k2**3*cos(4*theta) + 66*f**2*k1*k2**3*cos(6*theta) + 4026*f**2*k1*k2**3 + 726*f**2*k2**4*cos(3*theta) + 66*f**2*k2**4*cos(5*theta) + 726*f*g2*k1*k2*k3**2*cos(4*theta) - 990*f*g2*k1*k2*k3**2 + 2*k1*k2*(1386*b1**3*k3**2 - 66*b1**2*(k1**2*(28*C - 56) - k2**2*(14*C + 56) + k3**2*(7*K - 62*f - 49)) + 66*b1*(57*f**2*k3**2 + f*(k1**2*(96 - 26*C) + k2**2*(10*C + 96) - k3**2*(K - 23)) + k3**2*(21*b2 + 14*g2)) + f*(1096*f**2*k3**2 + f*k1**2*(2640 - 132*C) + f*k2**2*(33*C + 2607) + k3**2*(726*b2 + 132*g2)))*cos(2*theta) + (3696*b1**3*k3**2*(k1**2 + k2**2) + 66*b1**2*(56*k1**4 + k1**2*(k2**2*(56*C + 259) + k3**2*(135*f + 91)) + 7*k2**2*(5*k2**2 + k3**2*(18*f + 13))) + 66*b1*f*(85*k1**4 + k1**2*(k2**2*(78*C + 422) + k3**2*(106*f + 37)) + 67*k2**4 + k2**2*k3**2*(96*f + 37)) + 6*f**2*(280*f*k2**2*k3**2 + 341*k1**4 + k1**2*(305*f*k3**2 + k2**2*(286*C + 1815)) + 308*k2**4))*cos(theta))/(5544*k1*k2*k3**2)
27
+ perm13 = -D1**4*Pk1*Pk3*f*(1848*C*b1**2*k1**3*k3**2 + 5544*C*b1**2*k1**2*k2*k3**2*cos(3*theta) + 1386*C*b1**2*k1*k2**2*k3**2*cos(4*theta) + 2310*C*b1**2*k1*k2**2*k3**2 - 1848*C*b1**2*k1*k3**4 + 3432*C*b1*f*k1**5 + 5280*C*b1*f*k1**4*k2*cos(3*theta) + 3102*C*b1*f*k1**3*k2**2*cos(4*theta) + 14322*C*b1*f*k1**3*k2**2 + 8514*C*b1*f*k1**2*k2**3*cos(3*theta) + 594*C*b1*f*k1**2*k2**3*cos(5*theta) + 528*C*b1*f*k1**2*k2*k3**2*cos(3*theta) + 1188*C*b1*f*k1*k2**4*cos(4*theta) + 1980*C*b1*f*k1*k2**4 + 726*C*b1*f*k1*k2**2*k3**2*cos(4*theta) + 858*C*b1*f*k1*k2**2*k3**2 - 3432*C*b1*f*k1*k3**4 + 2904*C*f**2*k1**5 + 4224*C*f**2*k1**4*k2*cos(3*theta) + 2706*C*f**2*k1**3*k2**2*cos(4*theta) + 13134*C*f**2*k1**3*k2**2 - 2904*C*f**2*k1**3*k3**2 + 6006*C*f**2*k1**2*k2**3*cos(3*theta) + 726*C*f**2*k1**2*k2**3*cos(5*theta) - 1848*C*f**2*k1**2*k2*k3**2*cos(3*theta) + 792*C*f**2*k1*k2**4*cos(4*theta) + 66*C*f**2*k1*k2**4*cos(6*theta) + 1848*C*f**2*k1*k2**4 - 264*C*f**2*k1*k2**2*k3**2*cos(4*theta) - 2376*C*f**2*k1*k2**2*k3**2 + 3696*K*b1**2*k1**5 + 10164*K*b1**2*k1**3*k2**2 + 4620*K*b1**2*k1**2*k2**3*cos(3*theta) + 693*K*b1**2*k1*k2**4*cos(4*theta) + 1155*K*b1**2*k1*k2**4 + 924*K*b1**2*k1*k2**2*k3**2 - 3696*K*b1**2*k1*k3**4 + 3168*K*b1*f*k1**5 + 9636*K*b1*f*k1**3*k2**2 - 3168*K*b1*f*k1**3*k3**2 + 3036*K*b1*f*k1**2*k2**3*cos(3*theta) + 363*K*b1*f*k1*k2**4*cos(4*theta) + 1221*K*b1*f*k1*k2**4 - 1716*K*b1*f*k1*k2**2*k3**2 - 924*b1**3*k1*k2**2*k3**2 - 5148*b1**2*f*k1**3*k2**2 - 1782*b1**2*f*k1**2*k2**3*cos(3*theta) - 792*b1**2*f*k1*k2**4 + 3432*b1**2*f*k1*k2**2*k3**2 + 1188*b1**2*f*k2**3*k3**2*cos(3*theta) - 5544*b1**2*k1**3*k2**2 - 924*b1**2*k1**3*k3**2 - 3234*b1**2*k1**2*k2**3*cos(3*theta) - 4158*b1**2*k1**2*k2*k3**2*cos(3*theta) - 693*b1**2*k1*k2**4*cos(4*theta) - 1155*b1**2*k1*k2**4 - 1386*b1**2*k1*k2**2*k3**2*cos(4*theta) - 462*b1**2*k1*k2**2*k3**2 + 924*b1**2*k1*k3**4 + 1386*b1**2*k2**3*k3**2*cos(3*theta) + 1386*b1**2*k2*k3**4*cos(3*theta) - 3696*b1*b2*k1**3*k3**2 - 924*b1*b2*k1*k2**2*k3**2 - 3696*b1*b2*k1*k3**4 - 2904*b1*f**2*k1**3*k2**2 + 264*b1*f**2*k1*k2**4*cos(4*theta) + 2376*b1*f**2*k1*k2**4 + 4356*b1*f**2*k1*k2**2*k3**2 + 660*b1*f**2*k2**5*cos(3*theta) + 924*b1*f**2*k2**3*k3**2*cos(3*theta) - 1716*b1*f*k1**5 - 3366*b1*f*k1**4*k2*cos(3*theta) - 2508*b1*f*k1**3*k2**2*cos(4*theta) - 15708*b1*f*k1**3*k2**2 - 9636*b1*f*k1**2*k2**3*cos(3*theta) - 594*b1*f*k1**2*k2**3*cos(5*theta) - 264*b1*f*k1**2*k2*k3**2*cos(3*theta) - 1551*b1*f*k1*k2**4*cos(4*theta) - 3201*b1*f*k1*k2**4 - 132*b1*f*k1*k2**2*k3**2*cos(4*theta) + 4092*b1*f*k1*k2**2*k3**2 + 1716*b1*f*k1*k3**4 + 1914*b1*f*k2**3*k3**2*cos(3*theta) + 726*b1*f*k2*k3**4*cos(3*theta) - 7392*b1*g2*k1**5 - 20328*b1*g2*k1**3*k2**2 - 9240*b1*g2*k1**2*k2**3*cos(3*theta) - 1386*b1*g2*k1*k2**4*cos(4*theta) - 2310*b1*g2*k1*k2**4 - 1848*b1*g2*k1*k2**2*k3**2 + 7392*b1*g2*k1*k3**4 - 3168*b2*f*k1**3*k3**2 - 1716*b2*f*k1*k2**2*k3**2 + 1220*f**3*k1**3*k2**2 + 1230*f**3*k1**2*k2**3*cos(3*theta) + 408*f**3*k1*k2**4*cos(4*theta) + 3024*f**3*k1*k2**4 + 530*f**3*k2**5*cos(3*theta) + 30*f**3*k2**5*cos(5*theta) - 1452*f**2*k1**5 - 2706*f**2*k1**4*k2*cos(3*theta) - 2112*f**2*k1**3*k2**2*cos(4*theta) - 9768*f**2*k1**3*k2**2 + 1452*f**2*k1**3*k3**2 - 5280*f**2*k1**2*k2**3*cos(3*theta) - 660*f**2*k1**2*k2**3*cos(5*theta) + 1518*f**2*k1**2*k2*k3**2*cos(3*theta) - 792*f**2*k1*k2**4*cos(4*theta) - 66*f**2*k1*k2**4*cos(6*theta) - 1848*f**2*k1*k2**4 + 594*f**2*k1*k2**2*k3**2*cos(4*theta) + 3366*f**2*k1*k2**2*k3**2 + 726*f**2*k2**3*k3**2*cos(3*theta) + 66*f**2*k2**3*k3**2*cos(5*theta) - 6336*f*g2*k1**5 - 19272*f*g2*k1**3*k2**2 + 6336*f*g2*k1**3*k3**2 - 6072*f*g2*k1**2*k2**3*cos(3*theta) - 726*f*g2*k1*k2**4*cos(4*theta) - 2442*f*g2*k1*k2**4 + 3432*f*g2*k1*k2**2*k3**2 - 6*k1*(462*b1**3*k2**2*k3**2 + 22*b1**2*(k1**2*(k2**2*(-91*K + 33*f + 42) + k3**2*(21 - 42*C)) + k2**4*(-14*K + 18*f + 14) + k2**2*k3**2*(-28*C + 7*K - 22*f + 14) + k3**4*(42*C - 21)) + 22*b1*(f**2*k2**2*(18*k1**2 - 20*k2**2 - 27*k3**2) + f*(k1**4*(11 - 22*C) + k1**2*k2**2*(-156*C - 71*K + 150) - k2**4*(24*C + 12*K - 36) + k2**2*k3**2*(12*C + 11*K - 42) + k3**4*(22*C - 11)) + 7*k2**2*(3*b2*k3**2 + g2*(26*k1**2 + 4*k2**2 - 2*k3**2))) + f*(-2*f**2*(85*k1**2*k2**2 + 274*k2**4) - 11*f*(k1**4*(36*C - 18) + 6*k1**2*(k2**2*(40*C - 30) + k3**2*(3 - 6*C)) + k2**4*(39*C - 39) + k2**2*k3**2*(60 - 40*C)) + 22*k2**2*(11*b2*k3**2 + 2*g2*(71*k1**2 + 12*k2**2 - 11*k3**2))))*cos(2*theta) + 6*k2*(616*b1**3*k3**2*(-k1**2 + k3**2) - 11*b1**2*(k1**4*(-224*K + 48*f + 56) + k1**2*(k2**2*(-154*K + 117*f + 119) + k3**2*(105 - 140*C)) - k3**2*(k2**2*(78*f + 35) + k3**2*(48*f + 91))) - 11*b1*(f**2*(40*k1**4 - 40*k1**2*k3**2 - 30*k2**4 - 66*k2**2*k3**2) - f*(k1**4*(304*C + 192*K - 237) + k1**2*(k2**2*(246*C + 146*K - 325) - k3**2*(8*C + 96*K - 52)) + 67*k2**2*k3**2 + 37*k3**4) + 28*k1**2*(4*b2*k3**2 + 16*g2*k1**2 + 11*g2*k2**2)) + f*(5*f**2*(183*k1**2*k2**2 + 56*k2**4) + 11*f*(k1**4*(256*C - 159) + k1**2*(k2**2*(218*C - 190) + k3**2*(97 - 132*C)) + 28*k2**2*k3**2) - 44*k1**2*(24*b2*k3**2 + g2*(96*k1**2 + 73*k2**2 - 48*k3**2))))*cos(theta))/(5544*k1*k3**4)
28
+ perm23 = -D1**4*Pk2*Pk3*f*(3696*C*b1**2*k1**2*k2*k3**2 + 7392*C*b1**2*k2**3*k3**2 - 7392*C*b1**2*k2*k3**4 + 3168*C*b1*f*k1**4*k2 + 3168*C*b1*f*k1**3*k2**2*cos(3*theta) + 726*C*b1*f*k1**2*k2**3*cos(4*theta) + 21450*C*b1*f*k1**2*k2**3 + 726*C*b1*f*k1**2*k2*k3**2*cos(4*theta) - 3894*C*b1*f*k1**2*k2*k3**2 + 2904*C*b1*f*k1*k2**4*cos(3*theta) + 2904*C*b1*f*k1*k2**2*k3**2*cos(3*theta) + 3432*C*b1*f*k2**5 - 3432*C*b1*f*k2*k3**4 + 594*C*f**2*k1**4*k2*cos(4*theta) + 2046*C*f**2*k1**4*k2 + 5478*C*f**2*k1**3*k2**2*cos(3*theta) + 462*C*f**2*k1**3*k2**2*cos(5*theta) + 2640*C*f**2*k1**2*k2**3*cos(4*theta) + 66*C*f**2*k1**2*k2**3*cos(6*theta) + 13464*C*f**2*k1**2*k2**3 - 2904*C*f**2*k1**2*k2*k3**2 + 4752*C*f**2*k1*k2**4*cos(3*theta) + 264*C*f**2*k1*k2**4*cos(5*theta) - 1848*C*f**2*k1*k2**2*k3**2*cos(3*theta) + 264*C*f**2*k2**5*cos(4*theta) + 2376*C*f**2*k2**5 - 264*C*f**2*k2**3*k3**2*cos(4*theta) - 2376*C*f**2*k2**3*k3**2 + 1848*K*b1**2*k1**4*k2 + 1848*K*b1**2*k1**3*k2**2*cos(3*theta) + 693*K*b1**2*k1**2*k2**3*cos(4*theta) + 12243*K*b1**2*k1**2*k2**3 + 693*K*b1**2*k1**2*k2*k3**2*cos(4*theta) - 2541*K*b1**2*k1**2*k2*k3**2 + 2772*K*b1**2*k1*k2**4*cos(3*theta) + 2772*K*b1**2*k1*k2**2*k3**2*cos(3*theta) + 924*K*b1**2*k2**5 - 924*K*b1**2*k2*k3**4 + 363*K*b1*f*k1**4*k2*cos(4*theta) + 1221*K*b1*f*k1**4*k2 + 3333*K*b1*f*k1**3*k2**2*cos(3*theta) + 297*K*b1*f*k1**3*k2**2*cos(5*theta) + 1782*K*b1*f*k1**2*k2**3*cos(4*theta) + 7854*K*b1*f*k1**2*k2**3 - 1716*K*b1*f*k1**2*k2*k3**2 + 3564*K*b1*f*k1*k2**4*cos(3*theta) - 1188*K*b1*f*k1*k2**2*k3**2*cos(3*theta) + 792*K*b1*f*k2**5 - 792*K*b1*f*k2**3*k3**2 - 3696*b1**3*k1**2*k2*k3**2 - 3168*b1**2*f*k1**4*k2 - 5148*b1**2*f*k1**2*k2**3 + 3432*b1**2*f*k1**2*k2*k3**2 - 594*b1**2*f*k1*k2**4*cos(3*theta) + 594*b1**2*f*k1*k3**4*cos(3*theta) - 1848*b1**2*k1**4*k2 - 1848*b1**2*k1**3*k2**2*cos(3*theta) - 693*b1**2*k1**2*k2**3*cos(4*theta) - 4851*b1**2*k1**2*k2**3 - 693*b1**2*k1**2*k2*k3**2*cos(4*theta) - 1155*b1**2*k1**2*k2*k3**2 - 1386*b1**2*k1*k2**4*cos(3*theta) + 1386*b1**2*k1*k3**4*cos(3*theta) - 3696*b1**2*k2**3*k3**2 + 3696*b1**2*k2*k3**4 - 3696*b1*b2*k1**2*k2*k3**2 - 924*b1*b2*k2**3*k3**2 - 924*b1*b2*k2*k3**4 + 2904*b1*f**2*k1**4*k2 + 924*b1*f**2*k1**3*k3**2*cos(3*theta) - 264*b1*f**2*k1**2*k2**3*cos(4*theta) - 2376*b1*f**2*k1**2*k2**3 + 396*b1*f**2*k1**2*k2*k3**2*cos(4*theta) + 3564*b1*f**2*k1**2*k2*k3**2 - 660*b1*f**2*k1*k2**4*cos(3*theta) + 660*b1*f**2*k1*k2**2*k3**2*cos(3*theta) - 363*b1*f*k1**4*k2*cos(4*theta) - 4389*b1*f*k1**4*k2 - 5775*b1*f*k1**3*k2**2*cos(3*theta) - 297*b1*f*k1**3*k2**2*cos(5*theta) + 726*b1*f*k1**3*k3**2*cos(3*theta) - 1914*b1*f*k1**2*k2**3*cos(4*theta) - 18678*b1*f*k1**2*k2**3 - 132*b1*f*k1**2*k2*k3**2*cos(4*theta) + 6468*b1*f*k1**2*k2*k3**2 - 3366*b1*f*k1*k2**4*cos(3*theta) - 264*b1*f*k1*k2**2*k3**2*cos(3*theta) + 726*b1*f*k1*k3**4*cos(3*theta) - 1716*b1*f*k2**5 + 1716*b1*f*k2*k3**4 - 3696*b1*g2*k1**4*k2 - 3696*b1*g2*k1**3*k2**2*cos(3*theta) - 1386*b1*g2*k1**2*k2**3*cos(4*theta) - 24486*b1*g2*k1**2*k2**3 - 1386*b1*g2*k1**2*k2*k3**2*cos(4*theta) + 5082*b1*g2*k1**2*k2*k3**2 - 5544*b1*g2*k1*k2**4*cos(3*theta) - 5544*b1*g2*k1*k2**2*k3**2*cos(3*theta) - 1848*b1*g2*k2**5 + 1848*b1*g2*k2*k3**4 - 1716*b2*f*k1**2*k2*k3**2 - 1188*b2*f*k1*k2**2*k3**2*cos(3*theta) - 792*b2*f*k2**3*k3**2 + 410*f**3*k1**5*cos(3*theta) + 408*f**3*k1**4*k2*cos(4*theta) + 3024*f**3*k1**4*k2 + 1590*f**3*k1**3*k2**2*cos(3*theta) + 90*f**3*k1**3*k2**2*cos(5*theta) + 180*f**3*k1**2*k2**3*cos(4*theta) + 920*f**3*k1**2*k2**3 - 594*f**2*k1**4*k2*cos(4*theta) - 2046*f**2*k1**4*k2 - 4884*f**2*k1**3*k2**2*cos(3*theta) - 462*f**2*k1**3*k2**2*cos(5*theta) + 594*f**2*k1**3*k3**2*cos(3*theta) - 2178*f**2*k1**2*k2**3*cos(4*theta) - 66*f**2*k1**2*k2**3*cos(6*theta) - 9834*f**2*k1**2*k2**3 + 462*f**2*k1**2*k2*k3**2*cos(4*theta) + 3630*f**2*k1**2*k2*k3**2 - 3102*f**2*k1*k2**4*cos(3*theta) - 198*f**2*k1*k2**4*cos(5*theta) + 1650*f**2*k1*k2**2*k3**2*cos(3*theta) + 66*f**2*k1*k2**2*k3**2*cos(5*theta) - 132*f**2*k2**5*cos(4*theta) - 1188*f**2*k2**5 + 132*f**2*k2**3*k3**2*cos(4*theta) + 1188*f**2*k2**3*k3**2 - 726*f*g2*k1**4*k2*cos(4*theta) - 2442*f*g2*k1**4*k2 - 6666*f*g2*k1**3*k2**2*cos(3*theta) - 594*f*g2*k1**3*k2**2*cos(5*theta) - 3564*f*g2*k1**2*k2**3*cos(4*theta) - 15708*f*g2*k1**2*k2**3 + 3432*f*g2*k1**2*k2*k3**2 - 7128*f*g2*k1*k2**4*cos(3*theta) + 2376*f*g2*k1*k2**2*k3**2*cos(3*theta) - 1584*f*g2*k2**5 + 1584*f*g2*k2**3*k3**2 + 6*k1*(616*b1**3*k3**2*(-k2**2 + k3**2) - 11*b1**2*(4*k1**2*(k2**2*(-49*K + 36*f + 35) - k3**2*(24*f + 14)) + k2**4*(-182*K + 39*f + 35) + k2**2*k3**2*(-224*C + 42*K + 168) - k3**4*(39*f + 91)) + 11*b1*(f**2*(40*k1**4 + 66*k1**2*k3**2 + 30*k2**2*(-k2**2 + k3**2)) + f*(k1**2*(k2**2*(336*C + 137*K - 388) + 85*k3**2) + k2**4*(340*C + 138*K - 237) - k2**2*k3**2*(44*C + 78*K - 52) + 37*k3**4) - 28*k2**2*(4*b2*k3**2 + g2*(14*k1**2 + 13*k2**2 - 3*k3**2))) + f*(5*f**2*(61*k1**4 + 168*k1**2*k2**2) + 11*f*(k1**2*(k2**2*(230*C - 199) + 31*k3**2) + 2*k2**2*(k2**2*(122*C - 75) + k3**2*(47 - 66*C))) - 22*k2**2*(39*b2*k3**2 + g2*(137*k1**2 + 138*k2**2 - 78*k3**2))))*cos(theta) + 6*k2*(22*b1**2*(21*K*(k2**4 - k3**4) + k1**4*(14*K - 14) + k1**2*(k2**2*(70*K - 33*f - 42) + k3**2*(28*C + 14*K + 22*f - 14))) + 22*b1*(-21*b2*k3**2*(k2**2 + k3**2) + 2*f**2*k1**2*(9*k1**2 - 10*k2**2 + 15*k3**2) + f*(k1**4*(24*C + 12*K - 36) + k1**2*(k2**2*(120*C + 71*K - 132) + k3**2*(24*C - 11*K + 24)) + (k2**2 - k3**2)*(k2**2*(22*C + 18*K - 11) + k3**2*(22*C - 11))) - 7*g2*(4*k1**4 + 4*k1**2*(5*k2**2 + k3**2) + 6*k2**4 - 6*k3**4)) + f*(-22*b2*k3**2*(11*k1**2 + 18*k2**2) + 2*f**2*(274*k1**4 + 95*k1**2*k2**2) + 11*f*(k1**4*(40*C - 40) + k1**2*(k2**2*(235*C - 177) + k3**2*(58 - 36*C)) + k2**2*(40*C - 20)*(k2**2 - k3**2)) - 44*g2*(12*k1**4 + k1**2*(71*k2**2 - 11*k3**2) + 18*k2**4 - 18*k2**2*k3**2)))*cos(2*theta))/(5544*k2*k3**4)
29
+ return np.sqrt((4*np.pi)/5)*(perm12+perm13+perm23)
@@ -0,0 +1,85 @@
1
+ import numpy as np
2
+
3
+ class GR1:
4
+ def l1(cosmo_functions,k1,k2,k3=None,theta=None,zz=0,r=0,s=0,nonlin=False,growth2=False):
5
+ #get generic cosmology parameters
6
+ k1,k2,k3,theta,Pk1,Pk2,Pk3,Pkd1,Pkd2,Pkd3,Pkdd1,Pkdd2,Pkdd3,d,K,C,f,D1,b1,b2,g2 = cosmo_functions.get_params(k1,k2,k3,theta,zz,nonlin=nonlin,growth2=growth2)
7
+ gr1,gr2,grd1,beta6,beta7,beta8,beta9,beta10,beta11,beta12,beta13,beta14,beta15,beta16,beta17,beta18,beta19,betad14,betad15,betad16,betad17,betad18,betad19 = cosmo_functions.get_beta_funcs(zz)
8
+
9
+ cos = lambda x: np.cos(x)
10
+ sin = lambda x: np.sin(x)
11
+
12
+ perm12 = 1j*D1**4*Pk1*Pk2*(-420*C*b1**2*beta19*k1**3*k2**2 + 210*C*b1**2*beta19*k1**2*k2**3*cos(3*theta) + 42*C*b1*beta19*f*k1**3*k2**2*cos(4*theta) - 378*C*b1*beta19*f*k1**3*k2**2 + 252*C*b1*beta19*f*k1**2*k2**3*cos(3*theta) - 126*C*b1*f*gr1*k1**4*k2*cos(3*theta) - 84*C*b1*f*gr1*k1**3*k2**2*cos(4*theta) + 504*C*b1*f*gr1*k1**3*k2**2 - 378*C*b1*f*gr1*k1**2*k2**3*cos(3*theta) - 42*C*b1*f*gr1*k1*k2**4*cos(4*theta) + 126*C*b1*f*gr1*k1*k2**4 + 36*C*beta19*f**2*k1**3*k2**2*cos(4*theta) - 72*C*beta19*f**2*k1**3*k2**2 + 63*C*beta19*f**2*k1**2*k2**3*cos(3*theta) + 9*C*beta19*f**2*k1**2*k2**3*cos(5*theta) - 90*C*f**2*gr1*k1**4*k2*cos(3*theta) - 108*C*f**2*gr1*k1**3*k2**2*cos(4*theta) + 216*C*f**2*gr1*k1**3*k2**2 - 189*C*f**2*gr1*k1**2*k2**3*cos(3*theta) - 27*C*f**2*gr1*k1**2*k2**3*cos(5*theta) - 36*C*f**2*gr1*k1*k2**4*cos(4*theta) + 72*C*f**2*gr1*k1*k2**4 - 105*K*b1**2*gr1*k1**2*k2*k3**2*cos(3*theta) + 210*K*b1**2*gr1*k1*k2**2*k3**2 - 63*K*b1*f*gr1*k1**2*k2*k3**2*cos(3*theta) - 21*K*b1*f*gr1*k1*k2**2*k3**2*cos(4*theta) + 63*K*b1*f*gr1*k1*k2**2*k3**2 + 420*b1**2*beta14*k1**3*k3**2 + 210*b1**2*beta15*k1*k2**2*k3**2 + 420*b1**2*beta16*k1*k2**2*k3**2 + 252*b1**2*beta17*k1**3*k3**2 + 168*b1**2*beta18*k1*k2**2*k3**2 - 630*b1**2*beta19*k1**3*k2**2 - 210*b1**2*beta19*k1**2*k2**3*cos(3*theta) - 210*b1**2*beta19*k1*k2**4 + 168*b1**2*f*gr1*k1**3*k3**2 + 588*b1**2*f*gr1*k1*k2**2*k3**2 + 210*b1**2*gr1*k1**3*k3**2 + 105*b1**2*gr1*k1**2*k2*k3**2*cos(3*theta) + 840*b1**2*gr1*k1*k2**2*k3**2 + 420*b1*b2*gr1*k1*k2**2*k3**2 + 420*b1*beta14*f*k1**3*k3**2 + 42*b1*beta15*f*k1**2*k2*k3**2*cos(3*theta) + 252*b1*beta15*f*k1*k2**2*k3**2 + 420*b1*beta16*f*k1*k2**2*k3**2 + 288*b1*beta17*f*k1**3*k3**2 + 18*b1*beta17*f*k2**3*k3**2*cos(3*theta) + 18*b1*beta18*f*k1**2*k2*k3**2*cos(3*theta) + 216*b1*beta18*f*k1*k2**2*k3**2 - 42*b1*beta19*f*k1**4*k2*cos(3*theta) - 42*b1*beta19*f*k1**3*k2**2*cos(4*theta) - 714*b1*beta19*f*k1**3*k2**2 - 294*b1*beta19*f*k1**2*k2**3*cos(3*theta) - 252*b1*beta19*f*k1*k2**4 + 216*b1*f**2*gr1*k1**3*k3**2 + 72*b1*f**2*gr1*k1**2*k2*k3**2*cos(3*theta) + 648*b1*f**2*gr1*k1*k2**2*k3**2 + 36*b1*f**2*gr1*k2**3*k3**2*cos(3*theta) + 126*b1*f*gr1*k1**5 + 210*b1*f*gr1*k1**4*k2*cos(3*theta) + 84*b1*f*gr1*k1**3*k2**2*cos(4*theta) + 1176*b1*f*gr1*k1**3*k2**2 + 126*b1*f*gr1*k1**3*k3**2 + 504*b1*f*gr1*k1**2*k2**3*cos(3*theta) + 105*b1*f*gr1*k1**2*k2*k3**2*cos(3*theta) + 42*b1*f*gr1*k1*k2**4*cos(4*theta) + 588*b1*f*gr1*k1*k2**4 + 21*b1*f*gr1*k1*k2**2*k3**2*cos(4*theta) + 399*b1*f*gr1*k1*k2**2*k3**2 + 42*b1*f*gr1*k2**5*cos(3*theta) + 42*b1*f*gr1*k2**3*k3**2*cos(3*theta) + 210*b1*g2*gr1*k1**2*k2*k3**2*cos(3*theta) - 420*b1*g2*gr1*k1*k2**2*k3**2 + 168*b2*f*gr1*k1*k2**2*k3**2 + 108*beta14*f**2*k1**3*k3**2 + 18*beta14*f**2*k2**3*k3**2*cos(3*theta) + 36*beta15*f**2*k1**2*k2*k3**2*cos(3*theta) + 9*beta15*f**2*k1*k2**2*k3**2*cos(4*theta) + 81*beta15*f**2*k1*k2**2*k3**2 + 18*beta16*f**2*k1**2*k2*k3**2*cos(3*theta) + 108*beta16*f**2*k1*k2**2*k3**2 + 80*beta17*f**2*k1**3*k3**2 + 20*beta17*f**2*k2**3*k3**2*cos(3*theta) + 20*beta18*f**2*k1**2*k2*k3**2*cos(3*theta) + 4*beta18*f**2*k1*k2**2*k3**2*cos(4*theta) + 72*beta18*f**2*k1*k2**2*k3**2 - 36*beta19*f**2*k1**4*k2*cos(3*theta) - 45*beta19*f**2*k1**3*k2**2*cos(4*theta) - 225*beta19*f**2*k1**3*k2**2 - 135*beta19*f**2*k1**2*k2**3*cos(3*theta) - 9*beta19*f**2*k1**2*k2**3*cos(5*theta) - 9*beta19*f**2*k1*k2**4*cos(4*theta) - 81*beta19*f**2*k1*k2**4 + 80*f**3*gr1*k1**3*k3**2 + 60*f**3*gr1*k1**2*k2*k3**2*cos(3*theta) + 12*f**3*gr1*k1*k2**2*k3**2*cos(4*theta) + 216*f**3*gr1*k1*k2**2*k3**2 + 20*f**3*gr1*k2**3*k3**2*cos(3*theta) + 90*f**2*gr1*k1**5 + 198*f**2*gr1*k1**4*k2*cos(3*theta) + 135*f**2*gr1*k1**3*k2**2*cos(4*theta) + 765*f**2*gr1*k1**3*k2**2 + 441*f**2*gr1*k1**2*k2**3*cos(3*theta) + 27*f**2*gr1*k1**2*k2**3*cos(5*theta) + 63*f**2*gr1*k1*k2**4*cos(4*theta) + 387*f**2*gr1*k1*k2**4 + 36*f**2*gr1*k2**5*cos(3*theta) + 126*f*g2*gr1*k1**2*k2*k3**2*cos(3*theta) + 42*f*g2*gr1*k1*k2**2*k3**2*cos(4*theta) - 126*f*g2*gr1*k1*k2**2*k3**2 + 2*k1*(21*b1**2*(-5*beta19*k2**2*(k1**2*(3 - 2*C) + k2**2) + k3**2*(gr1*k1**2*(2*f + 5) + gr1*k2**2*(-5*K + 4*f + 10) + k2**2*(5*beta15 + 2*beta18))) + 3*b1*(24*f**2*gr1*k3**2*(k1**2 + 3*k2**2) + 7*f*gr1*(3*k1**4 + k1**2*(k2**2*(30 - 10*C) + 3*k3**2) + k2**4*(15 - 2*C) - k2**2*k3**2*(K - 8)) + 2*f*(-7*beta19*k2**2*(k1**2*(9 - 4*C) + 3*k2**2) + k3**2*(7*beta14*k1**2 + 6*beta17*k1**2 + k2**2*(21*beta15 + 7*beta16 + 12*beta18))) + 70*g2*gr1*k2**2*k3**2) + f*(6*f**2*gr1*k3**2*(5*k1**2 + 16*k2**2) + f*(-9*beta19*k2**2*(k1**2*(15 - 2*C) + 5*k2**2) + 9*gr1*(5*k1**4 + k1**2*k2**2*(50 - 6*C) + k2**4*(25 - 2*C)) + k3**2*(36*beta14*k1**2 + 30*beta17*k1**2 + k2**2*(45*beta15 + 36*beta16 + 32*beta18))) + gr1*k2**2*k3**2*(42*b2 + 42*g2)))*cos(2*theta) + 3*k2*(-7*b1**2*(10*beta19*(2*k1**4 + k1**2*k2**2*(C + 5)) - k3**2*(5*K*gr1*k1**2 + 20*beta14*k2**2 + 20*beta15*k1**2 + 20*beta16*k1**2 + 12*beta17*k2**2 + 12*beta18*k1**2 + 36*f*gr1*k1**2 + 12*f*gr1*k2**2 + 55*gr1*k1**2 + 20*gr1*k2**2)) + b1*(-14*beta19*f*k1**2*(11*k1**2 + k2**2*(6*C + 29)) + 12*f**2*gr1*k3**2*(28*k1**2 + 9*k2**2) + 7*f*gr1*(k1**4*(6*C + 50) + k1**2*(k2**2*(18*C + 96) + k3**2*(3*K + 31)) + 10*k2**2*(k2**2 + k3**2)) + 2*f*k3**2*(84*beta14*k2**2 + 77*beta15*k1**2 + 84*beta16*k1**2 + 57*beta17*k2**2 + 57*beta18*k1**2) + gr1*k1**2*k3**2*(140*b2 - 70*g2)) + 2*f*(-6*beta19*f*k1**2*(4*k1**2 + k2**2*(2*C + 11)) + 20*f**2*gr1*k3**2*(3*k1**2 + k2**2) + 3*f*gr1*(k1**4*(5*C + 39) + k1**2*k2**2*(12*C + 74) + 8*k2**4) + f*k3**2*(27*beta14*k2**2 + 24*beta15*k1**2 + 27*beta16*k1**2 + 20*beta17*k2**2 + 20*beta18*k1**2) + gr1*k1**2*k3**2*(42*b2 - 21*g2)))*cos(theta))/(420*k1**2*k2**2*k3**2)
13
+ perm13 = -1j*D1**4*Pk1*Pk3*(k2*(f*k1*k2**2*(36*C*f*gr1*k1**2 + 36*C*f*gr1*k2**2 + 21*b1*(4*beta19*k1**2*(C - 1) + gr1*(k1**2*(2 - 2*C) + k2**2*(K - 1) + k3**2*(2*C - 2))) - 9*beta15*f*k2**2 + 20*beta17*f*k2**2 - 4*beta18*f*k2**2 + 9*beta19*f*(k1**2*(12*C - 11) + k3**2) + 8*f**2*gr1*k2**2 - 27*f*gr1*k1**2 - 36*f*gr1*k2**2 + 9*f*gr1*k3**2 - 42*g2*gr1*k2**2)*cos(4*theta) + 2*k1*(21*b1**2*(gr1*k2**2*(k1**2*(-15*K + 4*f + 10) + k3**2*(5*K - 4*f - 10)) + k3**2*(5*beta19*(k1**2*(4*C - 3) + k3**2) + k2**2*(-5*beta15 + 6*beta17 - 2*beta18))) + 3*b1*(7*beta19*f*(k1**4*(20*C - 13) + k1**2*(k2**2*(24*C - 21) + k3**2*(4*C - 2)) + 3*k3**2*(k2**2 + k3**2)) - 24*f**2*gr1*k2**2*(k1**2 + k2**2 - k3**2) - f*(7*gr1*(k1**4*(4*C - 2) + 2*k1**2*(k2**2*(9*C - 4*K - 6) + k3**2*(2 - 4*C)) - k2**4*(3*K - 3) + k2**2*k3**2*(-6*C + 2*K + 6) + k3**4*(4*C - 2)) + k2**2*(14*beta14*(k1**2 - 3*k3**2) + 7*beta15*(7*k1**2 + 3*k2**2 + 3*k3**2) - 14*beta16*(3*k1**2 - k3**2) - 12*beta17*(9*k1**2 + 5*k2**2 + 3*k3**2) + 12*beta18*(3*k1**2 + k2**2 + k3**2))) + 70*g2*gr1*k2**2*(3*k1**2 - k3**2)) + f*(9*beta19*f*(k1**4*(36*C - 23) + k1**2*(k2**2*(40*C - 35) + k3**2*(13 - 16*C)) + 5*k2**2*k3**2) + k2**2*(252*C*f*gr1*k1**2 + 90*C*f*gr1*k2**2 - 72*C*f*gr1*k3**2 - 42*b2*gr1*k3**2 - 36*beta14*f*(k1**2 - 3*k3**2) - 9*beta15*f*(13*k1**2 + 5*k2**2) + 108*beta16*f*k1**2 - 36*beta16*f*k3**2 + 270*beta17*f*k1**2 + 160*beta17*f*k2**2 - 90*beta18*f*k1**2 - 32*beta18*f*k2**2 + 64*f**2*gr1*k2**2 - 171*f*gr1*k1**2 - 90*f*gr1*k2**2 + 81*f*gr1*k3**2 - 336*g2*gr1*k1**2 - 126*g2*gr1*k2**2 + 84*g2*gr1*k3**2)))*cos(2*theta) - 3*k1*(14*b1**2*(gr1*(5*K*(2*k1**4 + k1**2*(3*k2**2 - 4*k3**2) - k2**2*k3**2 + 2*k3**4) + k2**2*(-8*f - 10)*(k1**2 - k3**2)) + k3**2*(-20*C*beta19*k1**2 + 10*beta14*(k1**2 - k3**2) + 5*beta15*k2**2 - 10*beta16*k1**2 + 10*beta16*k3**2 - 12*beta17*k2**2 + 4*beta18*k2**2 + 15*beta19*k1**2 - 5*beta19*k3**2)) + b1*(-392*C*beta19*f*k1**4 - 308*C*beta19*f*k1**2*k2**2 + 56*C*beta19*f*k1**2*k3**2 + 112*C*f*gr1*k1**4 + 238*C*f*gr1*k1**2*k2**2 - 224*C*f*gr1*k1**2*k3**2 - 70*C*f*gr1*k2**2*k3**2 + 112*C*f*gr1*k3**4 - 140*K*f*gr1*k1**2*k2**2 - 35*K*f*gr1*k2**4 + 56*K*f*gr1*k2**2*k3**2 - 140*b2*gr1*k1**2*k3**2 + 140*b2*gr1*k3**4 + 28*beta14*f*(3*k1**4 + 2*k1**2*k2**2 - 6*k2**2*k3**2 - 3*k3**4) + 154*beta15*f*k1**2*k2**2 + 42*beta15*f*k2**4 + 42*beta15*f*k2**2*k3**2 - 28*beta16*f*(3*k1**4 + 6*k1**2*k2**2 - 2*k2**2*k3**2 - 3*k3**4) - 324*beta17*f*k1**2*k2**2 - 180*beta17*f*k2**4 - 108*beta17*f*k2**2*k3**2 + 108*beta18*f*k1**2*k2**2 + 36*beta18*f*k2**4 + 36*beta18*f*k2**2*k3**2 + 238*beta19*f*k1**4 + 266*beta19*f*k1**2*k2**2 - 28*beta19*f*k1**2*k3**2 - 42*beta19*f*k2**2*k3**2 - 42*beta19*f*k3**4 + 72*f**2*gr1*k1**2*k2**2 + 72*f**2*gr1*k2**4 - 72*f**2*gr1*k2**2*k3**2 - 56*f*gr1*k1**4 - 154*f*gr1*k1**2*k2**2 + 112*f*gr1*k1**2*k3**2 + 35*f*gr1*k2**4 + 70*f*gr1*k2**2*k3**2 - 56*f*gr1*k3**4 - 280*g2*gr1*k1**4 - 420*g2*gr1*k1**2*k2**2 + 560*g2*gr1*k1**2*k3**2 + 140*g2*gr1*k2**2*k3**2 - 280*g2*gr1*k3**4) - f**2*k1*k2**3*(3*C - 3)*(beta19 + gr1)*cos(5*theta) + f*(-264*C*beta19*f*k1**4 - 204*C*beta19*f*k1**2*k2**2 + 144*C*beta19*f*k1**2*k3**2 - 180*C*f*gr1*k1**2*k2**2 - 48*C*f*gr1*k2**4 + 72*C*f*gr1*k2**2*k3**2 + 56*b2*gr1*k2**2*k3**2 + 12*beta14*f*(5*k1**4 + k1**2*(3*k2**2 - 5*k3**2) - 9*k2**2*k3**2) + 102*beta15*f*k1**2*k2**2 + 27*beta15*f*k2**4 - 12*beta16*f*(5*k1**4 + k1**2*(9*k2**2 - 5*k3**2) - 3*k2**2*k3**2) - 240*beta17*f*k1**2*k2**2 - 120*beta17*f*k2**4 + 80*beta18*f*k1**2*k2**2 + 24*beta18*f*k2**4 + 162*beta19*f*k1**4 + 177*beta19*f*k1**2*k2**2 - 102*beta19*f*k1**2*k3**2 - 27*beta19*f*k2**2*k3**2 - 48*f**2*gr1*k2**4 + 117*f*gr1*k1**2*k2**2 + 48*f*gr1*k2**4 - 63*f*gr1*k2**2*k3**2 + 280*g2*gr1*k1**2*k2**2 + 70*g2*gr1*k2**4 - 112*g2*gr1*k2**2*k3**2)) + k2*(-105*b1**2*k1**2*(-2*beta19*k3**2*(C - 1) + gr1*k2**2*(K - 1)) + 3*b1*(14*beta19*f*k1**2*(k1**2*(11*C - 9) + k2**2*(3*C - 3) + k3**2*(3*C - 1)) + 12*f**2*gr1*k2**2*(-2*k1**2 + k3**2) - 7*f*gr1*(k1**4*(8*C - 6) + k1**2*(k2**2*(6*C - 7*K - 1) - k3**2*(8*C - 8)) - 2*k3**2*(k2**2 + k3**2)) + 2*f*k2**2*(-14*beta15*k1**2 + 3*beta17*(10*k1**2 + k3**2) - 9*beta18*k1**2) + 70*g2*gr1*k1**2*k2**2) + f*(9*beta19*f*k1**2*(k1**2*(46*C - 36) + k2**2*(11*C - 11) + k3**2*(10 - 4*C)) + 20*f**2*gr1*k2**2*(k1**2 + k2**2) + 9*f*gr1*(k1**4*(4*C - 2) + k1**2*(k2**2*(27*C - 23) + k3**2*(2 - 4*C)) + 4*k2**2*k3**2) + 2*f*k2**2*(9*beta14*k3**2 - 45*beta15*k1**2 + 9*beta16*k1**2 + 100*beta17*k1**2 + 10*beta17*k2**2 - 30*beta18*k1**2) - 294*g2*gr1*k1**2*k2**2))*cos(3*theta)) + (21*b1**2*(gr1*k2**2*(k1**4*(-60*K + 12*f + 20) + k1**2*(k2**2*(-15*K + 12*f + 15) - k3**2*(-60*K + 24*f + 40)) + k3**4*(12*f + 20)) + 2*k3**2*(5*beta19*k1**2*(k1**2*(4*C - 2) + k2**2*(3*C - 3) + k3**2*(2 - 4*C)) + 2*k2**2*(5*beta14*k3**2 - 5*beta15*k1**2 + 5*beta16*k1**2 + 9*beta17*k1**2 + 3*beta17*k2**2 - 3*beta18*k1**2))) + 3*b1*(14*beta19*f*k1**2*(k1**4*(12*C - 6) + k1**2*k2**2*(61*C - 45) + k2**4*(9*C - 9) + k2**2*k3**2*(7 - 3*C) + k3**4*(6 - 12*C)) + k2**2*(-448*C*f*gr1*k1**4 - 126*C*f*gr1*k1**2*k2**2 + 448*C*f*gr1*k1**2*k3**2 + 84*K*f*gr1*k1**4 + 203*K*f*gr1*k1**2*k2**2 - 84*K*f*gr1*k1**2*k3**2 + 140*b2*gr1*k1**2*k3**2 - 84*beta14*f*(2*k1**4 - 3*k1**2*k3**2 - k3**2*(k2**2 + k3**2)) - 28*beta15*f*k1**2*(3*k1**2 + 8*k2**2 + 3*k3**2) + 252*beta16*f*k1**4 + 84*beta16*f*k1**2*k2**2 - 84*beta16*f*k1**2*k3**2 + 180*beta17*f*k1**4 + 540*beta17*f*k1**2*k2**2 + 180*beta17*f*k1**2*k3**2 + 60*beta17*f*k2**4 + 54*beta17*f*k2**2*k3**2 - 60*beta18*f*k1**4 - 162*beta18*f*k1**2*k2**2 - 60*beta18*f*k1**2*k3**2 - 216*f**2*gr1*k1**2*k2**2 + 108*f**2*gr1*k2**2*k3**2 + 294*f*gr1*k1**4 - 7*f*gr1*k1**2*k2**2 - 364*f*gr1*k1**2*k3**2 + 70*f*gr1*k2**2*k3**2 + 70*f*gr1*k3**4 + 840*g2*gr1*k1**4 + 210*g2*gr1*k1**2*k2**2 - 840*g2*gr1*k1**2*k3**2)) + 2*f*(9*beta19*f*k1**2*(k1**4*(20*C - 10) + k1**2*(k2**2*(97*C - 72) + k3**2*(10 - 20*C)) + k2**4*(14*C - 14) + k2**2*k3**2*(25 - 18*C)) + k2**2*(162*C*f*gr1*k1**4 + 414*C*f*gr1*k1**2*k2**2 - 162*C*f*gr1*k1**2*k3**2 - 126*b2*gr1*k1**2*k3**2 - 9*beta14*f*(20*k1**4 - 30*k1**2*k3**2 - 9*k2**2*k3**2) - 45*beta15*f*k1**2*(2*k1**2 + 5*k2**2) + 270*beta16*f*k1**4 + 81*beta16*f*k1**2*k2**2 - 180*beta16*f*k1**2*k3**2 + 210*beta17*f*k1**4 + 600*beta17*f*k1**2*k2**2 + 60*beta17*f*k2**4 - 70*beta18*f*k1**4 - 180*beta18*f*k1**2*k2**2 + 60*f**2*gr1*k1**2*k2**2 + 60*f**2*gr1*k2**4 - 81*f*gr1*k1**4 - 342*f*gr1*k1**2*k2**2 + 81*f*gr1*k1**2*k3**2 + 72*f*gr1*k2**2*k3**2 - 252*g2*gr1*k1**4 - 609*g2*gr1*k1**2*k2**2 + 252*g2*gr1*k1**2*k3**2)))*cos(theta))/(420*k1**2*k2*k3**4)
14
+ perm23 = -1j*D1**4*Pk2*Pk3*(420*C*b1**2*beta19*k1**2*k2**2*k3**2 + 840*C*b1**2*beta19*k2**4*k3**2 - 840*C*b1**2*beta19*k2**2*k3**4 + 252*C*b1*beta19*f*k1**4*k2**2 + 252*C*b1*beta19*f*k1**3*k2**3*cos(3*theta) + 42*C*b1*beta19*f*k1**2*k2**4*cos(4*theta) + 1722*C*b1*beta19*f*k1**2*k2**4 + 42*C*b1*beta19*f*k1**2*k2**2*k3**2*cos(4*theta) - 294*C*b1*beta19*f*k1**2*k2**2*k3**2 + 168*C*b1*beta19*f*k1*k2**5*cos(3*theta) + 168*C*b1*beta19*f*k1*k2**3*k3**2*cos(3*theta) + 336*C*b1*beta19*f*k2**6 - 336*C*b1*beta19*f*k2**2*k3**4 - 252*C*b1*f*gr1*k1**4*k2**2 - 126*C*b1*f*gr1*k1**3*k2**3*cos(3*theta) + 126*C*b1*f*gr1*k1**3*k2*k3**2*cos(3*theta) - 1008*C*b1*f*gr1*k1**2*k2**4 + 1008*C*b1*f*gr1*k1**2*k2**2*k3**2 + 36*C*beta19*f**2*k1**4*k2**2*cos(4*theta) + 144*C*beta19*f**2*k1**4*k2**2 + 342*C*beta19*f**2*k1**3*k2**3*cos(3*theta) + 18*C*beta19*f**2*k1**3*k2**3*cos(5*theta) + 108*C*beta19*f**2*k1**2*k2**4*cos(4*theta) + 1008*C*beta19*f**2*k1**2*k2**4 - 216*C*beta19*f**2*k1**2*k2**2*k3**2 + 216*C*beta19*f**2*k1*k2**5*cos(3*theta) - 72*C*beta19*f**2*k1*k2**3*k3**2*cos(3*theta) + 216*C*beta19*f**2*k2**6 - 216*C*beta19*f**2*k2**4*k3**2 + 90*C*f**2*gr1*k1**5*k2*cos(3*theta) + 36*C*f**2*gr1*k1**4*k2**2*cos(4*theta) + 504*C*f**2*gr1*k1**4*k2**2 + 144*C*f**2*gr1*k1**3*k2**3*cos(3*theta) + 216*C*f**2*gr1*k1**2*k2**4 - 216*C*f**2*gr1*k1**2*k2**2*k3**2 - 210*K*b1**2*gr1*k1**4*k2**2 - 105*K*b1**2*gr1*k1**3*k2**3*cos(3*theta) + 105*K*b1**2*gr1*k1**3*k2*k3**2*cos(3*theta) - 840*K*b1**2*gr1*k1**2*k2**4 + 840*K*b1**2*gr1*k1**2*k2**2*k3**2 + 63*K*b1*f*gr1*k1**5*k2*cos(3*theta) + 21*K*b1*f*gr1*k1**4*k2**2*cos(4*theta) + 357*K*b1*f*gr1*k1**4*k2**2 + 84*K*b1*f*gr1*k1**3*k2**3*cos(3*theta) + 168*K*b1*f*gr1*k1**2*k2**4 - 168*K*b1*f*gr1*k1**2*k2**2*k3**2 + 420*b1**2*beta14*k1**2*k3**4 - 420*b1**2*beta15*k1**2*k2**2*k3**2 + 420*b1**2*beta16*k1**2*k2**2*k3**2 + 252*b1**2*beta17*k1**4*k3**2 + 504*b1**2*beta17*k1**2*k2**2*k3**2 - 168*b1**2*beta18*k1**2*k2**2*k3**2 - 420*b1**2*beta19*k1**2*k2**2*k3**2 - 420*b1**2*beta19*k2**4*k3**2 + 420*b1**2*beta19*k2**2*k3**4 + 252*b1**2*f*gr1*k1**4*k2**2 + 168*b1**2*f*gr1*k1**2*k2**4 - 336*b1**2*f*gr1*k1**2*k2**2*k3**2 + 168*b1**2*f*gr1*k1**2*k3**4 + 210*b1**2*gr1*k1**4*k2**2 + 105*b1**2*gr1*k1**3*k2**3*cos(3*theta) - 105*b1**2*gr1*k1**3*k2*k3**2*cos(3*theta) + 210*b1**2*gr1*k1**2*k2**4 - 420*b1**2*gr1*k1**2*k2**2*k3**2 + 210*b1**2*gr1*k1**2*k3**4 + 420*b1*b2*gr1*k1**2*k2**2*k3**2 + 252*b1*beta14*f*k1**4*k3**2 - 336*b1*beta14*f*k1**2*k2**4 + 504*b1*beta14*f*k1**2*k2**2*k3**2 + 168*b1*beta14*f*k1**2*k3**4 - 504*b1*beta15*f*k1**4*k2**2 - 42*b1*beta15*f*k1**3*k2**3*cos(3*theta) - 42*b1*beta15*f*k1**3*k2*k3**2*cos(3*theta) - 168*b1*beta15*f*k1**2*k2**4 - 168*b1*beta15*f*k1**2*k2**2*k3**2 + 252*b1*beta16*f*k1**4*k2**2 + 504*b1*beta16*f*k1**2*k2**4 - 168*b1*beta16*f*k1**2*k2**2*k3**2 + 180*b1*beta17*f*k1**6 + 1080*b1*beta17*f*k1**4*k2**2 + 108*b1*beta17*f*k1**4*k3**2 + 162*b1*beta17*f*k1**3*k2**3*cos(3*theta) + 54*b1*beta17*f*k1**3*k2*k3**2*cos(3*theta) + 324*b1*beta17*f*k1**2*k2**4 + 324*b1*beta17*f*k1**2*k2**2*k3**2 - 324*b1*beta18*f*k1**4*k2**2 - 54*b1*beta18*f*k1**3*k2**3*cos(3*theta) - 18*b1*beta18*f*k1**3*k2*k3**2*cos(3*theta) - 108*b1*beta18*f*k1**2*k2**4 - 108*b1*beta18*f*k1**2*k2**2*k3**2 - 252*b1*beta19*f*k1**4*k2**2 - 252*b1*beta19*f*k1**3*k2**3*cos(3*theta) - 42*b1*beta19*f*k1**2*k2**4*cos(4*theta) - 1218*b1*beta19*f*k1**2*k2**4 - 42*b1*beta19*f*k1**2*k2**2*k3**2*cos(4*theta) + 294*b1*beta19*f*k1**2*k2**2*k3**2 - 126*b1*beta19*f*k1*k2**5*cos(3*theta) - 84*b1*beta19*f*k1*k2**3*k3**2*cos(3*theta) + 42*b1*beta19*f*k1*k2*k3**4*cos(3*theta) - 168*b1*beta19*f*k2**6 + 168*b1*beta19*f*k2**2*k3**4 - 432*b1*f**2*gr1*k1**4*k2**2 + 216*b1*f**2*gr1*k1**4*k3**2 - 36*b1*f**2*gr1*k1**3*k2**3*cos(3*theta) + 36*b1*f**2*gr1*k1**3*k2*k3**2*cos(3*theta) - 63*b1*f*gr1*k1**5*k2*cos(3*theta) - 21*b1*f*gr1*k1**4*k2**2*cos(4*theta) + 21*b1*f*gr1*k1**4*k2**2 + 126*b1*f*gr1*k1**4*k3**2 + 84*b1*f*gr1*k1**3*k2**3*cos(3*theta) - 84*b1*f*gr1*k1**3*k2*k3**2*cos(3*theta) + 630*b1*f*gr1*k1**2*k2**4 - 756*b1*f*gr1*k1**2*k2**2*k3**2 + 126*b1*f*gr1*k1**2*k3**4 + 420*b1*g2*gr1*k1**4*k2**2 + 210*b1*g2*gr1*k1**3*k2**3*cos(3*theta) - 210*b1*g2*gr1*k1**3*k2*k3**2*cos(3*theta) + 1680*b1*g2*gr1*k1**2*k2**4 - 1680*b1*g2*gr1*k1**2*k2**2*k3**2 - 168*b2*f*gr1*k1**2*k2**2*k3**2 + 108*beta14*f**2*k1**4*k3**2 - 18*beta14*f**2*k1**3*k2**3*cos(3*theta) + 54*beta14*f**2*k1**3*k2*k3**2*cos(3*theta) - 216*beta14*f**2*k1**2*k2**4 + 324*beta14*f**2*k1**2*k2**2*k3**2 - 36*beta15*f**2*k1**5*k2*cos(3*theta) - 18*beta15*f**2*k1**4*k2**2*cos(4*theta) - 270*beta15*f**2*k1**4*k2**2 - 72*beta15*f**2*k1**3*k2**3*cos(3*theta) - 108*beta15*f**2*k1**2*k2**4 + 108*beta16*f**2*k1**4*k2**2 + 54*beta16*f**2*k1**3*k2**3*cos(3*theta) - 18*beta16*f**2*k1**3*k2*k3**2*cos(3*theta) + 324*beta16*f**2*k1**2*k2**4 - 216*beta16*f**2*k1**2*k2**2*k3**2 + 80*beta17*f**2*k1**6 + 100*beta17*f**2*k1**5*k2*cos(3*theta) + 40*beta17*f**2*k1**4*k2**2*cos(4*theta) + 720*beta17*f**2*k1**4*k2**2 + 180*beta17*f**2*k1**3*k2**3*cos(3*theta) + 240*beta17*f**2*k1**2*k2**4 - 20*beta18*f**2*k1**5*k2*cos(3*theta) - 12*beta18*f**2*k1**4*k2**2*cos(4*theta) - 216*beta18*f**2*k1**4*k2**2 - 60*beta18*f**2*k1**3*k2**3*cos(3*theta) - 80*beta18*f**2*k1**2*k2**4 - 36*beta19*f**2*k1**4*k2**2*cos(4*theta) - 144*beta19*f**2*k1**4*k2**2 - 306*beta19*f**2*k1**3*k2**3*cos(3*theta) - 18*beta19*f**2*k1**3*k2**3*cos(5*theta) + 36*beta19*f**2*k1**3*k2*k3**2*cos(3*theta) - 90*beta19*f**2*k1**2*k2**4*cos(4*theta) - 738*beta19*f**2*k1**2*k2**4 + 18*beta19*f**2*k1**2*k2**2*k3**2*cos(4*theta) + 270*beta19*f**2*k1**2*k2**2*k3**2 - 144*beta19*f**2*k1*k2**5*cos(3*theta) + 72*beta19*f**2*k1*k2**3*k3**2*cos(3*theta) - 108*beta19*f**2*k2**6 + 108*beta19*f**2*k2**4*k3**2 + 80*f**3*gr1*k1**6 + 40*f**3*gr1*k1**5*k2*cos(3*theta) + 4*f**3*gr1*k1**4*k2**2*cos(4*theta) + 72*f**3*gr1*k1**4*k2**2 - 90*f**2*gr1*k1**5*k2*cos(3*theta) - 36*f**2*gr1*k1**4*k2**2*cos(4*theta) - 414*f**2*gr1*k1**4*k2**2 + 90*f**2*gr1*k1**4*k3**2 - 108*f**2*gr1*k1**3*k2**3*cos(3*theta) + 36*f**2*gr1*k1**3*k2*k3**2*cos(3*theta) - 108*f**2*gr1*k1**2*k2**4 + 108*f**2*gr1*k1**2*k2**2*k3**2 - 126*f*g2*gr1*k1**5*k2*cos(3*theta) - 42*f*g2*gr1*k1**4*k2**2*cos(4*theta) - 714*f*g2*gr1*k1**4*k2**2 - 168*f*g2*gr1*k1**3*k2**3*cos(3*theta) - 336*f*g2*gr1*k1**2*k2**4 + 336*f*g2*gr1*k1**2*k2**2*k3**2 - 3*k1*k2*(-7*b1**2*(-20*K*gr1*(k2**2 - k3**2)**2 + gr1*k1**2*(k2**2*(-55*K + 24*f + 35) + k3**2*(15*K - 24*f - 35)) + 4*k3**2*(20*C*beta19*k2**2 - 5*beta14*k2**2 + 5*beta14*k3**2 - 5*beta15*k1**2 + 5*beta16*k2**2 - 5*beta16*k3**2 + 9*beta17*k1**2 - 3*beta18*k1**2 - 15*beta19*k2**2 + 5*beta19*k3**2)) + b1*(-588*C*beta19*f*k1**2*k2**2 - 616*C*beta19*f*k2**4 + 56*C*beta19*f*k2**2*k3**2 + 462*C*f*gr1*k1**2*k2**2 - 126*C*f*gr1*k1**2*k3**2 + 168*C*f*gr1*k2**4 - 336*C*f*gr1*k2**2*k3**2 + 168*C*f*gr1*k3**4 - 63*K*f*gr1*k1**4 - 224*K*f*gr1*k1**2*k2**2 + 84*K*f*gr1*k1**2*k3**2 - 140*b2*gr1*k2**2*k3**2 + 140*b2*gr1*k3**4 + 84*beta14*f*k1**2*k2**2 - 252*beta14*f*k1**2*k3**2 + 84*beta14*f*k2**4 - 84*beta14*f*k3**4 + 14*beta15*f*k1**2*(6*k1**2 + 17*k2**2 + 5*k3**2) - 252*beta16*f*k1**2*k2**2 + 84*beta16*f*k1**2*k3**2 - 84*beta16*f*k2**4 + 84*beta16*f*k3**4 - 6*beta17*f*k1**2*(50*k1**2 + 81*k2**2 + 27*k3**2) + 60*beta18*f*k1**4 + 162*beta18*f*k1**2*k2**2 + 54*beta18*f*k1**2*k3**2 + 504*beta19*f*k1**2*k2**2 - 84*beta19*f*k1**2*k3**2 + 378*beta19*f*k2**4 - 28*beta19*f*k2**2*k3**2 - 70*beta19*f*k3**4 + 120*f**2*gr1*k1**4 + 108*f**2*gr1*k1**2*k2**2 - 108*f**2*gr1*k1**2*k3**2 + 63*f*gr1*k1**4 - 308*f*gr1*k1**2*k2**2 + 140*f*gr1*k1**2*k3**2 - 84*f*gr1*k2**4 + 168*f*gr1*k2**2*k3**2 - 84*f*gr1*k3**4 - 770*g2*gr1*k1**2*k2**2 + 210*g2*gr1*k1**2*k3**2 - 280*g2*gr1*k2**4 + 560*g2*gr1*k2**2*k3**2 - 280*g2*gr1*k3**4) + 2*f*(-180*C*beta19*f*k1**2*k2**2 - 204*C*beta19*f*k2**4 + 108*C*beta19*f*k2**2*k3**2 - 45*C*f*gr1*k1**4 - 156*C*f*gr1*k1**2*k2**2 + 60*C*f*gr1*k1**2*k3**2 + 42*b2*gr1*k1**2*k3**2 + 27*beta14*f*k1**2*k2**2 - 81*beta14*f*k1**2*k3**2 + 30*beta14*f*k2**4 - 30*beta14*f*k2**2*k3**2 + 6*beta15*f*k1**2*(4*k1**2 + 13*k2**2) - 81*beta16*f*k1**2*k2**2 + 27*beta16*f*k1**2*k3**2 - 30*beta16*f*k2**4 + 30*beta16*f*k2**2*k3**2 - 20*beta17*f*k1**2*(5*k1**2 + 9*k2**2) + 20*beta18*f*k1**4 + 60*beta18*f*k1**2*k2**2 + 156*beta19*f*k1**2*k2**2 - 24*beta19*f*k1**2*k3**2 + 126*beta19*f*k2**4 - 78*beta19*f*k2**2*k3**2 - 40*f**2*gr1*k1**4 + 45*f*gr1*k1**4 + 102*f*gr1*k1**2*k2**2 - 54*f*gr1*k1**2*k3**2 + 63*g2*gr1*k1**4 + 224*g2*gr1*k1**2*k2**2 - 84*g2*gr1*k1**2*k3**2))*cos(theta) + (-42*b1*k1**2*(5*b1*gr1*(k1**2*k2**2*(K - 1) + (k2**2 - k3**2)*(k2**2*(2*K - 1) + k3**2)) + 2*b1*k2**2*k3**2*(beta18 - 5*beta19*(C - 1)) - 10*g2*gr1*k2**2*(k1**2 + 2*k2**2 - 2*k3**2)) + 4*beta17*k1**2*(63*b1**2*k2**2*k3**2 + 18*b1*f*(k1**2*(10*k2**2 + k3**2) + 3*k2**2*(k2**2 + k3**2)) + 5*f**2*(3*k1**4 + 32*k1**2*k2**2 + 9*k2**4)) + 2*f**3*gr1*(30*k1**6 + 32*k1**4*k2**2) + 6*f**2*(30*C*beta19*k1**4*k2**2 + 174*C*beta19*k1**2*k2**4 - 24*C*beta19*k1**2*k2**2*k3**2 + 24*C*beta19*k2**6 - 24*C*beta19*k2**4*k3**2 + 90*C*gr1*k1**4*k2**2 + 24*C*gr1*k1**2*k2**4 - 24*C*gr1*k1**2*k2**2*k3**2 - 48*b1*gr1*k1**4*k2**2 + 24*b1*gr1*k1**4*k3**2 + 12*beta14*k1**4*k3**2 - 24*beta14*k1**2*k2**4 + 36*beta14*k1**2*k2**2*k3**2 - 6*beta15*(7*k1**4*k2**2 + 2*k1**2*k2**4) + 12*beta16*k1**2*k2**2*(k1**2 + 3*k2**2 - 2*k3**2) - 32*beta18*k1**4*k2**2 - 10*beta18*k1**2*k2**4 - 30*beta19*k1**4*k2**2 - 132*beta19*k1**2*k2**4 + 42*beta19*k1**2*k2**2*k3**2 - 12*beta19*k2**6 + 12*beta19*k2**4*k3**2 - 75*gr1*k1**4*k2**2 + 15*gr1*k1**4*k3**2 - 12*gr1*k1**2*k2**4 + 12*gr1*k1**2*k2**2*k3**2) + 6*f*(14*b1**2*gr1*k1**2*(k2**2 - k3**2)**2 - b1*(14*beta15*k1**2*k2**2*(3*k1**2 + k2**2 + k3**2) + 12*beta18*k1**2*k2**2*(3*k1**2 + k2**2 + k3**2) - 14*beta19*k2**2*(k1**4*(3*C - 3) + 3*k1**2*(C*k3**2 + k2**2*(5*C - 4)) + (2*C - 1)*(k2**4 - k3**4)) - 7*k1**2*(-6*C*gr1*k2**2*(k1**2 + 2*k2**2 - 2*k3**2) + K*gr1*k2**2*(9*k1**2 + 2*k2**2 - 2*k3**2) - 4*beta14*k2**4 + 6*beta14*k2**2*k3**2 + 2*beta14*k3**4 + 6*beta16*k2**4 - 2*beta16*k2**2*k3**2 + 3*gr1*(k1**2*k3**2 + 3*k2**4 - 4*k2**2*k3**2 + k3**4))) - 14*gr1*k1**2*k2**2*(b2*k3**2 + g2*(9*k1**2 + 2*k2**2 - 2*k3**2))))*cos(2*theta))/(420*k1*k2**2*k3**4)
15
+ return np.sqrt((4*np.pi)/3)*(perm12+perm13+perm23)
16
+
17
+ def l1m1(cosmo_functions,k1,k2,k3=None,theta=None,zz=0,r=0,s=0,nonlin=False,growth2=False):
18
+ #get generic cosmology parameters
19
+ k1,k2,k3,theta,Pk1,Pk2,Pk3,Pkd1,Pkd2,Pkd3,Pkdd1,Pkdd2,Pkdd3,d,K,C,f,D1,b1,b2,g2 = cosmo_functions.get_params(k1,k2,k3,theta,zz,nonlin=nonlin,growth2=growth2)
20
+ gr1,gr2,grd1,beta6,beta7,beta8,beta9,beta10,beta11,beta12,beta13,beta14,beta15,beta16,beta17,beta18,beta19,betad14,betad15,betad16,betad17,betad18,betad19 = cosmo_functions.get_beta_funcs(zz)
21
+
22
+ st = np.sin(theta)
23
+ ct= np.cos(theta)
24
+
25
+ perm12 = -np.sqrt(6)*1j*np.sqrt(np.pi)*D1**4*Pk1*Pk2*st*(21*b1**2*(-5*beta19*k1*k2**2*(2*C*k1*k2 - ct**2*k1*k2*(2*C - 2) + ct*(k1**2 + k2**2)) + k3**2*(ct**2*k2*(3*beta17*k2**2 + gr1*k1**2*(-5*K + 3*f + 5)) + ct*k1*(gr1*k1**2*(2*f + 5) + gr1*k2**2*(4*f + 5) + k2**2*(5*beta15 + 2*beta18)) + k2*(5*K*gr1*k1**2 + 5*beta14*k2**2 + 5*beta16*k1**2 + 3*beta17*k2**2*st**2 + beta18*k1**2 + 3*f*gr1*k1**2*st**2 + 2*f*gr1*k1**2 + f*gr1*k2**2 + 5*gr1*k1**2))) + 3*b1*(3*ct**4*f*k2**3*(5*beta17*k3**2 + 14*beta19*k1**2*(C - 1) - gr1*k1**2*(14*C - 14)) + ct**3*f*k1*k2**2*(7*beta19*(k1**2*(4*C - 7) - 3*k2**2) + gr1*(k1**2*(77 - 56*C) - k2**2*(28*C - 49) + k3**2*(-14*K + 24*f + 14)) + k3**2*(21*beta15 + 12*beta18)) + ct**2*k2*(-14*beta19*f*k1**2*(k1**2 + k2**2*(-3*C*st**2 + 2*C + 3*st**2 + 2)) + 18*f**2*gr1*k3**2*(2*k1**2 + k2**2) - 7*f*gr1*(k1**4*(2*C - 6) + k1**2*(2*k2**2*(3*C*st**2 - C - 3*st**2 - 5) + k3**2*(K - 3)) - 2*k2**2*(k2**2 + k3**2)) + f*k3**2*(21*beta14*k2**2 + 14*beta15*k1**2 + 21*beta16*k1**2 + 30*beta17*k2**2*st**2 + 9*beta17*k2**2 + 9*beta18*k1**2) + 70*g2*gr1*k1**2*k3**2) + ct*f*k1*(-7*beta19*k2**2*(k1**2*(4*C + 3*st**2 + 1) + k2**2*(3*st**2 + 1)) + gr1*(7*k1**4 + k1**2*(7*k2**2*(8*C + 3*st**2 + 3) + k3**2*(12*f + 7)) + 7*k2**4*(4*C + 3*st**2 + 2) + k2**2*k3**2*(14*K + 24*f*(st**2 + 1) + 21)) + k3**2*(14*beta14*k1**2 + 6*beta17*k1**2 + k2**2*(21*beta15*st**2 + 7*beta15 + 14*beta16 + 12*beta18*st**2 + 6*beta18))) + k2*(14*C*f*k1**2*(-beta19*k2**2*(3*st**2 + 1) + gr1*(k1**2 + k2**2*(3*st**2 + 2))) + k3**2*(7*K*f*gr1*k1**2 + 35*b2*gr1*k1**2 + 21*beta14*f*k2**2*st**2 + 7*beta14*f*k2**2 + 7*beta16*f*k1**2*(3*st**2 + 1) + 15*beta17*f*k2**2*st**4 + 3*beta17*f*k2**2*st**2 + 3*beta18*f*k1**2*(st**2 + 1) + 12*f**2*gr1*k1**2*st**2 + 6*f**2*gr1*k1**2 + 6*f**2*gr1*k2**2*st**2 + 7*f*gr1*k1**2 - 70*g2*gr1*k1**2))) + f*(ct**5*f*gr1*k1*k2**4*(72 - 72*C) + ct**4*f*k2**3*(25*beta17*k3**2 + 54*beta19*k1**2*(C - 1) + gr1*(25*f*k3**2 + k1**2*(198 - 162*C) + 36*k2**2)) + ct**3*k1*k2**2*(9*beta19*f*(k1**2*(4*C - 7) - 3*k2**2) + 60*f**2*gr1*k3**2 - 9*f*gr1*(k1**2*(12*C - 21) + k2**2*(8*C*(st**2 - 1) - 8*st**2 - 9)) + f*k3**2*(27*beta15 + 20*beta18) + 84*g2*gr1*k3**2) + 3*ct**2*k2*(-6*beta19*f*k1**2*(k1**2 + k2**2*(-C*st**2 + 3*C + st**2 + 1)) + 5*f**2*gr1*k3**2*(3*k1**2 + 2*k2**2*st**2) - 6*f*gr1*(k1**4*(C - 4) + k1**2*k2**2*(3*C*(st**2 - 3) - 5*st**2 - 3) - 2*k2**4*st**2) + f*k3**2*(9*beta14*k2**2 + 6*beta15*k1**2 + 9*beta16*k1**2 + 10*beta17*k2**2*st**2 + 5*beta18*k1**2) + 14*g2*gr1*k1**2*k3**2) + ct*k1*(2*f**2*gr1*k3**2*(5*k1**2 + 18*k2**2*st**2) + f*(-9*beta19*k2**2*(4*C*k1**2 + st**2*(k1**2 + k2**2)) + 9*gr1*(k1**4 + k1**2*k2**2*(12*C + 3*st**2 + 1) + k2**4*st**2*(8*C + 3)) + k3**2*(18*beta14*k1**2 + 10*beta17*k1**2 + 3*k2**2*(6*beta16 + st**2*(3*beta15 + 4*beta18)))) + gr1*k2**2*k3**2*(42*b2 - 84*g2)) + k2*(18*C*f*k1**2*(-beta19*k2**2*st**2 + gr1*(k1**2 + 3*k2**2*st**2)) + k3**2*(21*b2*gr1*k1**2 + f*st**2*(9*beta14*k2**2 + 9*beta16*k1**2 + 5*beta17*k2**2*st**2 + 3*beta18*k1**2 + 9*f*gr1*k1**2 + 5*f*gr1*k2**2*st**2) - 42*g2*gr1*k1**2))))/(315*k1**2*k2**2*k3**2)
26
+ perm13 = np.sqrt(6)*1j*np.sqrt(np.pi)*D1**4*Pk1*Pk3*st*(21*b1**2*(f*gr1*k2**2*(4*ct*k1**3*k2 - 4*ct*k1*k2*k3**2 + k1**4 + k1**2*(3*ct**2*k2**2 + 3*k2**2*st**2 - 2*k3**2) + k3**4) - 5*gr1*k1*k2**2*(K*k1*(ct**2*k2**2 + 2*ct*k1*k2 + k1**2 - k3**2) - ct*k2*(ct*k1*k2 + k1**2 - k3**2)) + k3**2*(5*beta19*k1*(ct**2*k1*k2**2*(2*C - 2) + ct*k1**2*k2*(4*C - 3) + ct*k2*k3**2 + k1**3*(2*C - 1) + k1*k3**2*(1 - 2*C)) + k2**2*(5*beta14*k3**2 - 5*beta15*k1*(ct*k2 + k1) + 5*beta16*k1**2 + 3*beta17*ct**2*k2**2 + 6*beta17*ct*k1*k2 + 3*beta17*k1**2 + 3*beta17*k2**2*st**2 - 2*beta18*ct*k1*k2 - beta18*k1**2))) + 3*b1*(7*beta19*f*k1*(3*ct**2*k2**2 + 4*ct*k1*k2 + k1**2 + 3*k2**2*st**2 + k3**2)*(ct**2*k1*k2**2*(2*C - 2) + ct*k1**2*k2*(4*C - 3) + ct*k2*k3**2 + k1**3*(2*C - 1) + k1*k3**2*(1 - 2*C)) + k2*(3*ct**4*f*k2**3*(5*beta17*k2**2 + gr1*k1**2*(14 - 14*C)) - ct**3*f*k1*k2**2*(gr1*(k1**2*(112*C - 91) + k2**2*(-14*K + 24*f + 14) + k3**2*(49 - 28*C)) + k2**2*(21*beta15 - 60*beta17 + 12*beta18)) + ct**2*k2*(18*f**2*gr1*k2**2*(-2*k1**2 + k3**2) - 7*f*gr1*(k1**4*(14*C - 9) + k1**2*(k2**2*(-5*K + st**2*(6*C - 6) + 3) + k3**2*(11 - 14*C)) - 2*k3**2*(k2**2 + k3**2)) + f*k2**2*(21*beta14*k3**2 - 49*beta15*k1**2 + 21*beta16*k1**2 + 90*beta17*k1**2 + 30*beta17*k2**2*st**2 + 9*beta17*k3**2 - 27*beta18*k1**2) + 70*g2*gr1*k1**2*k2**2) - ct*k1*(12*f**2*gr1*k2**2*(k1**2 + 2*k2**2*st**2 - k3**2) + 7*f*gr1*(k1**4*(4*C - 2) + k1**2*(k2**2*(-4*K + st**2*(12*C - 9) + 1) + k3**2*(4 - 8*C)) + k2**2*k3**2*(2*K + 3*st**2 - 1) + k3**4*(4*C - 2)) + f*k2**2*(14*beta14*(k1**2 - 3*k3**2) + 7*beta15*(5*k1**2 + 3*k2**2*st**2 + k3**2) + 14*beta16*(-3*k1**2 + k3**2) - 6*beta17*(9*k1**2 + 10*k2**2*st**2 + 3*k3**2) + 6*beta18*(3*k1**2 + 2*k2**2*st**2 + k3**2)) - 140*g2*gr1*k1**2*k2**2) + k2*(-42*C*f*gr1*k1**4*st**2 + 42*C*f*gr1*k1**2*k3**2*st**2 + 7*K*f*gr1*k1**4 - 7*K*f*gr1*k1**2*k3**2 + 35*b2*gr1*k1**2*k3**2 + 7*beta14*f*(-2*k1**4 + 3*k1**2*k3**2 + 3*k2**2*k3**2*st**2 + k3**4) - 7*beta15*f*k1**2*(k1**2 + 3*k2**2*st**2 + k3**2) + 21*beta16*f*k1**4 + 21*beta16*f*k1**2*k2**2*st**2 - 7*beta16*f*k1**2*k3**2 + 9*beta17*f*k1**4 + 30*beta17*f*k1**2*k2**2*st**2 + 9*beta17*f*k1**2*k3**2 + 15*beta17*f*k2**4*st**4 + 3*beta17*f*k2**2*k3**2*st**2 - 3*beta18*f*k1**4 - 9*beta18*f*k1**2*k2**2*st**2 - 3*beta18*f*k1**2*k3**2 - 12*f**2*gr1*k1**2*k2**2*st**2 + 6*f**2*gr1*k2**2*k3**2*st**2 + 21*f*gr1*k1**4*st**2 - 21*f*gr1*k1**2*k3**2*st**2 + 70*g2*gr1*k1**4 - 70*g2*gr1*k1**2*k3**2))) + f*(9*beta19*f*k1*(4*ct*k1*k2 + k1**2 + k2**2*(3*ct**2 + st**2))*(ct**2*k1*k2**2*(2*C - 2) + ct*k1**2*k2*(4*C - 3) + ct*k2*k3**2 + k1**3*(2*C - 1) + k1*k3**2*(1 - 2*C)) + k2**2*(72*C*ct**5*f*gr1*k1*k2**3 + 198*C*ct**4*f*gr1*k1**2*k2**2 + 180*C*ct**3*f*gr1*k1**3*k2 + 72*C*ct**3*f*gr1*k1*k2**3*st**2 - 72*C*ct**3*f*gr1*k1*k2*k3**2 + 54*C*ct**2*f*gr1*k1**4 + 162*C*ct**2*f*gr1*k1**2*k2**2*st**2 - 54*C*ct**2*f*gr1*k1**2*k3**2 + 108*C*ct*f*gr1*k1**3*k2*st**2 - 72*C*ct*f*gr1*k1*k2*k3**2*st**2 + 18*C*f*gr1*k1**4*st**2 - 18*C*f*gr1*k1**2*k3**2*st**2 - 42*b2*ct*gr1*k1*k2*k3**2 - 21*b2*gr1*k1**2*k3**2 - 9*beta14*f*(2*ct*k1**3*k2 - 6*ct*k1*k2*k3**2 + 2*k1**4 - 3*k1**2*k3**2 - k2**2*k3**2*(3*ct**2 + st**2)) - 9*beta15*f*k1*(ct*k2 + k1)*(4*ct*k1*k2 + k1**2 + k2**2*(3*ct**2 + st**2)) + 27*beta16*ct**2*f*k1**2*k2**2 + 54*beta16*ct*f*k1**3*k2 - 18*beta16*ct*f*k1*k2*k3**2 + 27*beta16*f*k1**4 + 9*beta16*f*k1**2*k2**2*st**2 - 18*beta16*f*k1**2*k3**2 + 25*beta17*ct**4*f*k2**4 + 100*beta17*ct**3*f*k1*k2**3 + 150*beta17*ct**2*f*k1**2*k2**2 + 30*beta17*ct**2*f*k2**4*st**2 + 90*beta17*ct*f*k1**3*k2 + 60*beta17*ct*f*k1*k2**3*st**2 + 15*beta17*f*k1**4 + 30*beta17*f*k1**2*k2**2*st**2 + 5*beta17*f*k2**4*st**4 - 20*beta18*ct**3*f*k1*k2**3 - 45*beta18*ct**2*f*k1**2*k2**2 - 30*beta18*ct*f*k1**3*k2 - 12*beta18*ct*f*k1*k2**3*st**2 - 5*beta18*f*k1**4 - 9*beta18*f*k1**2*k2**2*st**2 - 72*ct**5*f*gr1*k1*k2**3 + 25*ct**4*f**2*gr1*k2**4 - 162*ct**4*f*gr1*k1**2*k2**2 + 36*ct**4*f*gr1*k2**2*k3**2 + 40*ct**3*f**2*gr1*k1*k2**3 - 117*ct**3*f*gr1*k1**3*k2 - 72*ct**3*f*gr1*k1*k2**3*st**2 + 63*ct**3*f*gr1*k1*k2*k3**2 - 84*ct**3*g2*gr1*k1*k2**3 + 15*ct**2*f**2*gr1*k1**2*k2**2 + 30*ct**2*f**2*gr1*k2**4*st**2 - 27*ct**2*f*gr1*k1**4 - 126*ct**2*f*gr1*k1**2*k2**2*st**2 + 27*ct**2*f*gr1*k1**2*k3**2 + 36*ct**2*f*gr1*k2**2*k3**2*st**2 - 210*ct**2*g2*gr1*k1**2*k2**2 + 24*ct*f**2*gr1*k1*k2**3*st**2 - 63*ct*f*gr1*k1**3*k2*st**2 + 45*ct*f*gr1*k1*k2*k3**2*st**2 - 168*ct*g2*gr1*k1**3*k2 + 84*ct*g2*gr1*k1*k2*k3**2 + 3*f**2*gr1*k1**2*k2**2*st**2 + 5*f**2*gr1*k2**4*st**4 - 9*f*gr1*k1**4*st**2 + 9*f*gr1*k1**2*k3**2*st**2 - 42*g2*gr1*k1**4 + 42*g2*gr1*k1**2*k3**2)))/(315*k1**2*k2*k3**4)
27
+ perm23 = np.sqrt(6)*1j*np.sqrt(np.pi)*D1**4*Pk2*Pk3*st*(beta17*k1**2*(90*ct**5*f**2*k2**4 + 225*ct**4*f**2*k1*k2**3 + 4*ct**3*f*k2**2*(27*b1*(k2**2 + k3**2) + 5*f*(10*k1**2 + 9*k2**2*st**2)) + 3*ct**2*f*k1*k2*(27*b1*(3*k2**2 + k3**2) + 5*f*(5*k1**2 + 18*k2**2*st**2)) + 2*ct*(63*b1**2*k2**2*k3**2 + 9*b1*f*(k1**2*(10*k2**2 + k3**2) + 6*k2**2*st**2*(k2**2 + k3**2)) + 5*f**2*(k1**4 + 12*k1**2*k2**2*st**2 + 9*k2**4*st**4)) + 3*k1*k2*(21*b1**2*k3**2 + 3*b1*f*(5*k1**2 + st**2*(9*k2**2 + 3*k3**2)) + 5*f**2*st**2*(k1**2 + 3*k2**2*st**2))) + ct**5*f**2*k1**2*k2**4*(-30*beta18 + 72*beta19*(C - 1)) - 3*ct**4*f**2*k1*k2**3*(12*beta15*k1**2 + 25*beta18*k1**2 - 12*beta19*(k1**2*(3*C - 3) + k2**2*(4*C - 3) + k3**2) + (15*beta14 - 15*beta16)*(k2**2 - k3**2)) - 2*ct**3*f*k2**2*(-42*C*b1*beta19*k1**2*k2**2 - 42*C*b1*beta19*k1**2*k3**2 - 18*C*beta19*f*k1**4 - 36*C*beta19*f*k1**2*k2**2*st**2 - 108*C*beta19*f*k1**2*k2**2 - 36*C*beta19*f*k2**4 + 36*C*beta19*f*k2**2*k3**2 - 18*C*f*gr1*k1**4 - 21*K*b1*gr1*k1**4 + 42*b1*beta19*k1**2*k2**2 + 42*b1*beta19*k1**2*k3**2 + 21*b1*gr1*k1**4 + 36*beta14*f*k1**2*k2**2 - 54*beta14*f*k1**2*k3**2 + 9*beta15*f*k1**2*(3*k1**2 + 2*k2**2) - 54*beta16*f*k1**2*k2**2 + 36*beta16*f*k1**2*k3**2 + 6*beta18*k1**2*(3*b1*(k2**2 + k3**2) + 5*f*(k1**2 + k2**2*st**2)) + 18*beta19*f*k1**4 + 36*beta19*f*k1**2*k2**2*st**2 + 81*beta19*f*k1**2*k2**2 - 27*beta19*f*k1**2*k3**2 + 18*beta19*f*k2**4 - 18*beta19*f*k2**2*k3**2 - 10*f**2*gr1*k1**4 + 18*f*gr1*k1**4 + 42*g2*gr1*k1**4) - 3*ct**2*k1*k2*(-28*C*b1*beta19*f*k1**2*k2**2 - 56*C*b1*beta19*f*k2**4 - 56*C*b1*beta19*f*k2**2*k3**2 + 14*C*b1*f*gr1*k1**2*k2**2 - 14*C*b1*f*gr1*k1**2*k3**2 - 12*C*beta19*f**2*k1**2*k2**2*st**2 - 24*C*beta19*f**2*k1**2*k2**2 - 48*C*beta19*f**2*k2**4*st**2 - 36*C*beta19*f**2*k2**4 + 36*C*beta19*f**2*k2**2*k3**2 - 6*C*f**2*gr1*k1**4 - 24*C*f**2*gr1*k1**2*k2**2 + 35*K*b1**2*gr1*k1**2*k2**2 - 35*K*b1**2*gr1*k1**2*k3**2 - 7*K*b1*f*gr1*k1**4 - 28*K*b1*f*gr1*k1**2*k2**2 - 35*b1**2*gr1*k1**2*k2**2 + 35*b1**2*gr1*k1**2*k3**2 + 21*b1*beta14*f*k2**4 - 21*b1*beta14*f*k3**4 - 21*b1*beta16*f*k2**4 + 21*b1*beta16*f*k3**4 + 28*b1*beta19*f*k1**2*k2**2 + 42*b1*beta19*f*k2**4 + 28*b1*beta19*f*k2**2*k3**2 - 14*b1*beta19*f*k3**4 + 18*b1*f**2*gr1*k1**2*k2**2 - 18*b1*f**2*gr1*k1**2*k3**2 + 7*b1*f*gr1*k1**4 - 70*b1*g2*gr1*k1**2*k2**2 + 70*b1*g2*gr1*k1**2*k3**2 + 9*beta14*f**2*k1**2*k2**2 - 27*beta14*f**2*k1**2*k3**2 + 30*beta14*f**2*k2**4*st**2 - 30*beta14*f**2*k2**2*k3**2*st**2 + 2*beta15*f*k1**2*(7*b1*(k2**2 + k3**2) + 3*f*(k1**2 + k2**2*(2*st**2 + 3))) - 27*beta16*f**2*k1**2*k2**2 + 9*beta16*f**2*k1**2*k3**2 - 30*beta16*f**2*k2**4*st**2 + 30*beta16*f**2*k2**2*k3**2*st**2 + beta18*f*k1**2*(9*b1*(3*k2**2 + k3**2) + 5*f*(k1**2 + 6*k2**2*st**2)) + 12*beta19*f**2*k1**2*k2**2*st**2 + 18*beta19*f**2*k1**2*k2**2 - 6*beta19*f**2*k1**2*k3**2 + 36*beta19*f**2*k2**4*st**2 + 18*beta19*f**2*k2**4 - 12*beta19*f**2*k2**2*k3**2*st**2 - 18*beta19*f**2*k2**2*k3**2 - 10*f**3*gr1*k1**4 + 6*f**2*gr1*k1**4 + 18*f**2*gr1*k1**2*k2**2 - 6*f**2*gr1*k1**2*k3**2 + 14*f*g2*gr1*k1**4 + 56*f*g2*gr1*k1**2*k2**2) + ct*(-21*b1*k1**2*(2*b1*beta18*k2**2*k3**2 + 5*b1*gr1*(k2**2 - k3**2)*(k2**2*(2*K - 1) + k3**2) + 20*g2*gr1*k2**2*(-k2**2 + k3**2)) + 2*f**3*gr1*k1**4*(5*k1**2 + 6*k2**2*st**2) - 3*f**2*(-24*C*beta19*k1**2*k2**4*st**2 - 12*C*beta19*k1**2*k2**4 + 12*C*beta19*k1**2*k2**2*k3**2 - 24*C*beta19*k2**6*st**2 + 24*C*beta19*k2**4*k3**2*st**2 - 12*C*gr1*k1**4*k2**2 - 12*C*gr1*k1**2*k2**4 + 12*C*gr1*k1**2*k2**2*k3**2 + 24*b1*gr1*k1**4*k2**2 - 12*b1*gr1*k1**4*k3**2 - 6*beta14*k1**4*k3**2 + 24*beta14*k1**2*k2**4*st**2 - 36*beta14*k1**2*k2**2*k3**2*st**2 + 6*beta15*(k1**4*k2**2*(st**2 + 1) + 2*k1**2*k2**4*st**2) - 6*beta16*k1**2*k2**2*(k1**2 + 6*k2**2*st**2 - 4*k3**2*st**2) + 12*beta18*k1**4*k2**2*st**2 + 10*beta18*k1**2*k2**4*st**4 + 18*beta19*k1**2*k2**4*st**2 + 6*beta19*k1**2*k2**4 - 6*beta19*k1**2*k2**2*k3**2*st**2 - 6*beta19*k1**2*k2**2*k3**2 + 12*beta19*k2**6*st**2 - 12*beta19*k2**4*k3**2*st**2 + 9*gr1*k1**4*k2**2 - 3*gr1*k1**4*k3**2 + 6*gr1*k1**2*k2**4 - 6*gr1*k1**2*k2**2*k3**2) + 3*f*(14*b1**2*gr1*k1**2*(k2**2 - k3**2)**2 - b1*(-14*beta14*k1**2*(-2*k2**4 + 3*k2**2*k3**2 + k3**4) + 14*beta15*k1**2*k2**2*(k1**2 + k2**2 + k3**2) + 6*beta18*k1**2*k2**2*(3*k1**2 + st**2*(2*k2**2 + 2*k3**2)) - 7*gr1*k1**4*(k2**2*(2*K - 1) + k3**2) + 7*gr1*k1**2*(k2**2 - k3**2)*(k2**2*(4*C - 2*K - 3) + k3**2) - 14*k2**2*(beta16*k1**2*(3*k2**2 - k3**2) + beta19*k1**2*(k2**2*(4*C - 3) + k3**2) + beta19*(2*C - 1)*(k2**4 - k3**4))) - 14*gr1*k1**2*k2**2*(b2*k3**2 + 2*g2*(k1**2 + k2**2 - k3**2)))) - 3*k1*k2*(7*b1**2*(5*K*gr1*(k2**2 - k3**2)**2 + 2*f*gr1*k1**2*(-k2**2 + k3**2) + k3**2*(beta18*k1**2 + (5*beta14 - 5*beta16)*(k2**2 - k3**2))) + b1*(3*beta18*f*k1**2*(k1**2 + st**2*(3*k2**2 + k3**2)) + 6*f**2*gr1*k1**2*(k1**2 + st**2*(k2**2 - k3**2)) + 7*f*(-4*C*beta19*k2**4 + 4*C*beta19*k2**2*k3**2 + 2*C*gr1*k2**4 - 4*C*gr1*k2**2*k3**2 + 2*C*gr1*k3**4 - K*gr1*k1**2*k2**2 + K*gr1*k1**2*k3**2 + beta14*k1**2*(k2**2 - 3*k3**2) + 3*beta14*st**2*(k2**4 - k3**4) + 2*beta15*k1**2*k2**2 - 3*beta16*k1**2*k2**2 + beta16*k1**2*k3**2 - 3*beta16*k2**4*st**2 + 3*beta16*k3**4*st**2 + 2*beta19*k2**4 - 2*beta19*k2**2*k3**2 - gr1*k2**4 + 2*gr1*k2**2*k3**2 - gr1*k3**4) - 35*gr1*(k2**2 - k3**2)*(b2*k3**2 + 2*g2*(k2**2 - k3**2))) + f*(-2*f**2*gr1*k1**4*st**2 + f*(gr1*k1**2*(3 - 6*C)*(k2**2 - k3**2) + st**2*(-12*C*beta19*k2**4 + 12*C*beta19*k2**2*k3**2 + 3*beta14*k1**2*(k2**2 - 3*k3**2) + 15*beta14*k2**2*st**2*(k2**2 - k3**2) + 6*beta15*k1**2*k2**2 - 9*beta16*k1**2*k2**2 + 3*beta16*k1**2*k3**2 - 15*beta16*k2**4*st**2 + 15*beta16*k2**2*k3**2*st**2 + beta18*(k1**4 + 5*k1**2*k2**2*st**2) + 6*beta19*k2**4 - 6*beta19*k2**2*k3**2)) + 7*gr1*k1**2*(b2*k3**2 + 2*g2*(k2**2 - k3**2)))))/(315*k1*k2**2*k3**4)
28
+
29
+ return (perm12+perm13+perm23)
30
+
31
+
32
+ def l3(cosmo_functions,k1,k2,k3=None,theta=None,zz=0,r=0,s=0,nonlin=False,growth2=False):
33
+ #get generic cosmology parameters
34
+ k1,k2,k3,theta,Pk1,Pk2,Pk3,Pkd1,Pkd2,Pkd3,Pkdd1,Pkdd2,Pkdd3,d,K,C,f,D1,b1,b2,g2 = cosmo_functions.get_params(k1,k2,k3,theta,zz,nonlin=nonlin,growth2=growth2)
35
+ gr1,gr2,grd1,beta6,beta7,beta8,beta9,beta10,beta11,beta12,beta13,beta14,beta15,beta16,beta17,beta18,beta19,betad14,betad15,betad16,betad17,betad18,betad19 = cosmo_functions.get_beta_funcs(zz)
36
+
37
+ cos = lambda x: np.cos(x)
38
+ sin = lambda x: np.sin(x)
39
+
40
+ perm12 = 1j*D1**4*Pk1*Pk2*(594*C*b1*beta19*f*k1**3*k2**2*cos(4*theta) - 1386*C*b1*beta19*f*k1**3*k2**2 + 99*C*b1*beta19*f*k1**2*k2**3*cos(3*theta) + 495*C*b1*beta19*f*k1**2*k2**3*cos(5*theta) - 792*C*b1*f*gr1*k1**4*k2*cos(3*theta) - 1188*C*b1*f*gr1*k1**3*k2**2*cos(4*theta) + 1188*C*b1*f*gr1*k1**3*k2**2 - 891*C*b1*f*gr1*k1**2*k2**3*cos(3*theta) - 495*C*b1*f*gr1*k1**2*k2**3*cos(5*theta) - 594*C*b1*f*gr1*k1*k2**4*cos(4*theta) - 198*C*b1*f*gr1*k1*k2**4 + 462*C*beta19*f**2*k1**3*k2**2*cos(4*theta) - 374*C*beta19*f**2*k1**3*k2**2 + 121*C*beta19*f**2*k1**2*k2**3*cos(3*theta) + 253*C*beta19*f**2*k1**2*k2**3*cos(5*theta) - 880*C*f**2*gr1*k1**4*k2*cos(3*theta) - 1386*C*f**2*gr1*k1**3*k2**2*cos(4*theta) + 1122*C*f**2*gr1*k1**3*k2**2 - 363*C*f**2*gr1*k1**2*k2**3*cos(3*theta) - 759*C*f**2*gr1*k1**2*k2**3*cos(5*theta) - 352*C*f**2*gr1*k1*k2**4*cos(4*theta) - 110*C*f**2*gr1*k1*k2**4*cos(6*theta) - 176*C*f**2*gr1*k1*k2**4 - 396*K*b1*f*gr1*k1**2*k2*k3**2*cos(3*theta) - 297*K*b1*f*gr1*k1*k2**2*k3**2*cos(4*theta) - 99*K*b1*f*gr1*k1*k2**2*k3**2 + 1584*b1**2*beta17*k1**3*k3**2 + 990*b1**2*beta17*k2**3*k3**2*cos(3*theta) + 396*b1**2*beta18*k1*k2**2*k3**2 + 396*b1**2*f*gr1*k1**3*k3**2 + 990*b1**2*f*gr1*k1**2*k2*k3**2*cos(3*theta) + 2376*b1**2*f*gr1*k1*k2**2*k3**2 + 1980*b1*beta14*f*k1**3*k3**2 + 990*b1*beta14*f*k2**3*k3**2*cos(3*theta) + 594*b1*beta15*f*k1**2*k2*k3**2*cos(3*theta) + 495*b1*beta15*f*k1*k2**2*k3**2*cos(4*theta) + 1089*b1*beta15*f*k1*k2**2*k3**2 + 990*b1*beta16*f*k1**2*k2*k3**2*cos(3*theta) + 1980*b1*beta16*f*k1*k2**2*k3**2 + 2596*b1*beta17*f*k1**3*k3**2 + 1606*b1*beta17*f*k2**3*k3**2*cos(3*theta) + 506*b1*beta18*f*k1**2*k2*k3**2*cos(3*theta) + 220*b1*beta18*f*k1*k2**2*k3**2*cos(4*theta) + 1232*b1*beta18*f*k1*k2**2*k3**2 - 594*b1*beta19*f*k1**4*k2*cos(3*theta) - 1089*b1*beta19*f*k1**3*k2**2*cos(4*theta) - 3663*b1*beta19*f*k1**3*k2**2 - 2673*b1*beta19*f*k1**2*k2**3*cos(3*theta) - 495*b1*beta19*f*k1**2*k2**3*cos(5*theta) - 495*b1*beta19*f*k1*k2**4*cos(4*theta) - 1089*b1*beta19*f*k1*k2**4 + 1672*b1*f**2*gr1*k1**3*k3**2 + 2024*b1*f**2*gr1*k1**2*k2*k3**2*cos(3*theta) + 440*b1*f**2*gr1*k1*k2**2*k3**2*cos(4*theta) + 4136*b1*f**2*gr1*k1*k2**2*k3**2 + 1012*b1*f**2*gr1*k2**3*k3**2*cos(3*theta) + 792*b1*f*gr1*k1**5 + 1980*b1*f*gr1*k1**4*k2*cos(3*theta) + 1683*b1*f*gr1*k1**3*k2**2*cos(4*theta) + 6237*b1*f*gr1*k1**3*k2**2 + 792*b1*f*gr1*k1**3*k3**2 + 4653*b1*f*gr1*k1**2*k2**3*cos(3*theta) + 495*b1*f*gr1*k1**2*k2**3*cos(5*theta) + 990*b1*f*gr1*k1**2*k2*k3**2*cos(3*theta) + 1089*b1*f*gr1*k1*k2**4*cos(4*theta) + 2871*b1*f*gr1*k1*k2**4 + 297*b1*f*gr1*k1*k2**2*k3**2*cos(4*theta) + 1683*b1*f*gr1*k1*k2**2*k3**2 + 594*b1*f*gr1*k2**5*cos(3*theta) + 594*b1*f*gr1*k2**3*k3**2*cos(3*theta) + 396*b2*f*gr1*k1*k2**2*k3**2 + 836*beta14*f**2*k1**3*k3**2 + 506*beta14*f**2*k2**3*k3**2*cos(3*theta) + 462*beta15*f**2*k1**2*k2*k3**2*cos(3*theta) + 253*beta15*f**2*k1*k2**2*k3**2*cos(4*theta) + 627*beta15*f**2*k1*k2**2*k3**2 + 506*beta16*f**2*k1**2*k2*k3**2*cos(3*theta) + 836*beta16*f**2*k1*k2**2*k3**2 + 860*beta17*f**2*k1**3*k3**2 + 590*beta17*f**2*k2**3*k3**2*cos(3*theta) + 50*beta17*f**2*k2**3*k3**2*cos(5*theta) + 390*beta18*f**2*k1**2*k2*k3**2*cos(3*theta) + 168*beta18*f**2*k1*k2**2*k3**2*cos(4*theta) + 624*beta18*f**2*k1*k2**2*k3**2 - 462*beta19*f**2*k1**4*k2*cos(3*theta) - 715*beta19*f**2*k1**3*k2**2*cos(4*theta) - 1925*beta19*f**2*k1**3*k2**2 - 1595*beta19*f**2*k1**2*k2**3*cos(3*theta) - 253*beta19*f**2*k1**2*k2**3*cos(5*theta) - 253*beta19*f**2*k1*k2**4*cos(4*theta) - 627*beta19*f**2*k1*k2**4 + 860*f**3*gr1*k1**3*k3**2 + 1170*f**3*gr1*k1**2*k2*k3**2*cos(3*theta) + 504*f**3*gr1*k1*k2**2*k3**2*cos(4*theta) + 1872*f**3*gr1*k1*k2**2*k3**2 + 590*f**3*gr1*k2**3*k3**2*cos(3*theta) + 50*f**3*gr1*k2**3*k3**2*cos(5*theta) + 880*f**2*gr1*k1**5 + 2266*f**2*gr1*k1**4*k2*cos(3*theta) + 2145*f**2*gr1*k1**3*k2**2*cos(4*theta) + 6655*f**2*gr1*k1**3*k2**2 + 5467*f**2*gr1*k1**2*k2**3*cos(3*theta) + 869*f**2*gr1*k1**2*k2**3*cos(5*theta) + 1551*f**2*gr1*k1*k2**4*cos(4*theta) + 110*f**2*gr1*k1*k2**4*cos(6*theta) + 2849*f**2*gr1*k1*k2**4 + 682*f**2*gr1*k2**5*cos(3*theta) + 110*f**2*gr1*k2**5*cos(5*theta) + 792*f*g2*gr1*k1**2*k2*k3**2*cos(3*theta) + 594*f*g2*gr1*k1*k2**2*k3**2*cos(4*theta) + 198*f*g2*gr1*k1*k2**2*k3**2 + 2*k1*(594*b1**2*k3**2*(beta18*k2**2 + f*gr1*(k1**2 + 2*k2**2)) + 22*b1*f*(18*beta19*k2**2*(k1**2*(C - 6) - 2*k2**2) + gr1*(18*k1**4 + 6*k1**2*(30*k2**2 + k3**2*(7*f + 3)) + k2**4*(18*C + 90) + k2**2*k3**2*(9*K + 136*f + 63)) + k3**2*(27*beta14*k1**2 + 21*beta17*k1**2 + k2**2*(36*beta15 + 27*beta16 + 47*beta18))) + f*(2*f**2*gr1*k3**2*(205*k1**2 + 666*k2**2) + f*(-44*beta19*k2**2*(k1**2*(C + 30) + 10*k2**2) + 11*gr1*(40*k1**4 + k1**2*k2**2*(12*C + 400) + k2**4*(29*C + 195)) + k3**2*(462*beta14*k1**2 + 410*beta17*k1**2 + 2*k2**2*(220*beta15 + 231*beta16 + 222*beta18))) + gr1*k2**2*k3**2*(594*b2 - 396*g2)))*cos(2*theta) + 2*k2*(99*b1**2*k3**2*(3*beta17*k2**2 + 8*beta18*k1**2 + f*gr1*(19*k1**2 + 8*k2**2)) + 11*b1*f*(-9*beta19*(13*k1**4 + k1**2*k2**2*(3*C + 32)) + gr1*(k1**4*(36*C + 270) + k1**2*(k2**2*(63*C + 486) + k3**2*(18*K + 388*f + 171)) + 45*k2**4 + k2**2*k3**2*(114*f + 45)) + k3**2*(99*beta14*k2**2 + 117*beta15*k1**2 + 99*beta16*k1**2 + 87*beta17*k2**2 + 137*beta18*k1**2)) + f*(-11*beta19*f*k1**2*(59*k1**2 + k2**2*(17*C + 156)) + 5*f**2*gr1*k3**2*(387*k1**2 + 104*k2**2) + 11*f*gr1*(k1**4*(40*C + 297) + k1**2*k2**2*(51*C + 512) + 44*k2**4) + f*k3**2*(627*beta14*k2**2 + 649*beta15*k1**2 + 627*beta16*k1**2 + 520*beta17*k2**2 + 645*beta18*k1**2) + gr1*k1**2*k3**2*(792*b2 - 396*g2)))*cos(theta))/(3960*k1**2*k2**2*k3**2)
41
+ perm13 = -1j*D1**4*Pk1*Pk3*(k2*(4752*C*b1*beta19*f*k1**5 + 3168*C*b1*beta19*f*k1**3*k2**2*cos(4*theta) + 3168*C*b1*beta19*f*k1**3*k2**2 + 1584*C*b1*beta19*f*k1**3*k3**2 + 495*C*b1*beta19*f*k1**2*k2**3*cos(5*theta) - 792*C*b1*f*gr1*k1**5 - 2574*C*b1*f*gr1*k1**3*k2**2*cos(4*theta) - 2178*C*b1*f*gr1*k1**3*k2**2 + 1584*C*b1*f*gr1*k1**3*k3**2 - 495*C*b1*f*gr1*k1**2*k2**3*cos(5*theta) + 594*C*b1*f*gr1*k1*k2**2*k3**2*cos(4*theta) + 990*C*b1*f*gr1*k1*k2**2*k3**2 - 792*C*b1*f*gr1*k1*k3**4 + 6864*C*beta19*f**2*k1**5 + 1936*C*beta19*f**2*k1**3*k2**2*cos(4*theta) + 5104*C*beta19*f**2*k1**3*k2**2 - 3344*C*beta19*f**2*k1**3*k3**2 + 253*C*beta19*f**2*k1**2*k2**3*cos(5*theta) + 1452*C*f**2*gr1*k1**3*k2**2*cos(4*theta) + 3300*C*f**2*gr1*k1**3*k2**2 + 693*C*f**2*gr1*k1**2*k2**3*cos(5*theta) + 792*C*f**2*gr1*k1*k2**4*cos(4*theta) + 110*C*f**2*gr1*k1*k2**4*cos(6*theta) + 968*C*f**2*gr1*k1*k2**4 - 440*C*f**2*gr1*k1*k2**2*k3**2*cos(4*theta) - 792*C*f**2*gr1*k1*k2**2*k3**2 + 1980*K*b1*f*gr1*k1**3*k2**2 + 297*K*b1*f*gr1*k1*k2**4*cos(4*theta) + 495*K*b1*f*gr1*k1*k2**4 - 396*K*b1*f*gr1*k1*k2**2*k3**2 + 1188*b1**2*beta17*k1*k2**2*k3**2 - 396*b1**2*beta18*k1*k2**2*k3**2 + 792*b1**2*f*gr1*k1**3*k2**2 - 792*b1**2*f*gr1*k1*k2**2*k3**2 - 1584*b1*beta14*f*k1**5 - 396*b1*beta14*f*k1**3*k2**2 + 1188*b1*beta14*f*k1*k2**2*k3**2 + 1584*b1*beta14*f*k1*k3**4 - 1584*b1*beta15*f*k1**3*k2**2 - 495*b1*beta15*f*k1*k2**4*cos(4*theta) - 297*b1*beta15*f*k1*k2**4 - 792*b1*beta15*f*k1*k2**2*k3**2 + 1584*b1*beta16*f*k1**5 + 1188*b1*beta16*f*k1**3*k2**2 - 396*b1*beta16*f*k1*k2**2*k3**2 - 1584*b1*beta16*f*k1*k3**4 + 7524*b1*beta17*f*k1**3*k2**2 + 1100*b1*beta17*f*k1*k2**4*cos(4*theta) + 1980*b1*beta17*f*k1*k2**4 + 2508*b1*beta17*f*k1*k2**2*k3**2 - 2508*b1*beta18*f*k1**3*k2**2 - 220*b1*beta18*f*k1*k2**4*cos(4*theta) - 396*b1*beta18*f*k1*k2**4 - 836*b1*beta18*f*k1*k2**2*k3**2 - 3168*b1*beta19*f*k1**5 - 2673*b1*beta19*f*k1**3*k2**2*cos(4*theta) - 2871*b1*beta19*f*k1**3*k2**2 - 792*b1*beta19*f*k1**3*k3**2 - 495*b1*beta19*f*k1**2*k2**3*cos(5*theta) + 495*b1*beta19*f*k1*k2**2*k3**2*cos(4*theta) + 297*b1*beta19*f*k1*k2**2*k3**2 + 792*b1*beta19*f*k1*k3**4 - 1672*b1*f**2*gr1*k1**3*k2**2 - 440*b1*f**2*gr1*k1*k2**4*cos(4*theta) - 792*b1*f**2*gr1*k1*k2**4 + 1672*b1*f**2*gr1*k1*k2**2*k3**2 + 396*b1*f*gr1*k1**5 + 2079*b1*f*gr1*k1**3*k2**2*cos(4*theta) + 1089*b1*f*gr1*k1**3*k2**2 - 792*b1*f*gr1*k1**3*k3**2 + 495*b1*f*gr1*k1**2*k2**3*cos(5*theta) - 297*b1*f*gr1*k1*k2**4*cos(4*theta) - 495*b1*f*gr1*k1*k2**4 - 1089*b1*f*gr1*k1*k2**2*k3**2*cos(4*theta) - 495*b1*f*gr1*k1*k2**2*k3**2 + 396*b1*f*gr1*k1*k3**4 - 396*b2*f*gr1*k1*k2**2*k3**2 - 1760*beta14*f**2*k1**5 - 836*beta14*f**2*k1**3*k2**2 + 1760*beta14*f**2*k1**3*k3**2 + 2508*beta14*f**2*k1*k2**2*k3**2 - 2552*beta15*f**2*k1**3*k2**2 - 253*beta15*f**2*k1*k2**4*cos(4*theta) - 627*beta15*f**2*k1*k2**4 + 1760*beta16*f**2*k1**5 + 2508*beta16*f**2*k1**3*k2**2 - 1760*beta16*f**2*k1**3*k3**2 - 836*beta16*f**2*k1*k2**2*k3**2 + 7740*beta17*f**2*k1**3*k2**2 + 840*beta17*f**2*k1*k2**4*cos(4*theta) + 3120*beta17*f**2*k1*k2**4 + 50*beta17*f**2*k2**5*cos(5*theta) - 2580*beta18*f**2*k1**3*k2**2 - 168*beta18*f**2*k1*k2**4*cos(4*theta) - 624*beta18*f**2*k1*k2**4 - 4312*beta19*f**2*k1**5 - 1683*beta19*f**2*k1**3*k2**2*cos(4*theta) - 4477*beta19*f**2*k1**3*k2**2 + 2552*beta19*f**2*k1**3*k3**2 - 253*beta19*f**2*k1**2*k2**3*cos(5*theta) + 253*beta19*f**2*k1*k2**2*k3**2*cos(4*theta) + 627*beta19*f**2*k1*k2**2*k3**2 + 336*f**3*gr1*k1*k2**4*cos(4*theta) + 1248*f**3*gr1*k1*k2**4 + 50*f**3*gr1*k2**5*cos(5*theta) - 979*f**2*gr1*k1**3*k2**2*cos(4*theta) - 2277*f**2*gr1*k1**3*k2**2 - 583*f**2*gr1*k1**2*k2**3*cos(5*theta) - 792*f**2*gr1*k1*k2**4*cos(4*theta) - 110*f**2*gr1*k1*k2**4*cos(6*theta) - 968*f**2*gr1*k1*k2**4 + 473*f**2*gr1*k1*k2**2*k3**2*cos(4*theta) + 1023*f**2*gr1*k1*k2**2*k3**2 + 110*f**2*gr1*k2**3*k3**2*cos(5*theta) - 3960*f*g2*gr1*k1**3*k2**2 - 594*f*g2*gr1*k1*k2**4*cos(4*theta) - 990*f*g2*gr1*k1*k2**4 + 792*f*g2*gr1*k1*k2**2*k3**2 + 2*k1*(594*b1**2*k2**2*(2*f*gr1*(k1**2 - k3**2) + k3**2*(3*beta17 - beta18)) - 22*b1*f*(-18*beta19*(k1**4*(10*C - 6) + k1**2*(k2**2*(8*C - 7) + k3**2*(1 - 2*C)) + k3**2*(k2**2 + k3**2)) + gr1*(k1**4*(54*C - 27) + 3*k1**2*(k2**2*(36*C - 21*K + 14*f - 24) + k3**2*(18 - 36*C)) + k2**4*(-18*K + 52*f + 18) + k2**2*k3**2*(-36*C + 27*K - 42*f + 36) + k3**4*(54*C - 27)) + k2**2*(27*beta14*(k1**2 - 3*k3**2) + 18*beta15*(4*k1**2 + k2**2 + k3**2) - 81*beta16*k1**2 + 27*beta16*k3**2 - 189*beta17*k1**2 - 130*beta17*k2**2 - 63*beta17*k3**2 + 63*beta18*k1**2 + 26*beta18*k2**2 + 21*beta18*k3**2)) + f*(44*beta19*f*(k1**4*(82*C - 51) + k1**2*(k2**2*(80*C - 70) + k3**2*(31 - 42*C)) + 10*k2**2*k3**2) + k2**2*(2904*C*f*gr1*k1**2 + 825*C*f*gr1*k2**2 - 1144*C*f*gr1*k3**2 - 594*b2*gr1*k3**2 - 462*beta14*f*(k1**2 - 3*k3**2) - 44*beta15*f*(31*k1**2 + 10*k2**2) + 1386*beta16*f*k1**2 - 462*beta16*f*k3**2 + 3690*beta17*f*k1**2 + 2220*beta17*f*k2**2 - 1230*beta18*f*k1**2 - 444*beta18*f*k2**2 + 888*f**2*gr1*k2**2 - 1892*f*gr1*k1**2 - 825*f*gr1*k2**2 + 1012*f*gr1*k3**2 - 2772*g2*gr1*k1**2 - 792*g2*gr1*k2**2 + 1188*g2*gr1*k3**2)))*cos(2*theta) + k2*(990*b1**2*k2**2*(beta17*k3**2 + f*gr1*k1**2) + 11*b1*f*(9*beta19*k1**2*(k1**2*(76*C - 54) + k2**2*(13*C - 13) + k3**2*(14 - 12*C)) + gr1*(k1**4*(252 - 396*C) + k1**2*(k2**2*(-117*C + 144*K - 184*f + 27) + k3**2*(396*C - 306)) + k2**2*k3**2*(92*f + 54) + 54*k3**4) + 2*k2**2*(45*beta14*k3**2 - 99*beta15*k1**2 + 45*beta16*k1**2 + 230*beta17*k1**2 + 50*beta17*k2**2 + 23*beta17*k3**2 - 69*beta18*k1**2)) + f*(11*beta19*f*k1**2*(k1**2*(508*C - 378) + k2**2*(103*C - 103) + k3**2*(130 - 92*C)) + 10*f**2*gr1*k2**2*(39*k1**2 + 59*k2**2) + 11*f*gr1*(k1**4*(92*C - 46) + k1**2*(k2**2*(351*C - 289) + k3**2*(46 - 92*C)) + 62*k2**2*k3**2) + 2*f*k2**2*(253*beta14*k3**2 - 715*beta15*k1**2 + 253*beta16*k1**2 + 1950*beta17*k1**2 + 295*beta17*k2**2 - 585*beta18*k1**2) - 3168*g2*gr1*k1**2*k2**2))*cos(3*theta)) + (198*b1**2*k2**2*(f*gr1*(8*k1**4 + k1**2*(3*k2**2 - 16*k3**2) + 8*k3**4) + k3**2*(3*beta17*(8*k1**2 + k2**2) - 8*beta18*k1**2)) + 22*b1*f*(9*beta19*k1**2*(k1**4*(16*C - 8) + k1**2*k2**2*(58*C - 45) + (7*k2**2 - 8*k3**2)*(k2**2*(C - 1) + k3**2*(2*C - 1))) + k2**2*(-234*C*gr1*k1**4 - 63*C*gr1*k1**2*k2**2 + 234*C*gr1*k1**2*k3**2 + 72*K*gr1*k1**4 + 144*K*gr1*k1**2*k2**2 - 72*K*gr1*k1**2*k3**2 - 9*beta14*(16*k1**4 - 24*k1**2*k3**2 - 3*k2**2*k3**2 - 8*k3**4) - 9*beta15*k1**2*(8*k1**2 + 13*k2**2 + 8*k3**2) + 216*beta16*k1**4 + 27*beta16*k1**2*k2**2 - 72*beta16*k1**2*k3**2 + 240*beta17*k1**4 + 570*beta17*k1**2*k2**2 + 240*beta17*k1**2*k3**2 + 30*beta17*k2**4 + 57*beta17*k2**2*k3**2 - 80*beta18*k1**4 - 171*beta18*k1**2*k2**2 - 80*beta18*k1**2*k3**2 - 228*f*gr1*k1**2*k2**2 + 114*f*gr1*k2**2*k3**2 + 162*gr1*k1**4 - 36*gr1*k1**2*k2**2 - 207*gr1*k1**2*k3**2 + 45*gr1*k2**2*k3**2 + 45*gr1*k3**4)) + 2*f*(11*beta19*f*k1**2*(k1**4*(160*C - 80) + k1**2*(k2**2*(706*C - 531) + k3**2*(80 - 160*C)) + k2**4*(97*C - 97) + k2**2*k3**2*(175 - 114*C)) + k2**2*(1254*C*f*gr1*k1**4 + 3003*C*f*gr1*k1**2*k2**2 - 1254*C*f*gr1*k1**2*k3**2 - 792*b2*gr1*k1**2*k3**2 + 11*beta14*f*(-160*k1**4 + 240*k1**2*k3**2 + 57*k2**2*k3**2) - 55*beta15*f*k1**2*(16*k1**2 + 35*k2**2) + 2640*beta16*f*k1**4 + 627*beta16*f*k1**2*k2**2 - 1760*beta16*f*k1**2*k3**2 + 2520*beta17*f*k1**4 + 6450*beta17*f*k1**2*k2**2 + 520*beta17*f*k2**4 - 840*beta18*f*k1**4 - 1935*beta18*f*k1**2*k2**2 + 645*f**2*gr1*k1**2*k2**2 + 520*f**2*gr1*k2**4 - 627*f*gr1*k1**4 - 2519*f*gr1*k1**2*k2**2 + 627*f*gr1*k1**2*k3**2 + 484*f*gr1*k2**2*k3**2 - 1584*g2*gr1*k1**4 - 3168*g2*gr1*k1**2*k2**2 + 1584*g2*gr1*k1**2*k3**2)))*cos(theta))/(3960*k1**2*k2*k3**4)
42
+ perm23 = -1j*D1**4*Pk2*Pk3*(1584*C*b1*beta19*f*k1**4*k2**2 + 1584*C*b1*beta19*f*k1**3*k2**3*cos(3*theta) + 594*C*b1*beta19*f*k1**2*k2**4*cos(4*theta) + 10494*C*b1*beta19*f*k1**2*k2**4 + 594*C*b1*beta19*f*k1**2*k2**2*k3**2*cos(4*theta) - 2178*C*b1*beta19*f*k1**2*k2**2*k3**2 + 2376*C*b1*beta19*f*k1*k2**5*cos(3*theta) + 2376*C*b1*beta19*f*k1*k2**3*k3**2*cos(3*theta) + 792*C*b1*beta19*f*k2**6 - 792*C*b1*beta19*f*k2**2*k3**4 - 1584*C*b1*f*gr1*k1**4*k2**2 - 792*C*b1*f*gr1*k1**3*k2**3*cos(3*theta) + 792*C*b1*f*gr1*k1**3*k2*k3**2*cos(3*theta) - 6336*C*b1*f*gr1*k1**2*k2**4 + 6336*C*b1*f*gr1*k1**2*k2**2*k3**2 + 462*C*beta19*f**2*k1**4*k2**2*cos(4*theta) + 1298*C*beta19*f**2*k1**4*k2**2 + 4114*C*beta19*f**2*k1**3*k2**3*cos(3*theta) + 506*C*beta19*f**2*k1**3*k2**3*cos(5*theta) + 2816*C*beta19*f**2*k1**2*k2**4*cos(4*theta) + 110*C*beta19*f**2*k1**2*k2**4*cos(6*theta) + 7656*C*beta19*f**2*k1**2*k2**4 - 1672*C*beta19*f**2*k1**2*k2**2*k3**2 + 4752*C*beta19*f**2*k1*k2**5*cos(3*theta) + 440*C*beta19*f**2*k1*k2**5*cos(5*theta) - 2024*C*beta19*f**2*k1*k2**3*k3**2*cos(3*theta) + 440*C*beta19*f**2*k2**6*cos(4*theta) + 792*C*beta19*f**2*k2**6 - 440*C*beta19*f**2*k2**4*k3**2*cos(4*theta) - 792*C*beta19*f**2*k2**4*k3**2 + 880*C*f**2*gr1*k1**5*k2*cos(3*theta) + 462*C*f**2*gr1*k1**4*k2**2*cos(4*theta) + 4818*C*f**2*gr1*k1**4*k2**2 + 1848*C*f**2*gr1*k1**3*k2**3*cos(3*theta) + 1672*C*f**2*gr1*k1**2*k2**4 - 1672*C*f**2*gr1*k1**2*k2**2*k3**2 + 396*K*b1*f*gr1*k1**5*k2*cos(3*theta) + 297*K*b1*f*gr1*k1**4*k2**2*cos(4*theta) + 2079*K*b1*f*gr1*k1**4*k2**2 + 1188*K*b1*f*gr1*k1**3*k2**3*cos(3*theta) + 396*K*b1*f*gr1*k1**2*k2**4 - 396*K*b1*f*gr1*k1**2*k2**2*k3**2 + 1584*b1**2*beta17*k1**4*k3**2 + 1188*b1**2*beta17*k1**2*k2**2*k3**2 - 396*b1**2*beta18*k1**2*k2**2*k3**2 + 1584*b1**2*f*gr1*k1**4*k2**2 + 396*b1**2*f*gr1*k1**2*k2**4 - 792*b1**2*f*gr1*k1**2*k2**2*k3**2 + 396*b1**2*f*gr1*k1**2*k3**4 + 1584*b1*beta14*f*k1**4*k3**2 - 792*b1*beta14*f*k1**2*k2**4 + 1188*b1*beta14*f*k1**2*k2**2*k3**2 + 396*b1*beta14*f*k1**2*k3**4 - 990*b1*beta14*f*k1*k2**5*cos(3*theta) + 990*b1*beta14*f*k1*k2*k3**4*cos(3*theta) - 3168*b1*beta15*f*k1**4*k2**2 - 594*b1*beta15*f*k1**3*k2**3*cos(3*theta) - 594*b1*beta15*f*k1**3*k2*k3**2*cos(3*theta) - 396*b1*beta15*f*k1**2*k2**4 - 396*b1*beta15*f*k1**2*k2**2*k3**2 + 1584*b1*beta16*f*k1**4*k2**2 + 1188*b1*beta16*f*k1**2*k2**4 - 396*b1*beta16*f*k1**2*k2**2*k3**2 + 990*b1*beta16*f*k1*k2**5*cos(3*theta) - 990*b1*beta16*f*k1*k2*k3**4*cos(3*theta) + 1760*b1*beta17*f*k1**6 + 8360*b1*beta17*f*k1**4*k2**2 + 836*b1*beta17*f*k1**4*k3**2 + 4554*b1*beta17*f*k1**3*k2**3*cos(3*theta) + 1518*b1*beta17*f*k1**3*k2*k3**2*cos(3*theta) + 660*b1*beta17*f*k1**2*k2**4*cos(4*theta) + 1188*b1*beta17*f*k1**2*k2**4 + 660*b1*beta17*f*k1**2*k2**2*k3**2*cos(4*theta) + 1188*b1*beta17*f*k1**2*k2**2*k3**2 - 2508*b1*beta18*f*k1**4*k2**2 - 1518*b1*beta18*f*k1**3*k2**3*cos(3*theta) - 506*b1*beta18*f*k1**3*k2*k3**2*cos(3*theta) - 220*b1*beta18*f*k1**2*k2**4*cos(4*theta) - 396*b1*beta18*f*k1**2*k2**4 - 220*b1*beta18*f*k1**2*k2**2*k3**2*cos(4*theta) - 396*b1*beta18*f*k1**2*k2**2*k3**2 - 1584*b1*beta19*f*k1**4*k2**2 - 1584*b1*beta19*f*k1**3*k2**3*cos(3*theta) - 594*b1*beta19*f*k1**2*k2**4*cos(4*theta) - 7326*b1*beta19*f*k1**2*k2**4 - 594*b1*beta19*f*k1**2*k2**2*k3**2*cos(4*theta) + 2178*b1*beta19*f*k1**2*k2**2*k3**2 - 1782*b1*beta19*f*k1*k2**5*cos(3*theta) - 1188*b1*beta19*f*k1*k2**3*k3**2*cos(3*theta) + 594*b1*beta19*f*k1*k2*k3**4*cos(3*theta) - 396*b1*beta19*f*k2**6 + 396*b1*beta19*f*k2**2*k3**4 - 3344*b1*f**2*gr1*k1**4*k2**2 + 1672*b1*f**2*gr1*k1**4*k3**2 - 1012*b1*f**2*gr1*k1**3*k2**3*cos(3*theta) + 1012*b1*f**2*gr1*k1**3*k2*k3**2*cos(3*theta) - 396*b1*f*gr1*k1**5*k2*cos(3*theta) - 297*b1*f*gr1*k1**4*k2**2*cos(4*theta) + 297*b1*f*gr1*k1**4*k2**2 + 792*b1*f*gr1*k1**4*k3**2 + 198*b1*f*gr1*k1**3*k2**3*cos(3*theta) - 198*b1*f*gr1*k1**3*k2*k3**2*cos(3*theta) + 3960*b1*f*gr1*k1**2*k2**4 - 4752*b1*f*gr1*k1**2*k2**2*k3**2 + 792*b1*f*gr1*k1**2*k3**4 - 396*b2*f*gr1*k1**2*k2**2*k3**2 + 836*beta14*f**2*k1**4*k3**2 - 506*beta14*f**2*k1**3*k2**3*cos(3*theta) + 1518*beta14*f**2*k1**3*k2*k3**2*cos(3*theta) - 440*beta14*f**2*k1**2*k2**4*cos(4*theta) - 792*beta14*f**2*k1**2*k2**4 + 660*beta14*f**2*k1**2*k2**2*k3**2*cos(4*theta) + 1188*beta14*f**2*k1**2*k2**2*k3**2 - 1100*beta14*f**2*k1*k2**5*cos(3*theta) + 1100*beta14*f**2*k1*k2**3*k3**2*cos(3*theta) - 462*beta15*f**2*k1**5*k2*cos(3*theta) - 506*beta15*f**2*k1**4*k2**2*cos(4*theta) - 2090*beta15*f**2*k1**4*k2**2 - 1694*beta15*f**2*k1**3*k2**3*cos(3*theta) - 110*beta15*f**2*k1**3*k2**3*cos(5*theta) - 220*beta15*f**2*k1**2*k2**4*cos(4*theta) - 396*beta15*f**2*k1**2*k2**4 + 836*beta16*f**2*k1**4*k2**2 + 1518*beta16*f**2*k1**3*k2**3*cos(3*theta) - 506*beta16*f**2*k1**3*k2*k3**2*cos(3*theta) + 660*beta16*f**2*k1**2*k2**4*cos(4*theta) + 1188*beta16*f**2*k1**2*k2**4 - 440*beta16*f**2*k1**2*k2**2*k3**2*cos(4*theta) - 792*beta16*f**2*k1**2*k2**2*k3**2 + 1100*beta16*f**2*k1*k2**5*cos(3*theta) - 1100*beta16*f**2*k1*k2**3*k3**2*cos(3*theta) + 860*beta17*f**2*k1**6 + 1950*beta17*f**2*k1**5*k2*cos(3*theta) + 1680*beta17*f**2*k1**4*k2**2*cos(4*theta) + 6240*beta17*f**2*k1**4*k2**2 + 5310*beta17*f**2*k1**3*k2**3*cos(3*theta) + 450*beta17*f**2*k1**3*k2**3*cos(5*theta) + 900*beta17*f**2*k1**2*k2**4*cos(4*theta) + 1080*beta17*f**2*k1**2*k2**4 - 390*beta18*f**2*k1**5*k2*cos(3*theta) - 504*beta18*f**2*k1**4*k2**2*cos(4*theta) - 1872*beta18*f**2*k1**4*k2**2 - 1770*beta18*f**2*k1**3*k2**3*cos(3*theta) - 150*beta18*f**2*k1**3*k2**3*cos(5*theta) - 300*beta18*f**2*k1**2*k2**4*cos(4*theta) - 360*beta18*f**2*k1**2*k2**4 - 462*beta19*f**2*k1**4*k2**2*cos(4*theta) - 1298*beta19*f**2*k1**4*k2**2 - 3652*beta19*f**2*k1**3*k2**3*cos(3*theta) - 506*beta19*f**2*k1**3*k2**3*cos(5*theta) + 462*beta19*f**2*k1**3*k2*k3**2*cos(3*theta) - 2310*beta19*f**2*k1**2*k2**4*cos(4*theta) - 110*beta19*f**2*k1**2*k2**4*cos(6*theta) - 5566*beta19*f**2*k1**2*k2**4 + 506*beta19*f**2*k1**2*k2**2*k3**2*cos(4*theta) + 2090*beta19*f**2*k1**2*k2**2*k3**2 - 3058*beta19*f**2*k1*k2**5*cos(3*theta) - 330*beta19*f**2*k1*k2**5*cos(5*theta) + 1694*beta19*f**2*k1*k2**3*k3**2*cos(3*theta) + 110*beta19*f**2*k1*k2**3*k3**2*cos(5*theta) - 220*beta19*f**2*k2**6*cos(4*theta) - 396*beta19*f**2*k2**6 + 220*beta19*f**2*k2**4*k3**2*cos(4*theta) + 396*beta19*f**2*k2**4*k3**2 + 860*f**3*gr1*k1**6 + 780*f**3*gr1*k1**5*k2*cos(3*theta) + 168*f**3*gr1*k1**4*k2**2*cos(4*theta) + 624*f**3*gr1*k1**4*k2**2 - 880*f**2*gr1*k1**5*k2*cos(3*theta) - 462*f**2*gr1*k1**4*k2**2*cos(4*theta) - 3938*f**2*gr1*k1**4*k2**2 + 880*f**2*gr1*k1**4*k3**2 - 1386*f**2*gr1*k1**3*k2**3*cos(3*theta) + 462*f**2*gr1*k1**3*k2*k3**2*cos(3*theta) - 836*f**2*gr1*k1**2*k2**4 + 836*f**2*gr1*k1**2*k2**2*k3**2 - 792*f*g2*gr1*k1**5*k2*cos(3*theta) - 594*f*g2*gr1*k1**4*k2**2*cos(4*theta) - 4158*f*g2*gr1*k1**4*k2**2 - 2376*f*g2*gr1*k1**3*k2**3*cos(3*theta) - 792*f*g2*gr1*k1**2*k2**4 + 792*f*g2*gr1*k1**2*k2**2*k3**2 - 2*k1*k2*(-792*b1**2*k1**2*(2*f*gr1*(k2**2 - k3**2) + k3**2*(3*beta17 - beta18)) + 11*b1*f*(-504*C*beta19*k1**2*k2**2 - 468*C*beta19*k2**4 + 108*C*beta19*k2**2*k3**2 + 396*C*gr1*k1**2*k2**2 - 108*C*gr1*k1**2*k3**2 + 144*C*gr1*k2**4 - 288*C*gr1*k2**2*k3**2 + 144*C*gr1*k3**4 - 54*K*gr1*k1**4 - 162*K*gr1*k1**2*k2**2 + 72*K*gr1*k1**2*k3**2 + 72*beta14*k1**2*k2**2 - 216*beta14*k1**2*k3**2 + 27*beta14*k2**4 - 27*beta14*k3**4 + 9*beta15*k1**2*(8*k1**2 + 21*k2**2 + 5*k3**2) - 216*beta16*k1**2*k2**2 + 72*beta16*k1**2*k3**2 - 27*beta16*k2**4 + 27*beta16*k3**4 - 400*beta17*k1**4 - 171*beta17*k1**2*(3*k2**2 + k3**2) + 80*beta18*k1**4 + 171*beta18*k1**2*k2**2 + 57*beta18*k1**2*k3**2 + 432*beta19*k1**2*k2**2 - 72*beta19*k1**2*k3**2 + 279*beta19*k2**4 - 54*beta19*k2**2*k3**2 - 45*beta19*k3**4 + 160*f*gr1*k1**4 + 114*f*gr1*k1**2*k2**2 - 114*f*gr1*k1**2*k3**2 + 54*gr1*k1**4 - 279*gr1*k1**2*k2**2 + 135*gr1*k1**2*k3**2 - 72*gr1*k2**4 + 144*gr1*k2**2*k3**2 - 72*gr1*k3**4) + f*(-4730*C*beta19*f*k1**2*k2**2 - 4444*C*beta19*f*k2**4 + 2508*C*beta19*f*k2**2*k3**2 - 1320*C*f*gr1*k1**4 - 4356*C*f*gr1*k1**2*k2**2 + 1760*C*f*gr1*k1**2*k3**2 + 792*b2*gr1*k1**2*k3**2 + 627*beta14*f*k1**2*k2**2 - 1881*beta14*f*k1**2*k3**2 + 330*beta14*f*k2**4 - 330*beta14*f*k2**2*k3**2 + 11*beta15*f*k1**2*(59*k1**2 + 158*k2**2) - 1881*beta16*f*k1**2*k2**2 + 627*beta16*f*k1**2*k3**2 - 330*beta16*f*k2**4 + 330*beta16*f*k2**2*k3**2 - 15*beta17*f*k1**2*(215*k1**2 + 312*k2**2) + 645*beta18*f*k1**4 + 1560*beta18*f*k1**2*k2**2 + 4081*beta19*f*k1**2*k2**2 - 649*beta19*f*k1**2*k3**2 + 2706*beta19*f*k2**4 - 1738*beta19*f*k2**2*k3**2 - 1290*f**2*gr1*k1**4 + 1320*f*gr1*k1**4 + 2827*f*gr1*k1**2*k2**2 - 1529*f*gr1*k1**2*k3**2 + 1188*g2*gr1*k1**4 + 3564*g2*gr1*k1**2*k2**2 - 1584*g2*gr1*k1**2*k3**2))*cos(theta) + (-1188*b1**2*beta18*k1**2*k2**2*k3**2 + 4*beta17*k1**2*(891*b1**2*k2**2*k3**2 + 33*b1*f*(7*k1**2*(10*k2**2 + k3**2) + 26*k2**2*(k2**2 + k3**2)) + 5*f**2*(41*k1**4 + 444*k1**2*k2**2 + 153*k2**4)) + 2*f**3*gr1*(410*k1**6 + 444*k1**4*k2**2) + 2*f**2*(880*C*beta19*k1**4*k2**2 + 5269*C*beta19*k1**2*k2**4 - 924*C*beta19*k1**2*k2**2*k3**2 + 1144*C*beta19*k2**6 - 1144*C*beta19*k2**4*k3**2 + 2640*C*gr1*k1**4*k2**2 + 924*C*gr1*k1**2*k2**4 - 924*C*gr1*k1**2*k2**2*k3**2 - 1848*b1*gr1*k1**4*k2**2 + 924*b1*gr1*k1**4*k3**2 + 462*beta14*k1**4*k3**2 - 1144*beta14*k1**2*k2**4 + 1716*beta14*k1**2*k2**2*k3**2 - 22*beta15*(61*k1**4*k2**2 + 26*k1**2*k2**4) + 22*beta16*k1**2*k2**2*(21*k1**2 + 78*k2**2 - 52*k3**2) - 1332*beta18*k1**4*k2**2 - 510*beta18*k1**2*k2**4 - 880*beta19*k1**4*k2**2 - 3927*beta19*k1**2*k2**4 + 1342*beta19*k1**2*k2**2*k3**2 - 572*beta19*k2**6 + 572*beta19*k2**4*k3**2 - 2200*gr1*k1**4*k2**2 + 440*gr1*k1**4*k3**2 - 462*gr1*k1**2*k2**4 + 462*gr1*k1**2*k2**2*k3**2) + 44*f*(27*b1**2*gr1*k1**2*(k2**2 - k3**2)**2 - b1*(9*beta15*k1**2*k2**2*(4*k1**2 + 3*k2**2 + 3*k3**2) + beta18*k1**2*k2**2*(63*k1**2 + 26*k2**2 + 26*k3**2) - 9*beta19*k2**2*(k1**4*(4*C - 4) + 4*k1**2*(C*k3**2 + k2**2*(5*C - 4)) + (6*C - 3)*(k2**4 - k3**4)) - 9*k1**2*(-4*C*gr1*k2**2*(k1**2 + 2*k2**2 - 2*k3**2) + 3*K*gr1*k2**2*(2*k1**2 + k2**2 - k3**2) - 6*beta14*k2**4 + 9*beta14*k2**2*k3**2 + 3*beta14*k3**4 + 9*beta16*k2**4 - 3*beta16*k2**2*k3**2 + 2*gr1*(k1**2*k3**2 + 3*k2**4 - 4*k2**2*k3**2 + k3**4))) - 27*gr1*k1**2*k2**2*(b2*k3**2 + 2*g2*(2*k1**2 + k2**2 - k3**2))))*cos(2*theta))/(3960*k1*k2**2*k3**4)
43
+ return np.sqrt((4*np.pi)/7)*(perm12+perm13+perm23)
44
+
45
+ def l3m1(cosmo_functions,k1,k2,k3=None,theta=None,zz=0,r=0,s=0,nonlin=False,growth2=False):
46
+ #get generic cosmology parameters
47
+ k1,k2,k3,theta,Pk1,Pk2,Pk3,Pkd1,Pkd2,Pkd3,Pkdd1,Pkdd2,Pkdd3,d,K,C,f,D1,b1,b2,g2 = cosmo_functions.get_params(k1,k2,k3,theta,zz,nonlin=nonlin,growth2=growth2)
48
+ gr1,gr2,grd1,beta6,beta7,beta8,beta9,beta10,beta11,beta12,beta13,beta14,beta15,beta16,beta17,beta18,beta19,betad14,betad15,betad16,betad17,betad18,betad19 = cosmo_functions.get_beta_funcs(zz)
49
+
50
+ st = np.sin(theta)
51
+ ct= np.cos(theta)
52
+
53
+ perm12 = -np.sqrt(21)*1j*np.sqrt(np.pi)*D1**4*Pk1*Pk2*st*(33*b1**2*k3**2*(12*ct**2*(beta17*k2**3 + f*gr1*k1**2*k2) + 8*ct*k1*(beta18*k2**2 + f*gr1*(k1**2 + 2*k2**2)) + k2*(-3*beta17*k2**2*st**2 + 4*beta18*k1**2 + f*gr1*(k1**2*(8 - 3*st**2) + 4*k2**2))) + 11*b1*f*(8*ct**4*k2**3*(5*beta17*k3**2 + 9*beta19*k1**2*(C - 1) - gr1*k1**2*(9*C - 9)) + 4*ct**3*k1*k2**2*(3*beta19*k1**2*(4*C - 7) - 9*beta19*k2**2 + gr1*k1**2*(33 - 24*C) - gr1*k2**2*(12*C - 21) + 2*gr1*k3**2*(-3*K + 8*f + 3) + k3**2*(9*beta15 + 8*beta18)) + 6*ct**2*k2*(-beta19*(4*k1**4 + k1**2*k2**2*(3*C*st**2 + 8*C - 3*st**2 + 8)) + gr1*(k1**4*(12 - 4*C) + k1**2*(k2**2*(3*C*st**2 + 4*C - 3*st**2 + 20) + k3**2*(-2*K + 16*f + 6)) + 4*k2**2*(k2**2 + k3**2*(2*f + 1))) + k3**2*(6*beta14*k2**2 + 4*beta15*k1**2 + 6*beta16*k1**2 + 5*beta17*k2**2*st**2 + 4*beta17*k2**2 + 4*beta18*k1**2)) + ct*k1*(3*beta19*k2**2*(k1**2*(-16*C + 3*st**2 - 4) + k2**2*(3*st**2 - 4)) + gr1*(12*k1**4 + k1**2*(k2**2*(96*C - 9*st**2 + 36) + k3**2*(32*f + 12)) + 3*k2**4*(16*C - 3*st**2 + 8) + 4*k2**2*k3**2*(6*K + 6*f*st**2 + 16*f + 9)) + k3**2*(24*beta14*k1**2 + 16*beta17*k1**2 + k2**2*(beta15*(12 - 9*st**2) + 24*beta16 + 4*beta18*(3*st**2 + 4)))) + k2*(6*C*k1**2*(beta19*k2**2*(3*st**2 - 4) + 4*gr1*k1**2 + gr1*k2**2*(8 - 3*st**2)) + k3**2*(12*K*gr1*k1**2 - 9*beta14*k2**2*st**2 + 12*beta14*k2**2 + 3*beta16*k1**2*(4 - 3*st**2) - 10*beta17*k2**2*st**4 + 3*beta17*k2**2*st**2 + beta18*k1**2*(3*st**2 + 8) + 12*f*gr1*k1**2*st**2 + 16*f*gr1*k1**2 + 6*f*gr1*k2**2*st**2 + 12*gr1*k1**2))) + f*(ct**5*f*gr1*k1*k2**4*(704 - 704*C) + 4*ct**4*f*k2**3*(75*beta17*k3**2 + 132*beta19*k1**2*(C - 1) + gr1*(75*f*k3**2 + k1**2*(484 - 396*C) + 88*k2**2)) + 8*ct**3*k1*k2**2*(11*beta19*f*(k1**2*(4*C - 7) - 3*k2**2) + 90*f**2*gr1*k3**2 - 11*f*gr1*(k1**2*(12*C - 21) + k2**2*(3*C*st**2 - 8*C - 3*st**2 - 9)) + f*k3**2*(33*beta15 + 30*beta18) + 66*g2*gr1*k3**2) + 2*ct**2*k2*(-11*beta19*f*k1**2*(8*k1**2 + k2**2*(-3*C*(st**2 - 8) + 3*st**2 + 8)) + 15*f**2*gr1*k3**2*(18*k1**2 + 7*k2**2*st**2) - 11*f*gr1*(k1**4*(8*C - 32) + 3*k1**2*k2**2*(3*C*(st**2 - 8) - 5*st**2 - 8) - 6*k2**4*st**2) + f*k3**2*(132*beta14*k2**2 + 88*beta15*k1**2 + 132*beta16*k1**2 + 105*beta17*k2**2*st**2 + 90*beta18*k1**2) + 132*g2*gr1*k1**2*k3**2) + ct*k1*(12*f**2*gr1*k3**2*(10*k1**2 + 21*k2**2*st**2) + f*(-11*beta19*k2**2*(32*C*k1**2 + st**2*(3*k1**2 + 3*k2**2)) + 11*gr1*(8*k1**4 + k1**2*k2**2*(96*C + 9*st**2 + 8) + k2**4*st**2*(24*C + 9)) + k3**2*(176*beta14*k1**2 + 120*beta17*k1**2 + k2**2*(33*beta15*st**2 + 176*beta16 + 84*beta18*st**2))) + gr1*k2**2*k3**2*(264*b2 - 528*g2)) + k2*(22*C*f*k1**2*(-3*beta19*k2**2*st**2 + 8*gr1*k1**2 + 9*gr1*k2**2*st**2) + k3**2*(132*b2*gr1*k1**2 + f*st**2*(33*beta14*k2**2 + 33*beta16*k1**2 + 10*beta17*k2**2*st**2 + 21*beta18*k1**2 + 63*f*gr1*k1**2 + 10*f*gr1*k2**2*st**2) - 264*g2*gr1*k1**2))))/(3465*k1**2*k2**2*k3**2)
54
+ perm13 = np.sqrt(21)*1j*np.sqrt(np.pi)*D1**4*Pk1*Pk3*st*(33*b1**2*k2**2*(f*gr1*(16*ct*k1**3*k2 - 16*ct*k1*k2*k3**2 + 4*k1**4 + k1**2*(12*ct**2*k2**2 - 3*k2**2*st**2 - 8*k3**2) + 4*k3**4) + k3**2*(3*beta17*(8*ct*k1*k2 + 4*k1**2 + k2**2*(4*ct**2 - st**2)) - 4*beta18*k1*(2*ct*k2 + k1))) + 11*b1*f*(3*beta19*k1*(12*ct**2*k2**2 + 16*ct*k1*k2 + 4*k1**2 - 3*k2**2*st**2 + 4*k3**2)*(ct**2*k1*k2**2*(2*C - 2) + ct*k1**2*k2*(4*C - 3) + ct*k2*k3**2 + k1**3*(2*C - 1) + k1*k3**2*(1 - 2*C)) + k2*(8*ct**4*k2**3*(5*beta17*k2**2 + gr1*k1**2*(9 - 9*C)) - 4*ct**3*k1*k2**2*(gr1*(k1**2*(48*C - 39) + k2**2*(-6*K + 16*f + 6) + k3**2*(21 - 12*C)) + k2**2*(9*beta15 - 40*beta17 + 8*beta18)) + 6*ct**2*k2*(gr1*(k1**4*(18 - 28*C) + k1**2*(k2**2*(3*C*st**2 + 10*K - 16*f - 3*st**2 - 6) + k3**2*(28*C - 22)) + 4*k3**2*(k2**2*(2*f + 1) + k3**2)) + k2**2*(6*beta14*k3**2 - 14*beta15*k1**2 + 6*beta16*k1**2 + 40*beta17*k1**2 + 5*beta17*k2**2*st**2 + 4*beta17*k3**2 - 12*beta18*k1**2)) + ct*k1*(gr1*(-24*f*k2**4*st**2 + k1**4*(24 - 48*C) + k1**2*(k2**2*(36*C*st**2 + 48*K - 32*f - 27*st**2 - 12) + k3**2*(96*C - 48)) + k2**2*k3**2*(-24*K + 32*f + 9*st**2 + 12) + k3**4*(24 - 48*C)) + k2**2*(-24*beta14*(k1**2 - 3*k3**2) - 3*beta15*(20*k1**2 - 3*k2**2*st**2 + 4*k3**2) + 24*beta16*(3*k1**2 - k3**2) + 12*beta17*(12*k1**2 + 5*k2**2*st**2 + 4*k3**2) - 4*beta18*(12*k1**2 + 3*k2**2*st**2 + 4*k3**2))) - k2*(-18*C*gr1*k1**4*st**2 + 18*C*gr1*k1**2*k3**2*st**2 - 12*K*gr1*k1**4 + 12*K*gr1*k1**2*k3**2 + 3*beta14*(8*k1**4 - 12*k1**2*k3**2 + 3*k2**2*k3**2*st**2 - 4*k3**4) + 3*beta15*k1**2*(4*k1**2 - 3*k2**2*st**2 + 4*k3**2) - 36*beta16*k1**4 + 9*beta16*k1**2*k2**2*st**2 + 12*beta16*k1**2*k3**2 - 24*beta17*k1**4 - 30*beta17*k1**2*k2**2*st**2 - 24*beta17*k1**2*k3**2 + 10*beta17*k2**4*st**4 - 3*beta17*k2**2*k3**2*st**2 + 8*beta18*k1**4 + 9*beta18*k1**2*k2**2*st**2 + 8*beta18*k1**2*k3**2 + 12*f*gr1*k1**2*k2**2*st**2 - 6*f*gr1*k2**2*k3**2*st**2 + 9*gr1*k1**4*st**2 - 9*gr1*k1**2*k3**2*st**2))) + f*(11*beta19*f*k1*(32*ct*k1*k2 + 8*k1**2 + 3*k2**2*(8*ct**2 + st**2))*(ct**2*k1*k2**2*(2*C - 2) + ct*k1**2*k2*(4*C - 3) + ct*k2*k3**2 + k1**3*(2*C - 1) + k1*k3**2*(1 - 2*C)) + k2**2*(704*C*ct**5*f*gr1*k1*k2**3 + 1936*C*ct**4*f*gr1*k1**2*k2**2 + 1760*C*ct**3*f*gr1*k1**3*k2 + 264*C*ct**3*f*gr1*k1*k2**3*st**2 - 704*C*ct**3*f*gr1*k1*k2*k3**2 + 528*C*ct**2*f*gr1*k1**4 + 594*C*ct**2*f*gr1*k1**2*k2**2*st**2 - 528*C*ct**2*f*gr1*k1**2*k3**2 + 396*C*ct*f*gr1*k1**3*k2*st**2 - 264*C*ct*f*gr1*k1*k2*k3**2*st**2 + 66*C*f*gr1*k1**4*st**2 - 66*C*f*gr1*k1**2*k3**2*st**2 - 264*b2*ct*gr1*k1*k2*k3**2 - 132*b2*gr1*k1**2*k3**2 - 11*beta14*f*(16*ct*k1**3*k2 - 48*ct*k1*k2*k3**2 + 16*k1**4 - 24*k1**2*k3**2 - 3*k2**2*k3**2*(8*ct**2 + st**2)) - 11*beta15*f*k1*(ct*k2 + k1)*(32*ct*k1*k2 + 8*k1**2 + 3*k2**2*(8*ct**2 + st**2)) + 264*beta16*ct**2*f*k1**2*k2**2 + 528*beta16*ct*f*k1**3*k2 - 176*beta16*ct*f*k1*k2*k3**2 + 264*beta16*f*k1**4 + 33*beta16*f*k1**2*k2**2*st**2 - 176*beta16*f*k1**2*k3**2 + 300*beta17*ct**4*f*k2**4 + 1200*beta17*ct**3*f*k1*k2**3 + 1800*beta17*ct**2*f*k1**2*k2**2 + 210*beta17*ct**2*f*k2**4*st**2 + 1080*beta17*ct*f*k1**3*k2 + 420*beta17*ct*f*k1*k2**3*st**2 + 180*beta17*f*k1**4 + 210*beta17*f*k1**2*k2**2*st**2 + 10*beta17*f*k2**4*st**4 - 240*beta18*ct**3*f*k1*k2**3 - 540*beta18*ct**2*f*k1**2*k2**2 - 360*beta18*ct*f*k1**3*k2 - 84*beta18*ct*f*k1*k2**3*st**2 - 60*beta18*f*k1**4 - 63*beta18*f*k1**2*k2**2*st**2 - 704*ct**5*f*gr1*k1*k2**3 + 300*ct**4*f**2*gr1*k2**4 - 1584*ct**4*f*gr1*k1**2*k2**2 + 352*ct**4*f*gr1*k2**2*k3**2 + 480*ct**3*f**2*gr1*k1*k2**3 - 1144*ct**3*f*gr1*k1**3*k2 - 264*ct**3*f*gr1*k1*k2**3*st**2 + 616*ct**3*f*gr1*k1*k2*k3**2 - 528*ct**3*g2*gr1*k1*k2**3 + 180*ct**2*f**2*gr1*k1**2*k2**2 + 210*ct**2*f**2*gr1*k2**4*st**2 - 264*ct**2*f*gr1*k1**4 - 462*ct**2*f*gr1*k1**2*k2**2*st**2 + 264*ct**2*f*gr1*k1**2*k3**2 + 132*ct**2*f*gr1*k2**2*k3**2*st**2 - 1320*ct**2*g2*gr1*k1**2*k2**2 + 168*ct*f**2*gr1*k1*k2**3*st**2 - 231*ct*f*gr1*k1**3*k2*st**2 + 165*ct*f*gr1*k1*k2*k3**2*st**2 - 1056*ct*g2*gr1*k1**3*k2 + 528*ct*g2*gr1*k1*k2*k3**2 + 21*f**2*gr1*k1**2*k2**2*st**2 + 10*f**2*gr1*k2**4*st**4 - 33*f*gr1*k1**4*st**2 + 33*f*gr1*k1**2*k3**2*st**2 - 264*g2*gr1*k1**4 + 264*g2*gr1*k1**2*k3**2)))/(3465*k1**2*k2*k3**4)
55
+ perm23 = np.sqrt(21)*1j*np.sqrt(np.pi)*D1**4*Pk2*Pk3*st*(beta17*k1**2*(1080*ct**5*f**2*k2**4 + 2700*ct**4*f**2*k1*k2**3 + 12*ct**3*f*k2**2*(88*b1*(k2**2 + k3**2) + 5*f*(40*k1**2 + 21*k2**2*st**2)) + 18*ct**2*f*k1*k2*(44*b1*(3*k2**2 + k3**2) + 5*f*(10*k1**2 + 21*k2**2*st**2)) + 4*ct*(198*b1**2*k2**2*k3**2 + 11*b1*f*(4*k1**2*(10*k2**2 + k3**2) + 9*k2**2*st**2*(k2**2 + k3**2)) + 15*f**2*(2*k1**4 + 14*k1**2*k2**2*st**2 + 3*k2**4*st**4)) + k1*k2*(396*b1**2*k3**2 + 11*b1*f*(40*k1**2 + st**2*(27*k2**2 + 9*k3**2)) + 15*f**2*st**2*(7*k1**2 + 6*k2**2*st**2))) + ct**5*f**2*k1**2*k2**4*(-360*beta18 + 704*beta19*(C - 1)) - 4*ct**4*f**2*k1*k2**3*(88*beta15*k1**2 + 225*beta18*k1**2 - 88*beta19*(k1**2*(3*C - 3) + k2**2*(4*C - 3) + k3**2) + (110*beta14 - 110*beta16)*(k2**2 - k3**2)) - 4*ct**3*f*k2**2*(-66*b1*gr1*k1**4*(K - 1) + 44*beta15*f*k1**2*(3*k1**2 + 2*k2**2) + beta18*k1**2*(88*b1*(k2**2 + k3**2) + 15*f*(12*k1**2 + 7*k2**2*st**2)) - 22*beta19*(6*b1*k1**2*(C - 1)*(k2**2 + k3**2) + f*(k1**4*(4*C - 4) + 3*k1**2*(k2**2*(C*(st**2 + 8) - st**2 - 6) + 2*k3**2) + k2**2*(8*C - 4)*(k2**2 - k3**2))) - 60*f**2*gr1*k1**4 - 88*f*k1**2*(-2*beta14*k2**2 + 3*beta14*k3**2 + 3*beta16*k2**2 - 2*beta16*k3**2 + gr1*k1**2*(C - 1)) + 132*g2*gr1*k1**4) - 2*ct**2*f*k1*k2*(-264*C*b1*beta19*k1**2*k2**2 - 528*C*b1*beta19*k2**4 - 528*C*b1*beta19*k2**2*k3**2 + 132*C*b1*gr1*k1**2*k2**2 - 132*C*b1*gr1*k1**2*k3**2 - 66*C*beta19*f*k1**2*k2**2*st**2 - 352*C*beta19*f*k1**2*k2**2 - 264*C*beta19*f*k2**4*st**2 - 528*C*beta19*f*k2**4 + 528*C*beta19*f*k2**2*k3**2 - 88*C*f*gr1*k1**4 - 352*C*f*gr1*k1**2*k2**2 - 66*K*b1*gr1*k1**4 - 264*K*b1*gr1*k1**2*k2**2 + 198*b1*beta14*k2**4 - 198*b1*beta14*k3**4 - 198*b1*beta16*k2**4 + 198*b1*beta16*k3**4 + 264*b1*beta19*k1**2*k2**2 + 396*b1*beta19*k2**4 + 264*b1*beta19*k2**2*k3**2 - 132*b1*beta19*k3**4 + 264*b1*f*gr1*k1**2*k2**2 - 264*b1*f*gr1*k1**2*k3**2 + 66*b1*gr1*k1**4 + 132*beta14*f*k1**2*k2**2 - 396*beta14*f*k1**2*k3**2 + 165*beta14*f*k2**4*st**2 - 165*beta14*f*k2**2*k3**2*st**2 + 22*beta15*k1**2*(6*b1*(k2**2 + k3**2) + 4*f*k1**2 + 3*f*k2**2*(st**2 + 4)) - 396*beta16*f*k1**2*k2**2 + 132*beta16*f*k1**2*k3**2 - 165*beta16*f*k2**4*st**2 + 165*beta16*f*k2**2*k3**2*st**2 + 3*beta18*k1**2*(44*b1*(3*k2**2 + k3**2) + 15*f*(2*k1**2 + 7*k2**2*st**2)) + 66*beta19*f*k1**2*k2**2*st**2 + 264*beta19*f*k1**2*k2**2 - 88*beta19*f*k1**2*k3**2 + 198*beta19*f*k2**4*st**2 + 264*beta19*f*k2**4 - 66*beta19*f*k2**2*k3**2*st**2 - 264*beta19*f*k2**2*k3**2 - 180*f**2*gr1*k1**4 + 88*f*gr1*k1**4 + 264*f*gr1*k1**2*k2**2 - 88*f*gr1*k1**2*k3**2 + 132*g2*gr1*k1**4 + 528*g2*gr1*k1**2*k2**2) + 2*ct*(-132*b1**2*beta18*k1**2*k2**2*k3**2 + 6*f**3*gr1*k1**4*(10*k1**2 + 7*k2**2*st**2) + f**2*(132*C*beta19*k1**2*k2**4*st**2 + 176*C*beta19*k1**2*k2**4 - 176*C*beta19*k1**2*k2**2*k3**2 + 132*C*beta19*k2**6*st**2 - 132*C*beta19*k2**4*k3**2*st**2 + 176*C*gr1*k1**4*k2**2 + 176*C*gr1*k1**2*k2**4 - 176*C*gr1*k1**2*k2**2*k3**2 - 352*b1*gr1*k1**4*k2**2 + 176*b1*gr1*k1**4*k3**2 + 88*beta14*k1**4*k3**2 - 132*beta14*k1**2*k2**4*st**2 + 198*beta14*k1**2*k2**2*k3**2*st**2 - 11*beta15*(k1**4*k2**2*(3*st**2 + 8) + 6*k1**2*k2**4*st**2) + 22*beta16*k1**2*k2**2*(4*k1**2 + 9*k2**2*st**2 - 6*k3**2*st**2) - 126*beta18*k1**4*k2**2*st**2 - 30*beta18*k1**2*k2**4*st**4 - 99*beta19*k1**2*k2**4*st**2 - 88*beta19*k1**2*k2**4 + 33*beta19*k1**2*k2**2*k3**2*st**2 + 88*beta19*k1**2*k2**2*k3**2 - 66*beta19*k2**6*st**2 + 66*beta19*k2**4*k3**2*st**2 - 132*gr1*k1**4*k2**2 + 44*gr1*k1**4*k3**2 - 88*gr1*k1**2*k2**4 + 88*gr1*k1**2*k2**2*k3**2) + 66*f*(2*b1**2*gr1*k1**2*(k2**2 - k3**2)**2 - b1*(-8*C*beta19*k1**2*k2**4 - 4*C*beta19*k2**6 + 4*C*beta19*k2**2*k3**4 + 4*C*gr1*k1**2*k2**4 - 4*C*gr1*k1**2*k2**2*k3**2 - 2*K*gr1*k1**4*k2**2 - 2*K*gr1*k1**2*k2**4 + 2*K*gr1*k1**2*k2**2*k3**2 + 4*beta14*k1**2*k2**4 - 6*beta14*k1**2*k2**2*k3**2 - 2*beta14*k1**2*k3**4 + 2*beta15*k1**2*k2**2*(k1**2 + k2**2 + k3**2) - 6*beta16*k1**2*k2**4 + 2*beta16*k1**2*k2**2*k3**2 + beta18*k1**2*k2**2*(4*k1**2 + st**2*(k2**2 + k3**2)) + 6*beta19*k1**2*k2**4 - 2*beta19*k1**2*k2**2*k3**2 + 2*beta19*k2**6 - 2*beta19*k2**2*k3**4 + gr1*k1**4*k2**2 - gr1*k1**4*k3**2 - 3*gr1*k1**2*k2**4 + 4*gr1*k1**2*k2**2*k3**2 - gr1*k1**2*k3**4) - 2*gr1*k1**2*k2**2*(b2*k3**2 + 2*g2*(k1**2 + k2**2 - k3**2)))) - k1*k2*(132*b1**2*k1**2*(beta18*k3**2 + 2*f*gr1*(-k2**2 + k3**2)) + 11*b1*f*(-48*C*beta19*k2**4 + 48*C*beta19*k2**2*k3**2 + 24*C*gr1*k2**4 - 48*C*gr1*k2**2*k3**2 + 24*C*gr1*k3**4 - 12*K*gr1*k1**2*k2**2 + 12*K*gr1*k1**2*k3**2 + 12*beta14*k1**2*(k2**2 - 3*k3**2) + 9*beta14*st**2*(-k2**4 + k3**4) + 24*beta15*k1**2*k2**2 - 36*beta16*k1**2*k2**2 + 12*beta16*k1**2*k3**2 + 9*beta16*k2**4*st**2 - 9*beta16*k3**4*st**2 + beta18*(8*k1**4 + 3*k1**2*st**2*(3*k2**2 + k3**2)) + 24*beta19*k2**4 - 24*beta19*k2**2*k3**2 + 2*f*gr1*k1**2*(8*k1**2 + st**2*(3*k2**2 - 3*k3**2)) - 12*gr1*k2**4 + 24*gr1*k2**2*k3**2 - 12*gr1*k3**4) + f*(-42*f**2*gr1*k1**4*st**2 + f*(gr1*k1**2*(88 - 176*C)*(k2**2 - k3**2) + st**2*(-132*C*beta19*k2**4 + 132*C*beta19*k2**2*k3**2 + 33*beta14*k1**2*(k2**2 - 3*k3**2) + 110*beta14*k2**2*st**2*(-k2**2 + k3**2) + 66*beta15*k1**2*k2**2 - 99*beta16*k1**2*k2**2 + 33*beta16*k1**2*k3**2 + 110*beta16*k2**4*st**2 - 110*beta16*k2**2*k3**2*st**2 + 3*beta18*(7*k1**4 + 10*k1**2*k2**2*st**2) + 66*beta19*k2**4 - 66*beta19*k2**2*k3**2)) + 132*gr1*k1**2*(b2*k3**2 + 2*g2*(k2**2 - k3**2)))))/(3465*k1*k2**2*k3**4)
56
+
57
+ return (perm12+perm13+perm23)
58
+
59
+ def l3m2(cosmo_functions,k1,k2,k3=None,theta=None,zz=0,r=0,s=0,nonlin=False,growth2=False):
60
+ #get generic cosmology parameters
61
+ k1,k2,k3,theta,Pk1,Pk2,Pk3,Pkd1,Pkd2,Pkd3,Pkdd1,Pkdd2,Pkdd3,d,K,C,f,D1,b1,b2,g2 = cosmo_functions.get_params(k1,k2,k3,theta,zz,nonlin=nonlin,growth2=growth2)
62
+ gr1,gr2,grd1,beta6,beta7,beta8,beta9,beta10,beta11,beta12,beta13,beta14,beta15,beta16,beta17,beta18,beta19,betad14,betad15,betad16,betad17,betad18,betad19 = cosmo_functions.get_beta_funcs(zz)
63
+
64
+ st = np.sin(theta)
65
+ ct= np.cos(theta)
66
+
67
+ perm12 = np.sqrt(210)*1j*np.sqrt(np.pi)*D1**4*Pk1*Pk2*st**2*(33*b1**2*k3**2*(f*gr1*k1*(3*ct*k1*k2 + k1**2 + 2*k2**2) + k2**2*(3*beta17*ct*k2 + beta18*k1)) + 11*b1*f*(-3*beta19*k1*k2*(3*ct*k2 + k1)*(2*C*k1*k2 - ct**2*k1*k2*(2*C - 2) + ct*(k1**2 + k2**2)) - 2*ct**3*k2**3*(-5*beta17*k3**2 + gr1*k1**2*(9*C - 9)) - 3*ct**2*k1*k2**2*(gr1*(k1**2*(4*C - 7) + k2**2*(2*C - 5) + k3**2*(K - 4*f - 1)) - k3**2*(3*beta15 + 2*beta18)) + ct*k2*(3*gr1*(2*k1**4 + k1**2*(k2**2*(6*C + 3) + k3**2*(4*f + 1)) + k2**4 + k2**2*k3**2*(2*f + 1)) + k3**2*(9*beta14*k2**2 + 3*beta15*k1**2 + 9*beta16*k1**2 + 10*beta17*k2**2*st**2 + 3*beta17*k2**2 + 3*beta18*k1**2)) + k1*(6*C*gr1*k2**2*(2*k1**2 + k2**2) + k3**2*(3*K*gr1*k2**2 + 3*beta14*k1**2 + 3*beta16*k2**2 + beta17*k1**2 + 2*beta18*k2**2*st**2 + beta18*k2**2 + 2*f*gr1*k1**2 + 4*f*gr1*k2**2*st**2 + 4*f*gr1*k2**2 + 3*gr1*k2**2))) + f*(-11*beta19*f*k1*k2*(3*ct*k2 + k1)*(2*C*k1*k2 - ct**2*k1*k2*(2*C - 2) + ct*(k1**2 + k2**2)) + ct**4*f*gr1*k1*k2**4*(132 - 132*C) + 2*ct**3*f*k2**3*(25*beta17*k3**2 + gr1*(25*f*k3**2 + k1**2*(132 - 99*C) + 33*k2**2)) + ct**2*k1*k2**2*(90*f**2*gr1*k3**2 - 11*f*gr1*(k1**2*(6*C - 15) + k2**2*(4*C*(st**2 - 3) - 4*st**2 - 9)) + f*k3**2*(33*beta15 + 30*beta18) + 66*g2*gr1*k3**2) + ct*f*k2*(gr1*(33*k1**4 + k1**2*(45*f*k3**2 + 11*k2**2*(18*C + 2*st**2 + 3)) + 2*k2**2*st**2*(15*f*k3**2 + 11*k2**2)) + k3**2*(33*beta14*k2**2 + 11*beta15*k1**2 + 33*beta16*k1**2 + 30*beta17*k2**2*st**2 + 15*beta18*k1**2)) + k1*(22*C*f*gr1*k2**2*(3*k1**2 + 2*k2**2*st**2) + k3**2*(33*b2*gr1*k2**2 + 11*beta14*f*k1**2 + 11*beta16*f*k2**2 + 5*beta17*f*k1**2 + 6*beta18*f*k2**2*st**2 + 5*f**2*gr1*k1**2 + 18*f**2*gr1*k2**2*st**2 - 66*g2*gr1*k2**2))))/(3465*k1**2*k2**2*k3**2)
68
+ perm13 = -np.sqrt(210)*1j*np.sqrt(np.pi)*D1**4*Pk1*Pk3*st**2*(33*b1**2*k2**2*(f*gr1*k1*(3*ct*k1*k2 + 2*k1**2 - 2*k3**2) + k3**2*(3*beta17*(ct*k2 + k1) - beta18*k1)) + 11*b1*f*(3*beta19*k1*(3*ct*k2 + 2*k1)*(ct**2*k1*k2**2*(2*C - 2) + ct*k1**2*k2*(4*C - 3) + ct*k2*k3**2 + k1**3*(2*C - 1) + k1*k3**2*(1 - 2*C)) + gr1*(-ct*k1**4*k2*(30*C - 18) - 3*ct*k1**2*k2*(k2**2*(-2*K + ct**2*(6*C - 6) + 4*f + 1) + k3**2*(7 - 10*C)) + 3*ct*k2*k3**2*(k2**2*(2*f + 1) + k3**2) + k1**5*(3 - 6*C) + k1**3*(12*C*k3**2 + 3*K*k2**2 + ct**2*k2**2*(33 - 42*C) - 2*f*k2**2 - 6*k3**2) - k1*(6*C*k3**4 + 3*K*k2**2*k3**2 + 3*ct**2*k2**2*(k2**2*(-K + 4*f + 1) + k3**2*(5 - 2*C)) + 4*f*k2**4*st**2 - 2*f*k2**2*k3**2 - 3*k3**4)) + k2**2*(beta14*(9*ct*k2*k3**2 - 3*k1**3 + 9*k1*k3**2) - 3*beta15*k1*(3*ct**2*k2**2 + 5*ct*k1*k2 + 2*k1**2) + 9*beta16*ct*k1**2*k2 + 9*beta16*k1**3 - 3*beta16*k1*k3**2 + 10*beta17*ct**3*k2**3 + 30*beta17*ct**2*k1*k2**2 + 30*beta17*ct*k1**2*k2 + 10*beta17*ct*k2**3*st**2 + 3*beta17*ct*k2*k3**2 + 9*beta17*k1**3 + 10*beta17*k1*k2**2*st**2 + 3*beta17*k1*k3**2 - 6*beta18*ct**2*k1*k2**2 - 9*beta18*ct*k1**2*k2 - 3*beta18*k1**3 - 2*beta18*k1*k2**2*st**2 - beta18*k1*k3**2)) + f*(11*beta19*f*k1*(3*ct*k2 + 2*k1)*(ct**2*k1*k2**2*(2*C - 2) + ct*k1**2*k2*(4*C - 3) + ct*k2*k3**2 + k1**3*(2*C - 1) + k1*k3**2*(1 - 2*C)) + k2*(ct**4*f*gr1*k1*k2**3*(132*C - 132) + 2*ct**3*f*k2**2*(25*beta17*k2**2 + gr1*(25*f*k2**2 + k1**2*(165*C - 132) + 33*k3**2)) + ct**2*k1*k2*(60*f**2*gr1*k2**2 + 11*f*gr1*(k1**2*(24*C - 15) + k2**2*st**2*(4*C - 4) + k3**2*(9 - 12*C)) + f*k2**2*(-33*beta15 + 150*beta17 - 30*beta18) - 66*g2*gr1*k2**2) + ct*(15*f**2*gr1*k2**2*(k1**2 + 2*k2**2*st**2) + 11*f*gr1*(k1**4*(6*C - 3) + k1**2*(k2**2*st**2*(8*C - 6) + k3**2*(3 - 6*C)) + 2*k2**2*k3**2*st**2) + f*k2**2*(33*beta14*k3**2 - 55*beta15*k1**2 + 33*beta16*k1**2 + 150*beta17*k1**2 + 30*beta17*k2**2*st**2 - 45*beta18*k1**2) - 132*g2*gr1*k1**2*k2**2) + k1*k2*(44*C*f*gr1*k1**2*st**2 - 44*C*f*gr1*k3**2*st**2 - 33*b2*gr1*k3**2 - 11*beta14*f*(k1**2 - 3*k3**2) - 22*beta15*f*k1**2 + 33*beta16*f*k1**2 - 11*beta16*f*k3**2 + 45*beta17*f*k1**2 + 30*beta17*f*k2**2*st**2 - 15*beta18*f*k1**2 - 6*beta18*f*k2**2*st**2 + 12*f**2*gr1*k2**2*st**2 - 22*f*gr1*k1**2*st**2 + 22*f*gr1*k3**2*st**2 - 66*g2*gr1*k1**2 + 66*g2*gr1*k3**2))))/(3465*k1**2*k3**4)
69
+ perm23 = -np.sqrt(210)*1j*np.sqrt(np.pi)*D1**4*Pk2*Pk3*st**2*(-33*b1**2*beta18*k1**2*k2**2*k3**2 + beta17*k1**2*(99*b1**2*k2**2*k3**2 + 11*b1*f*(9*ct*k1*k2*(3*k2**2 + k3**2) + k1**2*(10*k2**2 + k3**2) + 6*k2**2*(3*ct**2 + st**2)*(k2**2 + k3**2)) + 5*f**2*(15*ct*k1**3*k2 + 18*ct*k1*k2**3*(5*ct**2 + 3*st**2) + k1**4 + 12*k1**2*k2**2*(5*ct**2 + st**2) + 9*k2**4*(5*ct**4 + 6*ct**2*st**2 + st**4))) + f**3*gr1*k1**4*(30*ct*k1*k2 + 5*k1**2 + 6*k2**2*(5*ct**2 + st**2)) - f**2*(11*beta15*k1**2*k2*(ct*k1 + k2)*(6*ct*k1*k2 + k1**2 + 2*k2**2*(3*ct**2 + st**2)) - 11*beta16*k1*k2*(ct*k1**2*(9*k2**2 - 3*k3**2) + 10*ct*k2**2*(ct**2 + st**2)*(k2**2 - k3**2) + k1**3*k2 + 2*k1*k2*(3*ct**2 + st**2)*(3*k2**2 - 2*k3**2)) + 3*beta18*k1**2*k2*(25*ct**4*k2**3 + 50*ct**3*k1*k2**2 + 30*ct**2*k2*(k1**2 + k2**2*st**2) + 5*ct*(k1**3 + 6*k1*k2**2*st**2) + 6*k1**2*k2*st**2 + 5*k2**3*st**4) - 11*beta19*k2*(6*ct*k1*k2 + k1**2 + 2*k2**2*(3*ct**2 + st**2))*(ct**2*k1**2*k2*(2*C - 2) + ct*k1*(k2**2*(4*C - 3) + k3**2) + k2*(2*C - 1)*(k2**2 - k3**2)) - 11*k1*(2*b1*gr1*k1**2*(3*ct*k2*(-k2**2 + k3**2) + k1*(-2*k2**2 + k3**2)) - 10*beta14*ct**3*k2**3*(k2**2 - k3**2) + 2*ct**2*k1*k2**2*(-6*beta14*k2**2 + 9*beta14*k3**2 + gr1*k1**2*(C - 1)) + ct*(beta14*(-3*k1**2*(k2**3 - 3*k2*k3**2) + 10*k2**3*st**2*(-k2**2 + k3**2)) + gr1*k1**2*k2*(k2**2*(4*C - 3) + k3**2)) + k1*(beta14*k1**2*k3**2 + 2*beta14*k2**2*st**2*(-2*k2**2 + 3*k3**2) + gr1*k2**2*(2*C - 1)*(k2**2 - k3**2)))) + 11*f*(3*b1**2*gr1*k1**2*(k2**2 - k3**2)**2 - b1*(3*beta14*k1**2*(2*k2**4 - 3*k2**2*k3**2 - k3**4) + beta18*k1**2*k2*(3*ct*k1*(3*k2**2 + k3**2) + 3*k1**2*k2 + 2*k2*(3*ct**2 + st**2)*(k2**2 + k3**2)) + 3*ct**2*k1**2*k2**2*(-2*beta19*(C - 1)*(k2**2 + k3**2) - gr1*k1**2*(K - 1)) + 3*ct*k1*k2*(beta15*k1**2*(k2**2 + k3**2) + gr1*k1**2*(-2*K*k2**2 + k2**2 - k3**2) + (k2**2 + k3**2)*(-4*C*beta19*k2**2 + 3*beta14*k2**2 - 3*beta14*k3**2 - 3*beta16*k2**2 + 3*beta16*k3**2 + 3*beta19*k2**2 - beta19*k3**2)) + 3*k2**2*(beta15*k1**2*(k2**2 + k3**2) + beta16*k1**2*(-3*k2**2 + k3**2) - (k2**2 - k3**2)*(K*gr1*k1**2 + beta19*(2*C - 1)*(k2**2 + k3**2)))) - 3*gr1*k1**2*k2**2*(b2*k3**2 + 2*ct**2*g2*k1**2 + 4*ct*g2*k1*k2 + 2*g2*(k2**2 - k3**2))))/(3465*k1*k2**2*k3**4)
70
+
71
+ return (perm12+perm13+perm23)
72
+
73
+ def l3m3(cosmo_functions,k1,k2,k3=None,theta=None,zz=0,r=0,s=0,nonlin=False,growth2=False):
74
+ #get generic cosmology parameters
75
+ k1,k2,k3,theta,Pk1,Pk2,Pk3,Pkd1,Pkd2,Pkd3,Pkdd1,Pkdd2,Pkdd3,d,K,C,f,D1,b1,b2,g2 = cosmo_functions.get_params(k1,k2,k3,theta,zz,nonlin=nonlin,growth2=growth2)
76
+ gr1,gr2,grd1,beta6,beta7,beta8,beta9,beta10,beta11,beta12,beta13,beta14,beta15,beta16,beta17,beta18,beta19,betad14,betad15,betad16,betad17,betad18,betad19 = cosmo_functions.get_beta_funcs(zz)
77
+
78
+ st = np.sin(theta)
79
+ ct= np.cos(theta)
80
+
81
+ perm12 = -np.sqrt(35)*1j*np.sqrt(np.pi)*D1**4*Pk1*Pk2*st**3*(99*b1**2*k3**2*(beta17*k2**2 + f*gr1*k1**2) + 11*b1*f*(18*C*gr1*k1**2*k2**2 + 9*beta14*k2**2*k3**2 + 9*beta16*k1**2*k3**2 + 10*beta17*k2**2*k3**2*st**2 + beta17*k2**2*k3**2 + beta18*k1**2*k3**2 - 9*beta19*k1*k2*(2*C*k1*k2 - ct**2*k1*k2*(2*C - 2) + ct*(k1**2 + k2**2)) - 2*ct**2*k2**2*(-5*beta17*k3**2 + gr1*k1**2*(9*C - 9)) + ct*k1*k2*(gr1*(8*f*k3**2 + 9*k1**2 + 9*k2**2) + k3**2*(9*beta15 + 4*beta18)) + 4*f*gr1*k1**2*k3**2 + 2*f*gr1*k2**2*k3**2) + f**2*(66*C*gr1*k1**2*k2**2 + 11*beta14*k2**2*k3**2 + 11*beta16*k1**2*k3**2 + 10*beta17*k2**2*k3**2*st**2 + 3*beta18*k1**2*k3**2 - 11*beta19*k1*k2*(2*C*k1*k2 - ct**2*k1*k2*(2*C - 2) + ct*(k1**2 + k2**2)) - ct**3*gr1*k1*k2**3*(88*C - 88) + 2*ct**2*k2**2*(15*beta17*k3**2 + gr1*(15*f*k3**2 + k1**2*(55 - 33*C) + 22*k2**2)) + ct*k1*k2*(gr1*(36*f*k3**2 + 33*k1**2 + k2**2*(88*C + 33)) + k3**2*(11*beta15 + 12*beta18)) + 9*f*gr1*k1**2*k3**2 + 10*f*gr1*k2**2*k3**2*st**2))/(3465*k1**2*k2*k3**2)
82
+ perm13 = np.sqrt(35)*1j*np.sqrt(np.pi)*D1**4*Pk1*Pk3*k2*st**3*(99*b1**2*k2**2*(beta17*k3**2 + f*gr1*k1**2) + 11*b1*f*(9*beta19*k1*(ct**2*k1*k2**2*(2*C - 2) + ct*k1**2*k2*(4*C - 3) + ct*k2*k3**2 + k1**3*(2*C - 1) + k1*k3**2*(1 - 2*C)) - gr1*(ct*k1**3*k2*(36*C - 27) + ct*k1*k2*(8*f*k2**2 + 9*k3**2) - 2*f*k2**2*k3**2 + k1**4*(18*C - 9) + k1**2*(ct**2*k2**2*(18*C - 18) + 4*f*k2**2 + k3**2*(9 - 18*C))) + k2**2*(9*beta14*k3**2 - 9*beta15*k1*(ct*k2 + k1) + 9*beta16*k1**2 + 10*beta17*ct**2*k2**2 + 20*beta17*ct*k1*k2 + 10*beta17*k1**2 + 10*beta17*k2**2*st**2 + beta17*k3**2 - 4*beta18*ct*k1*k2 - 3*beta18*k1**2)) + f**2*(11*beta19*k1*(ct**2*k1*k2**2*(2*C - 2) + ct*k1**2*k2*(4*C - 3) + ct*k2*k3**2 + k1**3*(2*C - 1) + k1*k3**2*(1 - 2*C)) + gr1*(30*ct**2*f*k2**4 + 44*ct**2*k2**2*k3**2 + ct*k1**3*k2*(132*C - 77) + ct*k1*k2*(ct**2*k2**2*(88*C - 88) + 24*f*k2**2 + k3**2*(55 - 88*C)) + 10*f*k2**4*st**2 + k1**4*(22*C - 11) + k1**2*(ct**2*k2**2*(198*C - 154) + 3*f*k2**2 + k3**2*(11 - 22*C))) + k2**2*(11*beta14*k3**2 - 11*beta15*k1*(ct*k2 + k1) + 11*beta16*k1**2 + 30*beta17*ct**2*k2**2 + 60*beta17*ct*k1*k2 + 30*beta17*k1**2 + 10*beta17*k2**2*st**2 - 12*beta18*ct*k1*k2 - 9*beta18*k1**2)))/(3465*k1**2*k3**4)
83
+ perm23 = np.sqrt(35)*1j*np.sqrt(np.pi)*D1**4*Pk2*Pk3*f*st**3*(88*C*beta19*ct**3*f*k1**2*k2**3 + 44*C*beta19*ct**2*f*k1**3*k2**2 + 176*C*beta19*ct**2*f*k1*k2**4 + 88*C*beta19*ct*f*k1**2*k2**3 + 88*C*beta19*ct*f*k2**5 - 88*C*beta19*ct*f*k2**3*k3**2 + 44*C*beta19*f*k1*k2**4 - 44*C*beta19*f*k1*k2**2*k3**2 - 99*b1*beta14*k1*k2**4 + 99*b1*beta14*k1*k3**4 + 99*b1*beta16*k1*k2**4 - 99*b1*beta16*k1*k3**4 - 22*b1*f*gr1*k1**3*k2**2 + 22*b1*f*gr1*k1**3*k3**2 - 110*beta14*ct**2*f*k1*k2**4 + 110*beta14*ct**2*f*k1*k2**2*k3**2 - 88*beta14*ct*f*k1**2*k2**3 + 132*beta14*ct*f*k1**2*k2*k3**2 - 11*beta14*f*k1**3*k2**2 + 33*beta14*f*k1**3*k3**2 - 110*beta14*f*k1*k2**4*st**2 + 110*beta14*f*k1*k2**2*k3**2*st**2 - 44*beta15*ct**2*f*k1**3*k2**2 - 22*beta15*ct*f*k1**4*k2 - 44*beta15*ct*f*k1**2*k2**3 - 22*beta15*f*k1**3*k2**2 + 110*beta16*ct**2*f*k1*k2**4 - 110*beta16*ct**2*f*k1*k2**2*k3**2 + 132*beta16*ct*f*k1**2*k2**3 - 88*beta16*ct*f*k1**2*k2*k3**2 + 33*beta16*f*k1**3*k2**2 - 11*beta16*f*k1**3*k3**2 + 110*beta16*f*k1*k2**4*st**2 - 110*beta16*f*k1*k2**2*k3**2*st**2 + 3*beta17*k1**2*(11*b1*(4*ct*k2*(k2**2 + k3**2) + k1*(3*k2**2 + k3**2)) + 5*f*(2*ct*k2 + k1)*(6*ct*k1*k2 + k1**2 + 6*k2**2*(ct**2 + st**2))) - beta18*k1**2*(11*b1*(4*ct*k2*(k2**2 + k3**2) + k1*(3*k2**2 + k3**2)) + 3*f*(2*ct*k2 + k1)*(10*ct*k1*k2 + k1**2 + 10*k2**2*(ct**2 + st**2))) - 88*beta19*ct**3*f*k1**2*k2**3 - 44*beta19*ct**2*f*k1**3*k2**2 - 132*beta19*ct**2*f*k1*k2**4 + 44*beta19*ct**2*f*k1*k2**2*k3**2 - 66*beta19*ct*f*k1**2*k2**3 + 22*beta19*ct*f*k1**2*k2*k3**2 - 44*beta19*ct*f*k2**5 + 44*beta19*ct*f*k2**3*k3**2 - 22*beta19*f*k1*k2**4 + 22*beta19*f*k1*k2**2*k3**2 + 12*ct*f**2*gr1*k1**4*k2 + 6*f**2*gr1*k1**5)/(3465*k1*k2*k3**4)
84
+
85
+ return (perm12+perm13+perm23)