comment programma R 478, M.L.Potters, codenr MLP 200262 / 1689, MCP, XEEN, ALD; begin integer n, N; procedure TRIDIAG (T,r,n); value n; integer n; array T,r; begin integer k,h; real w; n:= n - 1; for k:= 1 step 1 until n do begin h:= 3 * k; w:= T[h - 2] / T[0]; if abs (w) < abs (T[h] / T[2]) then begin T[h - 2]:= T[0]; T[0]:= T[h] - w * T[2]; T[h]:= T[2]; if k != n then begin T[2]:= T[h + 2]; T[h + 2]:= 0 end; w:= r[k] - w * r[0]; r[k]:= r[0]; r[0]:= w end else begin T[0]:= T[2] - T[h] / w; if k != n then T[2]:= -T[h + 2] / w; r[0]:= r[0] - r[k] / w end end; r[0]:= r[0] / T[0]; for k:= n step -1 until 1 do begin h:= 3 * k; w:= if k != n then (r[k] - T[h] * r[0] - T[h + 2] * r[k + 1]) / T[h - 2] else (r[k] - T[h] * r[0]) / T[h - 2]; r[k]:= r[0]; r[0]:= w end end; n:= XEEN (127); N:= n % 2; begin integer m, j; real array p, gamma[0: n], dn[0: n, 0: N]; if n = 0 then begin dn[0, 0]:= sqrt (0.5); goto Typ end; p[0]:= 1; for j:= 1 step 1 until n do begin p[j]:= (1 - 0.5/j) * p[j - 1]; gamma[j]:= EVEN (j) * sqrt ((n + j) * (n - j + 1)) end; for j:= 0 step 1 until N do begin integer k; real array A[0: 3 * n - 3], b[0: n - 1]; dn[0, j]:= sqrt (n + 0.5) * p[N - j] * p[n - N + j]; k:= 2 * n - 4 * (N - j); if k != 0 then dn[0, j]:= 2 * dn[0, j]; A[0]:= k; b[0]:= - gamma[1] * dn[0, j]; for m:= 2 step 1 until n do begin A[3 * m - 5]:= A[3 * m - 4]:= gamma [m]; A[3 * m - 3]:= k; b[m - 1]:= 0 end; TRIDIAG (A, b, n); for m:= 1 step 1 until n do dn[m, j]:= b[m - 1] end; Typ: NLCR; NLCR; NLCR; FIXT (4, 0, n); NLCR; for m:= 0 step 1 until n do begin if m = 20 * (m % 20) then NLCR; FIXT (5, 0, '12 * (SUM (j, 0, N, (if EVEN (n) = - 1 & EVEN (m) = - 1 then EVEN (j) else 1) * dn[m, j]) - sqrt (n + 0.5) * (if EVEN (m) = 1 then (if m = 0 then 1 else 0) else if EVEN (n) = 1 then p[n % 2] * sqrt ((n + m) * (n - m) * p[(n + m - 1) % 2] * p[(n - m - 1) % 2])/m else EVEN ((n - m) % 2) * sqrt (p[(n + m) % 2] * p[(n - m) % 2])))) end; NLCR; for m:= 0 step 1 until n do begin NLCR; FIXT (4, 0, m); for j:= 0 step 1 until N do begin if j != 0 & j = 10 * (j % 10) then begin NLCR; SPACE (6) end; FIXT (2, 10, dn[m, j]) end; NLCR end end end