Gamma function

From Rosetta Code
Revision as of 12:42, 19 February 2021 by Drkameleon (talk | contribs)

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>