-- real_arrays.ads package specification package Real_Arrays is -- Types -- subtype Real is Long_float; type REAL_VECTOR is array (INTEGER range <>) of REAL; type REAL_MATRIX is array (INTEGER range <>, INTEGER range <>) of REAL; -- SUBPROGRAMS for REAL_VECTOR TYPES -- -- VECTOR arithmetic operations -- function "+" (RIGHT : REAL_VECTOR) return REAL_VECTOR; function "-" (RIGHT : REAL_VECTOR) return REAL_VECTOR; function "abs" (RIGHT : REAL_VECTOR) return REAL_VECTOR; function "+" (LEFT, RIGHT : REAL_VECTOR) return REAL_VECTOR; function "-" (LEFT, RIGHT : REAL_VECTOR) return REAL_VECTOR; function "*" (LEFT, RIGHT : REAL_VECTOR) return REAL_VECTOR; function "/" (LEFT, RIGHT : REAL_VECTOR) return REAL_VECTOR; function "**" (LEFT : REAL_VECTOR; RIGHT : INTEGER) return REAL_VECTOR; function "*" (LEFT, RIGHT : REAL_VECTOR) return REAL; -- VECTOR scaling operations -- function "*" (LEFT : REAL; RIGHT : REAL_VECTOR) return REAL_VECTOR; function "*" (LEFT : REAL_VECTOR; RIGHT : REAL) return REAL_VECTOR; function "/" (LEFT : REAL_VECTOR; RIGHT : REAL) return REAL_VECTOR; -- other operations -- function UNIT_VECTOR (INDEX : INTEGER; ORDER : POSITIVE; FIRST : INTEGER := 1) return REAL_VECTOR; -- SUBPROGRAMS for REAL_MATRIX TYPES -- -- MATRIX arithmetic operations -- function "+" (RIGHT : REAL_MATRIX) return REAL_MATRIX; function "-" (RIGHT : REAL_MATRIX) return REAL_MATRIX; function "abs" (RIGHT : REAL_MATRIX) return REAL_MATRIX; function TRANSPOSE (A : REAL_MATRIX) return REAL_MATRIX; function "+" (LEFT, RIGHT : REAL_MATRIX) return REAL_MATRIX; function "-" (LEFT, RIGHT : REAL_MATRIX) return REAL_MATRIX; function "*" (LEFT, RIGHT : REAL_MATRIX) return REAL_MATRIX; function "*" (LEFT, RIGHT : REAL_VECTOR) return REAL_MATRIX; function "*" (LEFT : REAL_VECTOR; RIGHT : REAL_MATRIX) return REAL_VECTOR; function "*" (LEFT : REAL_MATRIX; RIGHT : REAL_VECTOR) return REAL_VECTOR; -- MATRIX scaling operations -- function "*" (LEFT : REAL; RIGHT : REAL_MATRIX) return REAL_MATRIX; function "*" (LEFT : REAL_MATRIX; RIGHT : REAL) return REAL_MATRIX; function "/" (LEFT : REAL_MATRIX; RIGHT : REAL) return REAL_MATRIX; -- other operations -- function IDENTITY_MATRIX (ORDER : POSITIVE; FIRST_1, FIRST_2 : INTEGER := 1) return REAL_MATRIX; -- EXCEPTIONS -- Array_Index_Error: exception; end Real_Arrays;