|
| v0.14.0
|
Go to the documentation of this file.
10 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim2,
11 char i,
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 Dim0,
int Dim1,
int Dim2,
27 char i,
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 Dim0,
int Dim1,
int Dim2,
41 char i,
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 Dim0,
int Dim1,
int Dim2,
54 char i,
char j,
char k>
60 return a(0, 0, 0) * b(0, 0, 0);
63 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim2,
64 char i,
char j,
char k>
75 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim2,
76 char i,
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 Dim0,
int Dim1,
int Dim2,
92 char i,
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 Dim0,
int Dim1,
int Dim2,
106 char i,
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 Dim0,
int Dim1,
int Dim2,
119 char i,
char j,
char k>
125 return a(0, 0, 0) * b(0, 0, 0);
128 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim2,
129 char i,
char j,
char k>
140 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim2,
141 char i,
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 Dim1,
int Dim2,
157 char i,
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 Dim1,
int Dim2,
171 char i,
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 Dim1,
int Dim2,
184 char i,
char j,
char k>
190 return a(0, 0, 0) * b(0, 0, 0);
193 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim2,
194 char i,
char j,
char k>
205 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim2,
206 char i,
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 Dim0,
int Dim1,
int Dim2,
222 char i,
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 Dim0,
int Dim1,
int Dim2,
236 char i,
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 Dim0,
int Dim1,
int Dim2,
249 char i,
char j,
char k>
255 return a(0, 0, 0) * b(0, 0, 0);
258 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim2,
259 char i,
char j,
char k>
270 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim2,
271 char i,
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 Dim1,
int Dim2,
287 char i,
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 Dim1,
int Dim2,
301 char i,
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 Dim1,
int Dim2,
314 char i,
char j,
char k>
320 return a(0, 0, 0) * b(0, 0, 0);
323 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim2,
324 char i,
char j,
char k>
335 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim2,
336 char i,
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 Dim0,
int Dim1,
int Dim2,
352 char i,
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 Dim0,
int Dim1,
int Dim2,
366 char i,
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 Dim0,
int Dim1,
int Dim2,
379 char i,
char j,
char k>
385 return a(0, 0, 0) * b(0, 0, 0);
388 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim2,
389 char i,
char j,
char k>
400 template <
class A,
class B,
class T,
class U,
int Dim04,
int Dim13,
int Dim2,
401 int Dim5,
char i,
char j,
char k,
char l>
407 template <
int CurrentDim0,
int CurrentDim1>
411 return iterA(CurrentDim0 - 1, CurrentDim1 - 1, N1) *
412 iterB(CurrentDim1 - 1, CurrentDim0 - 1, N2) +
415 template <
int CurrentDim0>
419 return iterA(CurrentDim0 - 1, 0, N1) *
iterB(0, CurrentDim0 - 1, N2) +
439 template <
class A,
class B,
class T,
class U,
int Dim04,
int Dim13,
int Dim2,
440 int Dim5,
char i,
char j,
char k,
char l>
441 Tensor2_Expr<Tensor3_times_Tensor3_12_21<
A, B, T,
U, Dim04, Dim13, Dim2, Dim5,
447 Dim2, Dim5,
i,
j,
k,
l>;
449 l>(TensorExpr(
a, b));
454 template <
class A,
class B,
class T,
class U,
int Dim15,
int Dim24,
int Dim0,
455 int Dim3,
char i,
char j,
char k,
char l>
460 template <
int CurrentDim0,
int CurrentDim1>
464 return iterA(N1, CurrentDim0 - 1, CurrentDim1 - 1) *
465 iterB(N2, CurrentDim1 - 1, CurrentDim0 - 1) +
468 template <
int CurrentDim0>
472 return iterA(N1, CurrentDim0 - 1, 0) *
iterB(N2, 0, CurrentDim0 - 1) +
492 template <
class A,
class B,
class T,
class U,
int Dim15,
int Dim24,
int Dim0,
493 int Dim3,
char i,
char j,
char k,
char l>
494 Tensor2_Expr<Tensor3_times_Tensor3_23_32<
A, B, T,
U, Dim15, Dim24, Dim0, Dim3,
500 Dim0, Dim3,
i,
j,
k,
l>;
502 j>(TensorExpr(
a, b));
507 template <
class A,
class B,
class T,
class U,
int Dim14,
int Dim25,
int Dim0,
508 int Dim3,
char i,
char j,
char k,
char l>
513 template <
int CurrentDim0,
int CurrentDim1>
517 return iterA(N1, CurrentDim0 - 1, CurrentDim1 - 1) *
518 iterB(N2, CurrentDim0 - 1, CurrentDim1 - 1) +
521 template <
int CurrentDim0>
525 return iterA(N1, CurrentDim0 - 1, 0) *
iterB(N2, CurrentDim0 - 1, 0) +
545 template <
class A,
class B,
class T,
class U,
int Dim14,
int Dim25,
int Dim0,
546 int Dim3,
char i,
char j,
char k,
char l>
547 Tensor2_Expr<Tensor3_times_Tensor3_23_23<
A, B, T,
U, Dim14, Dim25, Dim0, Dim3,
553 Dim0, Dim3,
i,
j,
k,
l>;
555 l>(TensorExpr(
a, b));
560 template <
class A,
class B,
class T,
class U,
int Dim03,
int Dim14,
int Dim2,
561 int Dim5,
char i,
char j,
char k,
char l>
566 template <
int CurrentDim0,
int CurrentDim1>
570 return iterA(CurrentDim0 - 1, CurrentDim1 - 1, N1) *
571 iterB(CurrentDim0 - 1, CurrentDim1 - 1, N2) +
574 template <
int CurrentDim0>
578 return iterA(CurrentDim0 - 1, 0, N1) *
iterB(CurrentDim0 - 1, 0, N2) +
598 template <
class A,
class B,
class T,
class U,
int Dim03,
int Dim14,
int Dim2,
599 int Dim5,
char i,
char j,
char k,
char l>
600 Tensor2_Expr<Tensor3_times_Tensor3_12_12<
A, B, T,
U, Dim03, Dim14, Dim2, Dim5,
606 Dim2, Dim5,
i,
j,
k,
l>;
608 l>(TensorExpr(
a, b));
613 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim23,
614 int Dim4,
int Dim5,
char i,
char j,
char k,
char l,
char m>
620 template <
int CurrentDim>
622 eval(
const int N1,
const int N2,
const int N3,
const int N4,
625 return iterA(N1, N2, CurrentDim - 1) *
iterB(CurrentDim - 1, N3, N4)
641 const int &N3,
const int &N4)
const
647 template <
class A,
class B,
class T,
class U,
int Dim0,
int Dim1,
int Dim23,
648 int Dim4,
int Dim5,
char i,
char j,
char k,
char l,
char m>
649 Tensor4_Expr<Tensor3_times_Tensor3_21<
A, B, T,
U, Dim0, Dim1, Dim23, Dim4,
650 Dim5,
i,
j,
k,
l,
m>,
656 Dim4, Dim5,
i,
j,
k,
l,
m>;
658 Dim4, Dim5,
i,
j,
l,
m>(TensorExpr(
a, b));
Tensor3_Expr< A, T, Dim04, Dim13, Dim2, i, j, k > iterA
promote< T, U >::V T3_times_T3_120(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
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 operator()(const int &N1, const int &N2) const
promote< T, U >::V eval(const int N1, const int N2, const Number< CurrentDim0 > &, const Number< CurrentDim1 > &) const
Tensor3_times_Tensor3_12_21(const Tensor3_Expr< A, T, Dim04, Dim13, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim13, Dim04, Dim5, j, i, l > &b)
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 int N3, const int N4, const Number< CurrentDim > &) const
Tensor3_Expr< A, T, Dim0, Dim15, Dim24, i, k, l > iterA
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
Tensor3_times_Tensor3_23_32(const Tensor3_Expr< A, T, Dim0, Dim15, Dim24, i, k, l > &a, const Tensor3_Expr< B, U, Dim3, Dim24, Dim15, j, l, k > &b)
promote< T, U >::V eval(const int N1, const int N2, const Number< 1 > &, const Number< 1 > &) const
Tensor3_Expr< B, U, Dim3, Dim24, Dim15, j, l, k > iterB
Tensor3_times_Tensor3_23_23(const Tensor3_Expr< A, T, Dim0, Dim14, Dim25, k, i, j > &a, const Tensor3_Expr< B, U, Dim3, Dim14, Dim25, l, i, j > &b)
promote< T, U >::V T3_times_T3_102(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
promote< T, U >::V T3_times_T3_201(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &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< 1 > &) const
Tensor3_Expr< A, T, Dim0, Dim1, Dim23, i, j, k > iterA
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< CurrentDim0 > &, const Number< 1 > &) 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< CurrentDim0 > &, const Number< CurrentDim1 > &) const
promote< T, U >::V T3_times_T3_012(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim1, 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 int &N3, const int &N4) const
promote< T, U >::V eval(const int N1, const int N2, const Number< CurrentDim0 > &, const Number< 1 > &) const
promote< T, U >::V eval(const int N1, const int N2, const Number< CurrentDim0 > &, const Number< CurrentDim1 > &) const
promote< T, U >::V operator()(const int &N1, const int &N2) const
FTensor::Index< 'i', SPACE_DIM > i
Tensor3_Expr< A, T, Dim0, Dim14, Dim25, k, i, j > iterA
Tensor3_times_Tensor3_21(const Tensor3_Expr< A, T, Dim0, Dim1, Dim23, i, j, k > &a, const Tensor3_Expr< B, U, Dim23, Dim4, Dim5, k, l, m > &b)
Tensor3_Expr< B, U, Dim03, Dim14, Dim5, i, j, l > iterB
promote< T, U >::V eval(const int N1, const int N2, const Number< CurrentDim0 > &, const Number< 1 > &) const
FTensor::Index< 'j', 3 > j
promote< T, U >::V T3_times_T3_210(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
Tensor3_Expr< A, T, Dim03, Dim14, Dim2, i, j, k > iterA
promote< T, U >::V T3_times_T3_021(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
Tensor3_Expr< B, U, Dim3, Dim14, Dim25, l, i, j > iterB
promote< T, U >::V eval(const int N1, const int N2, const Number< 1 > &, const Number< 1 > &) const
FTensor::Index< 'm', 3 > m
Tensor3_times_Tensor3_12_12(const Tensor3_Expr< A, T, Dim03, Dim14, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim03, Dim14, Dim5, i, j, l > &b)
FTensor::Index< 'k', 3 > k
promote< T, U >::V eval(const int N1, const int N2, const int N3, const int N4, const Number< 1 > &) const
Tensor3_Expr< B, U, Dim23, Dim4, Dim5, k, l, m > iterB
Tensor3_Expr< B, U, Dim13, Dim04, Dim5, j, i, l > iterB
FTensor::Index< 'l', 3 > l