7                                                       {
    8 
   12 
   13  {
   14    
   16    t_dg(
i, 
j, 
k) = t3_1(
i, 
j, 
k) || t3_1(
j, 
i, 
k);
 
   18    t_sym_3(
i, 
j, 
k) = t3_1(
i, 
j, 
k) + t3_1(
j, 
i, 
k);
 
   19 
   20    for (int ii = 0; ii != 3; ++ii)
   21      for (int jj = 0; jj != 3; ++jj)
   22        for (int kk = 0; kk != 3; ++kk) {
   24                        "T3(i,j,k)||T3(j,i,k)(" + to_string(ii) + "," +
   25                            to_string(jj) + "," + to_string(kk) + ")");
   26        }
   27 
   28  }
   29 
   30  
   31  {
   37    for (int ii = 0; ii != 1; ++ii)
   38      for (int jj = 0; jj != 3; ++jj) {
   39        for (int kk = 0; kk != 2; ++kk) {
   40          t_3_1(ii, jj, kk) = 1 + ii + 10. * jj + 100. * kk;
   41        }
   42      }
   43    for (int jj = 0; jj != 3; ++jj)
   44      for (int ll = 0; ll != 3; ++ll) {
   45        t_2_1(jj, ll) = 1 + jj + 10. * ll;
   46      }
   51    t_2s_1(
j, 
l) = t_2_1(
j, 
l) || t_2_1(
l, 
j);
 
   52    t_2_2(
j, 
l) = t_2_1(
j, 
l) + t_2_1(
l, 
j);
 
   54        t_3_1(
i, 
j, 
k) * t_2s_1(
j, 
l) -  t_2s_1(
j, 
l)*t_3_1(
i, 
j, 
k);
 
   55    for (int ii = 0; ii != 1; ++ii)
   56      for (int ll = 0; ll != 3; ++ll)
   57        for (int kk = 0; kk != 2; ++kk) {
   59                        "T3(i,j,k)||T2s(j,l)(" + to_string(ii) + "," +
   60                            to_string(ll) + "," + to_string(kk) + ")");
   61        }
   63        t_3_1(
i, 
j, 
k) * t_2s_1(
j, 
l) - t_2_2(
j, 
l) * t_3_1(
i, 
j, 
k);
 
   64    for (int ii = 0; ii != 1; ++ii)
   65      for (int ll = 0; ll != 3; ++ll)
   66        for (int kk = 0; kk != 2; ++kk) {
   68                        "T3(i,j,k)||T2s(j,l)(" + to_string(ii) + "," +
   69                            to_string(ll) + "," + to_string(kk) + ")");
   70        }
   71 }
   72 
   73   
   74 {
   80   for (int ii = 0; ii != 3; ++ii)
   81     for (int jj = 0; jj != 3; ++jj) {
   82       for (int kk = 0; kk != 3; ++kk) {
   83         t_3_1(ii, jj, kk) = 1 + ii + 10. * jj + 100. * kk;
   84       }
   85     }
   86   for (int jj = 0; jj != 3; ++jj)
   87     for (int ll = 0; ll != 3; ++ll) {
   88       t_2_1(jj, ll) = 1 + jj + 10. * ll;
   89     }
   94   t_2s_1(
i, 
j) = t_2_1(
i, 
j) || t_2_1(
j, 
i);
 
   95   t_2_2(
i, 
j) = t_2_1(
i, 
j) + t_2_1(
j, 
i);
 
   97       t_3_1(
i, 
j, 
k) * t_2s_1(
i, 
l) - t_2s_1(
i, 
l) * t_3_1(
i, 
j, 
k);
 
   98   for (int ll = 0; ll != 3; ++ll)
   99     for (int jj = 0; jj != 3; ++jj)
  100       for (int kk = 0; kk != 3; ++kk) {
  102                       "T3(i,j,k)||T2s(i,l)(" + to_string(ll) + "," +
  103                           to_string(jj) + "," + to_string(kk) + ")");
  104       }
  106       t_3_1(
i, 
j, 
k) * t_2s_1(
i, 
l) - t_3_1(
i, 
j, 
k) * t_2_2(
i, 
l);
 
  107 
  108   for (int ll = 0; ll != 3; ++ll)
  109     for (int jj = 0; jj != 3; ++jj)
  110       for (int kk = 0; kk != 3; ++kk) {
  112                       "T3(i,j,k)||T2s(i,l)(" + to_string(ll) + "," +
  113                           to_string(jj) + "," + to_string(kk) + ")");
  114       }
  115 }
  116 
  117 
  118 {
  121   for (int ii = 0; ii != 3; ++ii) {
  122     t_1(ii) = 1 + ii;
  123     for (int jj = 0; jj != 3; ++jj) {
  124       t_2(ii, jj) = 1 + ii + 10. * jj;
  125     }
  126   }
  132   t_3_1(
i, 
j, 
k) = t_2(
i, 
j) * t_1(
k);
 
  134   t_2_1(
k, 
l) = t_3_1(
i, 
j, 
k) * t_3_1(
j, 
i, 
l);
 
  136   t_2_2(
k, 
l) = (t_2(
i, 
j) * t_2(
j, 
i)) * (t_1(
k) * t_1(
l));
 
  137   for (int ii = 0; ii != 3; ++ii)
  138     for (int jj = 0; jj != 3; ++jj) {
  139       test_for_zero(t_2_1(ii, jj) - t_2_2(ii, jj), 
"T3(i,j,k)*T3(j,i,l)(" +
 
  140                                                        to_string(ii) + "," +
  141                                                        to_string(jj) + ")");
  142     }
  143 }
  144 
  145 
  146 {
  149   for (int ii = 0; ii != 3; ++ii) {
  150     t_1(ii) = 1 + ii;
  151     for (int jj = 0; jj != 3; ++jj) {
  152       t_2(ii, jj) = 1 + ii + 10. * jj;
  153     }
  154   }
  160   t_3_1(
i, 
j, 
k) = t_1(
i) * t_2(
j, 
k);
 
  162   t_2_1(
i, 
j) = t_3_1(
j, 
k, 
l) * t_3_1(
i, 
l, 
k);
 
  164   t_2_2(
i, 
j) = (t_2(
k, 
l) * t_2(
l, 
k)) * (t_1(
i) * t_1(
j));
 
  165   for (int ii = 0; ii != 3; ++ii)
  166     for (int jj = 0; jj != 3; ++jj) {
  167       test_for_zero(t_2_1(ii, jj) - t_2_2(ii, jj), 
"T3(j,k,l)*T3(i,l,k)(" +
 
  168                                                        to_string(ii) + "," +
  169                                                        to_string(jj) + ")");
  170     }
  171 }
  172 
  173 
  174 {
  177   for (int ii = 0; ii != 3; ++ii) {
  178     t_1(ii) = 1 + ii;
  179     for (int jj = 0; jj != 3; ++jj) {
  180       t_2(ii, jj) = 1 + ii + 10. * jj;
  181     }
  182   }
  188   t_3_1(
i, 
j, 
k) = t_1(
i) * t_2(
j, 
k);
 
  190   t_2_1(
k, 
l) = t_3_1(
k, 
i, 
j) * t_3_1(
l, 
i, 
j);
 
  192   t_2_2(
k, 
l) = (t_2(
i, 
j) * t_2(
i, 
j)) * (t_1(
k) * t_1(
l));
 
  193   for (int kk = 0; kk != 3; ++kk)
  194     for (int ll = 0; ll != 3; ++ll) {
  195       test_for_zero(t_2_1(kk, ll) - t_2_2(kk, ll), 
"T3(k,i,j)*T3(l,i,j)(" +
 
  196                                                        to_string(kk) + "," +
  197                                                        to_string(ll) + ")");
  198     }
  199 }
  200 
  201 
  202 {
  205   for (int ii = 0; ii != 3; ++ii) {
  206     t_1(ii) = 1 + ii;
  207     for (int jj = 0; jj != 3; ++jj) {
  208       t_2(ii, jj) = 1 + ii + 10. * jj;
  209     }
  210   }
  216   t_3_1(
i, 
j, 
k) = t_2(
i, 
j) * t_1(
k);
 
  218   t_2_1(
k, 
l) = t_3_1(
i, 
j, 
k) * t_3_1(
i, 
j, 
l);
 
  220   t_2_2(
k, 
l) = (t_2(
i, 
j) * t_2(
i, 
j)) * (t_1(
k) * t_1(
l));
 
  221   for (int kk = 0; kk != 3; ++kk)
  222     for (int ll = 0; ll != 3; ++ll) {
  223       test_for_zero(t_2_1(kk, ll) - t_2_2(kk, ll), 
"T3(i,j,k)*T3(i,j,l)(" +
 
  224                                                        to_string(kk) + "," +
  225                                                        to_string(ll) + ")");
  226     }
  227 }
  228 
  229 
  230}
FTensor::Index< 'i', SPACE_DIM > i
FTensor::Index< 'l', 3 > l
FTensor::Index< 'j', 3 > j
FTensor::Index< 'k', 3 > k
void test_for_zero(const T &t, const std::string &s)