]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/mathlib/gen/c/gammf64.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / c / gammf64.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1996/04/01 15:01:54 mclareni
6* Mathlib gen
7*
8*
9#include "gen/pilot.h"
10#if defined(CERNLIB_DOUBLE)
11 FUNCTION DGAMMF(X)
12C
13#include "gen/imp64.inc"
14C
15 CHARACTER*(*) NAME
16 PARAMETER(NAME='GAMMF/DGAMMF')
17#endif
18#if !defined(CERNLIB_DOUBLE)
19 FUNCTION GAMMF(X)
20C
21 CHARACTER*(*) NAME
22 PARAMETER(NAME='GAMMF')
23#endif
24 CHARACTER*80 ERRTXT
25C
26 DIMENSION C(0:15)
27
28 PARAMETER (PI = 3.14159 26535 89793 24D0)
29
30 DATA C( 0) /3.65738 77250 83382 44D0/
31 DATA C( 1) /1.95754 34566 61268 27D0/
32 DATA C( 2) /0.33829 71138 26160 39D0/
33 DATA C( 3) /0.04208 95127 65575 49D0/
34 DATA C( 4) /0.00428 76504 82129 09D0/
35 DATA C( 5) /0.00036 52121 69294 62D0/
36 DATA C( 6) /0.00002 74006 42226 42D0/
37 DATA C( 7) /0.00000 18124 02333 65D0/
38 DATA C( 8) /0.00000 01096 57758 66D0/
39 DATA C( 9) /0.00000 00059 87184 05D0/
40 DATA C(10) /0.00000 00003 07690 81D0/
41 DATA C(11) /0.00000 00000 14317 93D0/
42 DATA C(12) /0.00000 00000 00651 09D0/
43 DATA C(13) /0.00000 00000 00025 96D0/
44 DATA C(14) /0.00000 00000 00001 11D0/
45 DATA C(15) /0.00000 00000 00000 04D0/
46
47 U=X
48 IF(U .LE. 0) THEN
49 IF(U .EQ. INT(X)) THEN
50 WRITE(ERRTXT,101) U
51 CALL MTLPRT(NAME,'C303.1',ERRTXT)
52 H=0
53 GO TO 9
54 ELSE
55 U=1-X
56 END IF
57 ENDIF
58 8 F=1
59 IF(U .LT. 3) THEN
60 DO 1 I = 1,INT(4-U)
61 F=F/U
62 1 U=U+1
63 ELSE
64 DO 2 I = 1,INT(U-3)
65 U=U-1
66 2 F=F*U
67 END IF
68 H=U+U-7
69 ALFA=H+H
70 B1=0
71 B2=0
72 DO 3 I = 15,0,-1
73 B0=C(I)+ALFA*B1-B2
74 B2=B1
75 3 B1=B0
76 H=F*(B0-H*B2)
77 IF(X .LT. 0) H=PI/(SIN(PI*X)*H)
78#if defined(CERNLIB_DOUBLE)
79 9 DGAMMF=H
80#endif
81#if !defined(CERNLIB_DOUBLE)
82 9 GAMMF=H
83#endif
84 RETURN
85
86 101 FORMAT('ARGUMENT IS NON-POSITIVE INTEGER = ',1P,E15.1)
87 END