"CODE" 34184;
    "COMMENT" MCA 2414;
    "INTEGER" "PROCEDURE" REAEIG1(A, N, EM, VAL, VEC); "VALUE" N;
    "INTEGER" N; "ARRAY" A, EM, VAL, VEC;
    "BEGIN" "INTEGER" I, K, MAX, J, L;
        "REAL" RESIDU, R, MACHTOL;
        "ARRAY" D, V[1:N], B[1:N,1:N];
        "INTEGER" "ARRAY" INT, INT0[1:N];

        RESIDU:= 0; MAX:= 0; EQILBR(A, N, EM, D, INT0);
        TFMREAHES(A, N, EM, INT);
        "FOR" I:= 1 "STEP" 1 "UNTIL" N "DO"
        "FOR" J:= ("IF" I = 1 "THEN" 1 "ELSE" I - 1)
        "STEP" 1 "UNTIL" N "DO" B[I,J]:= A[I,J];
        K:= REAEIG1:= REAVALQRI(B, N, EM, VAL);
        "FOR" I:= K + 1 "STEP" 1 "UNTIL" N "DO"
        "FOR" J:= I + 1 "STEP" 1 "UNTIL" N "DO"
        "BEGIN" "IF" VAL[J] > VAL[I] "THEN"
            "BEGIN" R:= VAL[I]; VAL[I]:= VAL[J]; VAL[J]:= R "END"
        "END";
        MACHTOL:= EM[0] * EM[1];
        "FOR" L:= K + 1 "STEP" 1 "UNTIL" N "DO"
        "BEGIN" "IF" L > 1 "THEN"
            "BEGIN" "IF" VAL[L - 1] - VAL[L] < MACHTOL "THEN"
                VAL[L]:= VAL[L - 1] - MACHTOL
            "END";
            "FOR" I:= 1 "STEP" 1 "UNTIL" N "DO"
            "FOR" J:= ("IF" I = 1 "THEN" 1 "ELSE" I - 1)
            "STEP" 1 "UNTIL" N "DO" B[I,J]:= A[I,J];
            REAVECHES(B, N, VAL[L], EM, V);
            "IF" EM[7] > RESIDU "THEN" RESIDU:= EM[7];
            "IF" EM[9] > MAX "THEN" MAX:= EM[9];
            "FOR" J:= 1 "STEP" 1 "UNTIL" N "DO" VEC[J,L]:= V[J]
        "END";
        EM[7]:= RESIDU; EM[9]:= MAX;
        BAKREAHES2(A, N, K + 1, N, INT, VEC);
        BAKLBR(N, K + 1, N, D, INT0, VEC);
        REASCL(VEC, N, K + 1, N)
    "END" REAEIG1

        "EOP"