Gamma function: Difference between revisions

added Arturo
(Undo revision 324502 by Drkameleon (talk))
(added Arturo)
Line 522:
340 LET FNlngamma = (LOG(SQR(2*PI)) + LOG(a) - b) + LOG(b) * (z+0.5)
350 END FUNCTION</lang>
 
=={{header|Arturo}}==
 
<lang rebol>A: @[
1.00000000000000000000 0.57721566490153286061 neg 0.65587807152025388108
neg 0.04200263503409523553 0.16653861138229148950 neg 0.04219773455554433675
neg 0.00962197152787697356 0.00721894324666309954 neg 0.00116516759185906511
neg 0.00021524167411495097 0.00012805028238811619 neg 0.00002013485478078824
neg 0.00000125049348214267 0.00000113302723198170 neg 0.00000020563384169776
0.00000000611609510448 0.00000000500200764447 neg 0.00000000118127457049
0.00000000010434267117 0.00000000000778226344 neg 0.00000000000369680562
0.00000000000051003703 neg 0.00000000000002058326 neg 0.00000000000000534812
0.00000000000000122678 neg 0.00000000000000011813 0.00000000000000000119
0.00000000000000000141 neg 0.00000000000000000023 0.00000000000000000002
]
 
ourGamma: function [x][
y: x - 1
result: last A
loop ((size A)-1)..0 'n ->
result: (result*y) + get A n
result: 1 // result
return result
]
 
loop 1..10 'z [
v1: ourGamma z // 3
v2: gamma z // 3
print [
pad (to :string z)++" =>" 10
pad (to :string v1)++" ~" 30
pad (to :string v2)++" :" 30
pad (to :string v1-v2) 30
]
]</lang>
 
{{out}}
 
<pre> 1 => 2.678938534707748 ~ 2.678938534707748 : 4.440892098500626e-16
2 => 1.3541179394264 ~ 1.3541179394264 : 0.0
3 => 1.0 ~ 1.0 : 0.0
4 => 0.8929795115692493 ~ 0.8929795115692493 : 0.0
5 => 0.9027452929509336 ~ 0.9027452929509336 : 0.0
6 => 1.0 ~ 1.0 : 0.0
7 => 1.190639348758999 ~ 1.190639348758999 : 0.0
8 => 1.504575488251335 ~ 1.504575488251556 : -2.204902926905561e-13
9 => 1.999999999908069 ~ 2.0 : -9.193090733106146e-11
10 => 2.778158462440097 ~ 2.778158480437665 : -1.799756743636749e-08</pre>
 
=={{header|AutoHotkey}}==
1,532

edits