|
| v0.14.0
|
Go to the documentation of this file.
11 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim,
12 char i,
char j,
char k,
char l>
18 template <
int Current_Dim0,
int Current_Dim1>
23 return iterA(N1, N2, Current_Dim0 - 1, Current_Dim1 - 1)
24 *
iterB(Current_Dim0 - 1, Current_Dim1 - 1)
28 template <
int Current_Dim1>
33 return iterA(N1, N2, 0, Current_Dim1 - 1) *
iterB(0, Current_Dim1 - 1)
49 const Tensor4_Expr<A, T, Dim0, Dim1, Dim, Dim, i, j, k, l> &
a,
55 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim,
56 char i,
char j,
char k,
char l>
58 Tensor4_times_Tensor2_symmetric_23<A, B, T, U, Dim0, Dim1, Dim, i, j, k, l>,
60 operator*(
const Tensor4_Expr<A, T, Dim0, Dim1, Dim, Dim, i, j, k, l> &
a,
72 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim,
73 char i,
char j,
char k,
char l>
75 Tensor4_times_Tensor2_symmetric_23<A, B, T, U, Dim0, Dim1, Dim, i, j, k, l>,
89 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim,
90 char i,
char j,
char k,
char l>
96 template <
int Current_Dim0,
int Current_Dim1>
101 return iterA(N1, N2, Current_Dim0 - 1, Current_Dim1 - 1)
102 *
iterB(Current_Dim0 - 1, Current_Dim1 - 1)
106 template <
int Current_Dim1>
111 return iterA(N1, N2, 0, Current_Dim1 - 1) *
iterB(0, Current_Dim1 - 1)
127 const Tensor4_Expr<A, T, Dim0, Dim1, Dim, Dim, i, j, k, l> &
a,
133 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim,
134 char i,
char j,
char k,
char l>
136 Tensor4_times_Tensor2_symmetric_32<A, B, T, U, Dim0, Dim1, Dim, i, j, k, l>,
138 operator*(
const Tensor4_Expr<A, T, Dim0, Dim1, Dim, Dim, i, j, k, l> &
a,
145 j>(TensorExpr(
a, b));
150 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim,
151 char i,
char j,
char k,
char l>
153 Tensor4_times_Tensor2_symmetric_32<A, B, T, U, Dim0, Dim1, Dim, i, j, k, l>,
162 j>(TensorExpr(
a, b));
167 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
int Dim2,
168 char i,
char j,
char k,
char l>
174 template <
int Current_Dim0,
int Current_Dim1>
179 return iterA(Current_Dim0 - 1, N1, N2, Current_Dim1 - 1)
180 *
iterB(Current_Dim0 - 1, Current_Dim1 - 1)
184 template <
int Current_Dim1>
189 return iterA(0, N1, N2, Current_Dim1 - 1) *
iterB(0, Current_Dim1 - 1)
205 const Tensor4_Expr<A, T, Dim, Dim1, Dim2, Dim, i, j, k, l> &
a,
211 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
int Dim2,
212 char i,
char j,
char k,
char l>
214 Tensor4_times_Tensor2_symmetric_03<A, B, T, U, Dim1, Dim2, Dim, i, j, k, l>,
216 operator*(
const Tensor4_Expr<A, T, Dim, Dim1, Dim2, Dim, i, j, k, l> &
a,
223 k>(TensorExpr(
a, b));
228 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
int Dim2,
229 char i,
char j,
char k,
char l>
231 Tensor4_times_Tensor2_symmetric_03<A, B, T, U, Dim1, Dim2, Dim, i, j, k, l>,
240 k>(TensorExpr(
a, b));
245 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
int Dim2,
246 char i,
char j,
char k,
char l>
252 template <
int Current_Dim0,
int Current_Dim1>
257 return iterA(Current_Dim0 - 1, N1, N2, Current_Dim1 - 1)
258 *
iterB(Current_Dim1 - 1, Current_Dim0 - 1)
262 template <
int Current_Dim1>
267 return iterA(0, N1, N2, Current_Dim1 - 1) *
iterB(Current_Dim1 - 1, 0)
283 const Tensor4_Expr<A, T, Dim, Dim1, Dim2, Dim, i, j, k, l> &
a,
289 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
int Dim2,
290 char i,
char j,
char k,
char l>
292 Tensor4_times_Tensor2_symmetric_30<A, B, T, U, Dim1, Dim2, Dim, i, j, k, l>,
294 operator*(
const Tensor4_Expr<A, T, Dim, Dim1, Dim2, Dim, i, j, k, l> &
a,
301 k>(TensorExpr(
a, b));
306 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
int Dim2,
307 char i,
char j,
char k,
char l>
309 Tensor4_times_Tensor2_symmetric_30<A, B, T, U, Dim1, Dim2, Dim, i, j, k, l>,
318 k>(TensorExpr(
a, b));
323 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
int Dim2,
324 char i,
char j,
char k,
char l>
330 template <
int Current_Dim0,
int Current_Dim1>
335 return iterA(Current_Dim0 - 1, N1, Current_Dim1 - 1, N2)
336 *
iterB(Current_Dim0 - 1, Current_Dim1 - 1)
340 template <
int Current_Dim1>
345 return iterA(0, N1, Current_Dim1 - 1, N2) *
iterB(0, Current_Dim1 - 1)
361 const Tensor4_Expr<A, T, Dim, Dim1, Dim2, Dim, i, j, k, l> &
a,
367 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
int Dim2,
368 char i,
char j,
char k,
char l>
370 Tensor4_times_Tensor2_symmetric_02<A, B, T, U, Dim1, Dim2, Dim, i, j, k, l>,
372 operator*(
const Tensor4_Expr<A, T, Dim, Dim1, Dim2, Dim, i, j, k, l> &
a,
379 l>(TensorExpr(
a, b));
384 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
int Dim2,
385 char i,
char j,
char k,
char l>
387 Tensor4_times_Tensor2_symmetric_02<A, B, T, U, Dim1, Dim2, Dim, i, j, k, l>,
396 l>(TensorExpr(
a, b));
401 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim2,
int Dim3,
402 char i,
char j,
char k,
char l>
408 template <
int Current_Dim0,
int Current_Dim1>
413 return iterA(Current_Dim0 - 1, Current_Dim1 - 1, N3, N4) *
414 iterB(Current_Dim0 - 1, Current_Dim1 - 1) +
417 template <
int Current_Dim1>
422 return iterA(0, Current_Dim1 - 1, N3, N4) *
iterB(0, Current_Dim1 - 1)
438 const Tensor4_Expr<A, T, Dim, Dim, Dim2, Dim3, i, j, k, l> &
a,
444 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim2,
int Dim3,
445 char i,
char j,
char k,
char l>
446 Tensor2_Expr<Tensor4_times_Tensor2_symmetric_01<
A, B, T,
U, Dim, Dim2,
449 operator*(
const Tensor4_Expr<A, T, Dim, Dim, Dim2, Dim3, i, j, k, l> &
a,
455 l>(TensorExpr(
a, b));
460 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim2,
int Dim3,
461 char i,
char j,
char k,
char l>
463 Tensor4_times_Tensor2_symmetric_01<A, B, T, U, Dim, Dim2, Dim3, i, j, k, l>,
472 l>(TensorExpr(
a, b));
promote< T, U >::V operator*(const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b)
Tensor2_symmetric_Expr< B, U, Dim, k, l > iterB
Tensor4_times_Tensor2_symmetric_32(const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, l, k > &b)
promote< T, U >::V eval(const int N3, const int N4, const Number< 1 > &, const Number< Current_Dim1 > &) const
promote< T, U >::V eval(const int N3, const int N4, const Number< 1 > &, const Number< 1 > &) const
promote< T, U >::V eval(const int N1, const int N2, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &) const
Tensor2_symmetric_Expr< B, U, Dim, i, l > iterB
Tensor2_symmetric_Expr< B, U, Dim, i, j > iterB
Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > iterA
Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > iterA
Tensor4_times_Tensor2_symmetric_01(const Tensor4_Expr< A, T, Dim, Dim, Dim2, Dim3, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &b)
Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > iterA
promote< T, U >::V eval(const int N1, const int N2, const Number< 1 > &, const Number< Current_Dim1 > &) const
Tensor2_symmetric_Expr< B, U, Dim, l, k > iterB
promote< T, U >::V eval(const int N1, const int N2, const Number< 1 > &, const Number< 1 > &) const
promote< T, U >::V eval(const int N1, const int N2, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &) const
promote< T, U >::V operator()(const int N1, const int N2) const
promote< T, U >::V eval(const int N3, const int N4, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &) const
Tensor4_Expr< A, T, Dim, Dim, Dim2, Dim3, i, j, k, l > iterA
promote< T, U >::V eval(const int N1, const int N2, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &) const
promote< T, U >::V eval(const int N1, const int N2, const Number< 1 > &, const Number< 1 > &) const
promote< T, U >::V eval(const int N1, const int N2, const Number< 1 > &, const Number< Current_Dim1 > &) const
promote< T, U >::V eval(const int N1, const int N2, const Number< 1 > &, const Number< Current_Dim1 > &) const
promote< T, U >::V eval(const int N1, const int N2, const Number< 1 > &, const Number< 1 > &) const
FTensor::Index< 'i', SPACE_DIM > i
Tensor4_times_Tensor2_symmetric_30(const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, l, i > &b)
promote< T, U >::V eval(const int N1, const int N2, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &) const
Tensor2_symmetric_Expr< B, U, Dim, l, i > iterB
Tensor4_times_Tensor2_symmetric_02(const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, k > &b)
promote< T, U >::V operator()(const int N1, const int N2) const
Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > iterA
promote< T, U >::V operator()(const int N1, const int N2) const
promote< T, U >::V eval(const int N1, const int N2, const Number< 1 > &, const Number< Current_Dim1 > &) const
promote< T, U >::V eval(const int N1, const int N2, const Number< 1 > &, const Number< 1 > &) const
FTensor::Index< 'j', 3 > j
Tensor4_times_Tensor2_symmetric_03(const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, l > &b)
promote< T, U >::V operator()(const int N3, const int N4) const
promote< T, U >::V operator()(const int N1, const int N2) const
promote< T, U >::V eval(const int N1, const int N2, const Number< 1 > &, const Number< Current_Dim1 > &) const
Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > iterA
FTensor::Index< 'k', 3 > k
promote< T, U >::V eval(const int N1, const int N2, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &) const
promote< T, U >::V operator()(const int N1, const int N2) const
FTensor::Index< 'l', 3 > l
Tensor2_symmetric_Expr< B, U, Dim, i, k > iterB
promote< T, U >::V eval(const int N1, const int N2, const Number< 1 > &, const Number< 1 > &) const
Tensor4_times_Tensor2_symmetric_23(const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, k, l > &b)