Gamma function: Difference between revisions
Content deleted Content added
Added XPL0 example. |
m ANSI Standard BASIC, BASIC256, and BBC BASIC moved to the BASIC section. |
||
Line 492:
gamma( 70)= 1.711224524e98, 1.711224524281e98, 1.711224524281e98, 7.57303907062e-29, 1.709188578191e98
</pre>
=={{header|ANSI Standard BASIC}}==▼
{{trans|BBC Basic}} - Lanczos method.▼
<syntaxhighlight lang="ansi standard basic">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</syntaxhighlight>▼
=={{header|Arturo}}==
Line 703 ⟶ 673:
</pre>
=={{header|
▲==={{header|ANSI Standard BASIC}}===
▲<syntaxhighlight lang="ansi standard basic">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</syntaxhighlight>
==={{header|BASIC256}}===
{{trans|FreeBASIC}} - Stirling method.
Line 737:
end function</syntaxhighlight>
==={{header|BBC BASIC}}===
{{works with|BBC BASIC for Windows}}
Uses the Lanczos approximation.
|