source: CIVL/examples/arithmetic/quadratic2.cvl@ d48b845

1.23 2.0 main test-branch
Last change on this file since d48b845 was 869af89, checked in by Ziqing Luo <ziqing@…>, 11 years ago

Complete math.cvl and add 5 new examples under examples/arithmetic/

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@1790 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 814 bytes
Line 
1#include <stdio.h>
2
3$input int x, y, z, w;
4$input int N, M, L, K;
5$input int offset;
6
7$assume 0< N && N <= 2;
8$assume 0< M && M <= 2;
9$assume 0< L && L <= 2;
10$assume 0< K && K <= 2;
11$assume 0 <= x && x < N;
12$assume 0 <= y && y < M;
13$assume 0 <= z && z < L;
14$assume 0 <= w && w < K;
15$assume 0 <= offset ;
16$assume (offset + x*M*L*K + y*L*K + z*K + w) < M*N*L*K;
17
18void main(){
19
20 int realIndex, finalIndex, X, Y, Z, W;
21
22 realIndex = x * M * L * K + y * L * K + z * K + w;
23 finalIndex = realIndex + offset;
24 X = finalIndex / (M * L * K);
25 finalIndex = finalIndex - X * M * L * K;
26 Y = finalIndex / (L * K);
27 finalIndex = finalIndex - Y * L * K;
28 Z = finalIndex / K;
29 W = finalIndex - Z * K;
30
31 printf("X=%d, Y=%d, Z=%d, W=%d\n", X,Y,Z,W);
32 $assert X < N;
33 $assert Y < M;
34 $assert Z < L;
35 $assert W < K;
36}
Note: See TracBrowser for help on using the repository browser.