This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / c / gamma128.F
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_QUAD)
11 #if !defined(CERNLIB_DOUBLE)
12       FUNCTION DGAMMA(X)
13 #endif
14 #if defined(CERNLIB_DOUBLE)
15       FUNCTION QGAMMA(X)
16 #endif
17
18 #include "gen/imp128.inc"
19       CHARACTER NAME*(*)
20       CHARACTER*80 ERRTXT
21 #if !defined(CERNLIB_DOUBLE)
22       PARAMETER (NAME = 'DGAMMA')
23       DIMENSION C(0:26)
24
25       DATA C( 0) / 3.65738 77250 83382 43849 88068 52039D0/
26       DATA C( 1) / 1.95754 34566 61268 26928 33742 32877D0/
27       DATA C( 2) / 0.33829 71138 26160 38915 58510 72725D0/
28       DATA C( 3) / 0.04208 95127 65575 49198 51083 97028D0/
29       DATA C( 4) / 0.00428 76504 82129 08770 04289 08116D0/
30       DATA C( 5) / 0.00036 52121 69294 61767 02198 21538D0/
31       DATA C( 6) / 0.00002 74006 42226 42200 27170 66599D0/
32       DATA C( 7) / 0.00000 18124 02333 65124 44603 04653D0/
33       DATA C( 8) / 0.00000 01096 57758 65997 06993 06003D0/
34       DATA C( 9) / 0.00000 00059 87184 04552 00046 94981D0/
35       DATA C(10) / 0.00000 00003 07690 80535 24777 70970D0/
36       DATA C(11) / 0.00000 00000 14317 93029 61915 76369D0/
37       DATA C(12) / 0.00000 00000 00651 08773 34803 70077D0/
38       DATA C(13) / 0.00000 00000 00025 95849 89822 27998D0/
39       DATA C(14) / 0.00000 00000 00001 10789 38922 59522D0/
40       DATA C(15) / 0.00000 00000 00000 03547 43620 16354D0/
41       DATA C(16) / 0.00000 00000 00000 00168 86075 02335D0/
42       DATA C(17) / 0.00000 00000 00000 00002 73543 57562D0/
43       DATA C(18) / 0.00000 00000 00000 00000 30297 74054D0/
44       DATA C(19) /-0.00000 00000 00000 00000 00571 22030D0/
45       DATA C(20) / 0.00000 00000 00000 00000 00090 76859D0/
46       DATA C(21) /-0.00000 00000 00000 00000 00005 04522D0/
47       DATA C(22) / 0.00000 00000 00000 00000 00000 40496D0/
48       DATA C(23) /-0.00000 00000 00000 00000 00000 02792D0/
49       DATA C(24) / 0.00000 00000 00000 00000 00000 00204D0/
50       DATA C(25) /-0.00000 00000 00000 00000 00000 00015D0/
51       DATA C(26) / 0.00000 00000 00000 00000 00000 00001D0/
52
53 #endif
54 #if defined(CERNLIB_DOUBLE)
55       PARAMETER (NAME = 'QGAMMA')
56       DIMENSION C(0:27)
57
58       DATA C( 0) / 3.65738 77250 83382 43849 88068 52039 34Q0/
59       DATA C( 1) / 1.95754 34566 61268 26928 33742 32876 84Q0/
60       DATA C( 2) / 0.33829 71138 26160 38915 58510 72725 40Q0/
61       DATA C( 3) / 0.04208 95127 65575 49198 51083 97027 90Q0/
62       DATA C( 4) / 0.00428 76504 82129 08770 04289 08116 23Q0/
63       DATA C( 5) / 0.00036 52121 69294 61767 02198 21538 33Q0/
64       DATA C( 6) / 0.00002 74006 42226 42200 27170 66598 98Q0/
65       DATA C( 7) / 0.00000 18124 02333 65124 44603 04653 06Q0/
66       DATA C( 8) / 0.00000 01096 57758 65997 06993 06002 52Q0/
67       DATA C( 9) / 0.00000 00059 87184 04552 00046 94980 50Q0/
68       DATA C(10) / 0.00000 00003 07690 80535 24777 70969 71Q0/
69       DATA C(11) / 0.00000 00000 14317 93029 61915 76369 12Q0/
70       DATA C(12) / 0.00000 00000 00651 08773 34803 70076 65Q0/
71       DATA C(13) / 0.00000 00000 00025 95849 89822 27997 94Q0/
72       DATA C(14) / 0.00000 00000 00001 10789 38922 59521 65Q0/
73       DATA C(15) / 0.00000 00000 00000 03547 43620 16353 80Q0/
74       DATA C(16) / 0.00000 00000 00000 00168 86075 02335 19Q0/
75       DATA C(17) / 0.00000 00000 00000 00002 73543 57561 54Q0/
76       DATA C(18) / 0.00000 00000 00000 00000 30297 74054 44Q0/
77       DATA C(19) /-0.00000 00000 00000 00000 00571 22030 32Q0/
78       DATA C(20) / 0.00000 00000 00000 00000 00090 76858 53Q0/
79       DATA C(21) /-0.00000 00000 00000 00000 00005 04522 44Q0/
80       DATA C(22) / 0.00000 00000 00000 00000 00000 40496 46Q0/
81       DATA C(23) /-0.00000 00000 00000 00000 00000 02791 84Q0/
82       DATA C(24) / 0.00000 00000 00000 00000 00000 00203 70Q0/
83       DATA C(25) /-0.00000 00000 00000 00000 00000 00014 54Q0/
84       DATA C(26) / 0.00000 00000 00000 00000 00000 00001 06Q0/
85       DATA C(27) /-0.00000 00000 00000 00000 00000 00000 07Q0/
86 #endif
87       U=X
88       IF(U .LE. 0) THEN
89        H=0
90        WRITE(ERRTXT,101) U
91        CALL MTLPRT(NAME,'C302.1',ERRTXT)
92        GO TO 9
93       ENDIF
94       F=1
95       IF(U .LT. 3) THEN
96        DO 1 I = 1,INT(4-U)
97        F=F/U
98     1  U=U+1
99       ELSE
100        DO 2 I = 1,INT(U-3)
101        U=U-1
102     2  F=F*U
103       END IF
104       H=U+U-7
105       ALFA=H+H
106       B1=0
107       B2=0
108 #if !defined(CERNLIB_DOUBLE)
109       DO 3 I = 26,0,-1
110 #endif
111 #if defined(CERNLIB_DOUBLE)
112       DO 3 I = 27,0,-1
113 #endif
114       B0=C(I)+ALFA*B1-B2
115       B2=B1
116     3 B1=B0
117       H=F*(B0-H*B2)
118 #if !defined(CERNLIB_DOUBLE)
119     9 DGAMMA=H
120 #endif
121 #if defined(CERNLIB_DOUBLE)
122     9 QGAMMA=H
123 #endif
124       RETURN
125   101 FORMAT('ARGUMENT IS NEGATIVE = ',1P,E15.1)
126       END
127 #endif