|
| v0.14.0
|
Go to the documentation of this file.
10 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim2,
char i,
11 char j,
char k,
int Current_Dim0,
int Current_Dim1,
19 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
20 * b(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
26 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim2,
char i,
27 char j,
char k,
int Current_Dim0,
int Current_Dim2>
34 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
35 * b(Current_Dim0 - 1, 0, Current_Dim2 - 1)
40 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim2,
char i,
41 char j,
char k,
int Current_Dim0>
48 return a(Current_Dim0 - 1, 0, 0) * b(Current_Dim0 - 1, 0, 0)
53 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim2,
char i,
60 return a(0, 0, 0) * b(0, 0, 0);
63 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim2,
char i,
75 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
char i,
76 char j,
char k,
int Current_Dim0,
int Current_Dim1,
84 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
85 * b(Current_Dim2 - 1, Current_Dim0 - 1, Current_Dim1 - 1)
91 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
char i,
92 char j,
char k,
int Current_Dim0,
int Current_Dim2>
99 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
100 * b(Current_Dim2 - 1, Current_Dim0 - 1, 0)
105 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
char i,
106 char j,
char k,
int Current_Dim0>
113 return a(Current_Dim0 - 1, 0, 0) * b(0, Current_Dim0 - 1, 0)
118 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
char i,
125 return a(0, 0, 0) * b(0, 0, 0);
128 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
char i,
140 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim,
char i,
141 char j,
char k,
int Current_Dim0,
int Current_Dim1,
149 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
150 * b(Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim0 - 1)
156 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim,
char i,
157 char j,
char k,
int Current_Dim0,
int Current_Dim2>
164 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
165 * b(0, Current_Dim2 - 1, Current_Dim0 - 1)
170 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim,
char i,
171 char j,
char k,
int Current_Dim0>
178 return a(Current_Dim0 - 1, 0, 0) * b(0, 0, Current_Dim0 - 1)
183 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim,
char i,
190 return a(0, 0, 0) * b(0, 0, 0);
193 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim,
char i,
205 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim2,
char i,
206 char j,
char k,
int Current_Dim0,
int Current_Dim1,
214 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
215 * b(Current_Dim1 - 1, Current_Dim0 - 1, Current_Dim2 - 1)
221 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim2,
char i,
222 char j,
char k,
int Current_Dim0,
int Current_Dim2>
229 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
230 * b(0, Current_Dim0 - 1, Current_Dim2 - 1)
235 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim2,
char i,
236 char j,
char k,
int Current_Dim0>
243 return a(Current_Dim0 - 1, 0, 0) * b(0, Current_Dim0 - 1, 0)
248 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim2,
char i,
255 return a(0, 0, 0) * b(0, 0, 0);
258 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim2,
char i,
270 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim,
char i,
271 char j,
char k,
int Current_Dim0,
int Current_Dim1,
279 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
280 * b(Current_Dim2 - 1, Current_Dim1 - 1, Current_Dim0 - 1)
286 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim,
char i,
287 char j,
char k,
int Current_Dim0,
int Current_Dim2>
294 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
295 * b(Current_Dim2 - 1, 0, Current_Dim0 - 1)
300 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim,
char i,
301 char j,
char k,
int Current_Dim0>
308 return a(Current_Dim0 - 1, 0, 0) * b(0, 0, Current_Dim0 - 1)
313 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim,
char i,
320 return a(0, 0, 0) * b(0, 0, 0);
323 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim,
char i,
335 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
char i,
336 char j,
char k,
int Current_Dim0,
int Current_Dim1,
344 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
345 * b(Current_Dim0 - 1, Current_Dim2 - 1, Current_Dim1 - 1)
351 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
char i,
352 char j,
char k,
int Current_Dim0,
int Current_Dim2>
359 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
360 * b(Current_Dim0 - 1, Current_Dim2 - 1, 0)
365 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
char i,
366 char j,
char k,
int Current_Dim0>
373 return a(Current_Dim0 - 1, 0, 0) * b(Current_Dim0 - 1, 0, 0)
378 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
char i,
385 return a(0, 0, 0) * b(0, 0, 0);
388 template <
class A,
class B,
class T,
class U,
int Dim,
int Dim1,
char i,
400 template <
class A,
class B,
class T,
class U,
int Dim2,
int Dim1,
int Dim01,
401 char i,
char j,
char k,
char l>
407 template <
int Current_Dim0,
int Current_Dim1>
412 return iterA(Current_Dim0 - 1, N1, Current_Dim1 - 1)
413 *
iterB(Current_Dim1 - 1, N2, Current_Dim0 - 1)
417 template <
int Current_Dim1>
422 return iterA(0, N1, Current_Dim1 - 1) *
iterB(Current_Dim1 - 1, N2, 0)
443 template <
class A,
class B,
class T,
class U,
int Dim2,
int Dim1,
int Dim01,
444 char i,
char j,
char k,
char l>
445 Tensor2_Expr<Tensor3_times_Dg_02_20<A, B, T, U, Dim2, Dim1, Dim01, i, j, k, l>,
451 =
Tensor3_times_Dg_02_20<A, B, T, U, Dim2, Dim1, Dim01, i, j, k, l>;
453 l>(TensorExpr(
a, b));
460 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim2,
461 int Dim,
char i,
char j,
char k,
char l,
char m>
467 template <
int Current_Dim>
469 eval(
const int N1,
const int N2,
const int N3,
const int N4,
472 return iterA(N1, N2, Current_Dim - 1) *
iterB(N3, Current_Dim - 1, N4)
483 operator()(
const int N1,
const int N2,
const int N3,
const int N4)
const
493 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim2,
494 int Dim,
char i,
char j,
char k,
char l,
char m>
496 Tensor3_times_Dg<A, B, T, U, Dim0, Dim1, Dim, Dim2, i, j, k, l, m>,
502 =
Tensor3_times_Dg<A, B, T, U, Dim0, Dim1, Dim2, Dim, i, j, k, l, m>;
504 Dim2,
i,
j,
l,
m>(TensorExpr(
a, b));
511 template <
class A,
class B,
class T,
class U,
int Dim03,
int Dim14,
int Dim2,
512 int Dim5,
char i,
char j,
char k,
char l>
517 template <
int CurrentDim0,
int CurrentDim1>
521 return iterA(CurrentDim0 - 1, CurrentDim1 - 1, N1) *
522 iterB(CurrentDim0 - 1, CurrentDim1 - 1, N2) +
525 template <
int CurrentDim0>
529 return iterA(CurrentDim0 - 1, 0, N1) *
iterB(CurrentDim0 - 1, 0, N2) +
543 static_assert(Dim03 == Dim14,
"Dimension 03 should be as Dim14");
550 template <
class A,
class B,
class T,
class U,
int Dim03,
int Dim14,
int Dim2,
551 int Dim5,
char i,
char j,
char k,
char l>
553 Tensor3_times_Dg_12_12<A, B, T, U, Dim03, Dim14, Dim2, Dim5, i, j, k, l>,
560 l>(TensorExpr(
a, b));
565 template <
class A,
class B,
class T,
class U,
int Dim03,
int Dim14,
int Dim2,
566 int Dim5,
char i,
char j,
char k,
char l>
568 Tensor3_times_Dg_12_12<A, B, T, U, Dim03, Dim14, Dim2, Dim5, i, j, k, l>,
575 l>(TensorExpr(
a, b));
Dg_Expr< B, U, Dim, Dim2, l, k, m > iterB
Tensor3_Expr< A, T, Dim03, Dim14, Dim2, i, j, k > iterA
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)
promote< T, U >::V eval(const int N1, const int N2, const Number< 1 > &, const Number< 1 > &) const
Tensor3_times_Dg_02_20(const Tensor3_Expr< A, T, Dim2, Dim1, Dim01, j, i, k > &a, const Dg_Expr< B, U, Dim01, Dim2, k, l, j > &b)
Tensor3_times_Dg(const Tensor3_Expr< A, T, Dim0, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, l, k, m > &b)
Tensor3_Expr< A, T, Dim0, Dim1, Dim, i, j, k > iterA
promote< T, U >::V T3_times_T3dg_021(const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, i, k, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
promote< T, U >::V T3_times_T3dg_102(const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, j, i, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
promote< T, U >::V eval(const int N1, const int N2, const int N3, const int N4, const Number< Current_Dim > &) const
promote< T, U >::V T3_times_T3dg_210(const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, k, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
promote< T, U >::V operator()(const int &N1, const int &N2) const
Tensor3_Expr< A, T, Dim2, Dim1, Dim01, j, i, k > iterA
promote< T, U >::V eval(const int N1, const int N2, const Number< CurrentDim0 > &, const Number< CurrentDim1 > &) const
promote< T, U >::V eval(const int N1, const int N2, const Number< 1 > &, const Number< 1 > &) const
promote< T, U >::V T3_times_T3dg_012(const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, i, j, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
promote< T, U >::V operator()(const int N1, const int N2) const
Tensor3_times_Dg_12_12(const Tensor3_Expr< A, T, Dim03, Dim14, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim03, Dim5, i, j, l > &b)
FTensor::Index< 'i', SPACE_DIM > i
promote< T, U >::V T3_times_T3dg_120(const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, j, k, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
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< Current_Dim0 > &, const Number< Current_Dim1 > &) const
promote< T, U >::V eval(const int N1, const int N2, const Number< CurrentDim0 > &, const Number< 1 > &) const
promote< T, U >::V operator()(const int N1, const int N2, const int N3, const int N4) const
FTensor::Index< 'j', 3 > j
Dg_Expr< B, U, Dim03, Dim5, i, j, l > iterB
FTensor::Index< 'm', 3 > m
Dg_Expr< B, U, Dim01, Dim2, k, l, j > iterB
FTensor::Index< 'k', 3 > k
promote< T, U >::V T3_times_T3dg_201(const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, k, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
FTensor::Index< 'l', 3 > l
promote< T, U >::V eval(const int N1, const int N2, const int N3, const int N4, const Number< 1 > &) const