| package Loop_Optimization1 is |
| |
| type Number is range 0 .. 127; |
| |
| type Group_List is array (Positive range <>) of Number; |
| |
| subtype Index is Natural range 1 .. 5; |
| |
| function Groups (T : Integer) return Group_List; |
| pragma Import (Ada, Groups); |
| |
| type Group_Chain (Length : Index := 1) is record |
| Groups : Group_List(1 .. Length); |
| end record; |
| |
| type Group_Chain_List is array (Positive range <>) of Group_Chain; |
| |
| function Group_Chains (T : Integer) return Group_Chain_List; |
| pragma Import (Ada, Group_Chains); |
| |
| type R (I : Boolean) is null record; |
| |
| type R_Access is access R; |
| |
| type R_List is array (Positive range <>) of R_Access; |
| |
| type R_List_Access is access R_List; |
| |
| type D is record |
| L : R_List_Access; |
| end record; |
| |
| procedure Create (A : in out D; Val : Integer); |
| |
| end Loop_Optimization1; |