update barvinok to version 0.41.7
[ppn.git] / tests / inputs / wdp.c
blobe4357593520fc0c47d33e3e76a9ec33ea3ee9f41
1 int N;
2 #pragma parameter N 8 16
4 int _Source_x(void);
5 void _Source_yt(int *y, int *t);
6 int _Source_z(void);
7 int F1(int);
8 int F2(int);
9 int F3(int);
10 void F4(int, int, int *, int *);
12 int t1(int z);
13 int t2(int x);
15 void wdp(void)
17 int x[N], y[N + 1], t[N + 1], z[N + 2];
19 for (int i = 0; i < N; ++i)
20 x[i] = _Source_x();
22 for (int i = 0; i < N + 1; ++i)
23 _Source_yt(&y[i], &t[i]);
25 for (int i = 0; i < N + 2; ++i)
26 z[i] = _Source_z();
28 for (int i = 0; i < N; ++i) {
29 if (t1(z[i]))
30 x[i] = F1(x[i]);
31 if (t2(x[i])) {
32 y[i + 1] = F2(y[i]);
33 t[i] = F3(t[i]);
35 F4(y[i + 1], z[i], &y[i + 1], &z[i + 2]);
39 int t1(int z)
41 return z == 0;
44 int t2(int x)
46 return x * x > 100;