5 -- Unconstrained array types are vectorizable, possibly with special
6 -- help for the programmer
7 type Varray
is array (Integer range <>) of Long_Float;
8 for Varray
'Alignment use 16;
10 function "+" (X
, Y
: Varray
) return Varray
;
11 procedure Add
(X
, Y
: Varray
; R
: out Varray
);
12 procedure Add
(X
, Y
: not null access Varray
; R
: not null access Varray
);
15 -- Constrained array types are vectorizable
16 type Sarray
is array (1 .. 4) of Long_Float;
17 for Sarray
'Alignment use 16;
19 function "+" (X
, Y
: Sarray
) return Sarray
;
20 procedure Add
(X
, Y
: Sarray
; R
: out Sarray
);
21 procedure Add
(X
, Y
: not null access Sarray
; R
: not null access Sarray
);
24 type Darray1
is array (1 .. Vect1_Pkg
.N
) of Long_Float;
25 for Darray1
'Alignment use 16;
27 function "+" (X
, Y
: Darray1
) return Darray1
;
28 procedure Add
(X
, Y
: Darray1
; R
: out Darray1
);
29 procedure Add
(X
, Y
: not null access Darray1
; R
: not null access Darray1
);
32 type Darray2
is array (Vect1_Pkg
.K
.. 4) of Long_Float;
33 for Darray2
'Alignment use 16;
35 function "+" (X
, Y
: Darray2
) return Darray2
;
36 procedure Add
(X
, Y
: Darray2
; R
: out Darray2
);
37 procedure Add
(X
, Y
: not null access Darray2
; R
: not null access Darray2
);
40 type Darray3
is array (Vect1_Pkg
.K
.. Vect1_Pkg
.N
) of Long_Float;
41 for Darray3
'Alignment use 16;
43 function "+" (X
, Y
: Darray3
) return Darray3
;
44 procedure Add
(X
, Y
: Darray3
; R
: out Darray3
);
45 procedure Add
(X
, Y
: not null access Darray3
; R
: not null access Darray3
);