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
: 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
);
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
: 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
);
24 type Darray1
is array (1 .. Vect4_Pkg
.N
) of Long_Float;
25 for Darray1
'Alignment use 16;
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
);
32 type Darray2
is array (Vect4_Pkg
.K
.. 4) of Long_Float;
33 for Darray2
'Alignment use 16;
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
);
40 type Darray3
is array (Vect4_Pkg
.K
.. Vect4_Pkg
.N
) of Long_Float;
41 for Darray3
'Alignment use 16;
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
);