Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
27
Task/Gamma-function/Nim/gamma-function.nim
Normal file
27
Task/Gamma-function/Nim/gamma-function.nim
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
import math, strformat
|
||||
|
||||
const A = [
|
||||
1.00000000000000000000, 0.57721566490153286061, -0.65587807152025388108,
|
||||
-0.04200263503409523553, 0.16653861138229148950, -0.04219773455554433675,
|
||||
-0.00962197152787697356, 0.00721894324666309954, -0.00116516759185906511,
|
||||
-0.00021524167411495097, 0.00012805028238811619, -0.00002013485478078824,
|
||||
-0.00000125049348214267, 0.00000113302723198170, -0.00000020563384169776,
|
||||
0.00000000611609510448, 0.00000000500200764447, -0.00000000118127457049,
|
||||
0.00000000010434267117, 0.00000000000778226344, -0.00000000000369680562,
|
||||
0.00000000000051003703, -0.00000000000002058326, -0.00000000000000534812,
|
||||
0.00000000000000122678, -0.00000000000000011813, 0.00000000000000000119,
|
||||
0.00000000000000000141, -0.00000000000000000023, 0.00000000000000000002 ]
|
||||
|
||||
proc gamma(x: float): float =
|
||||
let y = x - 1
|
||||
result = A[^1]
|
||||
for n in countdown(A.high - 1, A.low):
|
||||
result = result * y + A[n]
|
||||
result = 1 / result
|
||||
|
||||
echo "Our gamma function Nim gamma function Difference"
|
||||
echo "------------------ ------------------ ----------"
|
||||
for i in 1..10:
|
||||
let val1 = gamma(i.toFloat / 3)
|
||||
let val2 = math.gamma(i.toFloat / 3)
|
||||
echo &"{val1:18.16f} {val2:18.16f} {val1 - val2:11.4e}"
|
||||
Loading…
Add table
Add a link
Reference in a new issue