NUMAL Section 1.1.1
BEGIN SECTION : 1.1.1 (December, 1979)
AUTHOR: P.A.BEENTJES.
INSTITUTE: MATHEMATICAL CENTRE.
RECEIVED: 730715.
BRIEF DESCRIPTION:
THIS SECTION CONTAINS FIVE PROCEDURES.
INIVEC INITIALIZES A ( PART OF A ) VECTOR WITH A CONSTANT.
INIMAT INITIALIZES A ( PART OF A ) MATRIX WITH A CONSTANT.
INIMATD INITIALIZES ELEMENTS A[I, I+SHIFT], I= LR(1)UR OF A MATRIX.
INISYMD INITIALIZES A (PART OF A) CODIAGONAL OF A SYMMETRIC MATRIX,
WHOSE UPPERTRIANGLE IS STORED COLUMNWISE IN A ONE-DIMENSIONAL
ARRAY.
INISYMROW INITIALIZES A (PART OF A) ROW OF A SYMMETRIC MATRIX,WHOSE
UPPERTRIANGLE IS STORED COLUMNWISE IN A ONE-DIMENSIONAL ARRAY.
KEYWORDS:
ELEMENTARY PROCEDURE,
VECTOR OPERATIONS,
INITIALIZATION.
SUBSECTION: INIVEC.
CALLING SEQUENCE:
HEADING:
"PROCEDURE" INIVEC(L, U, A, X); "VALUE" L,U,X;
"INTEGER" L,U; "REAL" X; "ARRAY" A;
"CODE" 31010;
FORMAL PARAMETERS:
L,U: <ARITHMETIC EXPRESSION>;
LOWER AND UPPER INDEX OF THE VECTOR A, RESPECTIVELY;
A: <ARRAY IDENTIFIER>;
"ARRAY" A[L : U], THE ARRAY TO BE INITIALIZED;
X: <ARITHMETIC EXPRESSION>;
INITIALIZATION CONSTANT.
LANGUAGE: COMPASS.
SUBSECTION: INIMAT.
CALLING SEQUENCE:
HEADING:
"PROCEDURE" INIMAT(LR, UR, LC, UC, A, X); "VALUE" LR,UR,LC,UC,X;
"INTEGER" LR,UR,LC,UC; "REAL" X; "ARRAY" A;
"CODE" 31011;
FORMAL PARAMETERS:
LR,UR,LC,UC: <ARITHMETIC EXPRESSION>;
LOWER AND UPPER ROW-INDEX, AND LOWER AND UPPER COLUMN-INDEX
OF THE MATRIX A, RESPECTIVELY;
A: <ARRAY IDENTIFIER>;
"ARRAY" A[LR : UR, LC : UC], THE ARRAY TO BE INITIALIZED;
X: <ARITHMETIC EXPRESSION>;
INITIALIZATION CONSTANT.
LANGUAGE: COMPASS.
SUBSECTION: INIMATD.
CALLING SEQUENCE:
HEADING:
"PROCEDURE" INIMATD(LR, UR, SHIFT, A, X); "VALUE" LR,UR,SHIFT,X;
"INTEGER" LR,UR,SHIFT; "REAL" X; "ARRAY" A;
"CODE" 31012;
FORMAL PARAMETERS:
LR,UR: <ARITHMETIC EXPRESSION>;
LOWER AND UPPER ROW-INDEX OF THE CODIAGONAL TO BE
INITIALIZED;
SHIFT: <ARITHMETIC EXPRESSION>;
DISTANCE BETWEEN DIAGONAL AND CODIAGONAL;
A: <ARRAY IDENTIFIER>;
"ARRAY" A[LR : UR, LR + SHIFT : UR + SHIFT], THE ARRAY TO
BE INITIALIZED;
X: <ARITHMETIC EXPRESSION>;
INITIALIZATION CONSTANT.
LANGUAGE: COMPASS.
SUBSECTION: INISYMD.
CALLING SEQUENCE:
HEADING:
"PROCEDURE" INISYMD(LR, UR, SHIFT, A, X); "VALUE" LR,UR,SHIFT,X;
"INTEGER" LR,UR,SHIFT; "REAL" X; "ARRAY" A;
"CODE" 31013;
FORMAL PARAMETERS:
LR,UR: <ARITHMETIC EXPRESSION>;
LOWER AND UPPER ROW-INDEX OF AN UPPER CODIAGONAL ( OF A
SYMMETRIC MATRIX OF ORDER N ) TO BE INITIALIZED;
LR AND UR SHOULD SATISFY : LR >= 1, UR <= N;
SHIFT: <ARITHMETIC EXPRESSION>;
DISTANCE BETWEEN DIAGONAL AND CODIAGONAL, (0 =< SHIFT < N);
A: <ARRAY IDENTIFIER>;
A ONE-DIMENSIONAL ARRAY A[1 : N * (N+1)//2] CONTAINING THE
COLUMNWISE STORED UPPERTRIANGLE OF A SYMMETRIC MATRIX,
SUCH THAT THE (I,J) - TH ELEMENT OF THE MATRIX IS
A[ (J-1) * J//2 + I ]; J = 1,...,N; I = 1,...,J;
X: <ARITHMETIC EXPRESSION>;
INITIALIZATION CONSTANT.
LANGUAGE: ALGOL 60.
SUBSECTION: INISYMROW.
CALLING SEQUENCE:
HEADING:
"PROCEDURE" INISYMROW(L, U, I, A, X); "VALUE" L,U,I,X;
"INTEGER" L,U,I; "REAL" X; "ARRAY" A;
"CODE" 31014;
FORMAL PARAMETERS:
L,U: <ARITHMETIC EXPRESSION>;
LOWER AND UPPER INDEX OF ROW-ELEMENT TO BE INITIALIZED;
I: <ARITHMETIC EXPRESSION>;
ROW INDEX;
A: <ARRAY IDENTIFIER>;
A ONE-DIMENSIONAL ARRAY A[1 : N * (N+1)//2];
ARRAY A SHOULD CONTAIN A COLUMNWISE STORED UPPERTRIANGLE OF
A SYMMETRIC MATRIX OF ORDER N,
SUCH THAT THE (I,J) - TH ELEMENT OF THE MATRIX IS
A[ (J - 1) * J//2 + I ]; J = 1, ... ,N; I = 1, ... ,J.
FOR FIXED ORDER N, THE PARAMETERS L, U AND I SHOULD
SATISFY THE CONDITIONS : 1 <=L<= N, 1 <=U<= N, 1 <=I<= N ;
X: <ARITHMETIC EXPRESSION>;
INITIALIZATION CONSTANT.
LANGUAGE: ALGOL 60.
SOURCE TEXT(S):
THE PROCEDURES INIVEC, INIMAT AND INIMATD ARE WRITTEN IN COMPASS, AN
EQUIVALENT ALGOL 60 TEXT OF THESE COMPASS ROUTINES IS GIVEN.
"CODE" 31010;
"CODE" 31011;
"CODE" 31012;
"CODE" 31013;
"CODE" 31014;