source:
CIVL/examples/modelbuilder/arrayLambda.cvl@
7d77e64
| Last change on this file since 7d77e64 was ea777aa, checked in by , 3 years ago | |
|---|---|
|
|
| File size: 697 bytes | |
| Rev | Line | |
|---|---|---|
| [c7375f2] | 1 | #include<assert.h> |
| [6185d35] | 2 | #include<civlc.cvh> |
| [c7375f2] | 3 | |
| [2dba632] | 4 | $input int n; |
| [c7375f2] | 5 | $input int m; |
| [f3282f0] | 6 | $assume(n>=1 && m>=1); |
| [c7375f2] | 7 | $input int A[n]; |
| 8 | $input int B[n][m]; | |
| [2dba632] | 9 | |
| [ce69a5a] | 10 | int f(int *x){ |
| 11 | return x[0]*2; | |
| 12 | } | |
| 13 | ||
| [2dba632] | 14 | int main(){ |
| [ce69a5a] | 15 | int a[n],b[n][m],c; |
| [c7375f2] | 16 | $domain(2) dom=($domain(2)){0 .. n-1, 0 .. m-1}; |
| [2dba632] | 17 | |
| 18 | a=(int[n]) $lambda(int i) i*2; | |
| [c7375f2] | 19 | assert($forall(int k: 0 .. n-1) a[k]==k*2); |
| 20 | a=(int[n]) $lambda(int i) A[i]*2; | |
| 21 | assert($forall(int i: 0 .. n-1) a[i]==A[i]*2); | |
| 22 | b=(int[n][m]) $lambda(int i, j) i+j; | |
| 23 | assert($forall(int i: 0 .. n-1; int j: 0 .. m-1) b[i][j]==i+j); | |
| 24 | b=(int[n][m]) $lambda(int i,j) B[i][j] * 5; | |
| 25 | assert($forall(int i: 0 .. n-1; int j: 0 .. m-1) b[i][j]==B[i][j]*5); | |
| [ce69a5a] | 26 | c=f((int[n]) $lambda(int k) a[k]); |
| 27 | assert(c==a[0]*2); | |
| [2dba632] | 28 | } |
Note:
See TracBrowser
for help on using the repository browser.
