27 lines
766 B
Plaintext
27 lines
766 B
Plaintext
100 DECLARE EXTERNAL FUNCTION FNlngamma
|
|
110
|
|
120 DEF FNgamma(z) = EXP(FNlngamma(z))
|
|
130
|
|
140 FOR x = 0.1 TO 2.05 STEP 0.1
|
|
150 PRINT USING$("#.#",x), USING$("##.############", FNgamma(x))
|
|
160 NEXT x
|
|
170 END
|
|
180
|
|
190 EXTERNAL FUNCTION FNlngamma(z)
|
|
200 DIM lz(0 TO 6)
|
|
210 RESTORE
|
|
220 MAT READ lz
|
|
230 DATA 1.000000000190015, 76.18009172947146, -86.50532032941677, 24.01409824083091, -1.231739572450155, 0.0012086509738662, -0.000005395239385
|
|
240 IF z < 0.5 THEN
|
|
250 LET FNlngamma = LOG(PI / SIN(PI * z)) - FNlngamma(1.0 - z)
|
|
260 EXIT FUNCTION
|
|
270 END IF
|
|
280 LET z = z - 1.0
|
|
290 LET b = z + 5.5
|
|
300 LET a = lz(0)
|
|
310 FOR i = 1 TO 6
|
|
320 LET a = a + lz(i) / (z + i)
|
|
330 NEXT i
|
|
340 LET FNlngamma = (LOG(SQR(2*PI)) + LOG(a) - b) + LOG(b) * (z+0.5)
|
|
350 END FUNCTION
|