@@ -17,41 +17,41 @@ function gamma(_x::Float64)
17
17
w = muladd (w, evalpoly (w, s), 1.0 )
18
18
# avoid overflow
19
19
v = x ^ muladd (0.5 , x, - 0.25 )
20
-
21
20
res = SQ2PI (T) * v * (v / exp (x)) * w
22
-
23
- if _x < 0
24
- return π / (res * s)
25
- else
26
- return res
27
- end
21
+
22
+ if _x < 0
23
+ return π / (res * s)
24
+ else
25
+ return res
26
+ end
28
27
end
29
28
P = (
30
- 1.000000000000000000009e0 , 8.378004301573126728826e-1 , 3.629515436640239168939e-1 , 1.113062816019361559013e-1 ,
31
- 2.385363243461108252554e-2 , 4.092666828394035500949e-3 , 4.542931960608009155600e-4 , 4.212760487471622013093e-5
29
+ 1.000000000000000000009e0 , 8.378004301573126728826e-1 , 3.629515436640239168939e-1 , 1.113062816019361559013e-1 ,
30
+ 2.385363243461108252554e-2 , 4.092666828394035500949e-3 , 4.542931960608009155600e-4 , 4.212760487471622013093e-5
32
31
)
33
32
Q = (
34
- 9.999999999999999999908e-1 , 4.150160950588455434583e-1 , - 2.243510905670329164562e-1 , - 4.633887671244534213831e-2 ,
35
- 2.773706565840072979165e-2 , - 7.955933682494738320586e-4 , - 1.237799246653152231188e-3 , 2.346584059160635244282e-4 ,
36
- - 1.397148517476170440917e-5
33
+ 9.999999999999999999908e-1 , 4.150160950588455434583e-1 , - 2.243510905670329164562e-1 , - 4.633887671244534213831e-2 ,
34
+ 2.773706565840072979165e-2 , - 7.955933682494738320586e-4 , - 1.237799246653152231188e-3 , 2.346584059160635244282e-4 ,
35
+ - 1.397148517476170440917e-5
37
36
)
38
37
39
38
z = 1.0
40
39
while x >= 3.0
41
- x -= 1.0
42
- z *= x
40
+ x -= 1.0
41
+ z *= x
43
42
end
44
43
while x < 2.0
45
- z /= x
46
- x += 1.0
44
+ z /= x
45
+ x += 1.0
47
46
end
48
47
49
48
x -= 2.0
50
49
p = evalpoly (x, P)
51
50
q = evalpoly (x, Q)
52
- retrun _x < 0 ? π * q / (s * z * p) : z * p / q
51
+ return _x < 0 ? π * q / (s * z * p) : z * p / q
53
52
end
54
53
54
+
55
55
function gamma (_x:: Float32 )
56
56
x = Float64 (_x)
57
57
if _x < 0
0 commit comments