| parameter_list ->data_domain : subscript_vector> |
| {subscript_vector range}; |
| parameter_list ->iterator_domain : iterator_vectoriterator_vector range}; |
| <data_domain:: type data_name; |
| <iterator_domain:: (task_name); |
| e.g. |
| // A[100][50] |
| <A_dom : A0, A1>{0<=A0; A0<100; 0<=A1; A1<50;}; |
| <A_dom: double A; |
| // for (i=0; i<p; i++) task1(i); |
| p -task1_dom : i>{0<=i; i<p;}; |
| <task1_dom: (task1); |
| // while (res > 0.1) {res = task2();} |
| res -> task2_dom : t{cond(res > 0.1)}; |
| <task2_dom: (task2); |