forked from JoeMcEwen/FAST-PT
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathRSD_ItypeII.py
More file actions
101 lines (77 loc) · 3.13 KB
/
RSD_ItypeII.py
File metadata and controls
101 lines (77 loc) · 3.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
from __future__ import division
import numpy as np
import sys
from time import time
from numpy import log, sqrt, exp, pi
from scipy.signal import fftconvolve as convolve
def P_Ap1(k,P,f):
N=k.size
n= np.arange(-N+1,N )
dL=log(k[1])-log(k[0])
s=n*dL
cut=3
high_s=s[s > cut]
low_s=s[s < -cut]
mid_high_s=s[ (s <= cut) & (s > 0)]
mid_low_s=s[ (s >= -cut) & (s < 0)]
Z1=lambda r : (3.*f *(6.*r - 22.*r**3 - 22. *r**5 + 6.*r**7 + 3.*log(np.absolute(r-1.)/(r+1.))*(-1. + r**2)**4) \
-4.*r**2 *(9.*log(np.absolute(r-1.)/(r+1.))*(-1. + r**2)**3 + 2.*r *(19. - 24.* r**2 + 9.* r**4)))/r**3
Z1_high=lambda r : -224.+(384-768*f/5.)*r**2+(-1152./5+2304./35*f)*r**4+(1152-256*f)/35.*r**6 + (128+34*f)/35.*r**8
Z1_low=lambda r: 32./5-768*f/5. + (-1152+2304*f)/35./r**2 +(-128-256*f)/35./r**4 +(-264+34*f)/35./r**6 +(96./7-186.*f/35.)/r**8
f_mid_low=Z1(exp(-mid_low_s))*exp(-mid_low_s)
f_mid_high=Z1(exp(-mid_high_s))*exp(-mid_high_s)
f_high = Z1_high(exp(-high_s))*exp(-high_s)
f_low = Z1_low(exp(-low_s))*exp(-low_s)
f=np.hstack((f_low,f_mid_low,-32.-96.*f,f_mid_high,f_high))
# print(f)
g= convolve(P, f) * dL
g_k=g[N-1:2*N-1]
ap1= 1./672./pi**2*k**2 * P*g_k
return ap1
def P_Ap3(k,P,f):
N=k.size
n= np.arange(-N+1,N )
dL=log(k[1])-log(k[0])
s=n*dL
cut=3
high_s=s[s > cut]
low_s=s[s < -cut]
mid_high_s=s[ (s <= cut) & (s > 0)]
mid_low_s=s[ (s >= -cut) & (s < 0)]
Z3=lambda r : f *(9 *log(np.absolute(r-1.)/(r+1.)) *(-1. + r**2)**3 *(-1. - 7.* r**2 + f *(-1. + r**2)) + 2*r *(9. - 185 *r**2 + 159.* r**4 - 63.* r**6 +\
f *(9. - 33.* r**2 - 33.* r**4 + 9.* r**6)))/(r**3)
Z3_high=lambda r : -448.*f+ (3072.*f-768*f**2)/5.*r**2+(-13824.*f+2304.*f**2)/35.*r**4+(2048.*f-256.*f**2)/35.*r**6 + (58*5*f+34*f**2)/35.*r**8
Z3_low=lambda r: -704*f/5.-768*f**2/5. + 2304.*f**2 /35./r**2 +(-512*f-256*f**2)/35./r**4 +(-496*f+34*f**2)/35./r**6 +(774.*f-186.*f**2)/35./r**8
f_mid_low=Z3(exp(-mid_low_s))*exp(-mid_low_s)
f_mid_high=Z3(exp(-mid_high_s))*exp(-mid_high_s)
f_high = Z3_high(exp(-high_s))*exp(-high_s)
f_low = Z3_low(exp(-low_s))*exp(-low_s)
f=np.hstack((f_low,f_mid_low,-160.*f-96.*f**2,f_mid_high,f_high))
# print(f)
g= convolve(P, f) * dL
g_k=g[N-1:2*N-1]
ap3= 1./672./pi**2*k**2 * P*g_k
return ap3
def P_Ap5(k,P,f):
N=k.size
n= np.arange(-N+1,N )
dL=log(k[1])-log(k[0])
s=n*dL
cut=3
high_s=s[s > cut]
low_s=s[s < -cut]
mid_high_s=s[ (s <= cut) & (s > 0)]
mid_low_s=s[ (s >= -cut) & (s < 0)]
Z5=lambda r : -f**2 *(9*log(np.absolute(r-1.)/(r+1.)) *(-1. + r**2)**3 *(1. + 3.* r**2) + 2.* r *(-9. + 109. *r**2 - 63.* r**4 + 27.* r**6))/(r**3)
Z5_high=lambda r : -224.*f**2+(1152*f**2/5.)*r**2 - 1152.*f**2/7.*r**4+(128.*f**2)/5.*r**6 + (162.*f**2)/35.*r**8
Z5_low=lambda r: -736.*f**2/5. + (1152*f**2)/35./r**2 -384.*f**2/35./r**4 -46.*f**2/7./r**6 +42.*f/5./r**8
f_mid_low=Z5(exp(-mid_low_s))*exp(-mid_low_s)
f_mid_high=Z5(exp(-mid_high_s))*exp(-mid_high_s)
f_high = Z5_high(exp(-high_s))*exp(-high_s)
f_low = Z5_low(exp(-low_s))*exp(-low_s)
f=np.hstack((f_low,f_mid_low,-128.*f**2,f_mid_high,f_high))
# print(f)
g= convolve(P, f) * dL
g_k=g[N-1:2*N-1]
ap5= 1./672./pi**2*k**2 * P*g_k
return ap5