]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PDF/spdf/gammado.F
(martin) pt vs eta correction matrix calculation macro using CorrectionMatrix2D class.
[u/mrichter/AliRoot.git] / PDF / spdf / gammado.F
CommitLineData
21886bb6 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.2 1996/10/30 08:28:27 cernlib
6* Version 7.04
7*
8* Revision 1.1.1.1 1996/04/12 15:29:22 plothow
9* Version 7.01
10*
11*
12#include "pdf/pilot.h"
13C
14C ..................................................................
15C
16C SUBROUTINE GAMMADO
17C
18C PURPOSE
19C COMPUTES THE GAMMADO FUNCTION FOR A GIVEN ARGUMENT
20C
21C USAGE
22C CALL GAMMADO(XX,GX,IER)
23C
24C DESCRIPTION OF PARAMETERS
25C XX -THE ARGUMENT FOR THE GAMMADO FUNCTION
26C GX -THE RESULTANT GAMMADO FUNCTION VALUE
27C IER-RESULTANT ERROR CODE WHERE
28C IER=0 NO ERROR
29C IER=1 XX IS WITHIN .000001 OF BEING A NEGATIVE INTEGER
30C IER=2 XX GT 34.5, OVERFLOW, GX SET TO 1.0E38
31C
32C REMARKS
33C NONE
34C
35C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
36C NONE
37C
38C METHOD
39C THE RECURSION RELATION AND POLYNOMIAL APPROXIMATION
40C BY C.HASTINGS,JR., 'APPROXIMATIONS FOR DIGITAL COMPUTERS',
41C PRINCETON UNIVERSITY PRESS, 1955
42C
43C ..................................................................
44C
45 SUBROUTINE GAMMADO(XX,GX,IER)
46 IF(XX-34.5)6,6,4
47 4 IER=2
48 GX=1.E38
49 RETURN
50 6 X=XX
51 ERR=1.0E-6
52 IER=0
53 GX=1.0
54 IF(X-2.0)50,50,15
55 10 IF(X-2.0)110,110,15
56 15 X=X-1.0
57 GX=GX*X
58 GO TO 10
59 50 IF(X-1.0)60,120,110
60C
61C SEE IF X IS NEAR NEGATIVE INTEGER OR ZERO
62C
63 60 IF(X-ERR)62,62,80
64 62 Y=FLOAT(INT(X))-X
65 IF(ABS(Y)-ERR)130,130,64
66 64 IF(1.0-Y-ERR)130,130,70
67C
68C X NOT NEAR A NEGATIVE INTEGER OR ZERO
69C
70 70 IF(X-1.0)80,80,110
71 80 GX=GX/X
72 X=X+1.0
73 GO TO 70
74 110 Y=X-1.0
75 GY=1.0+Y*(-0.5771017+Y*(+0.9858540+Y*(-0.8764218+Y*(+0.8328212+
76 1Y*(-0.5684729+Y*(+0.2548205+Y*(-0.05149930)))))))
77 GX=GX*GY
78 120 RETURN
79 130 IER=1
80 RETURN
81 END