]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/mathlib/gen/c/cgamma64.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / c / cgamma64.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1996/04/01 15:01:55 mclareni
6* Mathlib gen
7*
8*
9#include "gen/pilot.h"
10#if !defined(CERNLIB_DOUBLE)
11 FUNCTION CGAMMA(Z)
12#include "gen/defc64.inc"
13 + CGAMMA
14#endif
15#if defined(CERNLIB_DOUBLE)
16 FUNCTION WGAMMA(Z)
17#include "gen/imp64.inc"
18#include "gen/defc64.inc"
19 + WGAMMA
20#endif
21#include "gen/defc64.inc"
22 + Z,U,V,F,H,S
23 CHARACTER NAME*(*)
24 CHARACTER*80 ERRTXT
25#if !defined(CERNLIB_DOUBLE)
26 PARAMETER (NAME = 'CGAMMA')
27#endif
28#if defined(CERNLIB_DOUBLE)
29 PARAMETER (NAME = 'CGAMMA/WGAMMA')
30#endif
31 DIMENSION C(0:15)
32
33 PARAMETER (Z1 = 1, HF = Z1/2)
34
35#if defined(CERNLIB_QF2C)
36#include "gen/gcmpfun.inc"
37#endif
38
39 DATA PI /3.14159 26535 89793 24D0/
40 DATA C1 /2.50662 82746 31000 50D0/
41
42 DATA C( 0) / 41.62443 69164 39068D0/
43 DATA C( 1) /-51.22424 10223 74774D0/
44 DATA C( 2) / 11.33875 58134 88977D0/
45 DATA C( 3) / -0.74773 26877 72388D0/
46 DATA C( 4) / 0.00878 28774 93061D0/
47 DATA C( 5) / -0.00000 18990 30264D0/
48 DATA C( 6) / 0.00000 00019 46335D0/
49 DATA C( 7) / -0.00000 00001 99345D0/
50 DATA C( 8) / 0.00000 00000 08433D0/
51 DATA C( 9) / 0.00000 00000 01486D0/
52 DATA C(10) / -0.00000 00000 00806D0/
53 DATA C(11) / 0.00000 00000 00293D0/
54 DATA C(12) / -0.00000 00000 00102D0/
55 DATA C(13) / 0.00000 00000 00037D0/
56 DATA C(14) / -0.00000 00000 00014D0/
57 DATA C(15) / 0.00000 00000 00006D0/
58
59#if !defined(CERNLIB_QF2C)
60#include "gen/gcmpfun.inc"
61#endif
62
63 U=Z
64 X=U
65 IF(GIMAG(U) .EQ. 0 .AND. -ABS(X) .EQ. INT(X)) THEN
66 F=0
67 H=0
68 WRITE(ERRTXT,101) X
69 CALL MTLPRT(NAME,'C305.1',ERRTXT)
70 ELSE
71 IF(X .GE. 1) THEN
72 F=1
73 V=U
74 ELSEIF(X .GE. 0) THEN
75 F=1/U
76 V=1+U
77 ELSE
78 F=1
79 V=1-U
80 END IF
81 H=1
82 S=C(0)
83 DO 1 K = 1,15
84 H=((V-K)/(V+(K-1)))*H
85 1 S=S+C(K)*H
86 H=V+(4+HF)
87 H=C1*EXP((V-HF)*LOG(H)-H)*S
88 IF(X .LT. 0) H=PI/(SIN(PI*U)*H)
89 ENDIF
90#if !defined(CERNLIB_DOUBLE)
91 CGAMMA=F*H
92#endif
93#if defined(CERNLIB_DOUBLE)
94 WGAMMA=F*H
95#endif
96 RETURN
97 101 FORMAT('ARGUMENT EQUALS NON-POSITIVE INTEGER = ',1P,E15.1)
98 END