code 34330;
procedure CHLDECBND(A, N, W, AUX); value N, W; integer N, W;
array A, AUX;
begin integer J, K, JMAX, KK, KJ, W1, START;
        real R, EPS, MAX;
        MAX:= 0; KK:= - W; W1:= W + 1;
        for J:= 1 step 1 until N do 
        begin KK:= KK + W1; if A[KK] > MAX then MAX:= A[KK]end;
        JMAX:= W; W1:= W + 1; KK:= - W; EPS:= AUX[2] * MAX;
        for K:= 1 step 1 until N do 
        begin if K + W > N then JMAX:= JMAX - 1; KK:= KK + W1;
            START:= KK - K + 1;
            R:= A[KK] - VECVEC(if K <= W1 then START else KK - W,
            KK - 1, 0, A, A); if R <= EPS then 
            begin AUX[3]:= K - 1; "GO TO" END end;
            A[KK]:= R:= SQRT(R); KJ:= KK;
            for J:= 1 step 1 until JMAX do 
            begin KJ:= KJ + W;
                A[KJ]:= (A[KJ] - VECVEC(if K + J <= W1 then START
                else KK - W + J, KK - 1, KJ - KK, A, A)) / R
            end 
        end;
        AUX[3]:= N;
    END:
    end CHLDECBND;
        eop