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;