NUMAL Section 1.1.5
BEGIN SECTION : 1.1.5 (April, 1974)
AUTHORS: T.J.DEKKER, C.G. VAN DER LAAN.
CONTRIBUTOR: P.A.BEENTJES.
INSTITUTE: MATHEMATICAL CENTRE.
RECEIVED: 730715.
BRIEF DESCRIPTION:
THIS SECTION CONTAINS TEN PROCEDURES.
ELMVEC ADDS X TIMES THE VECTOR GIVEN IN ARRAY B[SHIFT+L : SHIFT+U]
TO THE VECTOR GIVEN IN ARRAY A[L:U].
ELMCOL ADDS X TIMES THE COLUMN VECTOR GIVEN IN ARRAY B[L:U, J:J] TO
THE COLUMN VECTOR GIVEN IN ARRAY A[L:U, I:I].
ELMROW ADDS X TIMES THE ROW VECTOR GIVEN IN ARRAY B[J:J, L:U] TO
THE ROW VECTOR GIVEN IN ARRAY A[I:I, L:U].
ELMVECCOL ADDS X TIMES THE COLUMN VECTOR GIVEN IN ARRAY B[L:U, I:I]
TO THE VECTOR GIVEN IN ARRAY A[L:U].
ELMCOLVEC ADDS X TIMES THE VECTOR GIVEN IN ARRAY B[L:U] TO THE
COLUMN VECTOR GIVEN IN ARRAY A[L:U, I:I].
ELMVECROW ADDS X TIMES THE ROW VECTOR GIVEN IN ARRAY B[I:I, L:U] TO
THE VECTOR GIVEN IN ARRAY A[L:U].
ELMROWVEC ADDS X TIMES THE VECTOR GIVEN IN ARRAY B[L:U] TO THE
ROW VECTOR GIVEN IN ARRAY A[I:I, L:U].
ELMCOLROW ADDS X TIMES THE ROW VECTOR GIVEN IN ARRAY B[J:J, L:U] TO
THE COLUMN VECTOR GIVEN IN ARRAY A[L:U, I:I].
ELMROWCOL ADDS X TIMES THE COLUMN VECTOR GIVEN IN ARRAY B[L:U, J:J]
TO THE ROW VECTOR GIVEN IN ARRAY A[I:I, L:U].
MAXELMROW ADDS X TIMES THE ROW VECTOR GIVEN IN ARRAY B[J:J, L:U] TO
THE ROW VECTOR GIVEN IN ARRAY A[I:I, L:U].
MOREOVER, MAXELMROW:= THE VALUE OF THE SECOND SUBSCRIPT OF AN
ELEMENT OF THE NEW ROW VECTOR IN ARRAY A WHICH IS OF MAXIMUM
ABSOLUTE VALUE.
IF, HOWEVER, L > U, THEN MAXELMROW:= L.
KEYWORDS:
ELEMENTARY PROCEDURE,
VECTOR OPERATIONS,
ELIMINATION.
SUBSECTION: ELMVEC.
CALLING SEQUENCE:
HEADING:
"PROCEDURE" ELMVEC(L, U, SHIFT, A, B, X); "VALUE" L,U,SHIFT,X;
"INTEGER" L,U,SHIFT; "REAL" X; "ARRAY" A,B;
"CODE" 34020;
FORMAL PARAMETERS:
L,U: <ARITHMETIC EXPRESSION>;
LOWER AND UPPER BOUND OF THE RUNNING SUBSCRIPT;
SHIFT: <ARITHMETIC EXPRESSION>;
INDEX-SHIFTING PARAMETER OF THE VECTOR B;
A,B: <ARRAY IDENTIFIER>;
"ARRAY" A[L : U], B[L + SHIFT : U + SHIFT];
X: <ARITHMETIC EXPRESSION>;
ELIMINATION FACTOR.
LANGUAGE: COMPASS.
SUBSECTION: ELMCOL.
CALLING SEQUENCE:
HEADING:
"PROCEDURE" ELMCOL(L, U, I, J, A, B, X); "VALUE" L,U,I,J,X;
"INTEGER" L,U,I,J; "REAL" X; "ARRAY" A,B;
"CODE" 34023;
FORMAL PARAMETERS:
L,U: <ARITHMETIC EXPRESSION>;
LOWER AND UPPER BOUND OF THE RUNNING SUBSCRIPT;
I: <ARITHMETIC EXPRESSION>;
COLUMN-INDEX OF THE COLUMN VECTOR A;
J: <ARITHMETIC EXPRESSION>;
COLUMN-INDEX OF THE COLUMN VECTOR B;
A,B: <ARRAY IDENTIFIER>;
"ARRAY" A[L : U, I : I], B[L : U, J : J];
X: <ARITHMETIC EXPRESSION>;
ELIMINATION FACTOR.
LANGUAGE: COMPASS.
SUBSECTION: ELMROW.
CALLING SEQUENCE:
HEADING:
"PROCEDURE" ELMROW(L, U, I, J, A, B, X); "VALUE" L,U,I,J,X;
"INTEGER" L,U,I,J; "REAL" X; "ARRAY" A,B;
"CODE" 34024;
FORMAL PARAMETERS:
L,U: <ARITHMETIC EXPRESSION>;
LOWER AND UPPER BOUND OF THE RUNNING SUBSCRIPT;
I: <ARITHMETIC EXPRESSION>;
ROW-INDEX OF THE ROW VECTOR A;
J: <ARITHMETIC EXPRESSION>;
ROW-INDEX OF THE ROW VECTOR B;
A,B: <ARRAY IDENTIFIER>;
"ARRAY" A[I : I, L : U], B[J : J, L : U];
X: <ARITHMETIC EXPRESSION>;
ELIMINATION FACTOR.
LANGUAGE: COMPASS.
SUBSECTION: ELMVECCOL.
CALLING SEQUENCE:
HEADING:
"PROCEDURE" ELMVECCOL(L, U, I, A, B, X); "VALUE" L,U,I,X;
"INTEGER" L,U,I; "REAL" X; "ARRAY" A,B;
"CODE" 34021;
FORMAL PARAMETERS:
L,U: <ARITHMETIC EXPRESSION>;
LOWER AND UPPER BOUND OF THE RUNNING SUBSCRIPT;
I: <ARITHMETIC EXPRESSION>;
COLUMN-INDEX OF THE COLUMN VECTOR B;
A,B: <ARRAY IDENTIFIER>;
"ARRAY" A[L : U], B[L : U, I : I];
X: <ARITHMETIC EXPRESSION>;
ELIMINATION FACTOR.
LANGUAGE: COMPASS.
SUBSECTION ELMCOLVEC.
CALLING SEQUENCE:
HEADING:
"PROCEDURE" ELMCOLVEC(L, U, I, A, B, X); "VALUE" L,U,I,X;
"INTEGER" L,U,I; "REAL" X; "ARRAY" A,B;
"CODE" 34022;
FORMAL PARAMETERS:
L,U: <ARITHMETIC EXPRESSION>;
LOWER AND UPPER BOUND OF THE RUNNING SUBSCRIPT;
I: <ARITHMETIC EXPRESSION>;
COLUMN-INDEX OF THE COLUMN VECTOR A;
A,B: <ARRAY IDENTIFIER>;
"ARRAY" A[L : U, I : I], B[L : U];
X: <ARITHMETIC EXPRESSION>;
ELIMINATION FACTOR.
LANGUAGE: COMPASS.
SUBSECTION: ELMVECROW.
CALLING SEQUENCE:
HEADING:
"PROCEDURE" ELMVECROW(L, U, I, A, B, X); "VALUE" L,U,I,X;
"INTEGER" L,U,I; "REAL" X; "ARRAY" A,B;
"CODE" 34026;
FORMAL PARAMETERS:
L,U: <ARITHMETIC EXPRESSION>;
LOWER AND UPPER BOUND OF THE RUNNING SUBSCRIPT;
I: <ARITHMETIC EXPRESSION>;
ROW-INDEX OF THE ROW VECTOR B;
A,B: <ARRAY IDENTIFIER>;
"ARRAY" A[L : U], B[I : I, L : U];
X: <ARITHMETIC EXPRESSION>;
ELIMINATION FACTOR.
LANGUAGE: COMPASS.
SUBSECTION: ELMROWVEC.
CALLING SEQUENCE:
HEADING:
"PROCEDURE" ELMROWVEC(L, U, I, A, B, X); "VALUE" L,U,I,X;
"INTEGER" L,U,I; "REAL" X; "ARRAY" A,B;
"CODE" 34027;
FORMAL PARAMETERS:
L,U: <ARITHMETIC EXPRESSION>;
LOWER AND UPPER BOUND OF THE RUNNING SUBSCRIPT;
I: <ARITHMETIC EXPRESSION>;
ROW-INDEX OF THE ROW VECTOR A;
A,B: <ARRAY IDENTIFIER>;
"ARRAY" A[I : I, L : U], B[L : U];
X: <ARITHMETIC EXPRESSION>;
ELIMINATION FACTOR.
LANGUAGE: COMPASS.
SUBSECTION: ELMCOLROW.
CALLING SEQUENCE:
HEADING:
"PROCEDURE" ELMCOLROW(L, U, I, J, A, B, X); "VALUE" L,U,I,J,X;
"INTEGER" L,U,I,J; "REAL" X; "ARRAY" A,B;
"CODE" 34029;
FORMAL PARAMETERS:
L,U: <ARITHMETIC EXPRESSION>;
LOWER AND UPPER BOUND OF THE RUNNING SUBSCRIPT;
I: <ARITHMETIC EXPRESSION>;
COLUMN-INDEX OF THE COLUMN VECTOR A;
J: <ARITHMETIC EXPRESSION>;
ROW-INDEX OF THE ROW VECTOR B;
A,B: <ARRAY IDENTIFIER>;
"ARRAY" A[L : U, I : I], B[J : J, L : U], WHEN A = B THEN
CORRECT ELIMINATION IS GUARANTEED ONLY WHEN THE ROW AND
COLUMN ARE DISJUNCT;
X: <ARITHMETIC EXPRESSION>;
ELIMINATION FACTOR.
LANGUAGE: COMPASS.
SUBSECTION: ELMROWCOL.
CALLING SEQUENCE:
HEADING:
"PROCEDURE" ELMROWCOL(L, U, I, J, A, B, X); "VALUE" L,U,I,J,X;
"INTEGER" L,U,I,J; "REAL" X; "ARRAY" A,B;
"CODE" 34028;
FORMAL PARAMETERS:
L,U: <ARITHMETIC EXPRESSION>;
LOWER AND UPPER BOUND OF THE RUNNING SUBSCRIPT;
I: <ARITHMETIC EXPRESSION>;
ROW-INDEX OF THE ROW VECTOR A;
J: <ARITHMETIC EXPRESSION>;
COLUMN-INDEX OF THE COLUMN VECTOR B;
A,B: <ARRAY IDENTIFIER>;
"ARRAY" A[I : I, L : U], B[L : U, J : J], WHEN A = B THEN
CORRECT ELIMINATION IS GUARANTEED ONLY WHEN THE ROW AND
COLUMN ARE DISJUNCT;
X: <ARITHMETIC EXPRESSION>;
ELIMINATION FACTOR.
LANGUAGE: COMPASS.
SUBSECTION: MAXELMROW.
CALLING SEQUENCE:
HEADING:
"INTEGER" "PROCEDURE" MAXELMROW(L, U, I, J, A, B, X);
"VALUE" L,U,I,J,X; "INTEGER" L,U,I,J; "REAL" X; "ARRAY" A,B;
"CODE" 34025;
MAXELMROW DELIVERS THE INDEX OF THE MAXIMAL ELEMENT AFTER ELIMINA-
TION STEP IN ARRAY A.
FORMAL PARAMETERS:
L,U: <ARITHMETIC EXPRESSION>;
LOWER AND UPPER BOUND OF THE RUNNING SUBSCRIPT;
I: <ARITHMETIC EXPRESSION>;
ROW-INDEX OF THE ROW VECTOR A;
J: <ARITHMETIC EXPRESSION>;
ROW-INDEX OF THE ROW VECTOR B;
A,B: <ARRAY IDENTIFIER>;
"ARRAY" A[I : I, L : U], B[I : I, L : U];
X: <ARITHMETIC EXPRESSION>;
ELIMINATION FACTOR.
LANGUAGE: COMPASS.
REFERENCES:
[1].T.J.DEKKER.
ALGOL 60 PROCEDURES IN NUMERICAL ALGEBRA, PART 1,
MATHEMATICAL CENTRE TRACT 22, AMSTERDAM (1970).
SOURCE TEXT(S):
THE FOLLOWING PROCEDURES ARE WRITTEN IN COMPASS, AN EQUIVALENT ALGOL 60
TEXT OF THESE COMPASS ROUTINES IS GIVEN.
ELMVEC
ELMROW
ELMVECCOL
ELMCOLVEC
MAXELMROW
"CODE" 34020;
"CODE" 34023;
"CODE" 34024;
"CODE" 34021;
"CODE" 34022;
"CODE" 34026;
"CODE" 34027;
"CODE" 34029;
"CODE" 34028;
"CODE" 34025;