v0.14.0
test_T4_06.cpp
Go to the documentation of this file.
1 #include "../../../src/FTensor.hpp"
2 #include "../test_for_zero.hpp"
3 #include <iostream>
4 using namespace FTensor;
5 using namespace std;
6 
8  const Tensor3<double, 2, 3, 4> &t3_2)
9 {
14 
15  for(int ii = 0; ii < 1; ++ii)
16  {
17  test_for_zero((t4(i, j, k, l) * t3_2(j, k, l))(ii)
18  - (t4(ii, 0, 0, 0) * t3_2(0, 0, 0)
19  + t4(ii, 0, 0, 1) * t3_2(0, 0, 1)
20  + t4(ii, 0, 0, 2) * t3_2(0, 0, 2)
21  + t4(ii, 0, 0, 3) * t3_2(0, 0, 3)
22  + t4(ii, 0, 1, 0) * t3_2(0, 1, 0)
23  + t4(ii, 0, 1, 1) * t3_2(0, 1, 1)
24  + t4(ii, 0, 1, 2) * t3_2(0, 1, 2)
25  + t4(ii, 0, 1, 3) * t3_2(0, 1, 3)
26  + t4(ii, 0, 2, 0) * t3_2(0, 2, 0)
27  + t4(ii, 0, 2, 1) * t3_2(0, 2, 1)
28  + t4(ii, 0, 2, 2) * t3_2(0, 2, 2)
29  + t4(ii, 0, 2, 3) * t3_2(0, 2, 3)
30  + t4(ii, 1, 0, 0) * t3_2(1, 0, 0)
31  + t4(ii, 1, 0, 1) * t3_2(1, 0, 1)
32  + t4(ii, 1, 0, 2) * t3_2(1, 0, 2)
33  + t4(ii, 1, 0, 3) * t3_2(1, 0, 3)
34  + t4(ii, 1, 1, 0) * t3_2(1, 1, 0)
35  + t4(ii, 1, 1, 1) * t3_2(1, 1, 1)
36  + t4(ii, 1, 1, 2) * t3_2(1, 1, 2)
37  + t4(ii, 1, 1, 3) * t3_2(1, 1, 3)
38  + t4(ii, 1, 2, 0) * t3_2(1, 2, 0)
39  + t4(ii, 1, 2, 1) * t3_2(1, 2, 1)
40  + t4(ii, 1, 2, 2) * t3_2(1, 2, 2)
41  + t4(ii, 1, 2, 3) * t3_2(1, 2, 3)),
42  "T4(i,j,k,l)*T3(j,k,l)(" + std::to_string(ii) + ")");
43  test_for_zero((t3_2(j, k, l) * t4(i, j, k, l))(ii)
44  - (t4(ii, 0, 0, 0) * t3_2(0, 0, 0)
45  + t4(ii, 0, 0, 1) * t3_2(0, 0, 1)
46  + t4(ii, 0, 0, 2) * t3_2(0, 0, 2)
47  + t4(ii, 0, 0, 3) * t3_2(0, 0, 3)
48  + t4(ii, 0, 1, 0) * t3_2(0, 1, 0)
49  + t4(ii, 0, 1, 1) * t3_2(0, 1, 1)
50  + t4(ii, 0, 1, 2) * t3_2(0, 1, 2)
51  + t4(ii, 0, 1, 3) * t3_2(0, 1, 3)
52  + t4(ii, 0, 2, 0) * t3_2(0, 2, 0)
53  + t4(ii, 0, 2, 1) * t3_2(0, 2, 1)
54  + t4(ii, 0, 2, 2) * t3_2(0, 2, 2)
55  + t4(ii, 0, 2, 3) * t3_2(0, 2, 3)
56  + t4(ii, 1, 0, 0) * t3_2(1, 0, 0)
57  + t4(ii, 1, 0, 1) * t3_2(1, 0, 1)
58  + t4(ii, 1, 0, 2) * t3_2(1, 0, 2)
59  + t4(ii, 1, 0, 3) * t3_2(1, 0, 3)
60  + t4(ii, 1, 1, 0) * t3_2(1, 1, 0)
61  + t4(ii, 1, 1, 1) * t3_2(1, 1, 1)
62  + t4(ii, 1, 1, 2) * t3_2(1, 1, 2)
63  + t4(ii, 1, 1, 3) * t3_2(1, 1, 3)
64  + t4(ii, 1, 2, 0) * t3_2(1, 2, 0)
65  + t4(ii, 1, 2, 1) * t3_2(1, 2, 1)
66  + t4(ii, 1, 2, 2) * t3_2(1, 2, 2)
67  + t4(ii, 1, 2, 3) * t3_2(1, 2, 3)),
68  "T3(j,k,l)*T4(i,j,k,l)(" + std::to_string(ii) + ")");
69  }
70  {
72  t3(j, l, k) = t3_2(j, k, l);
73 
74  for(int ii = 0; ii < 1; ++ii)
75  {
77  (t4(i, j, k, l) * t3(j, l, k))(ii)
78  - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(0, 1, 0)
79  + t4(ii, 0, 0, 2) * t3(0, 2, 0) + t4(ii, 0, 0, 3) * t3(0, 3, 0)
80  + t4(ii, 0, 1, 0) * t3(0, 0, 1) + t4(ii, 0, 1, 1) * t3(0, 1, 1)
81  + t4(ii, 0, 1, 2) * t3(0, 2, 1) + t4(ii, 0, 1, 3) * t3(0, 3, 1)
82  + t4(ii, 0, 2, 0) * t3(0, 0, 2) + t4(ii, 0, 2, 1) * t3(0, 1, 2)
83  + t4(ii, 0, 2, 2) * t3(0, 2, 2) + t4(ii, 0, 2, 3) * t3(0, 3, 2)
84  + t4(ii, 1, 0, 0) * t3(1, 0, 0) + t4(ii, 1, 0, 1) * t3(1, 1, 0)
85  + t4(ii, 1, 0, 2) * t3(1, 2, 0) + t4(ii, 1, 0, 3) * t3(1, 3, 0)
86  + t4(ii, 1, 1, 0) * t3(1, 0, 1) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
87  + t4(ii, 1, 1, 2) * t3(1, 2, 1) + t4(ii, 1, 1, 3) * t3(1, 3, 1)
88  + t4(ii, 1, 2, 0) * t3(1, 0, 2) + t4(ii, 1, 2, 1) * t3(1, 1, 2)
89  + t4(ii, 1, 2, 2) * t3(1, 2, 2)
90  + t4(ii, 1, 2, 3) * t3(1, 3, 2)),
91  "T4(i,j,k,l)*T3(j,l,k)(" + std::to_string(ii) + ")");
93  (t3(j, l, k) * t4(i, j, k, l))(ii)
94  - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(0, 1, 0)
95  + t4(ii, 0, 0, 2) * t3(0, 2, 0) + t4(ii, 0, 0, 3) * t3(0, 3, 0)
96  + t4(ii, 0, 1, 0) * t3(0, 0, 1) + t4(ii, 0, 1, 1) * t3(0, 1, 1)
97  + t4(ii, 0, 1, 2) * t3(0, 2, 1) + t4(ii, 0, 1, 3) * t3(0, 3, 1)
98  + t4(ii, 0, 2, 0) * t3(0, 0, 2) + t4(ii, 0, 2, 1) * t3(0, 1, 2)
99  + t4(ii, 0, 2, 2) * t3(0, 2, 2) + t4(ii, 0, 2, 3) * t3(0, 3, 2)
100  + t4(ii, 1, 0, 0) * t3(1, 0, 0) + t4(ii, 1, 0, 1) * t3(1, 1, 0)
101  + t4(ii, 1, 0, 2) * t3(1, 2, 0) + t4(ii, 1, 0, 3) * t3(1, 3, 0)
102  + t4(ii, 1, 1, 0) * t3(1, 0, 1) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
103  + t4(ii, 1, 1, 2) * t3(1, 2, 1) + t4(ii, 1, 1, 3) * t3(1, 3, 1)
104  + t4(ii, 1, 2, 0) * t3(1, 0, 2) + t4(ii, 1, 2, 1) * t3(1, 1, 2)
105  + t4(ii, 1, 2, 2) * t3(1, 2, 2)
106  + t4(ii, 1, 2, 3) * t3(1, 3, 2)),
107  "T3(j,l,k)*T4(i,j,k,l)(" + std::to_string(ii) + ")");
108  }
109  }
110  {
112  t3(k, j, l) = t3_2(j, k, l);
113 
114  for(int ii = 0; ii < 1; ++ii)
115  {
117  (t4(i, j, k, l) * t3(k, j, l))(ii)
118  - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(0, 0, 1)
119  + t4(ii, 0, 0, 2) * t3(0, 0, 2) + t4(ii, 0, 0, 3) * t3(0, 0, 3)
120  + t4(ii, 0, 1, 0) * t3(1, 0, 0) + t4(ii, 0, 1, 1) * t3(1, 0, 1)
121  + t4(ii, 0, 1, 2) * t3(1, 0, 2) + t4(ii, 0, 1, 3) * t3(1, 0, 3)
122  + t4(ii, 0, 2, 0) * t3(2, 0, 0) + t4(ii, 0, 2, 1) * t3(2, 0, 1)
123  + t4(ii, 0, 2, 2) * t3(2, 0, 2) + t4(ii, 0, 2, 3) * t3(2, 0, 3)
124  + t4(ii, 1, 0, 0) * t3(0, 1, 0) + t4(ii, 1, 0, 1) * t3(0, 1, 1)
125  + t4(ii, 1, 0, 2) * t3(0, 1, 2) + t4(ii, 1, 0, 3) * t3(0, 1, 3)
126  + t4(ii, 1, 1, 0) * t3(1, 1, 0) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
127  + t4(ii, 1, 1, 2) * t3(1, 1, 2) + t4(ii, 1, 1, 3) * t3(1, 1, 3)
128  + t4(ii, 1, 2, 0) * t3(2, 1, 0) + t4(ii, 1, 2, 1) * t3(2, 1, 1)
129  + t4(ii, 1, 2, 2) * t3(2, 1, 2)
130  + t4(ii, 1, 2, 3) * t3(2, 1, 3)),
131  "T4(i,j,k,l)*T3(k,j,l)(" + std::to_string(ii) + ")");
133  (t3(k, j, l) * t4(i, j, k, l))(ii)
134  - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(0, 0, 1)
135  + t4(ii, 0, 0, 2) * t3(0, 0, 2) + t4(ii, 0, 0, 3) * t3(0, 0, 3)
136  + t4(ii, 0, 1, 0) * t3(1, 0, 0) + t4(ii, 0, 1, 1) * t3(1, 0, 1)
137  + t4(ii, 0, 1, 2) * t3(1, 0, 2) + t4(ii, 0, 1, 3) * t3(1, 0, 3)
138  + t4(ii, 0, 2, 0) * t3(2, 0, 0) + t4(ii, 0, 2, 1) * t3(2, 0, 1)
139  + t4(ii, 0, 2, 2) * t3(2, 0, 2) + t4(ii, 0, 2, 3) * t3(2, 0, 3)
140  + t4(ii, 1, 0, 0) * t3(0, 1, 0) + t4(ii, 1, 0, 1) * t3(0, 1, 1)
141  + t4(ii, 1, 0, 2) * t3(0, 1, 2) + t4(ii, 1, 0, 3) * t3(0, 1, 3)
142  + t4(ii, 1, 1, 0) * t3(1, 1, 0) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
143  + t4(ii, 1, 1, 2) * t3(1, 1, 2) + t4(ii, 1, 1, 3) * t3(1, 1, 3)
144  + t4(ii, 1, 2, 0) * t3(2, 1, 0) + t4(ii, 1, 2, 1) * t3(2, 1, 1)
145  + t4(ii, 1, 2, 2) * t3(2, 1, 2)
146  + t4(ii, 1, 2, 3) * t3(2, 1, 3)),
147  "T3(k,j,l)*T4(i,j,k,l)(" + std::to_string(ii) + ")");
148  }
149  }
150  {
152  t3(k, l, j) = t3_2(j, k, l);
153  for(int ii = 0; ii < 1; ++ii)
154  {
156  (t4(i, j, k, l) * t3(k, l, j))(ii)
157  - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(0, 1, 0)
158  + t4(ii, 0, 0, 2) * t3(0, 2, 0) + t4(ii, 0, 0, 3) * t3(0, 3, 0)
159  + t4(ii, 0, 1, 0) * t3(1, 0, 0) + t4(ii, 0, 1, 1) * t3(1, 1, 0)
160  + t4(ii, 0, 1, 2) * t3(1, 2, 0) + t4(ii, 0, 1, 3) * t3(1, 3, 0)
161  + t4(ii, 0, 2, 0) * t3(2, 0, 0) + t4(ii, 0, 2, 1) * t3(2, 1, 0)
162  + t4(ii, 0, 2, 2) * t3(2, 2, 0) + t4(ii, 0, 2, 3) * t3(2, 3, 0)
163  + t4(ii, 1, 0, 0) * t3(0, 0, 1) + t4(ii, 1, 0, 1) * t3(0, 1, 1)
164  + t4(ii, 1, 0, 2) * t3(0, 2, 1) + t4(ii, 1, 0, 3) * t3(0, 3, 1)
165  + t4(ii, 1, 1, 0) * t3(1, 0, 1) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
166  + t4(ii, 1, 1, 2) * t3(1, 2, 1) + t4(ii, 1, 1, 3) * t3(1, 3, 1)
167  + t4(ii, 1, 2, 0) * t3(2, 0, 1) + t4(ii, 1, 2, 1) * t3(2, 1, 1)
168  + t4(ii, 1, 2, 2) * t3(2, 2, 1)
169  + t4(ii, 1, 2, 3) * t3(2, 3, 1)),
170  "T4(i,j,k,l)*T3(k,l,j)(" + std::to_string(ii) + ")");
172  (t3(k, l, j) * t4(i, j, k, l))(ii)
173  - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(0, 1, 0)
174  + t4(ii, 0, 0, 2) * t3(0, 2, 0) + t4(ii, 0, 0, 3) * t3(0, 3, 0)
175  + t4(ii, 0, 1, 0) * t3(1, 0, 0) + t4(ii, 0, 1, 1) * t3(1, 1, 0)
176  + t4(ii, 0, 1, 2) * t3(1, 2, 0) + t4(ii, 0, 1, 3) * t3(1, 3, 0)
177  + t4(ii, 0, 2, 0) * t3(2, 0, 0) + t4(ii, 0, 2, 1) * t3(2, 1, 0)
178  + t4(ii, 0, 2, 2) * t3(2, 2, 0) + t4(ii, 0, 2, 3) * t3(2, 3, 0)
179  + t4(ii, 1, 0, 0) * t3(0, 0, 1) + t4(ii, 1, 0, 1) * t3(0, 1, 1)
180  + t4(ii, 1, 0, 2) * t3(0, 2, 1) + t4(ii, 1, 0, 3) * t3(0, 3, 1)
181  + t4(ii, 1, 1, 0) * t3(1, 0, 1) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
182  + t4(ii, 1, 1, 2) * t3(1, 2, 1) + t4(ii, 1, 1, 3) * t3(1, 3, 1)
183  + t4(ii, 1, 2, 0) * t3(2, 0, 1) + t4(ii, 1, 2, 1) * t3(2, 1, 1)
184  + t4(ii, 1, 2, 2) * t3(2, 2, 1)
185  + t4(ii, 1, 2, 3) * t3(2, 3, 1)),
186  "T3(k,l,j)*T4(i,j,k,l)(" + std::to_string(ii) + ")");
187  }
188  }
189  {
191  t3(l, j, k) = t3_2(j, k, l);
192  for(int ii = 0; ii < 1; ++ii)
193  {
195  (t4(i, j, k, l) * t3(l, j, k))(ii)
196  - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(1, 0, 0)
197  + t4(ii, 0, 0, 2) * t3(2, 0, 0) + t4(ii, 0, 0, 3) * t3(3, 0, 0)
198  + t4(ii, 0, 1, 0) * t3(0, 0, 1) + t4(ii, 0, 1, 1) * t3(1, 0, 1)
199  + t4(ii, 0, 1, 2) * t3(2, 0, 1) + t4(ii, 0, 1, 3) * t3(3, 0, 1)
200  + t4(ii, 0, 2, 0) * t3(0, 0, 2) + t4(ii, 0, 2, 1) * t3(1, 0, 2)
201  + t4(ii, 0, 2, 2) * t3(2, 0, 2) + t4(ii, 0, 2, 3) * t3(3, 0, 2)
202  + t4(ii, 1, 0, 0) * t3(0, 1, 0) + t4(ii, 1, 0, 1) * t3(1, 1, 0)
203  + t4(ii, 1, 0, 2) * t3(2, 1, 0) + t4(ii, 1, 0, 3) * t3(3, 1, 0)
204  + t4(ii, 1, 1, 0) * t3(0, 1, 1) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
205  + t4(ii, 1, 1, 2) * t3(2, 1, 1) + t4(ii, 1, 1, 3) * t3(3, 1, 1)
206  + t4(ii, 1, 2, 0) * t3(0, 1, 2) + t4(ii, 1, 2, 1) * t3(1, 1, 2)
207  + t4(ii, 1, 2, 2) * t3(2, 1, 2)
208  + t4(ii, 1, 2, 3) * t3(3, 1, 2)),
209  "T4(i,j,k,l)*T3(l,j,k)(" + std::to_string(ii) + ")");
211  (t3(l, j, k) * t4(i, j, k, l))(ii)
212  - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(1, 0, 0)
213  + t4(ii, 0, 0, 2) * t3(2, 0, 0) + t4(ii, 0, 0, 3) * t3(3, 0, 0)
214  + t4(ii, 0, 1, 0) * t3(0, 0, 1) + t4(ii, 0, 1, 1) * t3(1, 0, 1)
215  + t4(ii, 0, 1, 2) * t3(2, 0, 1) + t4(ii, 0, 1, 3) * t3(3, 0, 1)
216  + t4(ii, 0, 2, 0) * t3(0, 0, 2) + t4(ii, 0, 2, 1) * t3(1, 0, 2)
217  + t4(ii, 0, 2, 2) * t3(2, 0, 2) + t4(ii, 0, 2, 3) * t3(3, 0, 2)
218  + t4(ii, 1, 0, 0) * t3(0, 1, 0) + t4(ii, 1, 0, 1) * t3(1, 1, 0)
219  + t4(ii, 1, 0, 2) * t3(2, 1, 0) + t4(ii, 1, 0, 3) * t3(3, 1, 0)
220  + t4(ii, 1, 1, 0) * t3(0, 1, 1) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
221  + t4(ii, 1, 1, 2) * t3(2, 1, 1) + t4(ii, 1, 1, 3) * t3(3, 1, 1)
222  + t4(ii, 1, 2, 0) * t3(0, 1, 2) + t4(ii, 1, 2, 1) * t3(1, 1, 2)
223  + t4(ii, 1, 2, 2) * t3(2, 1, 2)
224  + t4(ii, 1, 2, 3) * t3(3, 1, 2)),
225  "T3(l,j,k)*T4(i,j,k,l)(" + std::to_string(ii) + ")");
226  }
227  }
228  {
230  t3(l, k, j) = t3_2(j, k, l);
231 
232  for(int ii = 0; ii < 1; ++ii)
233  {
235  (t4(i, j, k, l) * t3(l, k, j))(ii)
236  - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(1, 0, 0)
237  + t4(ii, 0, 0, 2) * t3(2, 0, 0) + t4(ii, 0, 0, 3) * t3(3, 0, 0)
238  + t4(ii, 0, 1, 0) * t3(0, 1, 0) + t4(ii, 0, 1, 1) * t3(1, 1, 0)
239  + t4(ii, 0, 1, 2) * t3(2, 1, 0) + t4(ii, 0, 1, 3) * t3(3, 1, 0)
240  + t4(ii, 0, 2, 0) * t3(0, 2, 0) + t4(ii, 0, 2, 1) * t3(1, 2, 0)
241  + t4(ii, 0, 2, 2) * t3(2, 2, 0) + t4(ii, 0, 2, 3) * t3(3, 2, 0)
242  + t4(ii, 1, 0, 0) * t3(0, 0, 1) + t4(ii, 1, 0, 1) * t3(1, 0, 1)
243  + t4(ii, 1, 0, 2) * t3(2, 0, 1) + t4(ii, 1, 0, 3) * t3(3, 0, 1)
244  + t4(ii, 1, 1, 0) * t3(0, 1, 1) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
245  + t4(ii, 1, 1, 2) * t3(2, 1, 1) + t4(ii, 1, 1, 3) * t3(3, 1, 1)
246  + t4(ii, 1, 2, 0) * t3(0, 2, 1) + t4(ii, 1, 2, 1) * t3(1, 2, 1)
247  + t4(ii, 1, 2, 2) * t3(2, 2, 1)
248  + t4(ii, 1, 2, 3) * t3(3, 2, 1)),
249  "T4(i,j,k,l)*T3(l,k,j)(" + std::to_string(ii) + ")");
251  (t3(l, k, j) * t4(i, j, k, l))(ii)
252  - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(1, 0, 0)
253  + t4(ii, 0, 0, 2) * t3(2, 0, 0) + t4(ii, 0, 0, 3) * t3(3, 0, 0)
254  + t4(ii, 0, 1, 0) * t3(0, 1, 0) + t4(ii, 0, 1, 1) * t3(1, 1, 0)
255  + t4(ii, 0, 1, 2) * t3(2, 1, 0) + t4(ii, 0, 1, 3) * t3(3, 1, 0)
256  + t4(ii, 0, 2, 0) * t3(0, 2, 0) + t4(ii, 0, 2, 1) * t3(1, 2, 0)
257  + t4(ii, 0, 2, 2) * t3(2, 2, 0) + t4(ii, 0, 2, 3) * t3(3, 2, 0)
258  + t4(ii, 1, 0, 0) * t3(0, 0, 1) + t4(ii, 1, 0, 1) * t3(1, 0, 1)
259  + t4(ii, 1, 0, 2) * t3(2, 0, 1) + t4(ii, 1, 0, 3) * t3(3, 0, 1)
260  + t4(ii, 1, 1, 0) * t3(0, 1, 1) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
261  + t4(ii, 1, 1, 2) * t3(2, 1, 1) + t4(ii, 1, 1, 3) * t3(3, 1, 1)
262  + t4(ii, 1, 2, 0) * t3(0, 2, 1) + t4(ii, 1, 2, 1) * t3(1, 2, 1)
263  + t4(ii, 1, 2, 2) * t3(2, 2, 1)
264  + t4(ii, 1, 2, 3) * t3(3, 2, 1)),
265  "T3(l,k,j)*T4(i,j,k,l)(" + std::to_string(ii) + ")");
266  }
267  }
268 
269  for(int jj = 0; jj < 2; ++jj)
270  {
271  test_for_zero((t4(i, j, k, l) * t3_2(i, k, l))(jj)
272  - (t4(0, jj, 0, 0) * t3_2(0, 0, 0)
273  + t4(0, jj, 0, 1) * t3_2(0, 0, 1)
274  + t4(0, jj, 0, 2) * t3_2(0, 0, 2)
275  + t4(0, jj, 0, 3) * t3_2(0, 0, 3)
276  + t4(0, jj, 1, 0) * t3_2(0, 1, 0)
277  + t4(0, jj, 1, 1) * t3_2(0, 1, 1)
278  + t4(0, jj, 1, 2) * t3_2(0, 1, 2)
279  + t4(0, jj, 1, 3) * t3_2(0, 1, 3)
280  + t4(0, jj, 2, 0) * t3_2(0, 2, 0)
281  + t4(0, jj, 2, 1) * t3_2(0, 2, 1)
282  + t4(0, jj, 2, 2) * t3_2(0, 2, 2)
283  + t4(0, jj, 2, 3) * t3_2(0, 2, 3)),
284  "T4(i,j,k,l)*T3(i,k,l)(" + std::to_string(jj) + ")");
285  test_for_zero((t3_2(i, k, l) * t4(i, j, k, l))(jj)
286  - (t4(0, jj, 0, 0) * t3_2(0, 0, 0)
287  + t4(0, jj, 0, 1) * t3_2(0, 0, 1)
288  + t4(0, jj, 0, 2) * t3_2(0, 0, 2)
289  + t4(0, jj, 0, 3) * t3_2(0, 0, 3)
290  + t4(0, jj, 1, 0) * t3_2(0, 1, 0)
291  + t4(0, jj, 1, 1) * t3_2(0, 1, 1)
292  + t4(0, jj, 1, 2) * t3_2(0, 1, 2)
293  + t4(0, jj, 1, 3) * t3_2(0, 1, 3)
294  + t4(0, jj, 2, 0) * t3_2(0, 2, 0)
295  + t4(0, jj, 2, 1) * t3_2(0, 2, 1)
296  + t4(0, jj, 2, 2) * t3_2(0, 2, 2)
297  + t4(0, jj, 2, 3) * t3_2(0, 2, 3)),
298  "T3(i,k,l)*T4(i,j,k,l)(" + std::to_string(jj) + ")");
299  }
300  {
302  t3(j, l, k) = t3_2(j, k, l);
303 
304  for(int jj = 0; jj < 2; ++jj)
305  {
307  (t4(i, j, k, l) * t3(i, l, k))(jj)
308  - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(0, 1, 0)
309  + t4(0, jj, 0, 2) * t3(0, 2, 0) + t4(0, jj, 0, 3) * t3(0, 3, 0)
310  + t4(0, jj, 1, 0) * t3(0, 0, 1) + t4(0, jj, 1, 1) * t3(0, 1, 1)
311  + t4(0, jj, 1, 2) * t3(0, 2, 1) + t4(0, jj, 1, 3) * t3(0, 3, 1)
312  + t4(0, jj, 2, 0) * t3(0, 0, 2) + t4(0, jj, 2, 1) * t3(0, 1, 2)
313  + t4(0, jj, 2, 2) * t3(0, 2, 2)
314  + t4(0, jj, 2, 3) * t3(0, 3, 2)),
315  "T4(i,j,k,l)*T3(i,l,k)(" + std::to_string(jj) + ")");
317  (t3(i, l, k) * t4(i, j, k, l))(jj)
318  - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(0, 1, 0)
319  + t4(0, jj, 0, 2) * t3(0, 2, 0) + t4(0, jj, 0, 3) * t3(0, 3, 0)
320  + t4(0, jj, 1, 0) * t3(0, 0, 1) + t4(0, jj, 1, 1) * t3(0, 1, 1)
321  + t4(0, jj, 1, 2) * t3(0, 2, 1) + t4(0, jj, 1, 3) * t3(0, 3, 1)
322  + t4(0, jj, 2, 0) * t3(0, 0, 2) + t4(0, jj, 2, 1) * t3(0, 1, 2)
323  + t4(0, jj, 2, 2) * t3(0, 2, 2)
324  + t4(0, jj, 2, 3) * t3(0, 3, 2)),
325  "T3(i,l,k)*T4(i,j,k,l)(" + std::to_string(jj) + ")");
326  }
327  }
328  {
330  t3(k, j, l) = t3_2(j, k, l);
331 
332  for(int jj = 0; jj < 2; ++jj)
333  {
335  (t4(i, j, k, l) * t3(k, i, l))(jj)
336  - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(0, 0, 1)
337  + t4(0, jj, 0, 2) * t3(0, 0, 2) + t4(0, jj, 0, 3) * t3(0, 0, 3)
338  + t4(0, jj, 1, 0) * t3(1, 0, 0) + t4(0, jj, 1, 1) * t3(1, 0, 1)
339  + t4(0, jj, 1, 2) * t3(1, 0, 2) + t4(0, jj, 1, 3) * t3(1, 0, 3)
340  + t4(0, jj, 2, 0) * t3(2, 0, 0) + t4(0, jj, 2, 1) * t3(2, 0, 1)
341  + t4(0, jj, 2, 2) * t3(2, 0, 2)
342  + t4(0, jj, 2, 3) * t3(2, 0, 3)),
343  "T4(i,j,k,l)*T3(k,i,l)(" + std::to_string(jj) + ")");
345  (t3(k, i, l) * t4(i, j, k, l))(jj)
346  - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(0, 0, 1)
347  + t4(0, jj, 0, 2) * t3(0, 0, 2) + t4(0, jj, 0, 3) * t3(0, 0, 3)
348  + t4(0, jj, 1, 0) * t3(1, 0, 0) + t4(0, jj, 1, 1) * t3(1, 0, 1)
349  + t4(0, jj, 1, 2) * t3(1, 0, 2) + t4(0, jj, 1, 3) * t3(1, 0, 3)
350  + t4(0, jj, 2, 0) * t3(2, 0, 0) + t4(0, jj, 2, 1) * t3(2, 0, 1)
351  + t4(0, jj, 2, 2) * t3(2, 0, 2)
352  + t4(0, jj, 2, 3) * t3(2, 0, 3)),
353  "T3(k,i,l)*T4(i,j,k,l)(" + std::to_string(jj) + ")");
354  }
355  }
356  {
358  t3(k, l, j) = t3_2(j, k, l);
359  for(int jj = 0; jj < 2; ++jj)
360  {
362  (t4(i, j, k, l) * t3(k, l, i))(jj)
363  - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(0, 1, 0)
364  + t4(0, jj, 0, 2) * t3(0, 2, 0) + t4(0, jj, 0, 3) * t3(0, 3, 0)
365  + t4(0, jj, 1, 0) * t3(1, 0, 0) + t4(0, jj, 1, 1) * t3(1, 1, 0)
366  + t4(0, jj, 1, 2) * t3(1, 2, 0) + t4(0, jj, 1, 3) * t3(1, 3, 0)
367  + t4(0, jj, 2, 0) * t3(2, 0, 0) + t4(0, jj, 2, 1) * t3(2, 1, 0)
368  + t4(0, jj, 2, 2) * t3(2, 2, 0)
369  + t4(0, jj, 2, 3) * t3(2, 3, 0)),
370  "T4(i,j,k,l)*T3(k,l,i)(" + std::to_string(jj) + ")");
372  (t3(k, l, i) * t4(i, j, k, l))(jj)
373  - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(0, 1, 0)
374  + t4(0, jj, 0, 2) * t3(0, 2, 0) + t4(0, jj, 0, 3) * t3(0, 3, 0)
375  + t4(0, jj, 1, 0) * t3(1, 0, 0) + t4(0, jj, 1, 1) * t3(1, 1, 0)
376  + t4(0, jj, 1, 2) * t3(1, 2, 0) + t4(0, jj, 1, 3) * t3(1, 3, 0)
377  + t4(0, jj, 2, 0) * t3(2, 0, 0) + t4(0, jj, 2, 1) * t3(2, 1, 0)
378  + t4(0, jj, 2, 2) * t3(2, 2, 0)
379  + t4(0, jj, 2, 3) * t3(2, 3, 0)),
380  "T3(k,l,i)*T4(i,j,k,l)(" + std::to_string(jj) + ")");
381  }
382  }
383  {
385  t3(l, j, k) = t3_2(j, k, l);
386  for(int jj = 0; jj < 2; ++jj)
387  {
389  (t4(i, j, k, l) * t3(l, i, k))(jj)
390  - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(1, 0, 0)
391  + t4(0, jj, 0, 2) * t3(2, 0, 0) + t4(0, jj, 0, 3) * t3(3, 0, 0)
392  + t4(0, jj, 1, 0) * t3(0, 0, 1) + t4(0, jj, 1, 1) * t3(1, 0, 1)
393  + t4(0, jj, 1, 2) * t3(2, 0, 1) + t4(0, jj, 1, 3) * t3(3, 0, 1)
394  + t4(0, jj, 2, 0) * t3(0, 0, 2) + t4(0, jj, 2, 1) * t3(1, 0, 2)
395  + t4(0, jj, 2, 2) * t3(2, 0, 2)
396  + t4(0, jj, 2, 3) * t3(3, 0, 2)),
397  "T4(i,j,k,l)*T3(l,i,k)(" + std::to_string(jj) + ")");
399  (t3(l, i, k) * t4(i, j, k, l))(jj)
400  - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(1, 0, 0)
401  + t4(0, jj, 0, 2) * t3(2, 0, 0) + t4(0, jj, 0, 3) * t3(3, 0, 0)
402  + t4(0, jj, 1, 0) * t3(0, 0, 1) + t4(0, jj, 1, 1) * t3(1, 0, 1)
403  + t4(0, jj, 1, 2) * t3(2, 0, 1) + t4(0, jj, 1, 3) * t3(3, 0, 1)
404  + t4(0, jj, 2, 0) * t3(0, 0, 2) + t4(0, jj, 2, 1) * t3(1, 0, 2)
405  + t4(0, jj, 2, 2) * t3(2, 0, 2)
406  + t4(0, jj, 2, 3) * t3(3, 0, 2)),
407  "T3(l,i,k)*T4(i,j,k,l)(" + std::to_string(jj) + ")");
408  }
409  }
410  {
412  t3(l, k, j) = t3_2(j, k, l);
413 
414  for(int jj = 0; jj < 2; ++jj)
415  {
417  (t4(i, j, k, l) * t3(l, k, i))(jj)
418  - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(1, 0, 0)
419  + t4(0, jj, 0, 2) * t3(2, 0, 0) + t4(0, jj, 0, 3) * t3(3, 0, 0)
420  + t4(0, jj, 1, 0) * t3(0, 1, 0) + t4(0, jj, 1, 1) * t3(1, 1, 0)
421  + t4(0, jj, 1, 2) * t3(2, 1, 0) + t4(0, jj, 1, 3) * t3(3, 1, 0)
422  + t4(0, jj, 2, 0) * t3(0, 2, 0) + t4(0, jj, 2, 1) * t3(1, 2, 0)
423  + t4(0, jj, 2, 2) * t3(2, 2, 0)
424  + t4(0, jj, 2, 3) * t3(3, 2, 0)),
425  "T4(i,j,k,l)*T3(l,k,i)(" + std::to_string(jj) + ")");
427  (t3(l, k, i) * t4(i, j, k, l))(jj)
428  - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(1, 0, 0)
429  + t4(0, jj, 0, 2) * t3(2, 0, 0) + t4(0, jj, 0, 3) * t3(3, 0, 0)
430  + t4(0, jj, 1, 0) * t3(0, 1, 0) + t4(0, jj, 1, 1) * t3(1, 1, 0)
431  + t4(0, jj, 1, 2) * t3(2, 1, 0) + t4(0, jj, 1, 3) * t3(3, 1, 0)
432  + t4(0, jj, 2, 0) * t3(0, 2, 0) + t4(0, jj, 2, 1) * t3(1, 2, 0)
433  + t4(0, jj, 2, 2) * t3(2, 2, 0)
434  + t4(0, jj, 2, 3) * t3(3, 2, 0)),
435  "T3(l,k,i)*T4(i,j,k,l)(" + std::to_string(jj) + ")");
436  }
437  }
438 
439  for(int kk = 0; kk < 3; ++kk)
440  {
441  test_for_zero((t4(i, j, k, l) * t3_2(i, j, l))(kk)
442  - (t4(0, 0, kk, 0) * t3_2(0, 0, 0)
443  + t4(0, 0, kk, 1) * t3_2(0, 0, 1)
444  + t4(0, 0, kk, 2) * t3_2(0, 0, 2)
445  + t4(0, 0, kk, 3) * t3_2(0, 0, 3)
446  + t4(0, 1, kk, 0) * t3_2(0, 1, 0)
447  + t4(0, 1, kk, 1) * t3_2(0, 1, 1)
448  + t4(0, 1, kk, 2) * t3_2(0, 1, 2)
449  + t4(0, 1, kk, 3) * t3_2(0, 1, 3)),
450  "T4(i,j,k,l)*T3(i,j,l)(" + std::to_string(kk) + ")");
451  test_for_zero((t3_2(i, j, l) * t4(i, j, k, l))(kk)
452  - (t4(0, 0, kk, 0) * t3_2(0, 0, 0)
453  + t4(0, 0, kk, 1) * t3_2(0, 0, 1)
454  + t4(0, 0, kk, 2) * t3_2(0, 0, 2)
455  + t4(0, 0, kk, 3) * t3_2(0, 0, 3)
456  + t4(0, 1, kk, 0) * t3_2(0, 1, 0)
457  + t4(0, 1, kk, 1) * t3_2(0, 1, 1)
458  + t4(0, 1, kk, 2) * t3_2(0, 1, 2)
459  + t4(0, 1, kk, 3) * t3_2(0, 1, 3)),
460  "T3(i,j,l)*T4(i,j,k,l)(" + std::to_string(kk) + ")");
461  }
462  {
464  t3(j, l, k) = t3_2(j, k, l);
465 
466  for(int kk = 0; kk < 3; ++kk)
467  {
469  (t4(i, j, k, l) * t3(i, l, j))(kk)
470  - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(0, 1, 0)
471  + t4(0, 0, kk, 2) * t3(0, 2, 0) + t4(0, 0, kk, 3) * t3(0, 3, 0)
472  + t4(0, 1, kk, 0) * t3(0, 0, 1) + t4(0, 1, kk, 1) * t3(0, 1, 1)
473  + t4(0, 1, kk, 2) * t3(0, 2, 1)
474  + t4(0, 1, kk, 3) * t3(0, 3, 1)),
475  "T4(i,j,k,l)*T3(i,l,j)(" + std::to_string(kk) + ")");
477  (t3(i, l, j) * t4(i, j, k, l))(kk)
478  - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(0, 1, 0)
479  + t4(0, 0, kk, 2) * t3(0, 2, 0) + t4(0, 0, kk, 3) * t3(0, 3, 0)
480  + t4(0, 1, kk, 0) * t3(0, 0, 1) + t4(0, 1, kk, 1) * t3(0, 1, 1)
481  + t4(0, 1, kk, 2) * t3(0, 2, 1)
482  + t4(0, 1, kk, 3) * t3(0, 3, 1)),
483  "T3(i,l,j)*T4(i,j,k,l)(" + std::to_string(kk) + ")");
484  }
485  }
486  {
488  t3(k, j, l) = t3_2(j, k, l);
489 
490  for(int kk = 0; kk < 3; ++kk)
491  {
493  (t4(i, j, k, l) * t3(j, i, l))(kk)
494  - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(0, 0, 1)
495  + t4(0, 0, kk, 2) * t3(0, 0, 2) + t4(0, 0, kk, 3) * t3(0, 0, 3)
496  + t4(0, 1, kk, 0) * t3(1, 0, 0) + t4(0, 1, kk, 1) * t3(1, 0, 1)
497  + t4(0, 1, kk, 2) * t3(1, 0, 2)
498  + t4(0, 1, kk, 3) * t3(1, 0, 3)),
499  "T4(i,j,k,l)*T3(j,i,l)(" + std::to_string(kk) + ")");
501  (t3(j, i, l) * t4(i, j, k, l))(kk)
502  - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(0, 0, 1)
503  + t4(0, 0, kk, 2) * t3(0, 0, 2) + t4(0, 0, kk, 3) * t3(0, 0, 3)
504  + t4(0, 1, kk, 0) * t3(1, 0, 0) + t4(0, 1, kk, 1) * t3(1, 0, 1)
505  + t4(0, 1, kk, 2) * t3(1, 0, 2)
506  + t4(0, 1, kk, 3) * t3(1, 0, 3)),
507  "T3(j,i,l)*T4(i,j,k,l)(" + std::to_string(kk) + ")");
508  }
509  }
510  {
512  t3(k, l, j) = t3_2(j, k, l);
513  for(int kk = 0; kk < 3; ++kk)
514  {
516  (t4(i, j, k, l) * t3(j, l, i))(kk)
517  - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(0, 1, 0)
518  + t4(0, 0, kk, 2) * t3(0, 2, 0) + t4(0, 0, kk, 3) * t3(0, 3, 0)
519  + t4(0, 1, kk, 0) * t3(1, 0, 0) + t4(0, 1, kk, 1) * t3(1, 1, 0)
520  + t4(0, 1, kk, 2) * t3(1, 2, 0)
521  + t4(0, 1, kk, 3) * t3(1, 3, 0)),
522  "T4(i,j,k,l)*T3(j,l,i)(" + std::to_string(kk) + ")");
524  (t3(j, l, i) * t4(i, j, k, l))(kk)
525  - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(0, 1, 0)
526  + t4(0, 0, kk, 2) * t3(0, 2, 0) + t4(0, 0, kk, 3) * t3(0, 3, 0)
527  + t4(0, 1, kk, 0) * t3(1, 0, 0) + t4(0, 1, kk, 1) * t3(1, 1, 0)
528  + t4(0, 1, kk, 2) * t3(1, 2, 0)
529  + t4(0, 1, kk, 3) * t3(1, 3, 0)),
530  "T3(j,l,i)*T4(i,j,k,l)(" + std::to_string(kk) + ")");
531  }
532  }
533  {
535  t3(l, j, k) = t3_2(j, k, l);
536  for(int kk = 0; kk < 3; ++kk)
537  {
539  (t4(i, j, k, l) * t3(l, i, j))(kk)
540  - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(1, 0, 0)
541  + t4(0, 0, kk, 2) * t3(2, 0, 0) + t4(0, 0, kk, 3) * t3(3, 0, 0)
542  + t4(0, 1, kk, 0) * t3(0, 0, 1) + t4(0, 1, kk, 1) * t3(1, 0, 1)
543  + t4(0, 1, kk, 2) * t3(2, 0, 1)
544  + t4(0, 1, kk, 3) * t3(3, 0, 1)),
545  "T4(i,j,k,l)*T3(l,i,j)(" + std::to_string(kk) + ")");
547  (t3(l, i, j) * t4(i, j, k, l))(kk)
548  - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(1, 0, 0)
549  + t4(0, 0, kk, 2) * t3(2, 0, 0) + t4(0, 0, kk, 3) * t3(3, 0, 0)
550  + t4(0, 1, kk, 0) * t3(0, 0, 1) + t4(0, 1, kk, 1) * t3(1, 0, 1)
551  + t4(0, 1, kk, 2) * t3(2, 0, 1)
552  + t4(0, 1, kk, 3) * t3(3, 0, 1)),
553  "T3(l,i,j)*T4(i,j,k,l)(" + std::to_string(kk) + ")");
554  }
555  }
556  {
558  t3(l, k, j) = t3_2(j, k, l);
559 
560  for(int kk = 0; kk < 3; ++kk)
561  {
563  (t4(i, j, k, l) * t3(l, j, i))(kk)
564  - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(1, 0, 0)
565  + t4(0, 0, kk, 2) * t3(2, 0, 0) + t4(0, 0, kk, 3) * t3(3, 0, 0)
566  + t4(0, 1, kk, 0) * t3(0, 1, 0) + t4(0, 1, kk, 1) * t3(1, 1, 0)
567  + t4(0, 1, kk, 2) * t3(2, 1, 0)
568  + t4(0, 1, kk, 3) * t3(3, 1, 0)),
569  "T4(i,j,k,l)*T3(l,j,i)(" + std::to_string(kk) + ")");
571  (t3(l, j, i) * t4(i, j, k, l))(kk)
572  - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(1, 0, 0)
573  + t4(0, 0, kk, 2) * t3(2, 0, 0) + t4(0, 0, kk, 3) * t3(3, 0, 0)
574  + t4(0, 1, kk, 0) * t3(0, 1, 0) + t4(0, 1, kk, 1) * t3(1, 1, 0)
575  + t4(0, 1, kk, 2) * t3(2, 1, 0)
576  + t4(0, 1, kk, 3) * t3(3, 1, 0)),
577  "T3(l,j,i)*T4(i,j,k,l)(" + std::to_string(kk) + ")");
578  }
579  }
580 
581 
582 
583  for(int ll = 0; ll < 4; ++ll)
584  {
585  test_for_zero((t4(i, j, k, l) * t3_2(i, j, k))(ll)
586  - (t4(0, 0, 0, ll) * t3_2(0, 0, 0)
587  + t4(0, 0, 1, ll) * t3_2(0, 0, 1)
588  + t4(0, 0, 2, ll) * t3_2(0, 0, 2)
589  + t4(0, 1, 0, ll) * t3_2(0, 1, 0)
590  + t4(0, 1, 1, ll) * t3_2(0, 1, 1)
591  + t4(0, 1, 2, ll) * t3_2(0, 1, 2)),
592  "T4(i,j,k,l)*T3(i,j,k)(" + std::to_string(ll) + ")");
593  test_for_zero((t3_2(i, j, k) * t4(i, j, k, l))(ll)
594  - (t4(0, 0, 0, ll) * t3_2(0, 0, 0)
595  + t4(0, 0, 1, ll) * t3_2(0, 0, 1)
596  + t4(0, 0, 2, ll) * t3_2(0, 0, 2)
597  + t4(0, 1, 0, ll) * t3_2(0, 1, 0)
598  + t4(0, 1, 1, ll) * t3_2(0, 1, 1)
599  + t4(0, 1, 2, ll) * t3_2(0, 1, 2)),
600  "T3(i,j,k)*T4(i,j,k,l)(" + std::to_string(ll) + ")");
601  }
602  {
604  t3(j, l, k) = t3_2(j, k, l);
605 
606  for(int ll = 0; ll < 4; ++ll)
607  {
609  (t4(i, j, k, l) * t3(i, k, j))(ll)
610  - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(0, 1, 0)
611  + t4(0, 0, 2, ll) * t3(0, 2, 0) + t4(0, 1, 0, ll) * t3(0, 0, 1)
612  + t4(0, 1, 1, ll) * t3(0, 1, 1)
613  + t4(0, 1, 2, ll) * t3(0, 2, 1)),
614  "T4(i,j,k,l)*T3(i,k,j)(" + std::to_string(ll) + ")");
616  (t3(i, k, j) * t4(i, j, k, l))(ll)
617  - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(0, 1, 0)
618  + t4(0, 0, 2, ll) * t3(0, 2, 0) + t4(0, 1, 0, ll) * t3(0, 0, 1)
619  + t4(0, 1, 1, ll) * t3(0, 1, 1)
620  + t4(0, 1, 2, ll) * t3(0, 2, 1)),
621  "T3(i,k,j)*T4(i,j,k,l)(" + std::to_string(ll) + ")");
622  }
623  }
624  {
626  t3(k, j, l) = t3_2(j, k, l);
627 
628  for(int ll = 0; ll < 4; ++ll)
629  {
631  (t4(i, j, k, l) * t3(j, i, k))(ll)
632  - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(0, 0, 1)
633  + t4(0, 0, 2, ll) * t3(0, 0, 2) + t4(0, 1, 0, ll) * t3(1, 0, 0)
634  + t4(0, 1, 1, ll) * t3(1, 0, 1)
635  + t4(0, 1, 2, ll) * t3(1, 0, 2)),
636  "T4(i,j,k,l)*T3(j,i,k)(" + std::to_string(ll) + ")");
638  (t3(j, i, k) * t4(i, j, k, l))(ll)
639  - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(0, 0, 1)
640  + t4(0, 0, 2, ll) * t3(0, 0, 2) + t4(0, 1, 0, ll) * t3(1, 0, 0)
641  + t4(0, 1, 1, ll) * t3(1, 0, 1)
642  + t4(0, 1, 2, ll) * t3(1, 0, 2)),
643  "T3(j,i,k)*T4(i,j,k,l)(" + std::to_string(ll) + ")");
644  }
645  }
646  {
648  t3(k, l, j) = t3_2(j, k, l);
649  for(int ll = 0; ll < 4; ++ll)
650  {
652  (t4(i, j, k, l) * t3(j, k, i))(ll)
653  - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(0, 1, 0)
654  + t4(0, 0, 2, ll) * t3(0, 2, 0) + t4(0, 1, 0, ll) * t3(1, 0, 0)
655  + t4(0, 1, 1, ll) * t3(1, 1, 0)
656  + t4(0, 1, 2, ll) * t3(1, 2, 0)),
657  "T4(i,j,k,l)*T3(j,k,i)(" + std::to_string(ll) + ")");
659  (t3(j, k, i) * t4(i, j, k, l))(ll)
660  - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(0, 1, 0)
661  + t4(0, 0, 2, ll) * t3(0, 2, 0) + t4(0, 1, 0, ll) * t3(1, 0, 0)
662  + t4(0, 1, 1, ll) * t3(1, 1, 0)
663  + t4(0, 1, 2, ll) * t3(1, 2, 0)),
664  "T3(j,k,i)*T4(i,j,k,l)(" + std::to_string(ll) + ")");
665  }
666  }
667  {
669  t3(l, j, k) = t3_2(j, k, l);
670  for(int ll = 0; ll < 4; ++ll)
671  {
673  (t4(i, j, k, l) * t3(k, i, j))(ll)
674  - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(1, 0, 0)
675  + t4(0, 0, 2, ll) * t3(2, 0, 0) + t4(0, 1, 0, ll) * t3(0, 0, 1)
676  + t4(0, 1, 1, ll) * t3(1, 0, 1)
677  + t4(0, 1, 2, ll) * t3(2, 0, 1)),
678  "T4(i,j,k,l)*T3(k,i,j)(" + std::to_string(ll) + ")");
680  (t3(k, i, j) * t4(i, j, k, l))(ll)
681  - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(1, 0, 0)
682  + t4(0, 0, 2, ll) * t3(2, 0, 0) + t4(0, 1, 0, ll) * t3(0, 0, 1)
683  + t4(0, 1, 1, ll) * t3(1, 0, 1)
684  + t4(0, 1, 2, ll) * t3(2, 0, 1)),
685  "T3(k,i,j)*T4(i,j,k,l)(" + std::to_string(ll) + ")");
686  }
687  }
688  {
690  t3(l, k, j) = t3_2(j, k, l);
691 
692  for(int ll = 0; ll < 4; ++ll)
693  {
695  (t4(i, j, k, l) * t3(k, j, i))(ll)
696  - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(1, 0, 0)
697  + t4(0, 0, 2, ll) * t3(2, 0, 0) + t4(0, 1, 0, ll) * t3(0, 1, 0)
698  + t4(0, 1, 1, ll) * t3(1, 1, 0)
699  + t4(0, 1, 2, ll) * t3(2, 1, 0)),
700  "T4(i,j,k,l)*T3(k,j,i)(" + std::to_string(ll) + ")");
702  (t3(k, j, i) * t4(i, j, k, l))(ll)
703  - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(1, 0, 0)
704  + t4(0, 0, 2, ll) * t3(2, 0, 0) + t4(0, 1, 0, ll) * t3(0, 1, 0)
705  + t4(0, 1, 1, ll) * t3(1, 1, 0)
706  + t4(0, 1, 2, ll) * t3(2, 1, 0)),
707  "T3(k,j,i)*T4(i,j,k,l)(" + std::to_string(ll) + ")");
708  }
709  }
710 }
FTensor
JSON compatible output.
Definition: Christof_constructor.hpp:6
FTensor::Tensor3
Definition: Tensor3_value.hpp:12
test_for_zero
void test_for_zero(const T &t, const std::string &s)
Definition: test_for_zero.hpp:7
FTensor::Tensor4
Definition: Tensor4_value.hpp:18
i
FTensor::Index< 'i', SPACE_DIM > i
Definition: hcurl_divergence_operator_2d.cpp:27
FTensor::Index
Definition: Index.hpp:23
test_T4_06
void test_T4_06(const Tensor4< double, 1, 2, 3, 4 > &t4, const Tensor3< double, 2, 3, 4 > &t3_2)
Definition: test_T4_06.cpp:7
std
Definition: enable_if.hpp:5
j
FTensor::Index< 'j', 3 > j
Definition: matrix_function.cpp:19
k
FTensor::Index< 'k', 3 > k
Definition: matrix_function.cpp:20
l
FTensor::Index< 'l', 3 > l
Definition: matrix_function.cpp:21