v0.14.0
Loading...
Searching...
No Matches
test_T4_01.cpp
Go to the documentation of this file.
3#include "../test_ostream.hpp"
4
5using namespace FTensor;
6using namespace std;
7
9{
10 Index<'i', 1> i;
11 Index<'j', 2> j;
12 Index<'k', 3> k;
13 Index<'l', 4> l;
14
15 // (i,...)
16 {
18 t4(i, j, k, l) = t4_1(i, j, k, l);
19 for(int i1 = 0; i1 < 2; ++i1)
20 for(int i2 = 0; i2 < 3; ++i2)
21 for(int i3 = 0; i3 < 4; ++i3)
22 {
23 test_for_zero(t4_1(0, i1, i2, i3) - t4(0, i1, i2, i3),
24 "T4(i,j,k,l)=T4(i,j,k,l)(0," + std::to_string(i1)
25 + "," + std::to_string(i2) + ","
26 + std::to_string(i3) + ")");
27 test_for_zero((t4_1(i, j, k, l) + t4(i, j, k, l))(0, i1, i2, i3)
28 - 2 * t4_1(0, i1, i2, i3),
29 "T4(i,j,k,l)+T4(i,j,k,l)(0," + std::to_string(i1)
30 + "," + std::to_string(i2) + ","
31 + std::to_string(i3) + ")");
32 test_for_zero((t4_1(i, j, k, l) - t4(i, j, k, l))(0, i1, i2, i3),
33 "T4(i,j,k,l)-T4(i,j,k,l)(0," + std::to_string(i1)
34 + "," + std::to_string(i2) + ","
35 + std::to_string(i3) + ")");
36 }
37 }
38 {
40 t4(i, j, l, k) = t4_1(i, j, k, l);
41 for(int i1 = 0; i1 < 2; ++i1)
42 for(int i2 = 0; i2 < 3; ++i2)
43 for(int i3 = 0; i3 < 4; ++i3)
44 {
45 test_for_zero(t4_1(0, i1, i2, i3) - t4(0, i1, i3, i2),
46 "T4(i,j,k,l)=T4(i,j,l,k)(0," + std::to_string(i1)
47 + "," + std::to_string(i2) + ","
48 + std::to_string(i3) + ")");
49 test_for_zero((t4_1(i, j, k, l) + t4(i, j, l, k))(0, i1, i2, i3)
50 - 2 * t4_1(0, i1, i2, i3),
51 "T4(i,j,k,l)+T4(i,j,l,k)(0," + std::to_string(i1)
52 + "," + std::to_string(i2) + ","
53 + std::to_string(i3) + ")");
54 test_for_zero((t4_1(i, j, k, l) - t4(i, j, l, k))(0, i1, i2, i3),
55 "T4(i,j,k,l)-T4(i,j,l,k)(0," + std::to_string(i1)
56 + "," + std::to_string(i2) + ","
57 + std::to_string(i3) + ")");
58 }
59 }
60 {
62 t4(i, k, j, l) = t4_1(i, j, k, l);
63 for(int i1 = 0; i1 < 2; ++i1)
64 for(int i2 = 0; i2 < 3; ++i2)
65 for(int i3 = 0; i3 < 4; ++i3)
66 {
67 test_for_zero(t4_1(0, i1, i2, i3) - t4(0, i2, i1, i3),
68 "T4(i,j,k,l)=T4(i,k,j,l)(0," + std::to_string(i1)
69 + "," + std::to_string(i2) + ","
70 + std::to_string(i3) + ")");
71 test_for_zero((t4_1(i, j, k, l) + t4(i, k, j, l))(0, i1, i2, i3)
72 - 2 * t4_1(0, i1, i2, i3),
73 "T4(i,j,k,l)+T4(i,k,j,l)(0," + std::to_string(i1)
74 + "," + std::to_string(i2) + ","
75 + std::to_string(i3) + ")");
76 test_for_zero((t4_1(i, j, k, l) - t4(i, k, j, l))(0, i1, i2, i3),
77 "T4(i,j,k,l)-T4(i,k,j,l)(0," + std::to_string(i1)
78 + "," + std::to_string(i2) + ","
79 + std::to_string(i3) + ")");
80 }
81 }
82 {
84 t4(i, k, l, j) = t4_1(i, j, k, l);
85 for(int i1 = 0; i1 < 2; ++i1)
86 for(int i2 = 0; i2 < 3; ++i2)
87 for(int i3 = 0; i3 < 4; ++i3)
88 {
89 test_for_zero(t4_1(0, i1, i2, i3) - t4(0, i2, i3, i1),
90 "T4(i,j,k,l)=T4(i,k,l,j)(0," + std::to_string(i1)
91 + "," + std::to_string(i2) + ","
92 + std::to_string(i3) + ")");
93 test_for_zero((t4_1(i, j, k, l) + t4(i, k, l, j))(0, i1, i2, i3)
94 - 2 * t4_1(0, i1, i2, i3),
95 "T4(i,j,k,l)+T4(i,k,l,j)(0," + std::to_string(i1)
96 + "," + std::to_string(i2) + ","
97 + std::to_string(i3) + ")");
98 test_for_zero((t4_1(i, j, k, l) - t4(i, k, l, j))(0, i1, i2, i3),
99 "T4(i,j,k,l)-T4(i,k,l,j)(0," + std::to_string(i1)
100 + "," + std::to_string(i2) + ","
101 + std::to_string(i3) + ")");
102 }
103 }
104 {
106 t4(i, l, j, k) = t4_1(i, j, k, l);
107 for(int i1 = 0; i1 < 2; ++i1)
108 for(int i2 = 0; i2 < 3; ++i2)
109 for(int i3 = 0; i3 < 4; ++i3)
110 {
111 test_for_zero(t4_1(0, i1, i2, i3) - t4(0, i3, i1, i2),
112 "T4(i,j,k,l)=T4(i,l,j,k)(0," + std::to_string(i1)
113 + "," + std::to_string(i2) + ","
114 + std::to_string(i3) + ")");
115 test_for_zero((t4_1(i, j, k, l) + t4(i, l, j, k))(0, i1, i2, i3)
116 - 2 * t4_1(0, i1, i2, i3),
117 "T4(i,j,k,l)+T4(i,l,j,k)(0," + std::to_string(i1)
118 + "," + std::to_string(i2) + ","
119 + std::to_string(i3) + ")");
120 test_for_zero((t4_1(i, j, k, l) - t4(i, l, j, k))(0, i1, i2, i3),
121 "T4(i,j,k,l)-T4(i,l,j,k)(0," + std::to_string(i1)
122 + "," + std::to_string(i2) + ","
123 + std::to_string(i3) + ")");
124 }
125 }
126 {
128 t4(i, l, k, j) = t4_1(i, j, k, l);
129 for(int i1 = 0; i1 < 2; ++i1)
130 for(int i2 = 0; i2 < 3; ++i2)
131 for(int i3 = 0; i3 < 4; ++i3)
132 {
133 test_for_zero(t4_1(0, i1, i2, i3) - t4(0, i3, i2, i1),
134 "T4(i,j,k,l)=T4(i,l,k,j)(0," + std::to_string(i1)
135 + "," + std::to_string(i2) + ","
136 + std::to_string(i3) + ")");
137 test_for_zero((t4_1(i, j, k, l) + t4(i, l, k, j))(0, i1, i2, i3)
138 - 2 * t4_1(0, i1, i2, i3),
139 "T4(i,j,k,l)+T4(i,l,k,j)(0," + std::to_string(i1)
140 + "," + std::to_string(i2) + ","
141 + std::to_string(i3) + ")");
142 test_for_zero((t4_1(i, j, k, l) - t4(i, l, k, j))(0, i1, i2, i3),
143 "T4(i,j,k,l)-T4(i,l,k,j)(0," + std::to_string(i1)
144 + "," + std::to_string(i2) + ","
145 + std::to_string(i3) + ")");
146 }
147 }
148
149 // (j,...)
150 {
152 t4(j, i, k, l) = t4_1(i, j, k, l);
153 for(int i1 = 0; i1 < 2; ++i1)
154 for(int i2 = 0; i2 < 3; ++i2)
155 for(int i3 = 0; i3 < 4; ++i3)
156 {
157 test_for_zero(t4_1(0, i1, i2, i3) - t4(i1, 0, i2, i3),
158 "T4(j,i,k,l)=T4(i,j,k,l)(0," + std::to_string(i1)
159 + "," + std::to_string(i2) + ","
160 + std::to_string(i3) + ")");
161 test_for_zero((t4_1(i, j, k, l) + t4(j, i, k, l))(0, i1, i2, i3)
162 - 2 * t4_1(0, i1, i2, i3),
163 "T4(j,i,k,l)+T4(i,j,k,l)(0," + std::to_string(i1)
164 + "," + std::to_string(i2) + ","
165 + std::to_string(i3) + ")");
166 test_for_zero((t4_1(i, j, k, l) - t4(j, i, k, l))(0, i1, i2, i3),
167 "T4(j,i,k,l)-T4(i,j,k,l)(0," + std::to_string(i1)
168 + "," + std::to_string(i2) + ","
169 + std::to_string(i3) + ")");
170 }
171 }
172 {
174 t4(j, i, l, k) = t4_1(i, j, k, l);
175 for(int i1 = 0; i1 < 2; ++i1)
176 for(int i2 = 0; i2 < 3; ++i2)
177 for(int i3 = 0; i3 < 4; ++i3)
178 {
179 test_for_zero(t4_1(0, i1, i2, i3) - t4(i1, 0, i3, i2),
180 "T4(i,j,k,l)=T4(j,i,l,k)(0," + std::to_string(i1)
181 + "," + std::to_string(i2) + ","
182 + std::to_string(i3) + ")");
183 test_for_zero((t4_1(i, j, k, l) + t4(j, i, l, k))(0, i1, i2, i3)
184 - 2 * t4_1(0, i1, i2, i3),
185 "T4(i,j,k,l)+T4(j,i,l,k)(0," + std::to_string(i1)
186 + "," + std::to_string(i2) + ","
187 + std::to_string(i3) + ")");
188 test_for_zero((t4_1(i, j, k, l) - t4(j, i, l, k))(0, i1, i2, i3),
189 "T4(i,j,k,l)-T4(j,i,l,k)(0," + std::to_string(i1)
190 + "," + std::to_string(i2) + ","
191 + std::to_string(i3) + ")");
192 }
193 }
194 {
196 t4(j, k, i, l) = t4_1(i, j, k, l);
197 for(int i1 = 0; i1 < 2; ++i1)
198 for(int i2 = 0; i2 < 3; ++i2)
199 for(int i3 = 0; i3 < 4; ++i3)
200 {
201 test_for_zero(t4_1(0, i1, i2, i3) - t4(i1, i2, 0, i3),
202 "T4(i,j,k,l)=T4(j,k,i,l)(0," + std::to_string(i1)
203 + "," + std::to_string(i2) + ","
204 + std::to_string(i3) + ")");
205 test_for_zero((t4_1(i, j, k, l) + t4(j, k, i, l))(0, i1, i2, i3)
206 - 2 * t4_1(0, i1, i2, i3),
207 "T4(i,j,k,l)+T4(j,k,i,l)(0," + std::to_string(i1)
208 + "," + std::to_string(i2) + ","
209 + std::to_string(i3) + ")");
210 test_for_zero((t4_1(i, j, k, l) - t4(j, k, i, l))(0, i1, i2, i3),
211 "T4(i,j,k,l)-T4(j,k,i,l)(0," + std::to_string(i1)
212 + "," + std::to_string(i2) + ","
213 + std::to_string(i3) + ")");
214 }
215 }
216 {
218 t4(j, k, l, i) = t4_1(i, j, k, l);
219 for(int i1 = 0; i1 < 2; ++i1)
220 for(int i2 = 0; i2 < 3; ++i2)
221 for(int i3 = 0; i3 < 4; ++i3)
222 {
223 test_for_zero(t4_1(0, i1, i2, i3) - t4(i1, i2, i3, 0),
224 "T4(i,j,k,l)=T4(j,k,l,i)(0," + std::to_string(i1)
225 + "," + std::to_string(i2) + ","
226 + std::to_string(i3) + ")");
227 test_for_zero((t4_1(i, j, k, l) + t4(j, k, l, i))(0, i1, i2, i3)
228 - 2 * t4_1(0, i1, i2, i3),
229 "T4(i,j,k,l)+T4(j,k,l,i)(0," + std::to_string(i1)
230 + "," + std::to_string(i2) + ","
231 + std::to_string(i3) + ")");
232 test_for_zero((t4_1(i, j, k, l) - t4(j, k, l, i))(0, i1, i2, i3),
233 "T4(i,j,k,l)-T4(j,k,l,i)(0," + std::to_string(i1)
234 + "," + std::to_string(i2) + ","
235 + std::to_string(i3) + ")");
236 }
237 }
238 {
240 t4(j, l, i, k) = t4_1(i, j, k, l);
241 for(int i1 = 0; i1 < 2; ++i1)
242 for(int i2 = 0; i2 < 3; ++i2)
243 for(int i3 = 0; i3 < 4; ++i3)
244 {
245 test_for_zero(t4_1(0, i1, i2, i3) - t4(i1, i3, 0, i2),
246 "T4(i,j,k,l)=T4(j,l,i,k)(0," + std::to_string(i1)
247 + "," + std::to_string(i2) + ","
248 + std::to_string(i3) + ")");
249 test_for_zero((t4_1(i, j, k, l) + t4(j, l, i, k))(0, i1, i2, i3)
250 - 2 * t4_1(0, i1, i2, i3),
251 "T4(i,j,k,l)+T4(j,l,i,k)(0," + std::to_string(i1)
252 + "," + std::to_string(i2) + ","
253 + std::to_string(i3) + ")");
254 test_for_zero((t4_1(i, j, k, l) - t4(j, l, i, k))(0, i1, i2, i3),
255 "T4(i,j,k,l)-T4(j,l,i,k)(0," + std::to_string(i1)
256 + "," + std::to_string(i2) + ","
257 + std::to_string(i3) + ")");
258 }
259 }
260 {
262 t4(j, l, k, i) = t4_1(i, j, k, l);
263 for(int i1 = 0; i1 < 2; ++i1)
264 for(int i2 = 0; i2 < 3; ++i2)
265 for(int i3 = 0; i3 < 4; ++i3)
266 {
267 test_for_zero(t4_1(0, i1, i2, i3) - t4(i1, i3, i2, 0),
268 "T4(i,j,k,l)=T4(j,l,k,i)(0," + std::to_string(i1)
269 + "," + std::to_string(i2) + ","
270 + std::to_string(i3) + ")");
271 test_for_zero((t4_1(i, j, k, l) + t4(j, l, k, i))(0, i1, i2, i3)
272 - 2 * t4_1(0, i1, i2, i3),
273 "T4(i,j,k,l)+T4(j,l,k,i)(0," + std::to_string(i1)
274 + "," + std::to_string(i2) + ","
275 + std::to_string(i3) + ")");
276 test_for_zero((t4_1(i, j, k, l) - t4(j, l, k, i))(0, i1, i2, i3),
277 "T4(i,j,k,l)-T4(j,l,k,i)(0," + std::to_string(i1)
278 + "," + std::to_string(i2) + ","
279 + std::to_string(i3) + ")");
280 }
281 }
282
283 // (k,...)
284 {
286 t4(k, j, i, l) = t4_1(i, j, k, l);
287 for(int i1 = 0; i1 < 2; ++i1)
288 for(int i2 = 0; i2 < 3; ++i2)
289 for(int i3 = 0; i3 < 4; ++i3)
290 {
291 test_for_zero(t4_1(0, i1, i2, i3) - t4(i2, i1, 0, i3),
292 "T4(k,j,i,l)=T4(i,j,k,l)(0," + std::to_string(i1)
293 + "," + std::to_string(i2) + ","
294 + std::to_string(i3) + ")");
295 test_for_zero((t4_1(i, j, k, l) + t4(k, j, i, l))(0, i1, i2, i3)
296 - 2 * t4_1(0, i1, i2, i3),
297 "T4(k,j,i,l)+T4(i,j,k,l)(0," + std::to_string(i1)
298 + "," + std::to_string(i2) + ","
299 + std::to_string(i3) + ")");
300 test_for_zero((t4_1(i, j, k, l) - t4(k, j, i, l))(0, i1, i2, i3),
301 "T4(k,j,i,l)-T4(i,j,k,l)(0," + std::to_string(i1)
302 + "," + std::to_string(i2) + ","
303 + std::to_string(i3) + ")");
304 }
305 }
306 {
308 t4(k, j, l, i) = t4_1(i, j, k, l);
309 for(int i1 = 0; i1 < 2; ++i1)
310 for(int i2 = 0; i2 < 3; ++i2)
311 for(int i3 = 0; i3 < 4; ++i3)
312 {
313 test_for_zero(t4_1(0, i1, i2, i3) - t4(i2, i1, i3, 0),
314 "T4(i,j,k,l)=T4(k,j,l,i)(0," + std::to_string(i1)
315 + "," + std::to_string(i2) + ","
316 + std::to_string(i3) + ")");
317 test_for_zero((t4_1(i, j, k, l) + t4(k, j, l, i))(0, i1, i2, i3)
318 - 2 * t4_1(0, i1, i2, i3),
319 "T4(i,j,k,l)+T4(k,j,l,i)(0," + std::to_string(i1)
320 + "," + std::to_string(i2) + ","
321 + std::to_string(i3) + ")");
322 test_for_zero((t4_1(i, j, k, l) - t4(k, j, l, i))(0, i1, i2, i3),
323 "T4(i,j,k,l)-T4(k,j,l,i)(0," + std::to_string(i1)
324 + "," + std::to_string(i2) + ","
325 + std::to_string(i3) + ")");
326 }
327 }
328 {
330 t4(k, i, j, l) = t4_1(i, j, k, l);
331 for(int i1 = 0; i1 < 2; ++i1)
332 for(int i2 = 0; i2 < 3; ++i2)
333 for(int i3 = 0; i3 < 4; ++i3)
334 {
335 test_for_zero(t4_1(0, i1, i2, i3) - t4(i2, 0, i1, i3),
336 "T4(i,j,k,l)=T4(k,i,j,l)(0," + std::to_string(i1)
337 + "," + std::to_string(i2) + ","
338 + std::to_string(i3) + ")");
339 test_for_zero((t4_1(i, j, k, l) + t4(k, i, j, l))(0, i1, i2, i3)
340 - 2 * t4_1(0, i1, i2, i3),
341 "T4(i,j,k,l)+T4(k,i,j,l)(0," + std::to_string(i1)
342 + "," + std::to_string(i2) + ","
343 + std::to_string(i3) + ")");
344 test_for_zero((t4_1(i, j, k, l) - t4(k, i, j, l))(0, i1, i2, i3),
345 "T4(i,j,k,l)-T4(k,i,j,l)(0," + std::to_string(i1)
346 + "," + std::to_string(i2) + ","
347 + std::to_string(i3) + ")");
348 }
349 }
350 {
352 t4(k, i, l, j) = t4_1(i, j, k, l);
353 for(int i1 = 0; i1 < 2; ++i1)
354 for(int i2 = 0; i2 < 3; ++i2)
355 for(int i3 = 0; i3 < 4; ++i3)
356 {
357 test_for_zero(t4_1(0, i1, i2, i3) - t4(i2, 0, i3, i1),
358 "T4(i,j,k,l)=T4(k,i,l,j)(0," + std::to_string(i1)
359 + "," + std::to_string(i2) + ","
360 + std::to_string(i3) + ")");
361 test_for_zero((t4_1(i, j, k, l) + t4(k, i, l, j))(0, i1, i2, i3)
362 - 2 * t4_1(0, i1, i2, i3),
363 "T4(i,j,k,l)+T4(k,i,l,j)(0," + std::to_string(i1)
364 + "," + std::to_string(i2) + ","
365 + std::to_string(i3) + ")");
366 test_for_zero((t4_1(i, j, k, l) - t4(k, i, l, j))(0, i1, i2, i3),
367 "T4(i,j,k,l)-T4(k,i,l,j)(0," + std::to_string(i1)
368 + "," + std::to_string(i2) + ","
369 + std::to_string(i3) + ")");
370 }
371 }
372 {
374 t4(k, l, j, i) = t4_1(i, j, k, l);
375 for(int i1 = 0; i1 < 2; ++i1)
376 for(int i2 = 0; i2 < 3; ++i2)
377 for(int i3 = 0; i3 < 4; ++i3)
378 {
379 test_for_zero(t4_1(0, i1, i2, i3) - t4(i2, i3, i1, 0),
380 "T4(i,j,k,l)=T4(k,l,j,i)(0," + std::to_string(i1)
381 + "," + std::to_string(i2) + ","
382 + std::to_string(i3) + ")");
383 test_for_zero((t4_1(i, j, k, l) + t4(k, l, j, i))(0, i1, i2, i3)
384 - 2 * t4_1(0, i1, i2, i3),
385 "T4(i,j,k,l)+T4(k,l,j,i)(0," + std::to_string(i1)
386 + "," + std::to_string(i2) + ","
387 + std::to_string(i3) + ")");
388 test_for_zero((t4_1(i, j, k, l) - t4(k, l, j, i))(0, i1, i2, i3),
389 "T4(i,j,k,l)-T4(k,l,j,i)(0," + std::to_string(i1)
390 + "," + std::to_string(i2) + ","
391 + std::to_string(i3) + ")");
392 }
393 }
394 {
396 t4(k, l, i, j) = t4_1(i, j, k, l);
397 for(int i1 = 0; i1 < 2; ++i1)
398 for(int i2 = 0; i2 < 3; ++i2)
399 for(int i3 = 0; i3 < 4; ++i3)
400 {
401 test_for_zero(t4_1(0, i1, i2, i3) - t4(i2, i3, 0, i1),
402 "T4(i,j,k,l)=T4(k,l,i,j)(0," + std::to_string(i1)
403 + "," + std::to_string(i2) + ","
404 + std::to_string(i3) + ")");
405 test_for_zero((t4_1(i, j, k, l) + t4(k, l, i, j))(0, i1, i2, i3)
406 - 2 * t4_1(0, i1, i2, i3),
407 "T4(i,j,k,l)+T4(k,l,i,j)(0," + std::to_string(i1)
408 + "," + std::to_string(i2) + ","
409 + std::to_string(i3) + ")");
410 test_for_zero((t4_1(i, j, k, l) - t4(k, l, i, j))(0, i1, i2, i3),
411 "T4(i,j,k,l)-T4(k,l,i,j)(0," + std::to_string(i1)
412 + "," + std::to_string(i2) + ","
413 + std::to_string(i3) + ")");
414 }
415 }
416
417 // (l,...)
418 {
420 t4(l, j, k, i) = t4_1(i, j, k, l);
421 for(int i1 = 0; i1 < 2; ++i1)
422 for(int i2 = 0; i2 < 3; ++i2)
423 for(int i3 = 0; i3 < 4; ++i3)
424 {
425 test_for_zero(t4_1(0, i1, i2, i3) - t4(i3, i1, i2, 0),
426 "T4(l,j,k,i)=T4(i,j,k,l)(0," + std::to_string(i1)
427 + "," + std::to_string(i2) + ","
428 + std::to_string(i3) + ")");
429 test_for_zero((t4_1(i, j, k, l) + t4(l, j, k, i))(0, i1, i2, i3)
430 - 2 * t4_1(0, i1, i2, i3),
431 "T4(l,j,k,i)+T4(i,j,k,l)(0," + std::to_string(i1)
432 + "," + std::to_string(i2) + ","
433 + std::to_string(i3) + ")");
434 test_for_zero((t4_1(i, j, k, l) - t4(l, j, k, i))(0, i1, i2, i3),
435 "T4(l,j,k,i)-T4(i,j,k,l)(0," + std::to_string(i1)
436 + "," + std::to_string(i2) + ","
437 + std::to_string(i3) + ")");
438 }
439 }
440 {
442 t4(l, j, i, k) = t4_1(i, j, k, l);
443 for(int i1 = 0; i1 < 2; ++i1)
444 for(int i2 = 0; i2 < 3; ++i2)
445 for(int i3 = 0; i3 < 4; ++i3)
446 {
447 test_for_zero(t4_1(0, i1, i2, i3) - t4(i3, i1, 0, i2),
448 "T4(i,j,k,l)=T4(l,j,i,k)(0," + std::to_string(i1)
449 + "," + std::to_string(i2) + ","
450 + std::to_string(i3) + ")");
451 test_for_zero((t4_1(i, j, k, l) + t4(l, j, i, k))(0, i1, i2, i3)
452 - 2 * t4_1(0, i1, i2, i3),
453 "T4(i,j,k,l)+T4(l,j,i,k)(0," + std::to_string(i1)
454 + "," + std::to_string(i2) + ","
455 + std::to_string(i3) + ")");
456 test_for_zero((t4_1(i, j, k, l) - t4(l, j, i, k))(0, i1, i2, i3),
457 "T4(i,j,k,l)-T4(l,j,i,k)(0," + std::to_string(i1)
458 + "," + std::to_string(i2) + ","
459 + std::to_string(i3) + ")");
460 }
461 }
462 {
464 t4(l, k, j, i) = t4_1(i, j, k, l);
465 for(int i1 = 0; i1 < 2; ++i1)
466 for(int i2 = 0; i2 < 3; ++i2)
467 for(int i3 = 0; i3 < 4; ++i3)
468 {
469 test_for_zero(t4_1(0, i1, i2, i3) - t4(i3, i2, i1, 0),
470 "T4(i,j,k,l)=T4(l,k,j,i)(0," + std::to_string(i1)
471 + "," + std::to_string(i2) + ","
472 + std::to_string(i3) + ")");
473 test_for_zero((t4_1(i, j, k, l) + t4(l, k, j, i))(0, i1, i2, i3)
474 - 2 * t4_1(0, i1, i2, i3),
475 "T4(i,j,k,l)+T4(l,k,j,i)(0," + std::to_string(i1)
476 + "," + std::to_string(i2) + ","
477 + std::to_string(i3) + ")");
478 test_for_zero((t4_1(i, j, k, l) - t4(l, k, j, i))(0, i1, i2, i3),
479 "T4(i,j,k,l)-T4(l,k,j,i)(0," + std::to_string(i1)
480 + "," + std::to_string(i2) + ","
481 + std::to_string(i3) + ")");
482 }
483 }
484 {
486 t4(l, k, i, j) = t4_1(i, j, k, l);
487 for(int i1 = 0; i1 < 2; ++i1)
488 for(int i2 = 0; i2 < 3; ++i2)
489 for(int i3 = 0; i3 < 4; ++i3)
490 {
491 test_for_zero(t4_1(0, i1, i2, i3) - t4(i3, i2, 0, i1),
492 "T4(i,j,k,l)=T4(l,k,i,j)(0," + std::to_string(i1)
493 + "," + std::to_string(i2) + ","
494 + std::to_string(i3) + ")");
495 test_for_zero((t4_1(i, j, k, l) + t4(l, k, i, j))(0, i1, i2, i3)
496 - 2 * t4_1(0, i1, i2, i3),
497 "T4(i,j,k,l)+T4(l,k,i,j)(0," + std::to_string(i1)
498 + "," + std::to_string(i2) + ","
499 + std::to_string(i3) + ")");
500 test_for_zero((t4_1(i, j, k, l) - t4(l, k, i, j))(0, i1, i2, i3),
501 "T4(i,j,k,l)-T4(l,k,i,j)(0," + std::to_string(i1)
502 + "," + std::to_string(i2) + ","
503 + std::to_string(i3) + ")");
504 }
505 }
506 {
508 t4(l, i, j, k) = t4_1(i, j, k, l);
509 for(int i1 = 0; i1 < 2; ++i1)
510 for(int i2 = 0; i2 < 3; ++i2)
511 for(int i3 = 0; i3 < 4; ++i3)
512 {
513 test_for_zero(t4_1(0, i1, i2, i3) - t4(i3, 0, i1, i2),
514 "T4(i,j,k,l)=T4(l,i,j,k)(0," + std::to_string(i1)
515 + "," + std::to_string(i2) + ","
516 + std::to_string(i3) + ")");
517 test_for_zero((t4_1(i, j, k, l) + t4(l, i, j, k))(0, i1, i2, i3)
518 - 2 * t4_1(0, i1, i2, i3),
519 "T4(i,j,k,l)+T4(l,i,j,k)(0," + std::to_string(i1)
520 + "," + std::to_string(i2) + ","
521 + std::to_string(i3) + ")");
522 test_for_zero((t4_1(i, j, k, l) - t4(l, i, j, k))(0, i1, i2, i3),
523 "T4(i,j,k,l)-T4(l,i,j,k)(0," + std::to_string(i1)
524 + "," + std::to_string(i2) + ","
525 + std::to_string(i3) + ")");
526 }
527 }
528 {
530 t4(l, i, k, j) = t4_1(i, j, k, l);
531 for(int i1 = 0; i1 < 2; ++i1)
532 for(int i2 = 0; i2 < 3; ++i2)
533 for(int i3 = 0; i3 < 4; ++i3)
534 {
535 test_for_zero(t4_1(0, i1, i2, i3) - t4(i3, 0, i2, i1),
536 "T4(i,j,k,l)=T4(l,i,k,j)(0," + std::to_string(i1)
537 + "," + std::to_string(i2) + ","
538 + std::to_string(i3) + ")");
539 test_for_zero((t4_1(i, j, k, l) + t4(l, i, k, j))(0, i1, i2, i3)
540 - 2 * t4_1(0, i1, i2, i3),
541 "T4(i,j,k,l)+T4(l,i,k,j)(0," + std::to_string(i1)
542 + "," + std::to_string(i2) + ","
543 + std::to_string(i3) + ")");
544 test_for_zero((t4_1(i, j, k, l) - t4(l, i, k, j))(0, i1, i2, i3),
545 "T4(i,j,k,l)-T4(l,i,k,j)(0," + std::to_string(i1)
546 + "," + std::to_string(i2) + ","
547 + std::to_string(i3) + ")");
548 }
549 }
550}
Tensors class implemented by Walter Landry.
FTensor::Index< 'i', SPACE_DIM > i
FTensor::Index< 'l', 3 > l
FTensor::Index< 'j', 3 > j
FTensor::Index< 'k', 3 > k
Tensors class implemented by Walter Landry.
Definition FTensor.hpp:51
void test_T4_01(const Tensor4< double, 1, 2, 3, 4 > &t4_1)
Definition test_T4_01.cpp:8
void test_for_zero(const T &t, const std::string &s)