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