code 34310;
    procedure CHLDEC2(A, N, AUX); value N; integer N;
    array A, AUX;
    begin integer K, J; real R, EPSNORM;

        R:= 0;
        for K:= 1 step 1 until N do 
        if A[K,K] > R then R:= A[K,K];
        EPSNORM:= AUX[2] * R;
        for K:= 1 step 1 until N do 
        begin R:= A[K,K] - TAMMAT(1, K - 1, K, K, A, A);
            if R <= EPSNORM then 
            begin AUX[3]:= K - 1; goto END end;
            A[K,K]:= R:= SQRT(R);
            for J:= K + 1 step 1 until N do 
            A[K,J]:= (A[K,J] - TAMMAT(1, K - 1, J, K, A, A)) / R
        end;
        AUX[3]:= N;
    END:
    end CHLDEC2;
        eop