NUMAL Section 1.1.8
BEGIN SECTION : 1.1.8 (October, 1975)
AUTHORS: C.G. VAN DER LAAN AND J.C.P. BUS.
CONTRIBUTOR: J.C.P. BUS.
INSTITUTE: MATHEMATICAL CENTRE.
RECEIVED: 740921.
BRIEF DESCRIPTION:
INFNRMVEC CALCULATES THE INFINITY-NORM OF A VECTOR;
INFNRMROW CALCULATES THE INFINITY-NORM OF A ROW VECTOR;
INFNRMCOL CALCULATES THE INFINITY-NORM OF A COLUMN VECTOR;
INFNRMMAT CALCULATES THE INFINITY-NORM OF A MATRIX;
ONENRMVEC CALCULATES THE ONE-NORM OF A VECTOR;
ONENRMROW CALCULATES THE ONE-NORM OF A ROW VECTOR;
ONENRMCOL CALCULATES THE ONE-NORM OF A COLUMN VECTOR;
ONENRMMAT CALCULATES THE ONE-NORM OF A MATRIX;
ABSMAXMAT CALCULATES FOR A GIVEN MATRIX THE MODULUS OF AN ELEMENT
WHICH IS OF MAXIMUM ABSOLUTE VALUE;
KEYWORDS:
VECTOR NORMS,
MATRIX NORMS.
SUBSECTION: INFNRMVEC.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"REAL" "PROCEDURE" INFNRMVEC(L, U, K, A);
"VALUE" L, U; "INTEGER" L, U, K; "ARRAY" A;
"CODE" 31061;
INFNRMVEC := MAX( ABS(A[I]), I= L, ..., U );
THE MEANING OF THE FORMAL PARAMETERS IS:
L, U: <ARITHMETIC EXPRESSION>;
ENTRY:THE LOWER BOUND AND UPPER BOUND OF THE INDEX OF THE
VECTOR A, RESPECTIVELY;
K: <VARIABLE>;
EXIT:THE FIRST INDEX FOR WHICH ABS(A[I]), I = L, ..., U,
IS MAXIMAL;
A: <ARRAY IDENTIFIER>;
"ARRAY" A[L:U].
PROCEDURES USED: NONE.
SUBSECTION: INFNRMROW.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"REAL" "PROCEDURE" INFNRMROW(L, U, I, K, A);
"VALUE" L, U, I; "INTEGER" L, U, I, K; "ARRAY" A;
"CODE" 31062;
INFNRMROW := MAX( ABS(A[I,J]), J= L, ..., U );
THE MEANING OF THE FORMAL PARAMETERS IS:
L, U: <ARITHMETIC EXPRESSION>;
ENTRY:THE LOWER BOUND AND UPPER BOUND OF THE COLUMN INDEX
OF THE ROW VECTOR A, RESPECTIVELY;
I: <ARITHMETIC EXPRESSION>;
ENTRY:THE ROW INDEX;
K: <VARIABLE>;
EXIT:THE FIRST INDEX FOR WHICH ABS(A[I,J]), J = L, ..., U,
IS MAXIMAL;
A: <ARRAY IDENTIFIER>;
"ARRAY" A[I:I,L:U].
PROCEDURES USED: NONE.
SUBSECTION: INFNRMCOL.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"REAL" "PROCEDURE" INFNRMCOL(L, U, J, K, A);
"VALUE" L, U, J; "INTEGER" L, U, J, K; "ARRAY" A;
"CODE" 31063;
INFNRMCOL := MAX( ABS(A[I,J]), I= L, ..., U );
THE MEANING OF THE FORMAL PARAMETERS IS:
L, U: <ARITHMETIC EXPRESSION>;
ENTRY:THE LOWER BOUND AND UPPER BOUND OF THE ROW INDEX OF
THE COLUMN VECTOR A, RESPECTIVELY;
J: <ARITHMETIC EXPRESSION>;
ENTRY:THE COLUMN INDEX;
K: <VARIABLE>;
EXIT:THE FIRST INDEX FOR WHICH ABS(A[I,J]), I = L, ..., U,
IS MAXIMAL;
A: <ARRAY IDENTIFIER>;
"ARRAY" A[L:U,J:J].
PROCEDURES USED: NONE.
SUBSECTION: INFNRMMAT.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"REAL" "PROCEDURE" INFNRMMAT(LR, UR, LC, UC, KR, A);
"VALUE" LR, UR, LC, UC; "INTEGER" LR, UR, LC, UC, KR; "ARRAY" A;
"CODE" 31064;
INFNRMMAT := MAX( ONENRMROW(LC, UC, I, A), I=LR, ..., UR );
THE MEANING OF THE FORMAL PARAMETERS IS:
LR, UR: <ARITHMETIC EXPRESSION>;
ENTRY:THE LOWER BOUND AND UPPER BOUND OF THE ROW INDEX,
RESPECTIVELY;
LC, UC: <ARITHMETIC EXPRESSION>;
ENTRY:THE LOWER BOUND AND UPPER BOUND OF THE COLUMN INDEX,
RESPECTIVELY;
KR: <VARIABLE>;
EXIT:THE FIRST ROW INDEX FOR WHICH THE ONE-NORM IS MAXIMAL;
A: <ARRAY IDENTIFIER>;
"ARRAY" A[LR:UR,LC:UC].
PROCEDURES USED: ONENRMROW.
SUBSECTION: ONENRMVEC.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"REAL" "PROCEDURE" ONENRMVEC(L, U, A);
"VALUE" L, U; "INTEGER" L, U; "ARRAY" A;
"CODE" 31065;
ONENRMVEC := SUM( ABS(A[I]), I= L, ..., U );
THE MEANING OF THE FORMAL PARAMETERS IS:
L, U: <ARITHMETIC EXPRESSION>;
ENTRY:THE LOWER BOUND AND UPPER BOUND OF THE INDEX OF THE
VECTOR A, RESPECTIVELY;
A: <ARRAY IDENTIFIER>;
"ARRAY" A[L:U].
PROCEDURES USED: NONE.
SUBSECTION: ONENRMROW.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"REAL" "PROCEDURE" ONENRMROW(L, U, I, A);
"VALUE" L, U, I; "INTEGER" L, U, I; "ARRAY" A;
"CODE" 31066;
ONENRMROW := SUM( ABS(A[I,J]), J= L, ..., U );
THE MEANING OF THE FORMAL PARAMETERS IS:
L, U: <ARITHMETIC EXPRESSION>;
ENTRY:THE LOWER BOUND AND UPPER BOUND OF THE COLUMN INDEX
OF THE ROW VECTOR A, RESPECTIVELY;
I: <ARITHMETIC EXPRESSION>;
ENTRY: THE ROW INDEX;
A: <ARRAY IDENTIFIER>;
"ARRAY" A[I:I,L:U].
PROCEDURES USED: NONE.
SUBSECTION: ONENRMCOL.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"REAL" "PROCEDURE" ONENRMCOL(L, U, J, A);
"VALUE" L, U, J; "INTEGER" L, U, J; "ARRAY" A;
"CODE" 31067;
ONENRMCOL := SUM( ABS(A[I,J]), I= L, ..., U );
THE MEANING OF THE FORMAL PARAMETERS IS:
L, U: <ARITHMETIC EXPRESSION>;
ENTRY:THE LOWER BOUND AND UPPER BOUND OF THE ROW INDEX OF
THE COLUMN VECTOR A, RESPECTIVELY;
J: <ARITHMETIC EXPRESSION>;
ENTRY: THE COLUMN INDEX;
A: <ARRAY IDENTIFIER>;
"ARRAY" A[L:U,J:J].
PROCEDURES USED: NONE.
SUBSECTION: ONENRMMAT.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"REAL" "PROCEDURE" ONENRMMAT(LR, UR, LC, UC, KC, A);
"VALUE" LR, UR, LC, UC; "INTEGER" LR, UR, LC, UC, KC; "ARRAY" A;
"CODE" 31068;
ONENRMMAT := MAX(ONENRMCOL(LR, UR, J, A), J=LC, ..., UC);
THE MEANING OF THE FORMAL PARAMETERS IS:
LR, UR: <ARITHMETIC EXPRESSION>;
ENTRY:THE LOWER BOUND AND UPPER BOUND OF THE ROW INDEX,
RESPECTIVELY;
LC, UC: <ARITHMETIC EXPRESSION>;
ENTRY:THE LOWER BOUND AND UPPER BOUND OF THE COLUMN INDEX,
RESPECTIVELY;
KC: <VARIABLE>;
EXIT:THE FIRST COLUMN INDEX FOR WHICH THE ONE-NORM IS
MAXIMAL;
A: <ARRAY IDENTIFIER>;
"ARRAY" A[LR:UR,LC:UC].
PROCEDURES USED: ONENRMCOL.
SUBSECTION: ABSMAXMAT.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE READS:
"REAL" "PROCEDURE" ABSMAXMAT(LR, UR, LC, UC, KR, KC, A);
"VALUE" LR, UR, LC, UC; "INTEGER" LR, UR, LC, UC, KR, KC;
"ARRAY" A;
"CODE" 31069;
ABSMAXMAT := MAX( ABS(A[I,J]), I= LR, ..., UR, J= LC, ..., UC );
THE MEANING OF THE FORMAL PARAMETERS IS:
LR, UR: <ARITHMETIC EXPRESSION>;
ENTRY:THE LOWER BOUND AND UPPER BOUND OF THE ROW INDEX,
RESPECTIVELY;
LC, UC: <ARITHMETIC EXPRESSION>;
ENTRY:THE LOWER BOUND AND UPPER BOUND OF THE COLUMN INDEX,
RESPECTIVELY;
KR, KC: <VARIABLE>;
EXIT:THE ROW AND COLUMN INDEX OF AN ELEMENT FOR WHICH THE
MODULUS IS MAXIMAL;
A: <ARRAY IDENTIFIER>;
"ARRAY" A[LR:UR,LC:UC].
PROCEDURES USED: INFNRMCOL.
LANGUAGE: COMPASS.
METHOD AND PERFORMANCE:
ELEMENTARY.
SOURCE TEXT(S):
THE FOLLOWING PROCEDURES ARE WRITTEN IN COMPASS, AN EQUIVALENT ALGOL 60
TEXT OF THESE COMPASS ROUTINES IS GIVEN.
"CODE" 31061;
"CODE" 31062;
"CODE" 31063;
"CODE" 31064;
"CODE" 31065;
"CODE" 31066;
"CODE" 31067;
"CODE" 31068;
"CODE" 31069;