10template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
char i,
 
   11          char j, 
char k, 
char l>
 
   16  template <
int Current_Dim>
 
   19    return iterA(N1, N2, Current_Dim - 1, N3) * 
iterB(Current_Dim - 1) +
 
 
 
   37template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
char i,
 
   38          char j, 
char k, 
char l>
 
   39Dg_Expr<Ddg_times_Tensor1_2<A, B, T, U, Dim01, Dim23, i, j, k, l>,
 
   50template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
char i,
 
   51          char j, 
char k, 
char l>
 
   52Dg_Expr<Ddg_times_Tensor1_2<A, B, T, U, Dim01, Dim23, i, j, k, l>,
 
   63template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
char i,
 
   64          char j, 
char k, 
char l>
 
   69  template <
int Current_Dim>
 
   72    return iterA(N1, N2, Current_Dim - 1, N3) * 
iterB(Current_Dim - 1) +
 
 
 
   90template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
char i,
 
   91          char j, 
char k, 
char l>
 
   92Dg_Expr<Ddg_times_Tensor1_3<A, B, T, U, Dim01, Dim23, i, j, k, l>,
 
  103template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
char i,
 
  104          char j, 
char k, 
char l>
 
  105Dg_Expr<Ddg_times_Tensor1_3<A, B, T, U, Dim01, Dim23, i, j, k, l>,
 
  116template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
char i,
 
  117          char j, 
char k, 
char l>
 
  122  template <
int Current_Dim>
 
  125    return iterA(Current_Dim - 1, N3, N1, N2) * 
iterB(Current_Dim - 1) +
 
 
  138                                       const int N3)
 const {
 
 
 
  143template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
char i,
 
  144          char j, 
char k, 
char l>
 
  145Dg_Expr<Ddg_times_Tensor1_0<A, B, T, U, Dim01, Dim23, i, j, k, l>,
 
  156template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
char i,
 
  157          char j, 
char k, 
char l>
 
  158Dg_Expr<Ddg_times_Tensor1_0<A, B, T, U, Dim01, Dim23, i, j, k, l>,
 
  169template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
char i,
 
  170          char j, 
char k, 
char l>
 
  175  template <
int Current_Dim>
 
  178    return iterA(Current_Dim - 1, N3, N1, N2) * 
iterB(Current_Dim - 1) +
 
 
  191                                       const int N3)
 const {
 
 
 
  196template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
char i,
 
  197          char j, 
char k, 
char l>
 
  198Dg_Expr<Ddg_times_Tensor1_1<A, B, T, U, Dim01, Dim23, i, j, k, l>,
 
  209template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
char i,
 
  210          char j, 
char k, 
char l>
 
  211Dg_Expr<Ddg_times_Tensor1_1<A, B, T, U, Dim01, Dim23, i, j, k, l>,
 
promote< T, U >::V eval(const int N1, const int N2, const int N3, const Number< Current_Dim > &) const
Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > iterA
promote< T, U >::V operator()(const int N1, const int N2, const int N3) const
Tensor1_Expr< B, U, Dim01, i > iterB
promote< T, U >::V eval(const int N1, const int N2, const int N3, const Number< 1 > &) const
Ddg_times_Tensor1_0(const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim01, i > &b)
Tensor1_Expr< B, U, Dim01, j > iterB
promote< T, U >::V operator()(const int N1, const int N2, const int N3) const
promote< T, U >::V eval(const int N1, const int N2, const int N3, const Number< 1 > &) const
Ddg_times_Tensor1_1(const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim01, j > &b)
Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > iterA
promote< T, U >::V eval(const int N1, const int N2, const int N3, const Number< Current_Dim > &) const
promote< T, U >::V eval(const int N1, const int N2, const int N3, const Number< 1 > &) const
promote< T, U >::V eval(const int N1, const int N2, const int N3, const Number< Current_Dim > &) const
Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > iterA
Tensor1_Expr< B, U, Dim23, k > iterB
Ddg_times_Tensor1_2(const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim23, k > &b)
promote< T, U >::V operator()(const int N1, const int N2, const int N3) const
Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > iterA
promote< T, U >::V eval(const int N1, const int N2, const int N3, const Number< Current_Dim > &) const
Ddg_times_Tensor1_3(const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim23, l > &b)
Tensor1_Expr< B, U, Dim23, l > iterB
promote< T, U >::V operator()(const int N1, const int N2, const int N3) const
promote< T, U >::V eval(const int N1, const int N2, const int N3, const Number< 1 > &) const
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.
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)