1with Vect5_Pkg; 2 3package Vect5 is 4 5 -- Unconstrained array types are vectorizable, possibly with special 6 -- help for the programmer 7 type Varray is array (Positive range <>) of Long_Float; 8 for Varray'Alignment use 16; 9 10 function "+" (X : Varray; Y : Long_Float) return Varray; 11 procedure Add (X : Varray; Y : Long_Float; R : out Varray); 12 procedure Add (X : not null access Varray; Y : Long_Float; R : not null access Varray); 13 14 15 -- Constrained array types are vectorizable 16 type Sarray is array (Positive (1) .. Positive (4)) of Long_Float; 17 for Sarray'Alignment use 16; 18 19 function "+" (X : Sarray; Y : Long_Float) return Sarray; 20 procedure Add (X : Sarray; Y : Long_Float; R : out Sarray); 21 procedure Add (X : not null access Sarray; Y : Long_Float; R : not null access Sarray); 22 23 24 type Darray1 is array (Positive(1) .. Vect5_Pkg.N) of Long_Float; 25 for Darray1'Alignment use 16; 26 27 function "+" (X : Darray1; Y : Long_Float) return Darray1; 28 procedure Add (X : Darray1; Y : Long_Float; R : out Darray1); 29 procedure Add (X : not null access Darray1; Y : Long_Float; R : not null access Darray1); 30 31 32 type Darray2 is array (Vect5_Pkg.K .. Positive(4)) of Long_Float; 33 for Darray2'Alignment use 16; 34 35 function "+" (X : Darray2; Y : Long_Float) return Darray2; 36 procedure Add (X : Darray2; Y : Long_Float; R : out Darray2); 37 procedure Add (X : not null access Darray2; Y : Long_Float; R : not null access Darray2); 38 39 40 type Darray3 is array (Vect5_Pkg.K .. Vect5_Pkg.N) of Long_Float; 41 for Darray3'Alignment use 16; 42 43 function "+" (X : Darray3; Y : Long_Float) return Darray3; 44 procedure Add (X : Darray3; Y : Long_Float; R : out Darray3); 45 procedure Add (X : not null access Darray3; Y : Long_Float; R : not null access Darray3); 46 47end Vect5; 48