6 #define MONOTONIC_TYPE int
7 #define MONOTONIC_UNDEF -1
8 #define MONOTONIC_END(n) n
17 int cnt
= omp_get_num_threads ();
18 int thr
= omp_get_thread_num ();
19 MONOTONIC_TYPE l
= MONOTONIC_UNDEF
;
22 #pragma omp for nowait schedule(static, 5)
23 for (i
= 0; i
< MONOTONIC_END (73); i
++)
25 if (l
== MONOTONIC_UNDEF
)
47 if ((i
/ 5) % cnt
!= thr
)
54 if (n
!= 73 || l
!= 73 - 1 || c
!= 1)
57 else if (thr
> 73 / 5)
59 if (l
!= MONOTONIC_UNDEF
|| c
!= 0 || n
!= 0)
62 else if (thr
== 73 / 5)
64 if (l
!= 73 - 1 || c
!= 1 || n
!= 73 % 5)
71 if (thr
!= (73 / 5) % cnt
|| n
!= 73 % 5)
74 else if ((n
% 5) != 0)
79 #pragma omp for schedule( monotonic: static, 7) nowait
80 for (i
= 0; i
< MONOTONIC_END (73); i
++)
82 if (l
== MONOTONIC_UNDEF
)
104 if ((i
/ 7) % cnt
!= thr
)
111 if (n
!= 73 || l
!= 73 - 1 || c
!= 1)
114 else if (thr
> 73 / 7)
116 if (l
!= MONOTONIC_UNDEF
|| c
!= 0 || n
!= 0)
119 else if (thr
== 73 / 7)
121 if (l
!= 73 - 1 || c
!= 1 || n
!= 73 % 7)
126 else if (l
== 73 - 1)
128 if (thr
!= (73 / 7) % cnt
|| n
!= 73 % 7)
131 else if ((n
% 7) != 0)
136 #pragma omp for nowait schedule(static)
137 for (i
= 0; i
< MONOTONIC_END (73); i
++)
139 if (l
== MONOTONIC_UNDEF
)
155 #pragma omp for nowait schedule(monotonic,simd:static)
156 for (i
= 0; i
< MONOTONIC_END (73); i
++)
158 if (l
== MONOTONIC_UNDEF
)
174 #pragma omp for schedule(monotonic : dynamic, 5) nowait
175 for (i
= 0; i
< MONOTONIC_END (73); i
++)
177 if (l
== MONOTONIC_UNDEF
)
188 if ((n
% 5) != 0 || n
== 0)
200 else if (l
== MONOTONIC_UNDEF
)
202 if (n
!= 0 || c
!= 0)
205 else if ((n
% 5) != 0 || n
== 0)
210 #pragma omp for nowait schedule(dynamic, 7) ordered(1)
211 for (i
= 0; i
< MONOTONIC_END (73); i
++)
213 if (l
== MONOTONIC_UNDEF
)
224 if ((n
% 7) != 0 || n
== 0)
229 #pragma omp ordered depend(source)
230 if (MONOTONIC_UNDEF
> 0)
232 #pragma omp ordered depend(sink: i)
236 #pragma omp ordered depend(sink: i - 1)
245 else if (l
== MONOTONIC_UNDEF
)
247 if (n
!= 0 || c
!= 0)
250 else if ((n
% 7) != 0 || n
== 0)
255 #pragma omp for schedule (monotonic :guided , 7) nowait
256 for (i
= 0; i
< MONOTONIC_END (73); i
++)
258 if (l
== MONOTONIC_UNDEF
)
279 #pragma omp for nowait schedule(guided, 7) ordered
280 for (i
= 0; i
< MONOTONIC_END (73); i
++)
282 if (l
== MONOTONIC_UNDEF
)