-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathmake_code2.sh
executable file
·129 lines (103 loc) · 4.49 KB
/
make_code2.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/bin/bash
what=$1
echo "#ifndef _DEL_CONTRACT_${what}_H"
echo "#define _DEL_CONTRACT_${what}_H"
echo "#define _fp_eq_fp_eps_contract${what}_fp(_r, _u, _v) {\\"
if [ "X$what" == "X13" ]; then
# contract 1 3
for((s2=0;s2<4;s2++)); do
for((b3=0;b3<3;b3++)); do
for((s1=0;s1<4;s1++)); do
for((a3=0;a3<3;a3++)); do
s1b3=$((3*$s1+$b3))
s2b3=$((3*$s2+$b3))
echo "(_r)[$(printf "%2d" $s2)][$(printf "%2d" $((2*$s1)))] += \\"
for((k=0;k<4;k++)); do
ra3=$((3*$k+$a3))
echo "+(_u)[$(printf "%2d" $s1b3)][$(printf "%2d" $((2*$ra3)))] * (_v)[$(printf "%2d" $s2b3)][$(printf "%2d" $((2*$ra3)))] - (_u)[$(printf "%2d" $s1b3)][$(printf "%2d" $((2*$ra3+1)))] * (_v)[$(printf "%2d" $s2b3)][$(printf "%2d" $((2*$ra3+1)))] \\"
done
echo "(_r)[$(printf "%2d" $s2)][$(printf "%2d" $((2*$s1+1)))] += \\"
for((k=0;k<4;k++)); do
ra3=$((3*$k+$a3))
echo "+(_u)[$(printf "%2d" $s1b3)][$(printf "%2d" $((2*$ra3)))] * (_v)[$(printf "%2d" $s2b3)][$(printf "%2d" $((2*$ra3+1)))] + (_u)[$(printf "%2d" $s1b3)][$(printf "%2d" $((2*$ra3+1)))] * (_v)[$(printf "%2d" $s2b3)][$(printf "%2d" $((2*$ra3)))] \\"
done
done
done
done
done
fi
if [ "X$what" == "X14" ]; then
# contract 1 4
for((s2=0;s2<4;s2++)); do
for((b3=0;b3<3;b3++)); do
for((s1=0;s1<4;s1++)); do
for((a3=0;a3<3;a3++)); do
s1b3=$((3*$s1+$b3))
s2a3=$((3*$s2+$a3))
echo "(_r)[$(printf "%2d" $s2)][$(printf "%2d" $((2*$s1)))] += \\"
for((k=0;k<4;k++)); do
ra3=$((3*$k+$a3))
rb3=$((3*$k+$b3))
echo "+(_u)[$(printf "%2d" $s1b3)][$(printf "%2d" $((2*$ra3)))] * (_v)[$(printf "%2d" $rb3)][$(printf "%2d" $((2*$s2a3)))] - (_u)[$(printf "%2d" $s1b3)][$(printf "%2d" $((2*$ra3+1)))] * (_v)[$(printf "%2d" $rb3)][$(printf "%2d" $((2*$s2a3+1)))] \\"
done
echo "(_r)[$(printf "%2d" $s2)][$(printf "%2d" $((2*$s1+1)))] += \\"
for((k=0;k<4;k++)); do
ra3=$((3*$k+$a3))
rb3=$((3*$k+$b3))
echo "+(_u)[$(printf "%2d" $s1b3)][$(printf "%2d" $((2*$ra3)))] * (_v)[$(printf "%2d" $rb3)][$(printf "%2d" $((2*$s2a3+1)))] + (_u)[$(printf "%2d" $s1b3)][$(printf "%2d" $((2*$ra3+1)))] * (_v)[$(printf "%2d" $rb3)][$(printf "%2d" $((2*$s2a3)))] \\"
done
done
done
done
done
fi
if [ "X$what" == "X23" ]; then
# contract 1 3
for((s2=0;s2<4;s2++)); do
for((b3=0;b3<3;b3++)); do
for((s1=0;s1<4;s1++)); do
for((a3=0;a3<3;a3++)); do
s1a3=$((3*$s1+$a3))
s2b3=$((3*$s2+$b3))
echo "(_r)[$(printf "%2d" $s2)][$(printf "%2d" $((2*$s1)))] += \\"
for((k=0;k<4;k++)); do
ra3=$((3*$k+$a3))
rb3=$((3*$k+$b3))
echo "+(_u)[$(printf "%2d" $rb3)][$(printf "%2d" $((2*$s1a3)))] * (_v)[$(printf "%2d" $s2b3)][$(printf "%2d" $((2*$ra3)))] - (_u)[$(printf "%2d" $rb3)][$(printf "%2d" $((2*$s1a3+1)))] * (_v)[$(printf "%2d" $s2b3)][$(printf "%2d" $((2*$ra3+1)))] \\"
done
echo "(_r)[$(printf "%2d" $s2)][$(printf "%2d" $((2*$s1+1)))] += \\"
for((k=0;k<4;k++)); do
ra3=$((3*$k+$a3))
rb3=$((3*$k+$b3))
echo "+(_u)[$(printf "%2d" $rb3)][$(printf "%2d" $((2*$s1a3)))] * (_v)[$(printf "%2d" $s2b3)][$(printf "%2d" $((2*$ra3+1)))] + (_u)[$(printf "%2d" $rb3)][$(printf "%2d" $((2*$s1a3+1)))] * (_v)[$(printf "%2d" $s2b3)][$(printf "%2d" $((2*$ra3)))] \\"
done
done
done
done
done
fi
if [ "X$what" == "X24" ]; then
# contract 1 4
for((s2=0;s2<4;s2++)); do
for((b3=0;b3<3;b3++)); do
for((s1=0;s1<4;s1++)); do
for((a3=0;a3<3;a3++)); do
s1a3=$((3*$s1+$a3))
s2a3=$((3*$s2+$a3))
echo "(_r)[$(printf "%2d" $s2)][$(printf "%2d" $((2*$s1)))] += \\"
for((k=0;k<4;k++)); do
rb3=$((3*$k+$b3))
echo "+(_u)[$(printf "%2d" $rb3)][$(printf "%2d" $((2*$s1a3)))] * (_v)[$(printf "%2d" $rb3)][$(printf "%2d" $((2*$s2a3)))] - (_u)[$(printf "%2d" $rb3)][$(printf "%2d" $((2*$s1a3+1)))] * (_v)[$(printf "%2d" $rb3)][$(printf "%2d" $((2*$s2a3+1)))] \\"
done
echo "(_r)[$(printf "%2d" $s2)][$(printf "%2d" $((2*$s1+1)))] += \\"
for((k=0;k<4;k++)); do
rb3=$((3*$k+$b3))
echo "+(_u)[$(printf "%2d" $rb3)][$(printf "%2d" $((2*$s1a3)))] * (_v)[$(printf "%2d" $rb3)][$(printf "%2d" $((2*$s2a3+1)))] + (_u)[$(printf "%2d" $rb3)][$(printf "%2d" $((2*$s1a3+1)))] * (_v)[$(printf "%2d" $rb3)][$(printf "%2d" $((2*$s2a3)))] \\"
done
done
done
done
done
fi
echo "#endif"
exit 0