15template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
int Dim4,
 
   16          char i, 
char j, 
char k, 
char l, 
char m>
 
   21  template <
int Current_Dim0, 
int Current_Dim1>
 
   25    return iterA(N1, N2, Current_Dim0 - 1, Current_Dim1 - 1) *
 
   26               iterB(Current_Dim0 - 1, Current_Dim1 - 1, N3) +
 
 
   29  template <
int Current_Dim1>
 
   33    return iterA(N1, N2, 0, Current_Dim1 - 1) * 
iterB(0, Current_Dim1 - 1, N3) +
 
 
 
   52template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
int Dim4,
 
   53          char i, 
char j, 
char k, 
char l, 
char m>
 
   57      Ddg_times_Dg_23<A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m>;
 
 
   64template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
int Dim4,
 
   65          char i, 
char j, 
char k, 
char l, 
char m>
 
   69      Ddg_times_Dg_23<A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m>;
 
 
   76template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
int Dim4,
 
   77          char i, 
char j, 
char k, 
char l, 
char m>
 
   82  template <
int Current_Dim0, 
int Current_Dim1>
 
   86    return iterA(Current_Dim0 - 1, Current_Dim1 - 1, N1, N2) *
 
   87               iterB(Current_Dim0 - 1, Current_Dim1 - 1, N3) +
 
 
   90  template <
int Current_Dim1>
 
   94    return iterA(0, Current_Dim1 - 1, N1, N2) * 
iterB(0, Current_Dim1 - 1, N3) +
 
 
  104                                       const int N3)
 const {
 
 
 
  113template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
int Dim4,
 
  114          char i, 
char j, 
char k, 
char l, 
char m>
 
  118      Ddg_times_Dg_01<A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m>;
 
 
  125template <
class A, 
class B, 
class T, 
class U, 
int Dim01, 
int Dim23, 
int Dim4,
 
  126          char i, 
char j, 
char k, 
char l, 
char m>
 
  130      Ddg_times_Dg_01<A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m>;
 
 
Ddg_times_Dg_01(const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Dg_Expr< B, U, Dim01, Dim4, i, j, m > &b)
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > iterA
const Dg_Expr< B, U, Dim01, Dim4, i, j, m > 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< Current_Dim0 > &, const Number< Current_Dim1 > &) const
promote< T, U >::V eval(const int N1, const int N2, const int N3, const Number< 1 > &, const Number< Current_Dim1 > &) const
promote< T, U >::V eval(const int N1, const int N2, const int N3, const Number< 1 > &, const Number< 1 > &) const
Ddg_times_Dg_23(const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Dg_Expr< B, U, Dim23, Dim4, k, l, m > &b)
promote< T, U >::V operator()(const int N1, const int N2, const int N3) const
const Dg_Expr< B, U, Dim23, Dim4, k, l, m > iterB
promote< T, U >::V eval(const int N1, const int N2, const int N3, const Number< 1 > &, const Number< 1 > &) const
promote< T, U >::V eval(const int N1, const int N2, const int N3, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &) const
promote< T, U >::V eval(const int N1, const int N2, const int N3, const Number< 1 > &, const Number< Current_Dim1 > &) const
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > iterA
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)
FTensor::Index< 'm', 3 > m