Gamma function: Difference between revisions

Content added Content deleted
m (Phix/mpfr)
(Added Wren)
Line 4,255: Line 4,255:
1.9 0.961765831907391
1.9 0.961765831907391
2.0 1.000000000000000
2.0 1.000000000000000
</pre>

=={{header|Wren}}==
{{trans|Kotlin}}
{{libheader|Wren-fmt}}
{{libheader|Wren-math}}
The ''gamma'' method in the Math class is based on the Lanczos approximation.
<lang ecmascript>import "/fmt" for Fmt
import "/math" for Math

var stirling = Fn.new { |x| (2 * Num.pi / x).sqrt * (x / Math.e).pow(x) }

System.print(" x\tStirling\t\tLanczos\n")
for (i in 1..20) {
var d = i / 10
System.write("%(Fmt.f(4, d, 2))\t")
System.write("%(Fmt.f(16, stirling.call(d), 14))\t")
System.print("%(Fmt.f(16, Math.gamma(d), 14))")
}</lang>

{{out}}
<pre>
x Stirling Lanczos

0.10 5.69718714897717 9.51350769866875
0.20 3.32599842402239 4.59084371199881
0.30 2.36253003626962 2.99156898768760
0.40 1.84147633593624 2.21815954375769
0.50 1.52034690106628 1.77245385090552
0.60 1.30715885744836 1.48919224881282
0.70 1.15905329211392 1.29805533264756
0.80 1.05337096842561 1.16422971372530
0.90 0.97706150787770 1.06862870211932
1.00 0.92213700889579 1.00000000000000
1.10 0.88348995316870 0.95135076986687
1.20 0.85775533539659 0.91816874239976
1.30 0.84267825944839 0.89747069630628
1.40 0.83674454863708 0.88726381750308
1.50 0.83895655252650 0.88622692545276
1.60 0.84869324215257 0.89351534928769
1.70 0.86562147179388 0.90863873285329
1.80 0.88963963528799 0.93138377098024
1.90 0.92084272189423 0.96176583190739
2.00 0.95950217574449 1.00000000000000
</pre>
</pre>