|
| v0.14.0
|
Go to the documentation of this file.
8 template <
class A,
class B,
class T,
class U,
int Dim01_0,
int Dim23_0,
9 int Dim01_1,
int Dim23_1,
char i0,
char j0,
char k0,
char l0,
10 char i1,
char j1,
char k1,
char l1>
16 template <
class A,
class B,
class T,
class U,
int Dim01,
int Dim23,
char i,
17 char j,
char k,
char l>
18 class Ddg_plus_Ddg<
A, B, T,
U, Dim01, Dim23, Dim01, Dim23,
i,
j,
k,
l,
i,
j,
26 operator()(
const int N1,
const int N2,
const int N3,
const int N4)
const
28 return iterA(N1, N2, N3, N4) + iterB(N1, N2, N3, N4);
39 template <
class A,
class B,
class T,
class U,
int Dim01,
int Dim23,
char i,
40 char j,
char k,
char l>
41 class Ddg_plus_Ddg<
A, B, T,
U, Dim01, Dim23, Dim23, Dim01,
i,
j,
k,
l,
k,
l,
49 operator()(
const int N1,
const int N2,
const int N3,
const int N4)
const
51 return iterA(N1, N2, N3, N4) + iterB(N3, N4, N1, N2);
60 template <
class A,
class B,
class T,
class U,
int Dim01_0,
int Dim23_0,
61 int Dim01_1,
int Dim23_1,
char i0,
char j0,
char k0,
char l0,
62 char i1,
char j1,
char k1,
char l1>
63 Ddg_Expr<Ddg_plus_Ddg<
A, B, T,
U, Dim01_0, Dim23_0, Dim01_1, Dim23_1, i0, j0,
64 k0, l0, i1, j1, k1, l1>,
69 using TensorExpr =
Ddg_plus_Ddg<
A, B, T,
U, Dim01_0, Dim23_0, Dim01_1,
70 Dim23_1, i0, j0, k0, l0, i1, j1, k1, l1>;
72 !std::is_empty<TensorExpr>::value,
73 "Indexes or Dimensions are not compatible with the + operator");
75 i0, j0, k0, l0>(TensorExpr(
a, b));
FTensor::Ddg_plus_Ddg< A, B, T, U, Dim01, Dim23, Dim23, Dim01, i, j, k, l, k, l, i, j >::iterA Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > iterA
FTensor::Ddg_plus_Ddg< A, B, T, U, Dim01, Dim23, Dim23, Dim01, i, j, k, l, k, l, i, j >::Ddg_plus_Ddg Ddg_plus_Ddg(const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Ddg_Expr< B, U, Dim23, Dim01, k, l, i, j > &b)
FTensor::Ddg_plus_Ddg< A, B, T, U, Dim01, Dim23, Dim01, Dim23, i, j, k, l, i, j, k, l >::iterA Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > iterA
FTensor::Ddg_plus_Ddg< A, B, T, U, Dim01, Dim23, Dim23, Dim01, i, j, k, l, k, l, i, j >::iterB Ddg_Expr< B, U, Dim23, Dim01, k, l, i, j > iterB
FTensor::Ddg_plus_Ddg< A, B, T, U, Dim01, Dim23, Dim01, Dim23, i, j, k, l, i, j, k, l >::operator() promote< T, U >::V operator()(const int N1, const int N2, const int N3, const int N4) const
FTensor::Index< 'i', SPACE_DIM > i
FTensor::Ddg_plus_Ddg< A, B, T, U, Dim01, Dim23, Dim01, Dim23, i, j, k, l, i, j, k, l >::iterB Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > iterB
FTensor::Index< 'j', 3 > j
FTensor::Ddg_plus_Ddg< A, B, T, U, Dim01, Dim23, Dim23, Dim01, i, j, k, l, k, l, i, j >::operator() promote< T, U >::V operator()(const int N1, const int N2, const int N3, const int N4) const
Ddg_Expr< Ddg_plus_Ddg< A, B, T, U, Dim01_0, Dim23_0, Dim01_1, Dim23_1, i0, j0, k0, l0, i1, j1, k1, l1 >, typename promote< T, U >::V, Dim01_0, Dim23_0, i0, j0, k0, l0 > operator+(const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &a, const Ddg_Expr< B, U, Dim01_1, Dim23_1, i1, j1, k1, l1 > &b)
FTensor::Index< 'k', 3 > k
FTensor::Ddg_plus_Ddg< A, B, T, U, Dim01, Dim23, Dim01, Dim23, i, j, k, l, i, j, k, l >::Ddg_plus_Ddg Ddg_plus_Ddg(const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &b)
FTensor::Index< 'l', 3 > l