diff options
Diffstat (limited to 'omega/examples/old_test/saman')
-rw-r--r-- | omega/examples/old_test/saman | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/omega/examples/old_test/saman b/omega/examples/old_test/saman new file mode 100644 index 0000000..bf44452 --- /dev/null +++ b/omega/examples/old_test/saman @@ -0,0 +1,20 @@ +# Passing array sections through array reshaping +# procedure foo() +# real a(1:5,1:64,1:64,1:5) +# for i = 1 to 64 do +# for j = 1 to 64 do +# bar(a(1,i,j,1)) +# ... +# procedure bar(x(*)) +# x(1:5) = ... +# +# Question which element of a are effected by the call to bar? +# +symbolic i,j; +R := {[i1,i2,i3,i4] -> [o1] : + (i1-1) + (i2-i)*5 + (i3-j)*5*64 + (i4-1)*5*64*64 + = o1-1 + && 1 <= i1,i4 <= 5 + && 1 <= i,j,i2,i3 <= 64}; +R; +(inverse R)({[1:5]}); |