code 41560; real procedure STUDRANGE(Q,N,NU); value Q,N,NU; real Q,N,NU; begin real X, PI, LN4, LNSQRT2PI, LNSQRTPI4; array E[1 : 3]; real procedure POWER(X)TO:(N); value X, N; real X; integer N; begin integer N2; real Y; Y:= 1; WHILE POS N: if N ≤ 0 then goto END WHILE POS N; N2:= N ÷ 2; WHILE EVEN N: if N2 × 2 ≠ N then goto END WHILE EVEN N; N:= N2; X:= X × X; N2:= N ÷ 2; goto WHILE EVEN N; END WHILE EVEN N: N:= N - 1; Y:= Y × X; goto WHILE POS N; END WHILE POS N: POWER:= Y end POWER; real procedure RANGE(T,N); value T,N; real T,N; begin real U; real array E[1:3]; E[1]:= E[2]:= 10-7; RANGE:= N × QADRAT(U, -5, +5, PHIDENS(U) × POWER(PHI(U + T) - PHI(U), N - 1), E); end RANGE; real procedure INTEGRAND(X); value X; real X; begin real XQ; XQ:= X / Q; INTEGRAND:= EXP(NU × (LN4 + LN(XQ) - LNSQRT2PI - XQ × XQ / 2)) × (1 - RANGE(X, N)) / X; end INTEGRAND; if N < 2 ∨ ENTIER(N) < N then STATAL ERROR(“STUDRANGE”, 2, N); if NU < 1 ∨ ENTIER(NU) < NU then STATAL ERROR(“STUDRANGE”, 3, NU); E[1]:= E[2]:= 10-6; PI:= ARCTAN(1) × 4; LNSQRT2PI:= .5 × LN(2 × PI); LN4:= LN(4); LNSQRTPI4:= .5 × LN(PI) - LN4; STUDRANGE:= if Q ≤ 0 then 0 else 1 - 2 × EXP(NU × (LN(NU) / 2 + LNSQRTPI4) - LOGGAMMA(NU / 2)) × QADRAT(X, 10-6, Q × 7, INTEGRAND(X), E); end STUDRANGE; eop