v0.14.0
Loading...
Searching...
No Matches
Functions
test_T4_06.cpp File Reference
#include "../../../src/FTensor.hpp"
#include "../test_for_zero.hpp"
#include <iostream>

Go to the source code of this file.

Functions

void test_T4_06 (const Tensor4< double, 1, 2, 3, 4 > &t4, const Tensor3< double, 2, 3, 4 > &t3_2)
 

Function Documentation

◆ test_T4_06()

void test_T4_06 ( const Tensor4< double, 1, 2, 3, 4 > & t4,
const Tensor3< double, 2, 3, 4 > & t3_2 )

Definition at line 7 of file test_T4_06.cpp.

9{
10 Index<'i', 1> i;
11 Index<'j', 2> j;
12 Index<'k', 3> k;
13 Index<'l', 4> l;
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::Index< 'i', SPACE_DIM > i
FTensor::Index< 'l', 3 > l
FTensor::Index< 'j', 3 > j
FTensor::Index< 'k', 3 > k
void test_for_zero(const T &t, const std::string &s)