9{
   14 
   15  for(int ii = 0; ii < 1; ++ii)
   16    {
   18                      - (t4(ii, 0, 0, 0) * t3_2(0, 0, 0)
   19                         + t4(ii, 0, 0, 1) * t3_2(0, 0, 1)
   20                         + t4(ii, 0, 0, 2) * t3_2(0, 0, 2)
   21                         + t4(ii, 0, 0, 3) * t3_2(0, 0, 3)
   22                         + t4(ii, 0, 1, 0) * t3_2(0, 1, 0)
   23                         + t4(ii, 0, 1, 1) * t3_2(0, 1, 1)
   24                         + t4(ii, 0, 1, 2) * t3_2(0, 1, 2)
   25                         + t4(ii, 0, 1, 3) * t3_2(0, 1, 3)
   26                         + t4(ii, 0, 2, 0) * t3_2(0, 2, 0)
   27                         + t4(ii, 0, 2, 1) * t3_2(0, 2, 1)
   28                         + t4(ii, 0, 2, 2) * t3_2(0, 2, 2)
   29                         + t4(ii, 0, 2, 3) * t3_2(0, 2, 3)
   30                         + t4(ii, 1, 0, 0) * t3_2(1, 0, 0)
   31                         + t4(ii, 1, 0, 1) * t3_2(1, 0, 1)
   32                         + t4(ii, 1, 0, 2) * t3_2(1, 0, 2)
   33                         + t4(ii, 1, 0, 3) * t3_2(1, 0, 3)
   34                         + t4(ii, 1, 1, 0) * t3_2(1, 1, 0)
   35                         + t4(ii, 1, 1, 1) * t3_2(1, 1, 1)
   36                         + t4(ii, 1, 1, 2) * t3_2(1, 1, 2)
   37                         + t4(ii, 1, 1, 3) * t3_2(1, 1, 3)
   38                         + t4(ii, 1, 2, 0) * t3_2(1, 2, 0)
   39                         + t4(ii, 1, 2, 1) * t3_2(1, 2, 1)
   40                         + t4(ii, 1, 2, 2) * t3_2(1, 2, 2)
   41                         + t4(ii, 1, 2, 3) * t3_2(1, 2, 3)),
   42                    "T4(i,j,k,l)*T3(j,k,l)(" + std::to_string(ii) + ")");
   44                      - (t4(ii, 0, 0, 0) * t3_2(0, 0, 0)
   45                         + t4(ii, 0, 0, 1) * t3_2(0, 0, 1)
   46                         + t4(ii, 0, 0, 2) * t3_2(0, 0, 2)
   47                         + t4(ii, 0, 0, 3) * t3_2(0, 0, 3)
   48                         + t4(ii, 0, 1, 0) * t3_2(0, 1, 0)
   49                         + t4(ii, 0, 1, 1) * t3_2(0, 1, 1)
   50                         + t4(ii, 0, 1, 2) * t3_2(0, 1, 2)
   51                         + t4(ii, 0, 1, 3) * t3_2(0, 1, 3)
   52                         + t4(ii, 0, 2, 0) * t3_2(0, 2, 0)
   53                         + t4(ii, 0, 2, 1) * t3_2(0, 2, 1)
   54                         + t4(ii, 0, 2, 2) * t3_2(0, 2, 2)
   55                         + t4(ii, 0, 2, 3) * t3_2(0, 2, 3)
   56                         + t4(ii, 1, 0, 0) * t3_2(1, 0, 0)
   57                         + t4(ii, 1, 0, 1) * t3_2(1, 0, 1)
   58                         + t4(ii, 1, 0, 2) * t3_2(1, 0, 2)
   59                         + t4(ii, 1, 0, 3) * t3_2(1, 0, 3)
   60                         + t4(ii, 1, 1, 0) * t3_2(1, 1, 0)
   61                         + t4(ii, 1, 1, 1) * t3_2(1, 1, 1)
   62                         + t4(ii, 1, 1, 2) * t3_2(1, 1, 2)
   63                         + t4(ii, 1, 1, 3) * t3_2(1, 1, 3)
   64                         + t4(ii, 1, 2, 0) * t3_2(1, 2, 0)
   65                         + t4(ii, 1, 2, 1) * t3_2(1, 2, 1)
   66                         + t4(ii, 1, 2, 2) * t3_2(1, 2, 2)
   67                         + t4(ii, 1, 2, 3) * t3_2(1, 2, 3)),
   68                    "T3(j,k,l)*T4(i,j,k,l)(" + std::to_string(ii) + ")");
   69    }
   70  {
   72    t3(
j, 
l, 
k) = t3_2(
j, 
k, 
l);
 
   73 
   74    for(int ii = 0; ii < 1; ++ii)
   75      {
   77          (t4(
i, 
j, 
k, 
l) * t3(
j, 
l, 
k))(ii)
 
   78            - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(0, 1, 0)
   79               + t4(ii, 0, 0, 2) * t3(0, 2, 0) + t4(ii, 0, 0, 3) * t3(0, 3, 0)
   80               + t4(ii, 0, 1, 0) * t3(0, 0, 1) + t4(ii, 0, 1, 1) * t3(0, 1, 1)
   81               + t4(ii, 0, 1, 2) * t3(0, 2, 1) + t4(ii, 0, 1, 3) * t3(0, 3, 1)
   82               + t4(ii, 0, 2, 0) * t3(0, 0, 2) + t4(ii, 0, 2, 1) * t3(0, 1, 2)
   83               + t4(ii, 0, 2, 2) * t3(0, 2, 2) + t4(ii, 0, 2, 3) * t3(0, 3, 2)
   84               + t4(ii, 1, 0, 0) * t3(1, 0, 0) + t4(ii, 1, 0, 1) * t3(1, 1, 0)
   85               + t4(ii, 1, 0, 2) * t3(1, 2, 0) + t4(ii, 1, 0, 3) * t3(1, 3, 0)
   86               + t4(ii, 1, 1, 0) * t3(1, 0, 1) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
   87               + t4(ii, 1, 1, 2) * t3(1, 2, 1) + t4(ii, 1, 1, 3) * t3(1, 3, 1)
   88               + t4(ii, 1, 2, 0) * t3(1, 0, 2) + t4(ii, 1, 2, 1) * t3(1, 1, 2)
   89               + t4(ii, 1, 2, 2) * t3(1, 2, 2)
   90               + t4(ii, 1, 2, 3) * t3(1, 3, 2)),
   91          "T4(i,j,k,l)*T3(j,l,k)(" + std::to_string(ii) + ")");
   93          (t3(
j, 
l, 
k) * t4(
i, 
j, 
k, 
l))(ii)
 
   94            - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(0, 1, 0)
   95               + t4(ii, 0, 0, 2) * t3(0, 2, 0) + t4(ii, 0, 0, 3) * t3(0, 3, 0)
   96               + t4(ii, 0, 1, 0) * t3(0, 0, 1) + t4(ii, 0, 1, 1) * t3(0, 1, 1)
   97               + t4(ii, 0, 1, 2) * t3(0, 2, 1) + t4(ii, 0, 1, 3) * t3(0, 3, 1)
   98               + t4(ii, 0, 2, 0) * t3(0, 0, 2) + t4(ii, 0, 2, 1) * t3(0, 1, 2)
   99               + t4(ii, 0, 2, 2) * t3(0, 2, 2) + t4(ii, 0, 2, 3) * t3(0, 3, 2)
  100               + t4(ii, 1, 0, 0) * t3(1, 0, 0) + t4(ii, 1, 0, 1) * t3(1, 1, 0)
  101               + t4(ii, 1, 0, 2) * t3(1, 2, 0) + t4(ii, 1, 0, 3) * t3(1, 3, 0)
  102               + t4(ii, 1, 1, 0) * t3(1, 0, 1) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
  103               + t4(ii, 1, 1, 2) * t3(1, 2, 1) + t4(ii, 1, 1, 3) * t3(1, 3, 1)
  104               + t4(ii, 1, 2, 0) * t3(1, 0, 2) + t4(ii, 1, 2, 1) * t3(1, 1, 2)
  105               + t4(ii, 1, 2, 2) * t3(1, 2, 2)
  106               + t4(ii, 1, 2, 3) * t3(1, 3, 2)),
  107          "T3(j,l,k)*T4(i,j,k,l)(" + std::to_string(ii) + ")");
  108      }
  109  }
  110  {
  112    t3(
k, 
j, 
l) = t3_2(
j, 
k, 
l);
 
  113 
  114    for(int ii = 0; ii < 1; ++ii)
  115      {
  117          (t4(
i, 
j, 
k, 
l) * t3(
k, 
j, 
l))(ii)
 
  118            - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(0, 0, 1)
  119               + t4(ii, 0, 0, 2) * t3(0, 0, 2) + t4(ii, 0, 0, 3) * t3(0, 0, 3)
  120               + t4(ii, 0, 1, 0) * t3(1, 0, 0) + t4(ii, 0, 1, 1) * t3(1, 0, 1)
  121               + t4(ii, 0, 1, 2) * t3(1, 0, 2) + t4(ii, 0, 1, 3) * t3(1, 0, 3)
  122               + t4(ii, 0, 2, 0) * t3(2, 0, 0) + t4(ii, 0, 2, 1) * t3(2, 0, 1)
  123               + t4(ii, 0, 2, 2) * t3(2, 0, 2) + t4(ii, 0, 2, 3) * t3(2, 0, 3)
  124               + t4(ii, 1, 0, 0) * t3(0, 1, 0) + t4(ii, 1, 0, 1) * t3(0, 1, 1)
  125               + t4(ii, 1, 0, 2) * t3(0, 1, 2) + t4(ii, 1, 0, 3) * t3(0, 1, 3)
  126               + t4(ii, 1, 1, 0) * t3(1, 1, 0) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
  127               + t4(ii, 1, 1, 2) * t3(1, 1, 2) + t4(ii, 1, 1, 3) * t3(1, 1, 3)
  128               + t4(ii, 1, 2, 0) * t3(2, 1, 0) + t4(ii, 1, 2, 1) * t3(2, 1, 1)
  129               + t4(ii, 1, 2, 2) * t3(2, 1, 2)
  130               + t4(ii, 1, 2, 3) * t3(2, 1, 3)),
  131          "T4(i,j,k,l)*T3(k,j,l)(" + std::to_string(ii) + ")");
  133          (t3(
k, 
j, 
l) * t4(
i, 
j, 
k, 
l))(ii)
 
  134            - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(0, 0, 1)
  135               + t4(ii, 0, 0, 2) * t3(0, 0, 2) + t4(ii, 0, 0, 3) * t3(0, 0, 3)
  136               + t4(ii, 0, 1, 0) * t3(1, 0, 0) + t4(ii, 0, 1, 1) * t3(1, 0, 1)
  137               + t4(ii, 0, 1, 2) * t3(1, 0, 2) + t4(ii, 0, 1, 3) * t3(1, 0, 3)
  138               + t4(ii, 0, 2, 0) * t3(2, 0, 0) + t4(ii, 0, 2, 1) * t3(2, 0, 1)
  139               + t4(ii, 0, 2, 2) * t3(2, 0, 2) + t4(ii, 0, 2, 3) * t3(2, 0, 3)
  140               + t4(ii, 1, 0, 0) * t3(0, 1, 0) + t4(ii, 1, 0, 1) * t3(0, 1, 1)
  141               + t4(ii, 1, 0, 2) * t3(0, 1, 2) + t4(ii, 1, 0, 3) * t3(0, 1, 3)
  142               + t4(ii, 1, 1, 0) * t3(1, 1, 0) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
  143               + t4(ii, 1, 1, 2) * t3(1, 1, 2) + t4(ii, 1, 1, 3) * t3(1, 1, 3)
  144               + t4(ii, 1, 2, 0) * t3(2, 1, 0) + t4(ii, 1, 2, 1) * t3(2, 1, 1)
  145               + t4(ii, 1, 2, 2) * t3(2, 1, 2)
  146               + t4(ii, 1, 2, 3) * t3(2, 1, 3)),
  147          "T3(k,j,l)*T4(i,j,k,l)(" + std::to_string(ii) + ")");
  148      }
  149  }
  150  {
  152    t3(
k, 
l, 
j) = t3_2(
j, 
k, 
l);
 
  153    for(int ii = 0; ii < 1; ++ii)
  154      {
  156          (t4(
i, 
j, 
k, 
l) * t3(
k, 
l, 
j))(ii)
 
  157            - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(0, 1, 0)
  158               + t4(ii, 0, 0, 2) * t3(0, 2, 0) + t4(ii, 0, 0, 3) * t3(0, 3, 0)
  159               + t4(ii, 0, 1, 0) * t3(1, 0, 0) + t4(ii, 0, 1, 1) * t3(1, 1, 0)
  160               + t4(ii, 0, 1, 2) * t3(1, 2, 0) + t4(ii, 0, 1, 3) * t3(1, 3, 0)
  161               + t4(ii, 0, 2, 0) * t3(2, 0, 0) + t4(ii, 0, 2, 1) * t3(2, 1, 0)
  162               + t4(ii, 0, 2, 2) * t3(2, 2, 0) + t4(ii, 0, 2, 3) * t3(2, 3, 0)
  163               + t4(ii, 1, 0, 0) * t3(0, 0, 1) + t4(ii, 1, 0, 1) * t3(0, 1, 1)
  164               + t4(ii, 1, 0, 2) * t3(0, 2, 1) + t4(ii, 1, 0, 3) * t3(0, 3, 1)
  165               + t4(ii, 1, 1, 0) * t3(1, 0, 1) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
  166               + t4(ii, 1, 1, 2) * t3(1, 2, 1) + t4(ii, 1, 1, 3) * t3(1, 3, 1)
  167               + t4(ii, 1, 2, 0) * t3(2, 0, 1) + t4(ii, 1, 2, 1) * t3(2, 1, 1)
  168               + t4(ii, 1, 2, 2) * t3(2, 2, 1)
  169               + t4(ii, 1, 2, 3) * t3(2, 3, 1)),
  170          "T4(i,j,k,l)*T3(k,l,j)(" + std::to_string(ii) + ")");
  172          (t3(
k, 
l, 
j) * t4(
i, 
j, 
k, 
l))(ii)
 
  173            - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(0, 1, 0)
  174               + t4(ii, 0, 0, 2) * t3(0, 2, 0) + t4(ii, 0, 0, 3) * t3(0, 3, 0)
  175               + t4(ii, 0, 1, 0) * t3(1, 0, 0) + t4(ii, 0, 1, 1) * t3(1, 1, 0)
  176               + t4(ii, 0, 1, 2) * t3(1, 2, 0) + t4(ii, 0, 1, 3) * t3(1, 3, 0)
  177               + t4(ii, 0, 2, 0) * t3(2, 0, 0) + t4(ii, 0, 2, 1) * t3(2, 1, 0)
  178               + t4(ii, 0, 2, 2) * t3(2, 2, 0) + t4(ii, 0, 2, 3) * t3(2, 3, 0)
  179               + t4(ii, 1, 0, 0) * t3(0, 0, 1) + t4(ii, 1, 0, 1) * t3(0, 1, 1)
  180               + t4(ii, 1, 0, 2) * t3(0, 2, 1) + t4(ii, 1, 0, 3) * t3(0, 3, 1)
  181               + t4(ii, 1, 1, 0) * t3(1, 0, 1) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
  182               + t4(ii, 1, 1, 2) * t3(1, 2, 1) + t4(ii, 1, 1, 3) * t3(1, 3, 1)
  183               + t4(ii, 1, 2, 0) * t3(2, 0, 1) + t4(ii, 1, 2, 1) * t3(2, 1, 1)
  184               + t4(ii, 1, 2, 2) * t3(2, 2, 1)
  185               + t4(ii, 1, 2, 3) * t3(2, 3, 1)),
  186          "T3(k,l,j)*T4(i,j,k,l)(" + std::to_string(ii) + ")");
  187      }
  188  }
  189  {
  191    t3(
l, 
j, 
k) = t3_2(
j, 
k, 
l);
 
  192    for(int ii = 0; ii < 1; ++ii)
  193      {
  195          (t4(
i, 
j, 
k, 
l) * t3(
l, 
j, 
k))(ii)
 
  196            - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(1, 0, 0)
  197               + t4(ii, 0, 0, 2) * t3(2, 0, 0) + t4(ii, 0, 0, 3) * t3(3, 0, 0)
  198               + t4(ii, 0, 1, 0) * t3(0, 0, 1) + t4(ii, 0, 1, 1) * t3(1, 0, 1)
  199               + t4(ii, 0, 1, 2) * t3(2, 0, 1) + t4(ii, 0, 1, 3) * t3(3, 0, 1)
  200               + t4(ii, 0, 2, 0) * t3(0, 0, 2) + t4(ii, 0, 2, 1) * t3(1, 0, 2)
  201               + t4(ii, 0, 2, 2) * t3(2, 0, 2) + t4(ii, 0, 2, 3) * t3(3, 0, 2)
  202               + t4(ii, 1, 0, 0) * t3(0, 1, 0) + t4(ii, 1, 0, 1) * t3(1, 1, 0)
  203               + t4(ii, 1, 0, 2) * t3(2, 1, 0) + t4(ii, 1, 0, 3) * t3(3, 1, 0)
  204               + t4(ii, 1, 1, 0) * t3(0, 1, 1) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
  205               + t4(ii, 1, 1, 2) * t3(2, 1, 1) + t4(ii, 1, 1, 3) * t3(3, 1, 1)
  206               + t4(ii, 1, 2, 0) * t3(0, 1, 2) + t4(ii, 1, 2, 1) * t3(1, 1, 2)
  207               + t4(ii, 1, 2, 2) * t3(2, 1, 2)
  208               + t4(ii, 1, 2, 3) * t3(3, 1, 2)),
  209          "T4(i,j,k,l)*T3(l,j,k)(" + std::to_string(ii) + ")");
  211          (t3(
l, 
j, 
k) * t4(
i, 
j, 
k, 
l))(ii)
 
  212            - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(1, 0, 0)
  213               + t4(ii, 0, 0, 2) * t3(2, 0, 0) + t4(ii, 0, 0, 3) * t3(3, 0, 0)
  214               + t4(ii, 0, 1, 0) * t3(0, 0, 1) + t4(ii, 0, 1, 1) * t3(1, 0, 1)
  215               + t4(ii, 0, 1, 2) * t3(2, 0, 1) + t4(ii, 0, 1, 3) * t3(3, 0, 1)
  216               + t4(ii, 0, 2, 0) * t3(0, 0, 2) + t4(ii, 0, 2, 1) * t3(1, 0, 2)
  217               + t4(ii, 0, 2, 2) * t3(2, 0, 2) + t4(ii, 0, 2, 3) * t3(3, 0, 2)
  218               + t4(ii, 1, 0, 0) * t3(0, 1, 0) + t4(ii, 1, 0, 1) * t3(1, 1, 0)
  219               + t4(ii, 1, 0, 2) * t3(2, 1, 0) + t4(ii, 1, 0, 3) * t3(3, 1, 0)
  220               + t4(ii, 1, 1, 0) * t3(0, 1, 1) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
  221               + t4(ii, 1, 1, 2) * t3(2, 1, 1) + t4(ii, 1, 1, 3) * t3(3, 1, 1)
  222               + t4(ii, 1, 2, 0) * t3(0, 1, 2) + t4(ii, 1, 2, 1) * t3(1, 1, 2)
  223               + t4(ii, 1, 2, 2) * t3(2, 1, 2)
  224               + t4(ii, 1, 2, 3) * t3(3, 1, 2)),
  225          "T3(l,j,k)*T4(i,j,k,l)(" + std::to_string(ii) + ")");
  226      }
  227  }
  228  {
  230    t3(
l, 
k, 
j) = t3_2(
j, 
k, 
l);
 
  231 
  232    for(int ii = 0; ii < 1; ++ii)
  233      {
  235          (t4(
i, 
j, 
k, 
l) * t3(
l, 
k, 
j))(ii)
 
  236            - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(1, 0, 0)
  237               + t4(ii, 0, 0, 2) * t3(2, 0, 0) + t4(ii, 0, 0, 3) * t3(3, 0, 0)
  238               + t4(ii, 0, 1, 0) * t3(0, 1, 0) + t4(ii, 0, 1, 1) * t3(1, 1, 0)
  239               + t4(ii, 0, 1, 2) * t3(2, 1, 0) + t4(ii, 0, 1, 3) * t3(3, 1, 0)
  240               + t4(ii, 0, 2, 0) * t3(0, 2, 0) + t4(ii, 0, 2, 1) * t3(1, 2, 0)
  241               + t4(ii, 0, 2, 2) * t3(2, 2, 0) + t4(ii, 0, 2, 3) * t3(3, 2, 0)
  242               + t4(ii, 1, 0, 0) * t3(0, 0, 1) + t4(ii, 1, 0, 1) * t3(1, 0, 1)
  243               + t4(ii, 1, 0, 2) * t3(2, 0, 1) + t4(ii, 1, 0, 3) * t3(3, 0, 1)
  244               + t4(ii, 1, 1, 0) * t3(0, 1, 1) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
  245               + t4(ii, 1, 1, 2) * t3(2, 1, 1) + t4(ii, 1, 1, 3) * t3(3, 1, 1)
  246               + t4(ii, 1, 2, 0) * t3(0, 2, 1) + t4(ii, 1, 2, 1) * t3(1, 2, 1)
  247               + t4(ii, 1, 2, 2) * t3(2, 2, 1)
  248               + t4(ii, 1, 2, 3) * t3(3, 2, 1)),
  249          "T4(i,j,k,l)*T3(l,k,j)(" + std::to_string(ii) + ")");
  251          (t3(
l, 
k, 
j) * t4(
i, 
j, 
k, 
l))(ii)
 
  252            - (t4(ii, 0, 0, 0) * t3(0, 0, 0) + t4(ii, 0, 0, 1) * t3(1, 0, 0)
  253               + t4(ii, 0, 0, 2) * t3(2, 0, 0) + t4(ii, 0, 0, 3) * t3(3, 0, 0)
  254               + t4(ii, 0, 1, 0) * t3(0, 1, 0) + t4(ii, 0, 1, 1) * t3(1, 1, 0)
  255               + t4(ii, 0, 1, 2) * t3(2, 1, 0) + t4(ii, 0, 1, 3) * t3(3, 1, 0)
  256               + t4(ii, 0, 2, 0) * t3(0, 2, 0) + t4(ii, 0, 2, 1) * t3(1, 2, 0)
  257               + t4(ii, 0, 2, 2) * t3(2, 2, 0) + t4(ii, 0, 2, 3) * t3(3, 2, 0)
  258               + t4(ii, 1, 0, 0) * t3(0, 0, 1) + t4(ii, 1, 0, 1) * t3(1, 0, 1)
  259               + t4(ii, 1, 0, 2) * t3(2, 0, 1) + t4(ii, 1, 0, 3) * t3(3, 0, 1)
  260               + t4(ii, 1, 1, 0) * t3(0, 1, 1) + t4(ii, 1, 1, 1) * t3(1, 1, 1)
  261               + t4(ii, 1, 1, 2) * t3(2, 1, 1) + t4(ii, 1, 1, 3) * t3(3, 1, 1)
  262               + t4(ii, 1, 2, 0) * t3(0, 2, 1) + t4(ii, 1, 2, 1) * t3(1, 2, 1)
  263               + t4(ii, 1, 2, 2) * t3(2, 2, 1)
  264               + t4(ii, 1, 2, 3) * t3(3, 2, 1)),
  265          "T3(l,k,j)*T4(i,j,k,l)(" + std::to_string(ii) + ")");
  266      }
  267  }
  268 
  269  for(int jj = 0; jj < 2; ++jj)
  270    {
  272                      - (t4(0, jj, 0, 0) * t3_2(0, 0, 0)
  273                         + t4(0, jj, 0, 1) * t3_2(0, 0, 1)
  274                         + t4(0, jj, 0, 2) * t3_2(0, 0, 2)
  275                         + t4(0, jj, 0, 3) * t3_2(0, 0, 3)
  276                         + t4(0, jj, 1, 0) * t3_2(0, 1, 0)
  277                         + t4(0, jj, 1, 1) * t3_2(0, 1, 1)
  278                         + t4(0, jj, 1, 2) * t3_2(0, 1, 2)
  279                         + t4(0, jj, 1, 3) * t3_2(0, 1, 3)
  280                         + t4(0, jj, 2, 0) * t3_2(0, 2, 0)
  281                         + t4(0, jj, 2, 1) * t3_2(0, 2, 1)
  282                         + t4(0, jj, 2, 2) * t3_2(0, 2, 2)
  283                         + t4(0, jj, 2, 3) * t3_2(0, 2, 3)),
  284                    "T4(i,j,k,l)*T3(i,k,l)(" + std::to_string(jj) + ")");
  286                      - (t4(0, jj, 0, 0) * t3_2(0, 0, 0)
  287                         + t4(0, jj, 0, 1) * t3_2(0, 0, 1)
  288                         + t4(0, jj, 0, 2) * t3_2(0, 0, 2)
  289                         + t4(0, jj, 0, 3) * t3_2(0, 0, 3)
  290                         + t4(0, jj, 1, 0) * t3_2(0, 1, 0)
  291                         + t4(0, jj, 1, 1) * t3_2(0, 1, 1)
  292                         + t4(0, jj, 1, 2) * t3_2(0, 1, 2)
  293                         + t4(0, jj, 1, 3) * t3_2(0, 1, 3)
  294                         + t4(0, jj, 2, 0) * t3_2(0, 2, 0)
  295                         + t4(0, jj, 2, 1) * t3_2(0, 2, 1)
  296                         + t4(0, jj, 2, 2) * t3_2(0, 2, 2)
  297                         + t4(0, jj, 2, 3) * t3_2(0, 2, 3)),
  298                    "T3(i,k,l)*T4(i,j,k,l)(" + std::to_string(jj) + ")");
  299    }
  300  {
  302    t3(
j, 
l, 
k) = t3_2(
j, 
k, 
l);
 
  303 
  304    for(int jj = 0; jj < 2; ++jj)
  305      {
  307          (t4(
i, 
j, 
k, 
l) * t3(
i, 
l, 
k))(jj)
 
  308            - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(0, 1, 0)
  309               + t4(0, jj, 0, 2) * t3(0, 2, 0) + t4(0, jj, 0, 3) * t3(0, 3, 0)
  310               + t4(0, jj, 1, 0) * t3(0, 0, 1) + t4(0, jj, 1, 1) * t3(0, 1, 1)
  311               + t4(0, jj, 1, 2) * t3(0, 2, 1) + t4(0, jj, 1, 3) * t3(0, 3, 1)
  312               + t4(0, jj, 2, 0) * t3(0, 0, 2) + t4(0, jj, 2, 1) * t3(0, 1, 2)
  313               + t4(0, jj, 2, 2) * t3(0, 2, 2)
  314               + t4(0, jj, 2, 3) * t3(0, 3, 2)),
  315          "T4(i,j,k,l)*T3(i,l,k)(" + std::to_string(jj) + ")");
  317          (t3(
i, 
l, 
k) * t4(
i, 
j, 
k, 
l))(jj)
 
  318            - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(0, 1, 0)
  319               + t4(0, jj, 0, 2) * t3(0, 2, 0) + t4(0, jj, 0, 3) * t3(0, 3, 0)
  320               + t4(0, jj, 1, 0) * t3(0, 0, 1) + t4(0, jj, 1, 1) * t3(0, 1, 1)
  321               + t4(0, jj, 1, 2) * t3(0, 2, 1) + t4(0, jj, 1, 3) * t3(0, 3, 1)
  322               + t4(0, jj, 2, 0) * t3(0, 0, 2) + t4(0, jj, 2, 1) * t3(0, 1, 2)
  323               + t4(0, jj, 2, 2) * t3(0, 2, 2)
  324               + t4(0, jj, 2, 3) * t3(0, 3, 2)),
  325          "T3(i,l,k)*T4(i,j,k,l)(" + std::to_string(jj) + ")");
  326      }
  327  }
  328  {
  330    t3(
k, 
j, 
l) = t3_2(
j, 
k, 
l);
 
  331 
  332    for(int jj = 0; jj < 2; ++jj)
  333      {
  335          (t4(
i, 
j, 
k, 
l) * t3(
k, 
i, 
l))(jj)
 
  336            - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(0, 0, 1)
  337               + t4(0, jj, 0, 2) * t3(0, 0, 2) + t4(0, jj, 0, 3) * t3(0, 0, 3)
  338               + t4(0, jj, 1, 0) * t3(1, 0, 0) + t4(0, jj, 1, 1) * t3(1, 0, 1)
  339               + t4(0, jj, 1, 2) * t3(1, 0, 2) + t4(0, jj, 1, 3) * t3(1, 0, 3)
  340               + t4(0, jj, 2, 0) * t3(2, 0, 0) + t4(0, jj, 2, 1) * t3(2, 0, 1)
  341               + t4(0, jj, 2, 2) * t3(2, 0, 2)
  342               + t4(0, jj, 2, 3) * t3(2, 0, 3)),
  343          "T4(i,j,k,l)*T3(k,i,l)(" + std::to_string(jj) + ")");
  345          (t3(
k, 
i, 
l) * t4(
i, 
j, 
k, 
l))(jj)
 
  346            - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(0, 0, 1)
  347               + t4(0, jj, 0, 2) * t3(0, 0, 2) + t4(0, jj, 0, 3) * t3(0, 0, 3)
  348               + t4(0, jj, 1, 0) * t3(1, 0, 0) + t4(0, jj, 1, 1) * t3(1, 0, 1)
  349               + t4(0, jj, 1, 2) * t3(1, 0, 2) + t4(0, jj, 1, 3) * t3(1, 0, 3)
  350               + t4(0, jj, 2, 0) * t3(2, 0, 0) + t4(0, jj, 2, 1) * t3(2, 0, 1)
  351               + t4(0, jj, 2, 2) * t3(2, 0, 2)
  352               + t4(0, jj, 2, 3) * t3(2, 0, 3)),
  353          "T3(k,i,l)*T4(i,j,k,l)(" + std::to_string(jj) + ")");
  354      }
  355  }
  356  {
  358    t3(
k, 
l, 
j) = t3_2(
j, 
k, 
l);
 
  359    for(int jj = 0; jj < 2; ++jj)
  360      {
  362          (t4(
i, 
j, 
k, 
l) * t3(
k, 
l, 
i))(jj)
 
  363            - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(0, 1, 0)
  364               + t4(0, jj, 0, 2) * t3(0, 2, 0) + t4(0, jj, 0, 3) * t3(0, 3, 0)
  365               + t4(0, jj, 1, 0) * t3(1, 0, 0) + t4(0, jj, 1, 1) * t3(1, 1, 0)
  366               + t4(0, jj, 1, 2) * t3(1, 2, 0) + t4(0, jj, 1, 3) * t3(1, 3, 0)
  367               + t4(0, jj, 2, 0) * t3(2, 0, 0) + t4(0, jj, 2, 1) * t3(2, 1, 0)
  368               + t4(0, jj, 2, 2) * t3(2, 2, 0)
  369               + t4(0, jj, 2, 3) * t3(2, 3, 0)),
  370          "T4(i,j,k,l)*T3(k,l,i)(" + std::to_string(jj) + ")");
  372          (t3(
k, 
l, 
i) * t4(
i, 
j, 
k, 
l))(jj)
 
  373            - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(0, 1, 0)
  374               + t4(0, jj, 0, 2) * t3(0, 2, 0) + t4(0, jj, 0, 3) * t3(0, 3, 0)
  375               + t4(0, jj, 1, 0) * t3(1, 0, 0) + t4(0, jj, 1, 1) * t3(1, 1, 0)
  376               + t4(0, jj, 1, 2) * t3(1, 2, 0) + t4(0, jj, 1, 3) * t3(1, 3, 0)
  377               + t4(0, jj, 2, 0) * t3(2, 0, 0) + t4(0, jj, 2, 1) * t3(2, 1, 0)
  378               + t4(0, jj, 2, 2) * t3(2, 2, 0)
  379               + t4(0, jj, 2, 3) * t3(2, 3, 0)),
  380          "T3(k,l,i)*T4(i,j,k,l)(" + std::to_string(jj) + ")");
  381      }
  382  }
  383  {
  385    t3(
l, 
j, 
k) = t3_2(
j, 
k, 
l);
 
  386    for(int jj = 0; jj < 2; ++jj)
  387      {
  389          (t4(
i, 
j, 
k, 
l) * t3(
l, 
i, 
k))(jj)
 
  390            - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(1, 0, 0)
  391               + t4(0, jj, 0, 2) * t3(2, 0, 0) + t4(0, jj, 0, 3) * t3(3, 0, 0)
  392               + t4(0, jj, 1, 0) * t3(0, 0, 1) + t4(0, jj, 1, 1) * t3(1, 0, 1)
  393               + t4(0, jj, 1, 2) * t3(2, 0, 1) + t4(0, jj, 1, 3) * t3(3, 0, 1)
  394               + t4(0, jj, 2, 0) * t3(0, 0, 2) + t4(0, jj, 2, 1) * t3(1, 0, 2)
  395               + t4(0, jj, 2, 2) * t3(2, 0, 2)
  396               + t4(0, jj, 2, 3) * t3(3, 0, 2)),
  397          "T4(i,j,k,l)*T3(l,i,k)(" + std::to_string(jj) + ")");
  399          (t3(
l, 
i, 
k) * t4(
i, 
j, 
k, 
l))(jj)
 
  400            - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(1, 0, 0)
  401               + t4(0, jj, 0, 2) * t3(2, 0, 0) + t4(0, jj, 0, 3) * t3(3, 0, 0)
  402               + t4(0, jj, 1, 0) * t3(0, 0, 1) + t4(0, jj, 1, 1) * t3(1, 0, 1)
  403               + t4(0, jj, 1, 2) * t3(2, 0, 1) + t4(0, jj, 1, 3) * t3(3, 0, 1)
  404               + t4(0, jj, 2, 0) * t3(0, 0, 2) + t4(0, jj, 2, 1) * t3(1, 0, 2)
  405               + t4(0, jj, 2, 2) * t3(2, 0, 2)
  406               + t4(0, jj, 2, 3) * t3(3, 0, 2)),
  407          "T3(l,i,k)*T4(i,j,k,l)(" + std::to_string(jj) + ")");
  408      }
  409  }
  410  {
  412    t3(
l, 
k, 
j) = t3_2(
j, 
k, 
l);
 
  413 
  414    for(int jj = 0; jj < 2; ++jj)
  415      {
  417          (t4(
i, 
j, 
k, 
l) * t3(
l, 
k, 
i))(jj)
 
  418            - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(1, 0, 0)
  419               + t4(0, jj, 0, 2) * t3(2, 0, 0) + t4(0, jj, 0, 3) * t3(3, 0, 0)
  420               + t4(0, jj, 1, 0) * t3(0, 1, 0) + t4(0, jj, 1, 1) * t3(1, 1, 0)
  421               + t4(0, jj, 1, 2) * t3(2, 1, 0) + t4(0, jj, 1, 3) * t3(3, 1, 0)
  422               + t4(0, jj, 2, 0) * t3(0, 2, 0) + t4(0, jj, 2, 1) * t3(1, 2, 0)
  423               + t4(0, jj, 2, 2) * t3(2, 2, 0)
  424               + t4(0, jj, 2, 3) * t3(3, 2, 0)),
  425          "T4(i,j,k,l)*T3(l,k,i)(" + std::to_string(jj) + ")");
  427          (t3(
l, 
k, 
i) * t4(
i, 
j, 
k, 
l))(jj)
 
  428            - (t4(0, jj, 0, 0) * t3(0, 0, 0) + t4(0, jj, 0, 1) * t3(1, 0, 0)
  429               + t4(0, jj, 0, 2) * t3(2, 0, 0) + t4(0, jj, 0, 3) * t3(3, 0, 0)
  430               + t4(0, jj, 1, 0) * t3(0, 1, 0) + t4(0, jj, 1, 1) * t3(1, 1, 0)
  431               + t4(0, jj, 1, 2) * t3(2, 1, 0) + t4(0, jj, 1, 3) * t3(3, 1, 0)
  432               + t4(0, jj, 2, 0) * t3(0, 2, 0) + t4(0, jj, 2, 1) * t3(1, 2, 0)
  433               + t4(0, jj, 2, 2) * t3(2, 2, 0)
  434               + t4(0, jj, 2, 3) * t3(3, 2, 0)),
  435          "T3(l,k,i)*T4(i,j,k,l)(" + std::to_string(jj) + ")");
  436      }
  437  }
  438 
  439  for(int kk = 0; kk < 3; ++kk)
  440    {
  442                      - (t4(0, 0, kk, 0) * t3_2(0, 0, 0)
  443                         + t4(0, 0, kk, 1) * t3_2(0, 0, 1)
  444                         + t4(0, 0, kk, 2) * t3_2(0, 0, 2)
  445                         + t4(0, 0, kk, 3) * t3_2(0, 0, 3)
  446                         + t4(0, 1, kk, 0) * t3_2(0, 1, 0)
  447                         + t4(0, 1, kk, 1) * t3_2(0, 1, 1)
  448                         + t4(0, 1, kk, 2) * t3_2(0, 1, 2)
  449                         + t4(0, 1, kk, 3) * t3_2(0, 1, 3)),
  450                    "T4(i,j,k,l)*T3(i,j,l)(" + std::to_string(kk) + ")");
  452                      - (t4(0, 0, kk, 0) * t3_2(0, 0, 0)
  453                         + t4(0, 0, kk, 1) * t3_2(0, 0, 1)
  454                         + t4(0, 0, kk, 2) * t3_2(0, 0, 2)
  455                         + t4(0, 0, kk, 3) * t3_2(0, 0, 3)
  456                         + t4(0, 1, kk, 0) * t3_2(0, 1, 0)
  457                         + t4(0, 1, kk, 1) * t3_2(0, 1, 1)
  458                         + t4(0, 1, kk, 2) * t3_2(0, 1, 2)
  459                         + t4(0, 1, kk, 3) * t3_2(0, 1, 3)),
  460                    "T3(i,j,l)*T4(i,j,k,l)(" + std::to_string(kk) + ")");
  461    }
  462  {
  464    t3(
j, 
l, 
k) = t3_2(
j, 
k, 
l);
 
  465 
  466    for(int kk = 0; kk < 3; ++kk)
  467      {
  469          (t4(
i, 
j, 
k, 
l) * t3(
i, 
l, 
j))(kk)
 
  470            - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(0, 1, 0)
  471               + t4(0, 0, kk, 2) * t3(0, 2, 0) + t4(0, 0, kk, 3) * t3(0, 3, 0)
  472               + t4(0, 1, kk, 0) * t3(0, 0, 1) + t4(0, 1, kk, 1) * t3(0, 1, 1)
  473               + t4(0, 1, kk, 2) * t3(0, 2, 1)
  474               + t4(0, 1, kk, 3) * t3(0, 3, 1)),
  475          "T4(i,j,k,l)*T3(i,l,j)(" + std::to_string(kk) + ")");
  477          (t3(
i, 
l, 
j) * t4(
i, 
j, 
k, 
l))(kk)
 
  478            - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(0, 1, 0)
  479               + t4(0, 0, kk, 2) * t3(0, 2, 0) + t4(0, 0, kk, 3) * t3(0, 3, 0)
  480               + t4(0, 1, kk, 0) * t3(0, 0, 1) + t4(0, 1, kk, 1) * t3(0, 1, 1)
  481               + t4(0, 1, kk, 2) * t3(0, 2, 1)
  482               + t4(0, 1, kk, 3) * t3(0, 3, 1)),
  483          "T3(i,l,j)*T4(i,j,k,l)(" + std::to_string(kk) + ")");
  484      }
  485  }
  486  {
  488    t3(
k, 
j, 
l) = t3_2(
j, 
k, 
l);
 
  489 
  490    for(int kk = 0; kk < 3; ++kk)
  491      {
  493          (t4(
i, 
j, 
k, 
l) * t3(
j, 
i, 
l))(kk)
 
  494            - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(0, 0, 1)
  495               + t4(0, 0, kk, 2) * t3(0, 0, 2) + t4(0, 0, kk, 3) * t3(0, 0, 3)
  496               + t4(0, 1, kk, 0) * t3(1, 0, 0) + t4(0, 1, kk, 1) * t3(1, 0, 1)
  497               + t4(0, 1, kk, 2) * t3(1, 0, 2)
  498               + t4(0, 1, kk, 3) * t3(1, 0, 3)),
  499          "T4(i,j,k,l)*T3(j,i,l)(" + std::to_string(kk) + ")");
  501          (t3(
j, 
i, 
l) * t4(
i, 
j, 
k, 
l))(kk)
 
  502            - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(0, 0, 1)
  503               + t4(0, 0, kk, 2) * t3(0, 0, 2) + t4(0, 0, kk, 3) * t3(0, 0, 3)
  504               + t4(0, 1, kk, 0) * t3(1, 0, 0) + t4(0, 1, kk, 1) * t3(1, 0, 1)
  505               + t4(0, 1, kk, 2) * t3(1, 0, 2)
  506               + t4(0, 1, kk, 3) * t3(1, 0, 3)),
  507          "T3(j,i,l)*T4(i,j,k,l)(" + std::to_string(kk) + ")");
  508      }
  509  }
  510  {
  512    t3(
k, 
l, 
j) = t3_2(
j, 
k, 
l);
 
  513    for(int kk = 0; kk < 3; ++kk)
  514      {
  516          (t4(
i, 
j, 
k, 
l) * t3(
j, 
l, 
i))(kk)
 
  517            - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(0, 1, 0)
  518               + t4(0, 0, kk, 2) * t3(0, 2, 0) + t4(0, 0, kk, 3) * t3(0, 3, 0)
  519               + t4(0, 1, kk, 0) * t3(1, 0, 0) + t4(0, 1, kk, 1) * t3(1, 1, 0)
  520               + t4(0, 1, kk, 2) * t3(1, 2, 0)
  521               + t4(0, 1, kk, 3) * t3(1, 3, 0)),
  522          "T4(i,j,k,l)*T3(j,l,i)(" + std::to_string(kk) + ")");
  524          (t3(
j, 
l, 
i) * t4(
i, 
j, 
k, 
l))(kk)
 
  525            - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(0, 1, 0)
  526               + t4(0, 0, kk, 2) * t3(0, 2, 0) + t4(0, 0, kk, 3) * t3(0, 3, 0)
  527               + t4(0, 1, kk, 0) * t3(1, 0, 0) + t4(0, 1, kk, 1) * t3(1, 1, 0)
  528               + t4(0, 1, kk, 2) * t3(1, 2, 0)
  529               + t4(0, 1, kk, 3) * t3(1, 3, 0)),
  530          "T3(j,l,i)*T4(i,j,k,l)(" + std::to_string(kk) + ")");
  531      }
  532  }
  533  {
  535    t3(
l, 
j, 
k) = t3_2(
j, 
k, 
l);
 
  536    for(int kk = 0; kk < 3; ++kk)
  537      {
  539          (t4(
i, 
j, 
k, 
l) * t3(
l, 
i, 
j))(kk)
 
  540            - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(1, 0, 0)
  541               + t4(0, 0, kk, 2) * t3(2, 0, 0) + t4(0, 0, kk, 3) * t3(3, 0, 0)
  542               + t4(0, 1, kk, 0) * t3(0, 0, 1) + t4(0, 1, kk, 1) * t3(1, 0, 1)
  543               + t4(0, 1, kk, 2) * t3(2, 0, 1)
  544               + t4(0, 1, kk, 3) * t3(3, 0, 1)),
  545          "T4(i,j,k,l)*T3(l,i,j)(" + std::to_string(kk) + ")");
  547          (t3(
l, 
i, 
j) * t4(
i, 
j, 
k, 
l))(kk)
 
  548            - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(1, 0, 0)
  549               + t4(0, 0, kk, 2) * t3(2, 0, 0) + t4(0, 0, kk, 3) * t3(3, 0, 0)
  550               + t4(0, 1, kk, 0) * t3(0, 0, 1) + t4(0, 1, kk, 1) * t3(1, 0, 1)
  551               + t4(0, 1, kk, 2) * t3(2, 0, 1)
  552               + t4(0, 1, kk, 3) * t3(3, 0, 1)),
  553          "T3(l,i,j)*T4(i,j,k,l)(" + std::to_string(kk) + ")");
  554      }
  555  }
  556  {
  558    t3(
l, 
k, 
j) = t3_2(
j, 
k, 
l);
 
  559 
  560    for(int kk = 0; kk < 3; ++kk)
  561      {
  563          (t4(
i, 
j, 
k, 
l) * t3(
l, 
j, 
i))(kk)
 
  564            - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(1, 0, 0)
  565               + t4(0, 0, kk, 2) * t3(2, 0, 0) + t4(0, 0, kk, 3) * t3(3, 0, 0)
  566               + t4(0, 1, kk, 0) * t3(0, 1, 0) + t4(0, 1, kk, 1) * t3(1, 1, 0)
  567               + t4(0, 1, kk, 2) * t3(2, 1, 0)
  568               + t4(0, 1, kk, 3) * t3(3, 1, 0)),
  569          "T4(i,j,k,l)*T3(l,j,i)(" + std::to_string(kk) + ")");
  571          (t3(
l, 
j, 
i) * t4(
i, 
j, 
k, 
l))(kk)
 
  572            - (t4(0, 0, kk, 0) * t3(0, 0, 0) + t4(0, 0, kk, 1) * t3(1, 0, 0)
  573               + t4(0, 0, kk, 2) * t3(2, 0, 0) + t4(0, 0, kk, 3) * t3(3, 0, 0)
  574               + t4(0, 1, kk, 0) * t3(0, 1, 0) + t4(0, 1, kk, 1) * t3(1, 1, 0)
  575               + t4(0, 1, kk, 2) * t3(2, 1, 0)
  576               + t4(0, 1, kk, 3) * t3(3, 1, 0)),
  577          "T3(l,j,i)*T4(i,j,k,l)(" + std::to_string(kk) + ")");
  578      }
  579  }
  580 
  581 
  582 
  583  for(int ll = 0; ll < 4; ++ll)
  584    {
  586                      - (t4(0, 0, 0, ll) * t3_2(0, 0, 0)
  587                         + t4(0, 0, 1, ll) * t3_2(0, 0, 1)
  588                         + t4(0, 0, 2, ll) * t3_2(0, 0, 2)
  589                         + t4(0, 1, 0, ll) * t3_2(0, 1, 0)
  590                         + t4(0, 1, 1, ll) * t3_2(0, 1, 1)
  591                         + t4(0, 1, 2, ll) * t3_2(0, 1, 2)),
  592                    "T4(i,j,k,l)*T3(i,j,k)(" + std::to_string(ll) + ")");
  594                      - (t4(0, 0, 0, ll) * t3_2(0, 0, 0)
  595                         + t4(0, 0, 1, ll) * t3_2(0, 0, 1)
  596                         + t4(0, 0, 2, ll) * t3_2(0, 0, 2)
  597                         + t4(0, 1, 0, ll) * t3_2(0, 1, 0)
  598                         + t4(0, 1, 1, ll) * t3_2(0, 1, 1)
  599                         + t4(0, 1, 2, ll) * t3_2(0, 1, 2)),
  600                    "T3(i,j,k)*T4(i,j,k,l)(" + std::to_string(ll) + ")");
  601    }
  602  {
  604    t3(
j, 
l, 
k) = t3_2(
j, 
k, 
l);
 
  605 
  606    for(int ll = 0; ll < 4; ++ll)
  607      {
  609          (t4(
i, 
j, 
k, 
l) * t3(
i, 
k, 
j))(ll)
 
  610            - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(0, 1, 0)
  611               + t4(0, 0, 2, ll) * t3(0, 2, 0) + t4(0, 1, 0, ll) * t3(0, 0, 1)
  612               + t4(0, 1, 1, ll) * t3(0, 1, 1)
  613               + t4(0, 1, 2, ll) * t3(0, 2, 1)),
  614          "T4(i,j,k,l)*T3(i,k,j)(" + std::to_string(ll) + ")");
  616          (t3(
i, 
k, 
j) * t4(
i, 
j, 
k, 
l))(ll)
 
  617            - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(0, 1, 0)
  618               + t4(0, 0, 2, ll) * t3(0, 2, 0) + t4(0, 1, 0, ll) * t3(0, 0, 1)
  619               + t4(0, 1, 1, ll) * t3(0, 1, 1)
  620               + t4(0, 1, 2, ll) * t3(0, 2, 1)),
  621          "T3(i,k,j)*T4(i,j,k,l)(" + std::to_string(ll) + ")");
  622      }
  623  }
  624  {
  626    t3(
k, 
j, 
l) = t3_2(
j, 
k, 
l);
 
  627 
  628    for(int ll = 0; ll < 4; ++ll)
  629      {
  631          (t4(
i, 
j, 
k, 
l) * t3(
j, 
i, 
k))(ll)
 
  632            - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(0, 0, 1)
  633               + t4(0, 0, 2, ll) * t3(0, 0, 2) + t4(0, 1, 0, ll) * t3(1, 0, 0)
  634               + t4(0, 1, 1, ll) * t3(1, 0, 1)
  635               + t4(0, 1, 2, ll) * t3(1, 0, 2)),
  636          "T4(i,j,k,l)*T3(j,i,k)(" + std::to_string(ll) + ")");
  638          (t3(
j, 
i, 
k) * t4(
i, 
j, 
k, 
l))(ll)
 
  639            - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(0, 0, 1)
  640               + t4(0, 0, 2, ll) * t3(0, 0, 2) + t4(0, 1, 0, ll) * t3(1, 0, 0)
  641               + t4(0, 1, 1, ll) * t3(1, 0, 1)
  642               + t4(0, 1, 2, ll) * t3(1, 0, 2)),
  643          "T3(j,i,k)*T4(i,j,k,l)(" + std::to_string(ll) + ")");
  644      }
  645  }
  646  {
  648    t3(
k, 
l, 
j) = t3_2(
j, 
k, 
l);
 
  649    for(int ll = 0; ll < 4; ++ll)
  650      {
  652          (t4(
i, 
j, 
k, 
l) * t3(
j, 
k, 
i))(ll)
 
  653            - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(0, 1, 0)
  654               + t4(0, 0, 2, ll) * t3(0, 2, 0) + t4(0, 1, 0, ll) * t3(1, 0, 0)
  655               + t4(0, 1, 1, ll) * t3(1, 1, 0)
  656               + t4(0, 1, 2, ll) * t3(1, 2, 0)),
  657          "T4(i,j,k,l)*T3(j,k,i)(" + std::to_string(ll) + ")");
  659          (t3(
j, 
k, 
i) * t4(
i, 
j, 
k, 
l))(ll)
 
  660            - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(0, 1, 0)
  661               + t4(0, 0, 2, ll) * t3(0, 2, 0) + t4(0, 1, 0, ll) * t3(1, 0, 0)
  662               + t4(0, 1, 1, ll) * t3(1, 1, 0)
  663               + t4(0, 1, 2, ll) * t3(1, 2, 0)),
  664          "T3(j,k,i)*T4(i,j,k,l)(" + std::to_string(ll) + ")");
  665      }
  666  }
  667  {
  669    t3(
l, 
j, 
k) = t3_2(
j, 
k, 
l);
 
  670    for(int ll = 0; ll < 4; ++ll)
  671      {
  673          (t4(
i, 
j, 
k, 
l) * t3(
k, 
i, 
j))(ll)
 
  674            - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(1, 0, 0)
  675               + t4(0, 0, 2, ll) * t3(2, 0, 0) + t4(0, 1, 0, ll) * t3(0, 0, 1)
  676               + t4(0, 1, 1, ll) * t3(1, 0, 1)
  677               + t4(0, 1, 2, ll) * t3(2, 0, 1)),
  678          "T4(i,j,k,l)*T3(k,i,j)(" + std::to_string(ll) + ")");
  680          (t3(
k, 
i, 
j) * t4(
i, 
j, 
k, 
l))(ll)
 
  681            - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(1, 0, 0)
  682               + t4(0, 0, 2, ll) * t3(2, 0, 0) + t4(0, 1, 0, ll) * t3(0, 0, 1)
  683               + t4(0, 1, 1, ll) * t3(1, 0, 1)
  684               + t4(0, 1, 2, ll) * t3(2, 0, 1)),
  685          "T3(k,i,j)*T4(i,j,k,l)(" + std::to_string(ll) + ")");
  686      }
  687  }
  688  {
  690    t3(
l, 
k, 
j) = t3_2(
j, 
k, 
l);
 
  691 
  692    for(int ll = 0; ll < 4; ++ll)
  693      {
  695          (t4(
i, 
j, 
k, 
l) * t3(
k, 
j, 
i))(ll)
 
  696            - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(1, 0, 0)
  697               + t4(0, 0, 2, ll) * t3(2, 0, 0) + t4(0, 1, 0, ll) * t3(0, 1, 0)
  698               + t4(0, 1, 1, ll) * t3(1, 1, 0)
  699               + t4(0, 1, 2, ll) * t3(2, 1, 0)),
  700          "T4(i,j,k,l)*T3(k,j,i)(" + std::to_string(ll) + ")");
  702          (t3(
k, 
j, 
i) * t4(
i, 
j, 
k, 
l))(ll)
 
  703            - (t4(0, 0, 0, ll) * t3(0, 0, 0) + t4(0, 0, 1, ll) * t3(1, 0, 0)
  704               + t4(0, 0, 2, ll) * t3(2, 0, 0) + t4(0, 1, 0, ll) * t3(0, 1, 0)
  705               + t4(0, 1, 1, ll) * t3(1, 1, 0)
  706               + t4(0, 1, 2, ll) * t3(2, 1, 0)),
  707          "T3(k,j,i)*T4(i,j,k,l)(" + std::to_string(ll) + ")");
  708      }
  709  }
  710}
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)