]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/mathlib/gen/c/algama64.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / c / algama64.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_IBM)
11#if defined(CERNLIB_DOUBLE)
12 FUNCTION DLGAMA(X)
13C
14#include "gen/imp64.inc"
15C
16 CHARACTER*(*) NAME
17 PARAMETER(NAME='ALGAMA/DLGAMA')
18#endif
19#if !defined(CERNLIB_DOUBLE)
20 FUNCTION ALGAMA(X)
21C
22 CHARACTER*(*) NAME
23 PARAMETER(NAME='ALGAMA')
24#endif
25C
26 DIMENSION P1(7),Q1(7),P2(7),Q2(7),P3(7),Q3(7),C(5)
27
28 PARAMETER (Z1 = 1, HF = Z1/2, HF1 = 1+HF)
29 CHARACTER*80 ERRTXT
30 DATA P1
31 1/+3.84287 36567 45991D+0, +5.27068 93753 00983D+1,
32 2 +5.55840 45723 51531D+1, -2.15135 13573 72570D+2,
33 3 -2.45872 61722 29242D+2, -5.75008 93603 04123D+1,
34 4 -2.33590 98949 51284D+0/
35 DATA Q1
36 1/+1.00000 00000 00000D+0, +3.37330 47907 07074D+1,
37 2 +1.93877 84034 37713D+2, +3.08829 54973 42428D+2,
38 3 +1.50068 39064 89095D+2, +2.01068 51344 33395D+1,
39 4 +4.57174 20282 50299D-1/
40 DATA P2
41 1/+4.87402 01396 83863 6D+0, +2.48845 25168 57407 6D+2,
42 2 +2.17973 66058 89591 5D+3, +3.79751 24011 52511 8D+3,
43 3 -1.97780 70769 84164 6D+3, -3.69298 34005 59128 2D+3,
44 4 -5.60177 73537 80387 7D+2/
45 DATA Q2
46 1/+1.00000 00000 00000 0D+0, +9.50999 17418 20893 8D+1,
47 2 +1.56120 45277 92863 5D+3, +7.23400 87928 94807 1D+3,
48 3 +1.04595 76594 05895 9D+4, +4.16994 15153 20023 1D+3,
49 4 +2.76785 83623 80410 1D+2/
50 DATA P3
51 1/-6.88062 40094 59425D+3, -4.30699 69819 57098D+5,
52 2 -4.75045 94653 43956D+6, -2.94234 45930 32234D+6,
53 3 +3.63218 04931 54257D+7, -3.35677 82814 54576D+6,
54 4 -2.48043 69488 28593D+7/
55 DATA Q3
56 1/+1.00000 00000 00000D+0, -1.42168 29839 65146D+3,
57 2 -1.55528 90280 85353D+5, -3.41525 17108 01107D+6,
58 3 -2.09696 23255 80444D+7, -3.45441 75093 34395D+7,
59 4 -9.16055 82863 71317D+6/
60 DATA C
61 1/ 1.12249 21356 561D-1, 7.95916 92961 204D-2,
62 1 -1.70877 94611 020D-3, 9.18938 53320 467D-1,
63 2 1.34699 05627 879D+0/
64
65
66#if defined(CERNLIB_DOUBLE)
67 ENTRY DLOGAM(X)
68#endif
69#if !defined(CERNLIB_DOUBLE)
70 ENTRY ALOGAM(X)
71#endif
72
73 IF(X .LE. 0) THEN
74 H=0
75 WRITE(ERRTXT,101) X
76 CALL MTLPRT(NAME,'C304.1',ERRTXT)
77 ELSE IF(X .EQ. 1 .OR. X .EQ. 2) THEN
78 H=0
79 ELSE IF(X .LE. HF) THEN
80 Y=X+1
81 AP=P1(1)
82 AQ=Q1(1)
83 DO 2 I = 2,7
84 AP=P1(I)+Y*AP
85 2 AQ=Q1(I)+Y*AQ
86 H=-LOG(X)+X*AP/AQ
87 ELSE IF(X .LE. HF1) THEN
88 AP=P1(1)
89 AQ=Q1(1)
90 DO 3 I = 2,7
91 AP=P1(I)+X*AP
92 3 AQ=Q1(I)+X*AQ
93 H=(X-1)*AP/AQ
94 ELSE IF(X .LE. 4) THEN
95 AP=P2(1)
96 AQ=Q2(1)
97 DO 4 I = 2,7
98 AP=P2(I)+X*AP
99 4 AQ=Q2(I)+X*AQ
100 H=(X-2)*AP/AQ
101 ELSE IF(X .LE. 12) THEN
102 AP=P3(1)
103 AQ=Q3(1)
104 DO 5 I = 2,7
105 AP=P3(I)+X*AP
106 5 AQ=Q3(I)+X*AQ
107 H=AP/AQ
108 ELSE
109 Y=1/X**2
110 H=(X-HF)*LOG(X)-X+C(4)+(C(1)+Y*(C(2)+Y*C(3)))/
111 1 ((C(5)+Y)*X)
112 ENDIF
113#if defined(CERNLIB_DOUBLE)
114 DLGAMA=H
115#endif
116#if !defined(CERNLIB_DOUBLE)
117 ALGAMA=H
118#endif
119 RETURN
120 101 FORMAT('NON-POSITIVE ARGUMENT X = ',1P,E15.6)
121 END
122#endif