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