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, 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, 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::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::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::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
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, Dim23, Dim01, i, j, k, l, k, l, i, j >::iterB Ddg_Expr< B, U, Dim23, Dim01, k, l, i, j > iterB
FTensor::Index< 'i', SPACE_DIM > i
FTensor::Index< 'l', 3 > l
FTensor::Index< 'j', 3 > j
FTensor::Index< 'k', 3 > k
Tensors class implemented by Walter Landry.
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)