code 49999; real procedure ANDERSON DARLING(X, L, U, SORTED); value L, U, SORTED; array X; integer L, U; Boolean SORTED; begin integer I, N; real MU, SIGMA, XI, FACTOR, SUM, ESTIMATE; N:= U - L +1; if N ≤ 1 then STATAL3 ERROR(“ANDERSON-DARLING”, 3, U); if ¬ SORTED then VECQSORT(X, L, U); if X[L] = X[U] then STATAL3 ERROR(“ANDERSON-DARLING”, 1, X[L]); comment FIRST THE ESTIMATION (IN THE USUAL WAY) OF EXPECTATION AND STANDARD DEVIATION OF THE NORMAL DISTRIBUTION. ; MU:= SIGMA:= 0; ESTIMATE:= (X[L] + X[U]) / 2; for I:= L step 1 until U do begin XI:= X[I]:= X[I] - ESTIMATE; MU:= MU + XI; SIGMA:= SIGMA + XI × XI; end; MU:= MU / N; SIGMA:= SQRT((SIGMA - N × MU × MU) / (N - 1)); comment TRANSFORMATION OF THE OBSERVATIONS TO UNIFORM(0, 1)-DISTRIBUTED QUANTITIES.; for I:= L step 1 until U do X[I]:=PHI((X[I] - MU) / SIGMA); comment ANDERSON-DARLING TEST QUANTITY; SUM:= 0; FACTOR:= -1; for I:= L step 1 until U do begin FACTOR:= FACTOR + 2; SUM:= SUM + FACTOR × (LN(X[I]) + LN(1 - X[L + U - I])) end; ANDERSON DARLING:= (1 + 4 / N - 25 / N / N) × (-SUM / N - N) end OF ANDERSON DARLING; eop