27 DATA gcs( 1) / .0085711955 90989331e0/
28 DATA gcs( 2) / .0044153813 24841007e0/
29 DATA gcs( 3) / .0568504368 1599363e0/
30 DATA gcs( 4) /-.0042198353 96418561e0/
31 DATA gcs( 5) / .0013268081 81212460e0/
32 DATA gcs( 6) /-.0001893024 529798880e0/
33 DATA gcs( 7) / .0000360692 532744124e0/
34 DATA gcs( 8) /-.0000060567 619044608e0/
35 DATA gcs( 9) / .0000010558 295463022e0/
36 DATA gcs(10) /-.0000001811 967365542e0/
37 DATA gcs(11) / .0000000311 772496471e0/
38 DATA gcs(12) /-.0000000053 542196390e0/
39 DATA gcs(13) / .0000000009 193275519e0/
40 DATA gcs(14) /-.0000000001 577941280e0/
41 DATA gcs(15) / .0000000000 270798062e0/
42 DATA gcs(16) /-.0000000000 046468186e0/
43 DATA gcs(17) / .0000000000 007973350e0/
44 DATA gcs(18) /-.0000000000 001368078e0/
45 DATA gcs(19) / .0000000000 000234731e0/
46 DATA gcs(20) /-.0000000000 000040274e0/
47 DATA gcs(21) / .0000000000 000006910e0/
48 DATA gcs(22) /-.0000000000 000001185e0/
49 DATA gcs(23) / .0000000000 000000203e0/
50 DATA pi /3.14159 26535 89793 24e0/
52 DATA sq2pil /0.91893 85332 04672 74e0/
77 IF (y.GT.10.0) go to 50
83 IF (
x.LT.0.) n = n - 1
94 IF (
x .EQ. 0.) CALL
xermsg(
'SLATEC',
'GAMMA',
'X IS 0', 4, 2)
95 IF (
x .LT. 0. .AND.
x+n-2 .EQ. 0.) CALL
xermsg(
'SLATEC',
'GAMMA'
96 1,
'X IS A NEGATIVE INTEGER', 4, 2)
97 IF (
x .LT. (-0.5) .AND.
abs((
x-aint(
x-0.5))/
x) .LT. dxrel) CALL
98 1
xermsg(
'SLATEC',
'GAMMA',
99 2
'ANSWER LT HALF PRECISION BECAUSE X TOO NEAR NEGATIVE INTEGER'
117 +
'X SO BIG GAMMA OVERFLOWS', 3, 2)
121 +
'X SO SMALL GAMMA UNDERFLOWS', 2, 1)
122 IF (
x.LT.
xmin)
RETURN
127 IF (
abs((
x-aint(
x-0.5))/
x) .LT. dxrel) CALL
xermsg(
'SLATEC',
129 +
'ANSWER LT HALF PRECISION, X TOO NEAR NEGATIVE INTEGER', 1, 1)
132 IF (sinpiy .EQ. 0.) CALL
xermsg(
'SLATEC',
'GAMMA',
133 +
'X IS A NEGATIVE INTEGER', 4, 2)