5 -- Unconstrained array types are vectorizable, possibly with special
6 -- help for the programmer
7 type Varray
is array (Vect3_Pkg
.Index_Type
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 (Vect3_Pkg
.Index_Type
(1) .. Vect3_Pkg
.Index_Type
(4))
18 for Sarray
'Alignment use 16;
20 function "+" (X
, Y
: Sarray
) return Sarray
;
21 procedure Add
(X
, Y
: Sarray
; R
: out Sarray
);
22 procedure Add
(X
, Y
: not null access Sarray
; R
: not null access Sarray
);
25 type Darray1
is array (Vect3_Pkg
.Index_Type
(1) .. Vect3_Pkg
.N
) of Long_Float;
26 for Darray1
'Alignment use 16;
28 function "+" (X
, Y
: Darray1
) return Darray1
;
29 procedure Add
(X
, Y
: Darray1
; R
: out Darray1
);
30 procedure Add
(X
, Y
: not null access Darray1
; R
: not null access Darray1
);
33 type Darray2
is array (Vect3_Pkg
.K
.. Vect3_Pkg
.Index_Type
(4)) of Long_Float;
34 for Darray2
'Alignment use 16;
36 function "+" (X
, Y
: Darray2
) return Darray2
;
37 procedure Add
(X
, Y
: Darray2
; R
: out Darray2
);
38 procedure Add
(X
, Y
: not null access Darray2
; R
: not null access Darray2
);
41 type Darray3
is array (Vect3_Pkg
.K
.. Vect3_Pkg
.N
) of Long_Float;
42 for Darray3
'Alignment use 16;
44 function "+" (X
, Y
: Darray3
) return Darray3
;
45 procedure Add
(X
, Y
: Darray3
; R
: out Darray3
);
46 procedure Add
(X
, Y
: not null access Darray3
; R
: not null access Darray3
);