Advertisement
bartekltg

sortowanie siecią

Oct 14th, 2012
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 48.48 KB | None | 0 0
  1. inline void ifswap(int &a,int&b)
  2. {
  3.     if (a>b) std::swap(a,b);
  4. }
  5.  
  6. void sort_net(int *tabl,int first,int last)
  7. {
  8.     int *t=tabl+first;
  9.     switch(last-first + 1)
  10.     {
  11.         case 1:
  12.         break;
  13.         case 2:
  14.         ifswap(t[0],t[1]);
  15.         break;
  16.         case 3:
  17.         ifswap(t[1],t[2]);ifswap(t[0],t[2]);ifswap(t[0],t[1]);
  18.         break;
  19.         case 4:
  20.         ifswap(t[0],t[1]);ifswap(t[2],t[3]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[1],t[2]);
  21.         break;
  22.         case 5:
  23.         ifswap(t[0],t[1]);ifswap(t[3],t[4]);ifswap(t[2],t[4]);ifswap(t[2],t[3]);ifswap(t[1],t[4]);ifswap(t[0],t[3]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[1],t[2]);
  24.         break;
  25.         case 6:
  26.         ifswap(t[1],t[2]);ifswap(t[4],t[5]);ifswap(t[0],t[2]);ifswap(t[3],t[5]);ifswap(t[0],t[1]);ifswap(t[3],t[4]);ifswap(t[2],t[5]);ifswap(t[0],t[3]);ifswap(t[1],t[4]);ifswap(t[2],t[4]);ifswap(t[1],t[3]);ifswap(t[2],t[3]);
  27.         break;
  28.         case 7:
  29.         ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[0],t[2]);ifswap(t[3],t[5]);ifswap(t[4],t[6]);ifswap(t[0],t[1]);ifswap(t[4],t[5]);ifswap(t[2],t[6]);ifswap(t[0],t[4]);ifswap(t[1],t[5]);ifswap(t[0],t[3]);ifswap(t[2],t[5]);ifswap(t[1],t[3]);ifswap(t[2],t[4]);ifswap(t[2],t[3]);
  30.         break;
  31.         case 8:
  32.         ifswap(t[0],t[1]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[4],t[6]);ifswap(t[5],t[7]);ifswap(t[1],t[2]);ifswap(t[5],t[6]);ifswap(t[0],t[4]);ifswap(t[3],t[7]);ifswap(t[1],t[5]);ifswap(t[2],t[6]);ifswap(t[1],t[4]);ifswap(t[3],t[6]);ifswap(t[2],t[4]);ifswap(t[3],t[5]);ifswap(t[3],t[4]);
  33.         break;
  34.         case 9:
  35.         ifswap(t[0],t[1]);ifswap(t[3],t[4]);ifswap(t[6],t[7]);ifswap(t[1],t[2]);ifswap(t[4],t[5]);ifswap(t[7],t[8]);ifswap(t[0],t[1]);ifswap(t[3],t[4]);ifswap(t[6],t[7]);ifswap(t[2],t[5]);ifswap(t[0],t[3]);ifswap(t[1],t[4]);ifswap(t[5],t[8]);ifswap(t[3],t[6]);ifswap(t[4],t[7]);ifswap(t[2],t[5]);ifswap(t[0],t[3]);ifswap(t[1],t[4]);ifswap(t[5],t[7]);ifswap(t[2],t[6]);ifswap(t[1],t[3]);ifswap(t[4],t[6]);ifswap(t[2],t[4]);ifswap(t[5],t[6]);ifswap(t[2],t[3]);
  36.         break;
  37.         case 10:
  38.         ifswap(t[4],t[9]);ifswap(t[3],t[8]);ifswap(t[2],t[7]);ifswap(t[1],t[6]);ifswap(t[0],t[5]);ifswap(t[1],t[4]);ifswap(t[6],t[9]);ifswap(t[0],t[3]);ifswap(t[5],t[8]);ifswap(t[0],t[2]);ifswap(t[3],t[6]);ifswap(t[7],t[9]);ifswap(t[0],t[1]);ifswap(t[2],t[4]);ifswap(t[5],t[7]);ifswap(t[8],t[9]);ifswap(t[1],t[2]);ifswap(t[4],t[6]);ifswap(t[7],t[8]);ifswap(t[3],t[5]);ifswap(t[2],t[5]);ifswap(t[6],t[8]);ifswap(t[1],t[3]);ifswap(t[4],t[7]);ifswap(t[2],t[3]);ifswap(t[6],t[7]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[4],t[5]);
  39.         break;
  40.         case 11:
  41.         ifswap(t[0],t[1]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[1],t[3]);ifswap(t[5],t[7]);ifswap(t[0],t[2]);ifswap(t[4],t[6]);ifswap(t[8],t[10]);ifswap(t[1],t[2]);ifswap(t[5],t[6]);ifswap(t[9],t[10]);ifswap(t[0],t[4]);ifswap(t[3],t[7]);ifswap(t[1],t[5]);ifswap(t[6],t[10]);ifswap(t[4],t[8]);ifswap(t[5],t[9]);ifswap(t[2],t[6]);ifswap(t[0],t[4]);ifswap(t[3],t[8]);ifswap(t[1],t[5]);ifswap(t[6],t[10]);ifswap(t[2],t[3]);ifswap(t[8],t[9]);ifswap(t[1],t[4]);ifswap(t[7],t[10]);ifswap(t[3],t[5]);ifswap(t[6],t[8]);ifswap(t[2],t[4]);ifswap(t[7],t[9]);ifswap(t[5],t[6]);ifswap(t[3],t[4]);ifswap(t[7],t[8]);
  42.         break;
  43.         case 12:
  44.         ifswap(t[0],t[1]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[1],t[3]);ifswap(t[5],t[7]);ifswap(t[9],t[11]);ifswap(t[0],t[2]);ifswap(t[4],t[6]);ifswap(t[8],t[10]);ifswap(t[1],t[2]);ifswap(t[5],t[6]);ifswap(t[9],t[10]);ifswap(t[0],t[4]);ifswap(t[7],t[11]);ifswap(t[1],t[5]);ifswap(t[6],t[10]);ifswap(t[3],t[7]);ifswap(t[4],t[8]);ifswap(t[5],t[9]);ifswap(t[2],t[6]);ifswap(t[0],t[4]);ifswap(t[7],t[11]);ifswap(t[3],t[8]);ifswap(t[1],t[5]);ifswap(t[6],t[10]);ifswap(t[2],t[3]);ifswap(t[8],t[9]);ifswap(t[1],t[4]);ifswap(t[7],t[10]);ifswap(t[3],t[5]);ifswap(t[6],t[8]);ifswap(t[2],t[4]);ifswap(t[7],t[9]);ifswap(t[5],t[6]);ifswap(t[3],t[4]);ifswap(t[7],t[8]);
  45.         break;
  46.         case 13:
  47.         ifswap(t[1],t[7]);ifswap(t[9],t[11]);ifswap(t[3],t[4]);ifswap(t[5],t[8]);ifswap(t[0],t[12]);ifswap(t[2],t[6]);ifswap(t[0],t[1]);ifswap(t[2],t[3]);ifswap(t[4],t[6]);ifswap(t[8],t[11]);ifswap(t[7],t[12]);ifswap(t[5],t[9]);ifswap(t[0],t[2]);ifswap(t[3],t[7]);ifswap(t[10],t[11]);ifswap(t[1],t[4]);ifswap(t[6],t[12]);ifswap(t[7],t[8]);ifswap(t[11],t[12]);ifswap(t[4],t[9]);ifswap(t[6],t[10]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[1],t[7]);ifswap(t[2],t[6]);ifswap(t[9],t[11]);ifswap(t[1],t[3]);ifswap(t[4],t[7]);ifswap(t[8],t[10]);ifswap(t[0],t[5]);ifswap(t[2],t[5]);ifswap(t[6],t[8]);ifswap(t[9],t[10]);ifswap(t[1],t[2]);ifswap(t[3],t[5]);ifswap(t[7],t[8]);ifswap(t[4],t[6]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);
  48.         break;
  49.         case 14:
  50.         ifswap(t[0],t[1]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[0],t[2]);ifswap(t[4],t[6]);ifswap(t[8],t[10]);ifswap(t[1],t[3]);ifswap(t[5],t[7]);ifswap(t[9],t[11]);ifswap(t[0],t[4]);ifswap(t[8],t[12]);ifswap(t[1],t[5]);ifswap(t[9],t[13]);ifswap(t[2],t[6]);ifswap(t[3],t[7]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[5],t[10]);ifswap(t[6],t[9]);ifswap(t[3],t[12]);ifswap(t[7],t[11]);ifswap(t[1],t[2]);ifswap(t[4],t[8]);ifswap(t[1],t[4]);ifswap(t[7],t[13]);ifswap(t[2],t[8]);ifswap(t[5],t[6]);ifswap(t[9],t[10]);ifswap(t[2],t[4]);ifswap(t[11],t[13]);ifswap(t[3],t[8]);ifswap(t[7],t[12]);ifswap(t[6],t[8]);ifswap(t[10],t[12]);ifswap(t[3],t[5]);ifswap(t[7],t[9]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);
  51.         break;
  52.         case 15:
  53.         ifswap(t[0],t[1]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[0],t[2]);ifswap(t[4],t[6]);ifswap(t[8],t[10]);ifswap(t[12],t[14]);ifswap(t[1],t[3]);ifswap(t[5],t[7]);ifswap(t[9],t[11]);ifswap(t[0],t[4]);ifswap(t[8],t[12]);ifswap(t[1],t[5]);ifswap(t[9],t[13]);ifswap(t[2],t[6]);ifswap(t[10],t[14]);ifswap(t[3],t[7]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[5],t[10]);ifswap(t[6],t[9]);ifswap(t[3],t[12]);ifswap(t[13],t[14]);ifswap(t[7],t[11]);ifswap(t[1],t[2]);ifswap(t[4],t[8]);ifswap(t[1],t[4]);ifswap(t[7],t[13]);ifswap(t[2],t[8]);ifswap(t[11],t[14]);ifswap(t[5],t[6]);ifswap(t[9],t[10]);ifswap(t[2],t[4]);ifswap(t[11],t[13]);ifswap(t[3],t[8]);ifswap(t[7],t[12]);ifswap(t[6],t[8]);ifswap(t[10],t[12]);ifswap(t[3],t[5]);ifswap(t[7],t[9]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);
  54.         break;
  55.         case 16:
  56.         ifswap(t[0],t[1]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[0],t[2]);ifswap(t[4],t[6]);ifswap(t[8],t[10]);ifswap(t[12],t[14]);ifswap(t[1],t[3]);ifswap(t[5],t[7]);ifswap(t[9],t[11]);ifswap(t[13],t[15]);ifswap(t[0],t[4]);ifswap(t[8],t[12]);ifswap(t[1],t[5]);ifswap(t[9],t[13]);ifswap(t[2],t[6]);ifswap(t[10],t[14]);ifswap(t[3],t[7]);ifswap(t[11],t[15]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[7],t[15]);ifswap(t[5],t[10]);ifswap(t[6],t[9]);ifswap(t[3],t[12]);ifswap(t[13],t[14]);ifswap(t[7],t[11]);ifswap(t[1],t[2]);ifswap(t[4],t[8]);ifswap(t[1],t[4]);ifswap(t[7],t[13]);ifswap(t[2],t[8]);ifswap(t[11],t[14]);ifswap(t[5],t[6]);ifswap(t[9],t[10]);ifswap(t[2],t[4]);ifswap(t[11],t[13]);ifswap(t[3],t[8]);ifswap(t[7],t[12]);ifswap(t[6],t[8]);ifswap(t[10],t[12]);ifswap(t[3],t[5]);ifswap(t[7],t[9]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);
  57.         break;
  58.         case 17:
  59.         ifswap(t[0],t[16]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[7],t[15]);ifswap(t[0],t[8]);ifswap(t[1],t[5]);ifswap(t[2],t[6]);ifswap(t[3],t[7]);ifswap(t[9],t[13]);ifswap(t[10],t[14]);ifswap(t[11],t[15]);ifswap(t[8],t[16]);ifswap(t[0],t[4]);ifswap(t[5],t[9]);ifswap(t[6],t[10]);ifswap(t[7],t[11]);ifswap(t[1],t[3]);ifswap(t[13],t[15]);ifswap(t[8],t[12]);ifswap(t[4],t[16]);ifswap(t[0],t[2]);ifswap(t[5],t[7]);ifswap(t[9],t[11]);ifswap(t[4],t[8]);ifswap(t[12],t[16]);ifswap(t[3],t[9]);ifswap(t[7],t[13]);ifswap(t[0],t[1]);ifswap(t[4],t[6]);ifswap(t[8],t[10]);ifswap(t[12],t[14]);ifswap(t[2],t[16]);ifswap(t[3],t[5]);ifswap(t[7],t[9]);ifswap(t[11],t[13]);ifswap(t[2],t[8]);ifswap(t[6],t[12]);ifswap(t[10],t[16]);ifswap(t[2],t[4]);ifswap(t[6],t[8]);ifswap(t[10],t[12]);ifswap(t[14],t[16]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[1],t[16]);ifswap(t[1],t[8]);ifswap(t[3],t[10]);ifswap(t[5],t[12]);ifswap(t[7],t[14]);ifswap(t[9],t[16]);ifswap(t[1],t[4]);ifswap(t[3],t[6]);ifswap(t[5],t[8]);ifswap(t[7],t[10]);ifswap(t[9],t[12]);ifswap(t[11],t[14]);ifswap(t[13],t[16]);ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[13],t[14]);ifswap(t[15],t[16]);
  60.         break;
  61.         case 18:
  62.         ifswap(t[0],t[16]);ifswap(t[1],t[17]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[7],t[15]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[6]);ifswap(t[3],t[7]);ifswap(t[10],t[14]);ifswap(t[11],t[15]);ifswap(t[8],t[16]);ifswap(t[9],t[17]);ifswap(t[0],t[4]);ifswap(t[1],t[5]);ifswap(t[6],t[10]);ifswap(t[7],t[11]);ifswap(t[8],t[12]);ifswap(t[9],t[13]);ifswap(t[4],t[16]);ifswap(t[5],t[17]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[4],t[8]);ifswap(t[5],t[9]);ifswap(t[12],t[16]);ifswap(t[13],t[17]);ifswap(t[0],t[1]);ifswap(t[4],t[6]);ifswap(t[5],t[7]);ifswap(t[8],t[10]);ifswap(t[9],t[11]);ifswap(t[12],t[14]);ifswap(t[13],t[15]);ifswap(t[2],t[16]);ifswap(t[3],t[17]);ifswap(t[2],t[8]);ifswap(t[3],t[9]);ifswap(t[6],t[12]);ifswap(t[7],t[13]);ifswap(t[10],t[16]);ifswap(t[11],t[17]);ifswap(t[2],t[4]);ifswap(t[3],t[5]);ifswap(t[6],t[8]);ifswap(t[7],t[9]);ifswap(t[10],t[12]);ifswap(t[11],t[13]);ifswap(t[14],t[16]);ifswap(t[15],t[17]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[16],t[17]);ifswap(t[1],t[16]);ifswap(t[3],t[10]);ifswap(t[5],t[12]);ifswap(t[7],t[14]);ifswap(t[1],t[8]);ifswap(t[9],t[16]);ifswap(t[3],t[6]);ifswap(t[7],t[10]);ifswap(t[11],t[14]);ifswap(t[1],t[4]);ifswap(t[5],t[8]);ifswap(t[9],t[12]);ifswap(t[13],t[16]);ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[13],t[14]);ifswap(t[15],t[16]);
  63.         break;
  64.         case 19:
  65.         ifswap(t[0],t[16]);ifswap(t[1],t[17]);ifswap(t[2],t[18]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[7],t[15]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[7]);ifswap(t[11],t[15]);ifswap(t[8],t[16]);ifswap(t[9],t[17]);ifswap(t[10],t[18]);ifswap(t[0],t[4]);ifswap(t[1],t[5]);ifswap(t[2],t[6]);ifswap(t[7],t[11]);ifswap(t[8],t[12]);ifswap(t[9],t[13]);ifswap(t[10],t[14]);ifswap(t[4],t[16]);ifswap(t[5],t[17]);ifswap(t[6],t[18]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[4],t[8]);ifswap(t[5],t[9]);ifswap(t[6],t[10]);ifswap(t[12],t[16]);ifswap(t[13],t[17]);ifswap(t[14],t[18]);ifswap(t[0],t[1]);ifswap(t[4],t[6]);ifswap(t[5],t[7]);ifswap(t[8],t[10]);ifswap(t[9],t[11]);ifswap(t[12],t[14]);ifswap(t[13],t[15]);ifswap(t[16],t[18]);ifswap(t[3],t[17]);ifswap(t[2],t[16]);ifswap(t[3],t[9]);ifswap(t[6],t[12]);ifswap(t[7],t[13]);ifswap(t[11],t[17]);ifswap(t[2],t[8]);ifswap(t[10],t[16]);ifswap(t[3],t[5]);ifswap(t[7],t[9]);ifswap(t[11],t[13]);ifswap(t[15],t[17]);ifswap(t[2],t[4]);ifswap(t[6],t[8]);ifswap(t[10],t[12]);ifswap(t[14],t[16]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[16],t[17]);ifswap(t[1],t[16]);ifswap(t[3],t[18]);ifswap(t[5],t[12]);ifswap(t[7],t[14]);ifswap(t[1],t[8]);ifswap(t[3],t[10]);ifswap(t[9],t[16]);ifswap(t[11],t[18]);ifswap(t[1],t[4]);ifswap(t[3],t[6]);ifswap(t[5],t[8]);ifswap(t[7],t[10]);ifswap(t[9],t[12]);ifswap(t[11],t[14]);ifswap(t[13],t[16]);ifswap(t[15],t[18]);ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[13],t[14]);ifswap(t[15],t[16]);ifswap(t[17],t[18]);
  66.         break;
  67.         case 20:
  68.         ifswap(t[0],t[16]);ifswap(t[1],t[17]);ifswap(t[2],t[18]);ifswap(t[3],t[19]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[7],t[15]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[8],t[16]);ifswap(t[9],t[17]);ifswap(t[10],t[18]);ifswap(t[11],t[19]);ifswap(t[0],t[4]);ifswap(t[1],t[5]);ifswap(t[2],t[6]);ifswap(t[3],t[7]);ifswap(t[8],t[12]);ifswap(t[9],t[13]);ifswap(t[10],t[14]);ifswap(t[11],t[15]);ifswap(t[4],t[16]);ifswap(t[5],t[17]);ifswap(t[6],t[18]);ifswap(t[7],t[19]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[4],t[8]);ifswap(t[5],t[9]);ifswap(t[6],t[10]);ifswap(t[7],t[11]);ifswap(t[12],t[16]);ifswap(t[13],t[17]);ifswap(t[14],t[18]);ifswap(t[15],t[19]);ifswap(t[0],t[1]);ifswap(t[4],t[6]);ifswap(t[5],t[7]);ifswap(t[8],t[10]);ifswap(t[9],t[11]);ifswap(t[12],t[14]);ifswap(t[13],t[15]);ifswap(t[16],t[18]);ifswap(t[17],t[19]);ifswap(t[2],t[16]);ifswap(t[3],t[17]);ifswap(t[6],t[12]);ifswap(t[7],t[13]);ifswap(t[18],t[19]);ifswap(t[2],t[8]);ifswap(t[3],t[9]);ifswap(t[10],t[16]);ifswap(t[11],t[17]);ifswap(t[2],t[4]);ifswap(t[3],t[5]);ifswap(t[6],t[8]);ifswap(t[7],t[9]);ifswap(t[10],t[12]);ifswap(t[11],t[13]);ifswap(t[14],t[16]);ifswap(t[15],t[17]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[16],t[17]);ifswap(t[1],t[16]);ifswap(t[3],t[18]);ifswap(t[5],t[12]);ifswap(t[7],t[14]);ifswap(t[1],t[8]);ifswap(t[3],t[10]);ifswap(t[9],t[16]);ifswap(t[11],t[18]);ifswap(t[1],t[4]);ifswap(t[3],t[6]);ifswap(t[5],t[8]);ifswap(t[7],t[10]);ifswap(t[9],t[12]);ifswap(t[11],t[14]);ifswap(t[13],t[16]);ifswap(t[15],t[18]);ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[13],t[14]);ifswap(t[15],t[16]);ifswap(t[17],t[18]);
  69.         break;
  70.         case 21:
  71.         ifswap(t[0],t[16]);ifswap(t[1],t[17]);ifswap(t[2],t[18]);ifswap(t[3],t[19]);ifswap(t[4],t[20]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[7],t[15]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[8],t[16]);ifswap(t[9],t[17]);ifswap(t[10],t[18]);ifswap(t[11],t[19]);ifswap(t[12],t[20]);ifswap(t[0],t[4]);ifswap(t[1],t[5]);ifswap(t[2],t[6]);ifswap(t[3],t[7]);ifswap(t[8],t[12]);ifswap(t[9],t[13]);ifswap(t[10],t[14]);ifswap(t[11],t[15]);ifswap(t[16],t[20]);ifswap(t[5],t[17]);ifswap(t[6],t[18]);ifswap(t[7],t[19]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[4],t[16]);ifswap(t[5],t[9]);ifswap(t[6],t[10]);ifswap(t[7],t[11]);ifswap(t[13],t[17]);ifswap(t[14],t[18]);ifswap(t[15],t[19]);ifswap(t[0],t[1]);ifswap(t[4],t[8]);ifswap(t[12],t[16]);ifswap(t[5],t[7]);ifswap(t[9],t[11]);ifswap(t[13],t[15]);ifswap(t[17],t[19]);ifswap(t[4],t[6]);ifswap(t[8],t[10]);ifswap(t[12],t[14]);ifswap(t[16],t[18]);ifswap(t[3],t[17]);ifswap(t[7],t[13]);ifswap(t[2],t[16]);ifswap(t[6],t[20]);ifswap(t[3],t[9]);ifswap(t[11],t[17]);ifswap(t[2],t[8]);ifswap(t[6],t[12]);ifswap(t[10],t[16]);ifswap(t[14],t[20]);ifswap(t[3],t[5]);ifswap(t[7],t[9]);ifswap(t[11],t[13]);ifswap(t[15],t[17]);ifswap(t[2],t[4]);ifswap(t[6],t[8]);ifswap(t[10],t[12]);ifswap(t[14],t[16]);ifswap(t[18],t[20]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[16],t[17]);ifswap(t[18],t[19]);ifswap(t[1],t[16]);ifswap(t[3],t[18]);ifswap(t[5],t[20]);ifswap(t[7],t[14]);ifswap(t[1],t[8]);ifswap(t[3],t[10]);ifswap(t[5],t[12]);ifswap(t[9],t[16]);ifswap(t[11],t[18]);ifswap(t[13],t[20]);ifswap(t[1],t[4]);ifswap(t[3],t[6]);ifswap(t[5],t[8]);ifswap(t[7],t[10]);ifswap(t[9],t[12]);ifswap(t[11],t[14]);ifswap(t[13],t[16]);ifswap(t[15],t[18]);ifswap(t[17],t[20]);ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[13],t[14]);ifswap(t[15],t[16]);ifswap(t[17],t[18]);ifswap(t[19],t[20]);
  72.         break;
  73.         case 22:
  74.         ifswap(t[0],t[16]);ifswap(t[1],t[17]);ifswap(t[2],t[18]);ifswap(t[3],t[19]);ifswap(t[4],t[20]);ifswap(t[5],t[21]);ifswap(t[6],t[14]);ifswap(t[7],t[15]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[8],t[16]);ifswap(t[9],t[17]);ifswap(t[10],t[18]);ifswap(t[11],t[19]);ifswap(t[12],t[20]);ifswap(t[13],t[21]);ifswap(t[0],t[4]);ifswap(t[1],t[5]);ifswap(t[2],t[6]);ifswap(t[3],t[7]);ifswap(t[8],t[12]);ifswap(t[9],t[13]);ifswap(t[10],t[14]);ifswap(t[11],t[15]);ifswap(t[16],t[20]);ifswap(t[17],t[21]);ifswap(t[6],t[18]);ifswap(t[7],t[19]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[4],t[16]);ifswap(t[5],t[17]);ifswap(t[6],t[10]);ifswap(t[7],t[11]);ifswap(t[14],t[18]);ifswap(t[15],t[19]);ifswap(t[0],t[1]);ifswap(t[4],t[8]);ifswap(t[5],t[9]);ifswap(t[12],t[16]);ifswap(t[13],t[17]);ifswap(t[4],t[6]);ifswap(t[5],t[7]);ifswap(t[8],t[10]);ifswap(t[9],t[11]);ifswap(t[12],t[14]);ifswap(t[13],t[15]);ifswap(t[16],t[18]);ifswap(t[17],t[19]);ifswap(t[2],t[16]);ifswap(t[3],t[17]);ifswap(t[6],t[20]);ifswap(t[7],t[21]);ifswap(t[2],t[8]);ifswap(t[3],t[9]);ifswap(t[6],t[12]);ifswap(t[7],t[13]);ifswap(t[10],t[16]);ifswap(t[11],t[17]);ifswap(t[14],t[20]);ifswap(t[15],t[21]);ifswap(t[2],t[4]);ifswap(t[3],t[5]);ifswap(t[6],t[8]);ifswap(t[7],t[9]);ifswap(t[10],t[12]);ifswap(t[11],t[13]);ifswap(t[14],t[16]);ifswap(t[15],t[17]);ifswap(t[18],t[20]);ifswap(t[19],t[21]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[16],t[17]);ifswap(t[18],t[19]);ifswap(t[20],t[21]);ifswap(t[1],t[16]);ifswap(t[3],t[18]);ifswap(t[5],t[20]);ifswap(t[7],t[14]);ifswap(t[1],t[8]);ifswap(t[3],t[10]);ifswap(t[5],t[12]);ifswap(t[9],t[16]);ifswap(t[11],t[18]);ifswap(t[13],t[20]);ifswap(t[1],t[4]);ifswap(t[3],t[6]);ifswap(t[5],t[8]);ifswap(t[7],t[10]);ifswap(t[9],t[12]);ifswap(t[11],t[14]);ifswap(t[13],t[16]);ifswap(t[15],t[18]);ifswap(t[17],t[20]);ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[13],t[14]);ifswap(t[15],t[16]);ifswap(t[17],t[18]);ifswap(t[19],t[20]);
  75.         break;
  76.         case 23:
  77.         ifswap(t[0],t[16]);ifswap(t[1],t[17]);ifswap(t[2],t[18]);ifswap(t[3],t[19]);ifswap(t[4],t[20]);ifswap(t[5],t[21]);ifswap(t[6],t[22]);ifswap(t[7],t[15]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[8],t[16]);ifswap(t[9],t[17]);ifswap(t[10],t[18]);ifswap(t[11],t[19]);ifswap(t[12],t[20]);ifswap(t[13],t[21]);ifswap(t[14],t[22]);ifswap(t[0],t[4]);ifswap(t[1],t[5]);ifswap(t[2],t[6]);ifswap(t[3],t[7]);ifswap(t[8],t[12]);ifswap(t[9],t[13]);ifswap(t[10],t[14]);ifswap(t[11],t[15]);ifswap(t[16],t[20]);ifswap(t[17],t[21]);ifswap(t[18],t[22]);ifswap(t[7],t[19]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[4],t[16]);ifswap(t[5],t[17]);ifswap(t[6],t[18]);ifswap(t[7],t[11]);ifswap(t[15],t[19]);ifswap(t[20],t[22]);ifswap(t[0],t[1]);ifswap(t[4],t[8]);ifswap(t[5],t[9]);ifswap(t[6],t[10]);ifswap(t[12],t[16]);ifswap(t[13],t[17]);ifswap(t[14],t[18]);ifswap(t[4],t[6]);ifswap(t[5],t[7]);ifswap(t[8],t[10]);ifswap(t[9],t[11]);ifswap(t[12],t[14]);ifswap(t[13],t[15]);ifswap(t[16],t[18]);ifswap(t[17],t[19]);ifswap(t[2],t[16]);ifswap(t[3],t[17]);ifswap(t[6],t[20]);ifswap(t[7],t[21]);ifswap(t[2],t[8]);ifswap(t[3],t[9]);ifswap(t[6],t[12]);ifswap(t[7],t[13]);ifswap(t[10],t[16]);ifswap(t[11],t[17]);ifswap(t[14],t[20]);ifswap(t[15],t[21]);ifswap(t[2],t[4]);ifswap(t[3],t[5]);ifswap(t[6],t[8]);ifswap(t[7],t[9]);ifswap(t[10],t[12]);ifswap(t[11],t[13]);ifswap(t[14],t[16]);ifswap(t[15],t[17]);ifswap(t[18],t[20]);ifswap(t[19],t[21]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[16],t[17]);ifswap(t[18],t[19]);ifswap(t[20],t[21]);ifswap(t[1],t[16]);ifswap(t[3],t[18]);ifswap(t[5],t[20]);ifswap(t[7],t[22]);ifswap(t[1],t[8]);ifswap(t[3],t[10]);ifswap(t[5],t[12]);ifswap(t[7],t[14]);ifswap(t[9],t[16]);ifswap(t[11],t[18]);ifswap(t[13],t[20]);ifswap(t[15],t[22]);ifswap(t[1],t[4]);ifswap(t[3],t[6]);ifswap(t[5],t[8]);ifswap(t[7],t[10]);ifswap(t[9],t[12]);ifswap(t[11],t[14]);ifswap(t[13],t[16]);ifswap(t[15],t[18]);ifswap(t[17],t[20]);ifswap(t[19],t[22]);ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[13],t[14]);ifswap(t[15],t[16]);ifswap(t[17],t[18]);ifswap(t[19],t[20]);ifswap(t[21],t[22]);
  78.         break;
  79.         case 24:
  80.         ifswap(t[0],t[16]);ifswap(t[1],t[17]);ifswap(t[2],t[18]);ifswap(t[3],t[19]);ifswap(t[4],t[20]);ifswap(t[5],t[21]);ifswap(t[6],t[22]);ifswap(t[7],t[23]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[7],t[15]);ifswap(t[8],t[16]);ifswap(t[9],t[17]);ifswap(t[10],t[18]);ifswap(t[11],t[19]);ifswap(t[12],t[20]);ifswap(t[13],t[21]);ifswap(t[14],t[22]);ifswap(t[15],t[23]);ifswap(t[0],t[4]);ifswap(t[1],t[5]);ifswap(t[2],t[6]);ifswap(t[3],t[7]);ifswap(t[8],t[12]);ifswap(t[9],t[13]);ifswap(t[10],t[14]);ifswap(t[11],t[15]);ifswap(t[16],t[20]);ifswap(t[17],t[21]);ifswap(t[18],t[22]);ifswap(t[19],t[23]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[4],t[16]);ifswap(t[5],t[17]);ifswap(t[6],t[18]);ifswap(t[7],t[19]);ifswap(t[20],t[22]);ifswap(t[21],t[23]);ifswap(t[0],t[1]);ifswap(t[4],t[8]);ifswap(t[5],t[9]);ifswap(t[6],t[10]);ifswap(t[7],t[11]);ifswap(t[12],t[16]);ifswap(t[13],t[17]);ifswap(t[14],t[18]);ifswap(t[15],t[19]);ifswap(t[22],t[23]);ifswap(t[4],t[6]);ifswap(t[5],t[7]);ifswap(t[8],t[10]);ifswap(t[9],t[11]);ifswap(t[12],t[14]);ifswap(t[13],t[15]);ifswap(t[16],t[18]);ifswap(t[17],t[19]);ifswap(t[2],t[16]);ifswap(t[3],t[17]);ifswap(t[6],t[20]);ifswap(t[7],t[21]);ifswap(t[2],t[8]);ifswap(t[3],t[9]);ifswap(t[6],t[12]);ifswap(t[7],t[13]);ifswap(t[10],t[16]);ifswap(t[11],t[17]);ifswap(t[14],t[20]);ifswap(t[15],t[21]);ifswap(t[2],t[4]);ifswap(t[3],t[5]);ifswap(t[6],t[8]);ifswap(t[7],t[9]);ifswap(t[10],t[12]);ifswap(t[11],t[13]);ifswap(t[14],t[16]);ifswap(t[15],t[17]);ifswap(t[18],t[20]);ifswap(t[19],t[21]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[16],t[17]);ifswap(t[18],t[19]);ifswap(t[20],t[21]);ifswap(t[1],t[16]);ifswap(t[3],t[18]);ifswap(t[5],t[20]);ifswap(t[7],t[22]);ifswap(t[1],t[8]);ifswap(t[3],t[10]);ifswap(t[5],t[12]);ifswap(t[7],t[14]);ifswap(t[9],t[16]);ifswap(t[11],t[18]);ifswap(t[13],t[20]);ifswap(t[15],t[22]);ifswap(t[1],t[4]);ifswap(t[3],t[6]);ifswap(t[5],t[8]);ifswap(t[7],t[10]);ifswap(t[9],t[12]);ifswap(t[11],t[14]);ifswap(t[13],t[16]);ifswap(t[15],t[18]);ifswap(t[17],t[20]);ifswap(t[19],t[22]);ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[13],t[14]);ifswap(t[15],t[16]);ifswap(t[17],t[18]);ifswap(t[19],t[20]);ifswap(t[21],t[22]);
  81.         break;
  82.         case 25:
  83.         ifswap(t[0],t[16]);ifswap(t[1],t[17]);ifswap(t[2],t[18]);ifswap(t[3],t[19]);ifswap(t[4],t[20]);ifswap(t[5],t[21]);ifswap(t[6],t[22]);ifswap(t[7],t[23]);ifswap(t[8],t[24]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[7],t[15]);ifswap(t[16],t[24]);ifswap(t[8],t[16]);ifswap(t[9],t[17]);ifswap(t[10],t[18]);ifswap(t[11],t[19]);ifswap(t[12],t[20]);ifswap(t[13],t[21]);ifswap(t[14],t[22]);ifswap(t[15],t[23]);ifswap(t[0],t[4]);ifswap(t[1],t[5]);ifswap(t[2],t[6]);ifswap(t[3],t[7]);ifswap(t[8],t[12]);ifswap(t[9],t[13]);ifswap(t[10],t[14]);ifswap(t[11],t[15]);ifswap(t[16],t[20]);ifswap(t[17],t[21]);ifswap(t[18],t[22]);ifswap(t[19],t[23]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[4],t[16]);ifswap(t[5],t[17]);ifswap(t[6],t[18]);ifswap(t[7],t[19]);ifswap(t[12],t[24]);ifswap(t[21],t[23]);ifswap(t[0],t[1]);ifswap(t[4],t[8]);ifswap(t[5],t[9]);ifswap(t[6],t[10]);ifswap(t[7],t[11]);ifswap(t[12],t[16]);ifswap(t[13],t[17]);ifswap(t[14],t[18]);ifswap(t[15],t[19]);ifswap(t[20],t[24]);ifswap(t[4],t[6]);ifswap(t[5],t[7]);ifswap(t[8],t[10]);ifswap(t[9],t[11]);ifswap(t[12],t[14]);ifswap(t[13],t[15]);ifswap(t[16],t[18]);ifswap(t[17],t[19]);ifswap(t[20],t[22]);ifswap(t[2],t[16]);ifswap(t[3],t[17]);ifswap(t[6],t[20]);ifswap(t[7],t[21]);ifswap(t[10],t[24]);ifswap(t[2],t[8]);ifswap(t[3],t[9]);ifswap(t[6],t[12]);ifswap(t[7],t[13]);ifswap(t[10],t[16]);ifswap(t[11],t[17]);ifswap(t[14],t[20]);ifswap(t[15],t[21]);ifswap(t[18],t[24]);ifswap(t[2],t[4]);ifswap(t[3],t[5]);ifswap(t[6],t[8]);ifswap(t[7],t[9]);ifswap(t[10],t[12]);ifswap(t[11],t[13]);ifswap(t[14],t[16]);ifswap(t[15],t[17]);ifswap(t[18],t[20]);ifswap(t[19],t[21]);ifswap(t[22],t[24]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[16],t[17]);ifswap(t[18],t[19]);ifswap(t[20],t[21]);ifswap(t[22],t[23]);ifswap(t[1],t[16]);ifswap(t[3],t[18]);ifswap(t[5],t[20]);ifswap(t[7],t[22]);ifswap(t[9],t[24]);ifswap(t[1],t[8]);ifswap(t[3],t[10]);ifswap(t[5],t[12]);ifswap(t[7],t[14]);ifswap(t[9],t[16]);ifswap(t[11],t[18]);ifswap(t[13],t[20]);ifswap(t[15],t[22]);ifswap(t[17],t[24]);ifswap(t[1],t[4]);ifswap(t[3],t[6]);ifswap(t[5],t[8]);ifswap(t[7],t[10]);ifswap(t[9],t[12]);ifswap(t[11],t[14]);ifswap(t[13],t[16]);ifswap(t[15],t[18]);ifswap(t[17],t[20]);ifswap(t[19],t[22]);ifswap(t[21],t[24]);ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[13],t[14]);ifswap(t[15],t[16]);ifswap(t[17],t[18]);ifswap(t[19],t[20]);ifswap(t[21],t[22]);ifswap(t[23],t[24]);
  84.         break;
  85.         case 26:
  86.         ifswap(t[0],t[16]);ifswap(t[1],t[17]);ifswap(t[2],t[18]);ifswap(t[3],t[19]);ifswap(t[4],t[20]);ifswap(t[5],t[21]);ifswap(t[6],t[22]);ifswap(t[7],t[23]);ifswap(t[8],t[24]);ifswap(t[9],t[25]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[7],t[15]);ifswap(t[16],t[24]);ifswap(t[17],t[25]);ifswap(t[8],t[16]);ifswap(t[9],t[17]);ifswap(t[10],t[18]);ifswap(t[11],t[19]);ifswap(t[12],t[20]);ifswap(t[13],t[21]);ifswap(t[14],t[22]);ifswap(t[15],t[23]);ifswap(t[0],t[4]);ifswap(t[1],t[5]);ifswap(t[2],t[6]);ifswap(t[3],t[7]);ifswap(t[8],t[12]);ifswap(t[9],t[13]);ifswap(t[10],t[14]);ifswap(t[11],t[15]);ifswap(t[16],t[20]);ifswap(t[17],t[21]);ifswap(t[18],t[22]);ifswap(t[19],t[23]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[4],t[16]);ifswap(t[5],t[17]);ifswap(t[6],t[18]);ifswap(t[7],t[19]);ifswap(t[12],t[24]);ifswap(t[13],t[25]);ifswap(t[0],t[1]);ifswap(t[4],t[8]);ifswap(t[5],t[9]);ifswap(t[6],t[10]);ifswap(t[7],t[11]);ifswap(t[12],t[16]);ifswap(t[13],t[17]);ifswap(t[14],t[18]);ifswap(t[15],t[19]);ifswap(t[20],t[24]);ifswap(t[21],t[25]);ifswap(t[4],t[6]);ifswap(t[5],t[7]);ifswap(t[8],t[10]);ifswap(t[9],t[11]);ifswap(t[12],t[14]);ifswap(t[13],t[15]);ifswap(t[16],t[18]);ifswap(t[17],t[19]);ifswap(t[20],t[22]);ifswap(t[21],t[23]);ifswap(t[2],t[16]);ifswap(t[3],t[17]);ifswap(t[6],t[20]);ifswap(t[7],t[21]);ifswap(t[10],t[24]);ifswap(t[11],t[25]);ifswap(t[2],t[8]);ifswap(t[3],t[9]);ifswap(t[6],t[12]);ifswap(t[7],t[13]);ifswap(t[10],t[16]);ifswap(t[11],t[17]);ifswap(t[14],t[20]);ifswap(t[15],t[21]);ifswap(t[18],t[24]);ifswap(t[19],t[25]);ifswap(t[2],t[4]);ifswap(t[3],t[5]);ifswap(t[6],t[8]);ifswap(t[7],t[9]);ifswap(t[10],t[12]);ifswap(t[11],t[13]);ifswap(t[14],t[16]);ifswap(t[15],t[17]);ifswap(t[18],t[20]);ifswap(t[19],t[21]);ifswap(t[22],t[24]);ifswap(t[23],t[25]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[16],t[17]);ifswap(t[18],t[19]);ifswap(t[20],t[21]);ifswap(t[22],t[23]);ifswap(t[24],t[25]);ifswap(t[1],t[16]);ifswap(t[3],t[18]);ifswap(t[5],t[20]);ifswap(t[7],t[22]);ifswap(t[9],t[24]);ifswap(t[1],t[8]);ifswap(t[3],t[10]);ifswap(t[5],t[12]);ifswap(t[7],t[14]);ifswap(t[9],t[16]);ifswap(t[11],t[18]);ifswap(t[13],t[20]);ifswap(t[15],t[22]);ifswap(t[17],t[24]);ifswap(t[1],t[4]);ifswap(t[3],t[6]);ifswap(t[5],t[8]);ifswap(t[7],t[10]);ifswap(t[9],t[12]);ifswap(t[11],t[14]);ifswap(t[13],t[16]);ifswap(t[15],t[18]);ifswap(t[17],t[20]);ifswap(t[19],t[22]);ifswap(t[21],t[24]);ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[13],t[14]);ifswap(t[15],t[16]);ifswap(t[17],t[18]);ifswap(t[19],t[20]);ifswap(t[21],t[22]);ifswap(t[23],t[24]);
  87.         break;
  88.         case 27:
  89.         ifswap(t[0],t[16]);ifswap(t[1],t[17]);ifswap(t[2],t[18]);ifswap(t[3],t[19]);ifswap(t[4],t[20]);ifswap(t[5],t[21]);ifswap(t[6],t[22]);ifswap(t[7],t[23]);ifswap(t[8],t[24]);ifswap(t[9],t[25]);ifswap(t[10],t[26]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[7],t[15]);ifswap(t[16],t[24]);ifswap(t[17],t[25]);ifswap(t[18],t[26]);ifswap(t[8],t[16]);ifswap(t[9],t[17]);ifswap(t[10],t[18]);ifswap(t[11],t[19]);ifswap(t[12],t[20]);ifswap(t[13],t[21]);ifswap(t[14],t[22]);ifswap(t[15],t[23]);ifswap(t[0],t[4]);ifswap(t[1],t[5]);ifswap(t[2],t[6]);ifswap(t[3],t[7]);ifswap(t[8],t[12]);ifswap(t[9],t[13]);ifswap(t[10],t[14]);ifswap(t[11],t[15]);ifswap(t[16],t[20]);ifswap(t[17],t[21]);ifswap(t[18],t[22]);ifswap(t[19],t[23]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[4],t[16]);ifswap(t[5],t[17]);ifswap(t[6],t[18]);ifswap(t[7],t[19]);ifswap(t[12],t[24]);ifswap(t[13],t[25]);ifswap(t[14],t[26]);ifswap(t[0],t[1]);ifswap(t[4],t[8]);ifswap(t[5],t[9]);ifswap(t[6],t[10]);ifswap(t[7],t[11]);ifswap(t[12],t[16]);ifswap(t[13],t[17]);ifswap(t[14],t[18]);ifswap(t[15],t[19]);ifswap(t[20],t[24]);ifswap(t[21],t[25]);ifswap(t[22],t[26]);ifswap(t[4],t[6]);ifswap(t[5],t[7]);ifswap(t[8],t[10]);ifswap(t[9],t[11]);ifswap(t[12],t[14]);ifswap(t[13],t[15]);ifswap(t[16],t[18]);ifswap(t[17],t[19]);ifswap(t[20],t[22]);ifswap(t[21],t[23]);ifswap(t[24],t[26]);ifswap(t[2],t[16]);ifswap(t[3],t[17]);ifswap(t[6],t[20]);ifswap(t[7],t[21]);ifswap(t[10],t[24]);ifswap(t[11],t[25]);ifswap(t[2],t[8]);ifswap(t[3],t[9]);ifswap(t[6],t[12]);ifswap(t[7],t[13]);ifswap(t[10],t[16]);ifswap(t[11],t[17]);ifswap(t[14],t[20]);ifswap(t[15],t[21]);ifswap(t[18],t[24]);ifswap(t[19],t[25]);ifswap(t[2],t[4]);ifswap(t[3],t[5]);ifswap(t[6],t[8]);ifswap(t[7],t[9]);ifswap(t[10],t[12]);ifswap(t[11],t[13]);ifswap(t[14],t[16]);ifswap(t[15],t[17]);ifswap(t[18],t[20]);ifswap(t[19],t[21]);ifswap(t[22],t[24]);ifswap(t[23],t[25]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[16],t[17]);ifswap(t[18],t[19]);ifswap(t[20],t[21]);ifswap(t[22],t[23]);ifswap(t[24],t[25]);ifswap(t[1],t[16]);ifswap(t[3],t[18]);ifswap(t[5],t[20]);ifswap(t[7],t[22]);ifswap(t[9],t[24]);ifswap(t[11],t[26]);ifswap(t[1],t[8]);ifswap(t[3],t[10]);ifswap(t[5],t[12]);ifswap(t[7],t[14]);ifswap(t[9],t[16]);ifswap(t[11],t[18]);ifswap(t[13],t[20]);ifswap(t[15],t[22]);ifswap(t[17],t[24]);ifswap(t[19],t[26]);ifswap(t[1],t[4]);ifswap(t[3],t[6]);ifswap(t[5],t[8]);ifswap(t[7],t[10]);ifswap(t[9],t[12]);ifswap(t[11],t[14]);ifswap(t[13],t[16]);ifswap(t[15],t[18]);ifswap(t[17],t[20]);ifswap(t[19],t[22]);ifswap(t[21],t[24]);ifswap(t[23],t[26]);ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[13],t[14]);ifswap(t[15],t[16]);ifswap(t[17],t[18]);ifswap(t[19],t[20]);ifswap(t[21],t[22]);ifswap(t[23],t[24]);ifswap(t[25],t[26]);
  90.         break;
  91.         case 28:
  92.         ifswap(t[0],t[16]);ifswap(t[1],t[17]);ifswap(t[2],t[18]);ifswap(t[3],t[19]);ifswap(t[4],t[20]);ifswap(t[5],t[21]);ifswap(t[6],t[22]);ifswap(t[7],t[23]);ifswap(t[8],t[24]);ifswap(t[9],t[25]);ifswap(t[10],t[26]);ifswap(t[11],t[27]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[7],t[15]);ifswap(t[16],t[24]);ifswap(t[17],t[25]);ifswap(t[18],t[26]);ifswap(t[19],t[27]);ifswap(t[8],t[16]);ifswap(t[9],t[17]);ifswap(t[10],t[18]);ifswap(t[11],t[19]);ifswap(t[12],t[20]);ifswap(t[13],t[21]);ifswap(t[14],t[22]);ifswap(t[15],t[23]);ifswap(t[0],t[4]);ifswap(t[1],t[5]);ifswap(t[2],t[6]);ifswap(t[3],t[7]);ifswap(t[8],t[12]);ifswap(t[9],t[13]);ifswap(t[10],t[14]);ifswap(t[11],t[15]);ifswap(t[16],t[20]);ifswap(t[17],t[21]);ifswap(t[18],t[22]);ifswap(t[19],t[23]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[4],t[16]);ifswap(t[5],t[17]);ifswap(t[6],t[18]);ifswap(t[7],t[19]);ifswap(t[12],t[24]);ifswap(t[13],t[25]);ifswap(t[14],t[26]);ifswap(t[15],t[27]);ifswap(t[0],t[1]);ifswap(t[4],t[8]);ifswap(t[5],t[9]);ifswap(t[6],t[10]);ifswap(t[7],t[11]);ifswap(t[12],t[16]);ifswap(t[13],t[17]);ifswap(t[14],t[18]);ifswap(t[15],t[19]);ifswap(t[20],t[24]);ifswap(t[21],t[25]);ifswap(t[22],t[26]);ifswap(t[23],t[27]);ifswap(t[4],t[6]);ifswap(t[5],t[7]);ifswap(t[8],t[10]);ifswap(t[9],t[11]);ifswap(t[12],t[14]);ifswap(t[13],t[15]);ifswap(t[16],t[18]);ifswap(t[17],t[19]);ifswap(t[20],t[22]);ifswap(t[21],t[23]);ifswap(t[24],t[26]);ifswap(t[25],t[27]);ifswap(t[2],t[16]);ifswap(t[3],t[17]);ifswap(t[6],t[20]);ifswap(t[7],t[21]);ifswap(t[10],t[24]);ifswap(t[11],t[25]);ifswap(t[26],t[27]);ifswap(t[2],t[8]);ifswap(t[3],t[9]);ifswap(t[6],t[12]);ifswap(t[7],t[13]);ifswap(t[10],t[16]);ifswap(t[11],t[17]);ifswap(t[14],t[20]);ifswap(t[15],t[21]);ifswap(t[18],t[24]);ifswap(t[19],t[25]);ifswap(t[2],t[4]);ifswap(t[3],t[5]);ifswap(t[6],t[8]);ifswap(t[7],t[9]);ifswap(t[10],t[12]);ifswap(t[11],t[13]);ifswap(t[14],t[16]);ifswap(t[15],t[17]);ifswap(t[18],t[20]);ifswap(t[19],t[21]);ifswap(t[22],t[24]);ifswap(t[23],t[25]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[16],t[17]);ifswap(t[18],t[19]);ifswap(t[20],t[21]);ifswap(t[22],t[23]);ifswap(t[24],t[25]);ifswap(t[1],t[16]);ifswap(t[3],t[18]);ifswap(t[5],t[20]);ifswap(t[7],t[22]);ifswap(t[9],t[24]);ifswap(t[11],t[26]);ifswap(t[1],t[8]);ifswap(t[3],t[10]);ifswap(t[5],t[12]);ifswap(t[7],t[14]);ifswap(t[9],t[16]);ifswap(t[11],t[18]);ifswap(t[13],t[20]);ifswap(t[15],t[22]);ifswap(t[17],t[24]);ifswap(t[19],t[26]);ifswap(t[1],t[4]);ifswap(t[3],t[6]);ifswap(t[5],t[8]);ifswap(t[7],t[10]);ifswap(t[9],t[12]);ifswap(t[11],t[14]);ifswap(t[13],t[16]);ifswap(t[15],t[18]);ifswap(t[17],t[20]);ifswap(t[19],t[22]);ifswap(t[21],t[24]);ifswap(t[23],t[26]);ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[13],t[14]);ifswap(t[15],t[16]);ifswap(t[17],t[18]);ifswap(t[19],t[20]);ifswap(t[21],t[22]);ifswap(t[23],t[24]);ifswap(t[25],t[26]);
  93.         break;
  94.         case 29:
  95.         ifswap(t[0],t[16]);ifswap(t[1],t[17]);ifswap(t[2],t[18]);ifswap(t[3],t[19]);ifswap(t[4],t[20]);ifswap(t[5],t[21]);ifswap(t[6],t[22]);ifswap(t[7],t[23]);ifswap(t[8],t[24]);ifswap(t[9],t[25]);ifswap(t[10],t[26]);ifswap(t[11],t[27]);ifswap(t[12],t[28]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[7],t[15]);ifswap(t[16],t[24]);ifswap(t[17],t[25]);ifswap(t[18],t[26]);ifswap(t[19],t[27]);ifswap(t[20],t[28]);ifswap(t[8],t[16]);ifswap(t[9],t[17]);ifswap(t[10],t[18]);ifswap(t[11],t[19]);ifswap(t[12],t[20]);ifswap(t[13],t[21]);ifswap(t[14],t[22]);ifswap(t[15],t[23]);ifswap(t[0],t[4]);ifswap(t[1],t[5]);ifswap(t[2],t[6]);ifswap(t[3],t[7]);ifswap(t[24],t[28]);ifswap(t[8],t[12]);ifswap(t[9],t[13]);ifswap(t[10],t[14]);ifswap(t[11],t[15]);ifswap(t[16],t[20]);ifswap(t[17],t[21]);ifswap(t[18],t[22]);ifswap(t[19],t[23]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[4],t[16]);ifswap(t[5],t[17]);ifswap(t[6],t[18]);ifswap(t[7],t[19]);ifswap(t[12],t[24]);ifswap(t[13],t[25]);ifswap(t[14],t[26]);ifswap(t[15],t[27]);ifswap(t[0],t[1]);ifswap(t[4],t[8]);ifswap(t[5],t[9]);ifswap(t[6],t[10]);ifswap(t[7],t[11]);ifswap(t[12],t[16]);ifswap(t[13],t[17]);ifswap(t[14],t[18]);ifswap(t[15],t[19]);ifswap(t[20],t[24]);ifswap(t[21],t[25]);ifswap(t[22],t[26]);ifswap(t[23],t[27]);ifswap(t[4],t[6]);ifswap(t[5],t[7]);ifswap(t[8],t[10]);ifswap(t[9],t[11]);ifswap(t[12],t[14]);ifswap(t[13],t[15]);ifswap(t[16],t[18]);ifswap(t[17],t[19]);ifswap(t[20],t[22]);ifswap(t[21],t[23]);ifswap(t[24],t[26]);ifswap(t[25],t[27]);ifswap(t[2],t[16]);ifswap(t[3],t[17]);ifswap(t[6],t[20]);ifswap(t[7],t[21]);ifswap(t[10],t[24]);ifswap(t[11],t[25]);ifswap(t[14],t[28]);ifswap(t[2],t[8]);ifswap(t[3],t[9]);ifswap(t[6],t[12]);ifswap(t[7],t[13]);ifswap(t[10],t[16]);ifswap(t[11],t[17]);ifswap(t[14],t[20]);ifswap(t[15],t[21]);ifswap(t[18],t[24]);ifswap(t[19],t[25]);ifswap(t[22],t[28]);ifswap(t[2],t[4]);ifswap(t[3],t[5]);ifswap(t[6],t[8]);ifswap(t[7],t[9]);ifswap(t[10],t[12]);ifswap(t[11],t[13]);ifswap(t[14],t[16]);ifswap(t[15],t[17]);ifswap(t[18],t[20]);ifswap(t[19],t[21]);ifswap(t[22],t[24]);ifswap(t[23],t[25]);ifswap(t[26],t[28]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[16],t[17]);ifswap(t[18],t[19]);ifswap(t[20],t[21]);ifswap(t[22],t[23]);ifswap(t[24],t[25]);ifswap(t[26],t[27]);ifswap(t[1],t[16]);ifswap(t[3],t[18]);ifswap(t[5],t[20]);ifswap(t[7],t[22]);ifswap(t[9],t[24]);ifswap(t[11],t[26]);ifswap(t[13],t[28]);ifswap(t[1],t[8]);ifswap(t[3],t[10]);ifswap(t[5],t[12]);ifswap(t[7],t[14]);ifswap(t[9],t[16]);ifswap(t[11],t[18]);ifswap(t[13],t[20]);ifswap(t[15],t[22]);ifswap(t[17],t[24]);ifswap(t[19],t[26]);ifswap(t[21],t[28]);ifswap(t[1],t[4]);ifswap(t[3],t[6]);ifswap(t[5],t[8]);ifswap(t[7],t[10]);ifswap(t[9],t[12]);ifswap(t[11],t[14]);ifswap(t[13],t[16]);ifswap(t[15],t[18]);ifswap(t[17],t[20]);ifswap(t[19],t[22]);ifswap(t[21],t[24]);ifswap(t[23],t[26]);ifswap(t[25],t[28]);ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[13],t[14]);ifswap(t[15],t[16]);ifswap(t[17],t[18]);ifswap(t[19],t[20]);ifswap(t[21],t[22]);ifswap(t[23],t[24]);ifswap(t[25],t[26]);ifswap(t[27],t[28]);
  96.         break;
  97.         case 30:
  98.         ifswap(t[0],t[16]);ifswap(t[1],t[17]);ifswap(t[2],t[18]);ifswap(t[3],t[19]);ifswap(t[4],t[20]);ifswap(t[5],t[21]);ifswap(t[6],t[22]);ifswap(t[7],t[23]);ifswap(t[8],t[24]);ifswap(t[9],t[25]);ifswap(t[10],t[26]);ifswap(t[11],t[27]);ifswap(t[12],t[28]);ifswap(t[13],t[29]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[7],t[15]);ifswap(t[16],t[24]);ifswap(t[17],t[25]);ifswap(t[18],t[26]);ifswap(t[19],t[27]);ifswap(t[20],t[28]);ifswap(t[21],t[29]);ifswap(t[8],t[16]);ifswap(t[9],t[17]);ifswap(t[10],t[18]);ifswap(t[11],t[19]);ifswap(t[12],t[20]);ifswap(t[13],t[21]);ifswap(t[14],t[22]);ifswap(t[15],t[23]);ifswap(t[0],t[4]);ifswap(t[1],t[5]);ifswap(t[2],t[6]);ifswap(t[3],t[7]);ifswap(t[24],t[28]);ifswap(t[25],t[29]);ifswap(t[8],t[12]);ifswap(t[9],t[13]);ifswap(t[10],t[14]);ifswap(t[11],t[15]);ifswap(t[16],t[20]);ifswap(t[17],t[21]);ifswap(t[18],t[22]);ifswap(t[19],t[23]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[4],t[16]);ifswap(t[5],t[17]);ifswap(t[6],t[18]);ifswap(t[7],t[19]);ifswap(t[12],t[24]);ifswap(t[13],t[25]);ifswap(t[14],t[26]);ifswap(t[15],t[27]);ifswap(t[0],t[1]);ifswap(t[4],t[8]);ifswap(t[5],t[9]);ifswap(t[6],t[10]);ifswap(t[7],t[11]);ifswap(t[12],t[16]);ifswap(t[13],t[17]);ifswap(t[14],t[18]);ifswap(t[15],t[19]);ifswap(t[20],t[24]);ifswap(t[21],t[25]);ifswap(t[22],t[26]);ifswap(t[23],t[27]);ifswap(t[4],t[6]);ifswap(t[5],t[7]);ifswap(t[8],t[10]);ifswap(t[9],t[11]);ifswap(t[12],t[14]);ifswap(t[13],t[15]);ifswap(t[16],t[18]);ifswap(t[17],t[19]);ifswap(t[20],t[22]);ifswap(t[21],t[23]);ifswap(t[24],t[26]);ifswap(t[25],t[27]);ifswap(t[2],t[16]);ifswap(t[3],t[17]);ifswap(t[6],t[20]);ifswap(t[7],t[21]);ifswap(t[10],t[24]);ifswap(t[11],t[25]);ifswap(t[14],t[28]);ifswap(t[15],t[29]);ifswap(t[2],t[8]);ifswap(t[3],t[9]);ifswap(t[6],t[12]);ifswap(t[7],t[13]);ifswap(t[10],t[16]);ifswap(t[11],t[17]);ifswap(t[14],t[20]);ifswap(t[15],t[21]);ifswap(t[18],t[24]);ifswap(t[19],t[25]);ifswap(t[22],t[28]);ifswap(t[23],t[29]);ifswap(t[2],t[4]);ifswap(t[3],t[5]);ifswap(t[6],t[8]);ifswap(t[7],t[9]);ifswap(t[10],t[12]);ifswap(t[11],t[13]);ifswap(t[14],t[16]);ifswap(t[15],t[17]);ifswap(t[18],t[20]);ifswap(t[19],t[21]);ifswap(t[22],t[24]);ifswap(t[23],t[25]);ifswap(t[26],t[28]);ifswap(t[27],t[29]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[16],t[17]);ifswap(t[18],t[19]);ifswap(t[20],t[21]);ifswap(t[22],t[23]);ifswap(t[24],t[25]);ifswap(t[26],t[27]);ifswap(t[28],t[29]);ifswap(t[1],t[16]);ifswap(t[3],t[18]);ifswap(t[5],t[20]);ifswap(t[7],t[22]);ifswap(t[9],t[24]);ifswap(t[11],t[26]);ifswap(t[13],t[28]);ifswap(t[1],t[8]);ifswap(t[3],t[10]);ifswap(t[5],t[12]);ifswap(t[7],t[14]);ifswap(t[9],t[16]);ifswap(t[11],t[18]);ifswap(t[13],t[20]);ifswap(t[15],t[22]);ifswap(t[17],t[24]);ifswap(t[19],t[26]);ifswap(t[21],t[28]);ifswap(t[1],t[4]);ifswap(t[3],t[6]);ifswap(t[5],t[8]);ifswap(t[7],t[10]);ifswap(t[9],t[12]);ifswap(t[11],t[14]);ifswap(t[13],t[16]);ifswap(t[15],t[18]);ifswap(t[17],t[20]);ifswap(t[19],t[22]);ifswap(t[21],t[24]);ifswap(t[23],t[26]);ifswap(t[25],t[28]);ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[13],t[14]);ifswap(t[15],t[16]);ifswap(t[17],t[18]);ifswap(t[19],t[20]);ifswap(t[21],t[22]);ifswap(t[23],t[24]);ifswap(t[25],t[26]);ifswap(t[27],t[28]);
  99.         break;
  100.         case 31:
  101.         ifswap(t[0],t[16]);ifswap(t[1],t[17]);ifswap(t[2],t[18]);ifswap(t[3],t[19]);ifswap(t[4],t[20]);ifswap(t[5],t[21]);ifswap(t[6],t[22]);ifswap(t[7],t[23]);ifswap(t[8],t[24]);ifswap(t[9],t[25]);ifswap(t[10],t[26]);ifswap(t[11],t[27]);ifswap(t[12],t[28]);ifswap(t[13],t[29]);ifswap(t[14],t[30]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[7],t[15]);ifswap(t[16],t[24]);ifswap(t[17],t[25]);ifswap(t[18],t[26]);ifswap(t[19],t[27]);ifswap(t[20],t[28]);ifswap(t[21],t[29]);ifswap(t[22],t[30]);ifswap(t[8],t[16]);ifswap(t[9],t[17]);ifswap(t[10],t[18]);ifswap(t[11],t[19]);ifswap(t[12],t[20]);ifswap(t[13],t[21]);ifswap(t[14],t[22]);ifswap(t[15],t[23]);ifswap(t[0],t[4]);ifswap(t[1],t[5]);ifswap(t[2],t[6]);ifswap(t[3],t[7]);ifswap(t[24],t[28]);ifswap(t[25],t[29]);ifswap(t[26],t[30]);ifswap(t[8],t[12]);ifswap(t[9],t[13]);ifswap(t[10],t[14]);ifswap(t[11],t[15]);ifswap(t[16],t[20]);ifswap(t[17],t[21]);ifswap(t[18],t[22]);ifswap(t[19],t[23]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[28],t[30]);ifswap(t[4],t[16]);ifswap(t[5],t[17]);ifswap(t[6],t[18]);ifswap(t[7],t[19]);ifswap(t[12],t[24]);ifswap(t[13],t[25]);ifswap(t[14],t[26]);ifswap(t[15],t[27]);ifswap(t[0],t[1]);ifswap(t[4],t[8]);ifswap(t[5],t[9]);ifswap(t[6],t[10]);ifswap(t[7],t[11]);ifswap(t[12],t[16]);ifswap(t[13],t[17]);ifswap(t[14],t[18]);ifswap(t[15],t[19]);ifswap(t[20],t[24]);ifswap(t[21],t[25]);ifswap(t[22],t[26]);ifswap(t[23],t[27]);ifswap(t[4],t[6]);ifswap(t[5],t[7]);ifswap(t[8],t[10]);ifswap(t[9],t[11]);ifswap(t[12],t[14]);ifswap(t[13],t[15]);ifswap(t[16],t[18]);ifswap(t[17],t[19]);ifswap(t[20],t[22]);ifswap(t[21],t[23]);ifswap(t[24],t[26]);ifswap(t[25],t[27]);ifswap(t[2],t[16]);ifswap(t[3],t[17]);ifswap(t[6],t[20]);ifswap(t[7],t[21]);ifswap(t[10],t[24]);ifswap(t[11],t[25]);ifswap(t[14],t[28]);ifswap(t[15],t[29]);ifswap(t[2],t[8]);ifswap(t[3],t[9]);ifswap(t[6],t[12]);ifswap(t[7],t[13]);ifswap(t[10],t[16]);ifswap(t[11],t[17]);ifswap(t[14],t[20]);ifswap(t[15],t[21]);ifswap(t[18],t[24]);ifswap(t[19],t[25]);ifswap(t[22],t[28]);ifswap(t[23],t[29]);ifswap(t[2],t[4]);ifswap(t[3],t[5]);ifswap(t[6],t[8]);ifswap(t[7],t[9]);ifswap(t[10],t[12]);ifswap(t[11],t[13]);ifswap(t[14],t[16]);ifswap(t[15],t[17]);ifswap(t[18],t[20]);ifswap(t[19],t[21]);ifswap(t[22],t[24]);ifswap(t[23],t[25]);ifswap(t[26],t[28]);ifswap(t[27],t[29]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[16],t[17]);ifswap(t[18],t[19]);ifswap(t[20],t[21]);ifswap(t[22],t[23]);ifswap(t[24],t[25]);ifswap(t[26],t[27]);ifswap(t[28],t[29]);ifswap(t[1],t[16]);ifswap(t[3],t[18]);ifswap(t[5],t[20]);ifswap(t[7],t[22]);ifswap(t[9],t[24]);ifswap(t[11],t[26]);ifswap(t[13],t[28]);ifswap(t[15],t[30]);ifswap(t[1],t[8]);ifswap(t[3],t[10]);ifswap(t[5],t[12]);ifswap(t[7],t[14]);ifswap(t[9],t[16]);ifswap(t[11],t[18]);ifswap(t[13],t[20]);ifswap(t[15],t[22]);ifswap(t[17],t[24]);ifswap(t[19],t[26]);ifswap(t[21],t[28]);ifswap(t[23],t[30]);ifswap(t[1],t[4]);ifswap(t[3],t[6]);ifswap(t[5],t[8]);ifswap(t[7],t[10]);ifswap(t[9],t[12]);ifswap(t[11],t[14]);ifswap(t[13],t[16]);ifswap(t[15],t[18]);ifswap(t[17],t[20]);ifswap(t[19],t[22]);ifswap(t[21],t[24]);ifswap(t[23],t[26]);ifswap(t[25],t[28]);ifswap(t[27],t[30]);ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[13],t[14]);ifswap(t[15],t[16]);ifswap(t[17],t[18]);ifswap(t[19],t[20]);ifswap(t[21],t[22]);ifswap(t[23],t[24]);ifswap(t[25],t[26]);ifswap(t[27],t[28]);ifswap(t[29],t[30]);
  102.         break;
  103.         case 32:
  104.         ifswap(t[0],t[16]);ifswap(t[1],t[17]);ifswap(t[2],t[18]);ifswap(t[3],t[19]);ifswap(t[4],t[20]);ifswap(t[5],t[21]);ifswap(t[6],t[22]);ifswap(t[7],t[23]);ifswap(t[8],t[24]);ifswap(t[9],t[25]);ifswap(t[10],t[26]);ifswap(t[11],t[27]);ifswap(t[12],t[28]);ifswap(t[13],t[29]);ifswap(t[14],t[30]);ifswap(t[15],t[31]);ifswap(t[0],t[8]);ifswap(t[1],t[9]);ifswap(t[2],t[10]);ifswap(t[3],t[11]);ifswap(t[4],t[12]);ifswap(t[5],t[13]);ifswap(t[6],t[14]);ifswap(t[7],t[15]);ifswap(t[16],t[24]);ifswap(t[17],t[25]);ifswap(t[18],t[26]);ifswap(t[19],t[27]);ifswap(t[20],t[28]);ifswap(t[21],t[29]);ifswap(t[22],t[30]);ifswap(t[23],t[31]);ifswap(t[8],t[16]);ifswap(t[9],t[17]);ifswap(t[10],t[18]);ifswap(t[11],t[19]);ifswap(t[12],t[20]);ifswap(t[13],t[21]);ifswap(t[14],t[22]);ifswap(t[15],t[23]);ifswap(t[0],t[4]);ifswap(t[1],t[5]);ifswap(t[2],t[6]);ifswap(t[3],t[7]);ifswap(t[24],t[28]);ifswap(t[25],t[29]);ifswap(t[26],t[30]);ifswap(t[27],t[31]);ifswap(t[8],t[12]);ifswap(t[9],t[13]);ifswap(t[10],t[14]);ifswap(t[11],t[15]);ifswap(t[16],t[20]);ifswap(t[17],t[21]);ifswap(t[18],t[22]);ifswap(t[19],t[23]);ifswap(t[0],t[2]);ifswap(t[1],t[3]);ifswap(t[28],t[30]);ifswap(t[29],t[31]);ifswap(t[4],t[16]);ifswap(t[5],t[17]);ifswap(t[6],t[18]);ifswap(t[7],t[19]);ifswap(t[12],t[24]);ifswap(t[13],t[25]);ifswap(t[14],t[26]);ifswap(t[15],t[27]);ifswap(t[0],t[1]);ifswap(t[30],t[31]);ifswap(t[4],t[8]);ifswap(t[5],t[9]);ifswap(t[6],t[10]);ifswap(t[7],t[11]);ifswap(t[12],t[16]);ifswap(t[13],t[17]);ifswap(t[14],t[18]);ifswap(t[15],t[19]);ifswap(t[20],t[24]);ifswap(t[21],t[25]);ifswap(t[22],t[26]);ifswap(t[23],t[27]);ifswap(t[4],t[6]);ifswap(t[5],t[7]);ifswap(t[8],t[10]);ifswap(t[9],t[11]);ifswap(t[12],t[14]);ifswap(t[13],t[15]);ifswap(t[16],t[18]);ifswap(t[17],t[19]);ifswap(t[20],t[22]);ifswap(t[21],t[23]);ifswap(t[24],t[26]);ifswap(t[25],t[27]);ifswap(t[2],t[16]);ifswap(t[3],t[17]);ifswap(t[6],t[20]);ifswap(t[7],t[21]);ifswap(t[10],t[24]);ifswap(t[11],t[25]);ifswap(t[14],t[28]);ifswap(t[15],t[29]);ifswap(t[2],t[8]);ifswap(t[3],t[9]);ifswap(t[6],t[12]);ifswap(t[7],t[13]);ifswap(t[10],t[16]);ifswap(t[11],t[17]);ifswap(t[14],t[20]);ifswap(t[15],t[21]);ifswap(t[18],t[24]);ifswap(t[19],t[25]);ifswap(t[22],t[28]);ifswap(t[23],t[29]);ifswap(t[2],t[4]);ifswap(t[3],t[5]);ifswap(t[6],t[8]);ifswap(t[7],t[9]);ifswap(t[10],t[12]);ifswap(t[11],t[13]);ifswap(t[14],t[16]);ifswap(t[15],t[17]);ifswap(t[18],t[20]);ifswap(t[19],t[21]);ifswap(t[22],t[24]);ifswap(t[23],t[25]);ifswap(t[26],t[28]);ifswap(t[27],t[29]);ifswap(t[2],t[3]);ifswap(t[4],t[5]);ifswap(t[6],t[7]);ifswap(t[8],t[9]);ifswap(t[10],t[11]);ifswap(t[12],t[13]);ifswap(t[14],t[15]);ifswap(t[16],t[17]);ifswap(t[18],t[19]);ifswap(t[20],t[21]);ifswap(t[22],t[23]);ifswap(t[24],t[25]);ifswap(t[26],t[27]);ifswap(t[28],t[29]);ifswap(t[1],t[16]);ifswap(t[3],t[18]);ifswap(t[5],t[20]);ifswap(t[7],t[22]);ifswap(t[9],t[24]);ifswap(t[11],t[26]);ifswap(t[13],t[28]);ifswap(t[15],t[30]);ifswap(t[1],t[8]);ifswap(t[3],t[10]);ifswap(t[5],t[12]);ifswap(t[7],t[14]);ifswap(t[9],t[16]);ifswap(t[11],t[18]);ifswap(t[13],t[20]);ifswap(t[15],t[22]);ifswap(t[17],t[24]);ifswap(t[19],t[26]);ifswap(t[21],t[28]);ifswap(t[23],t[30]);ifswap(t[1],t[4]);ifswap(t[3],t[6]);ifswap(t[5],t[8]);ifswap(t[7],t[10]);ifswap(t[9],t[12]);ifswap(t[11],t[14]);ifswap(t[13],t[16]);ifswap(t[15],t[18]);ifswap(t[17],t[20]);ifswap(t[19],t[22]);ifswap(t[21],t[24]);ifswap(t[23],t[26]);ifswap(t[25],t[28]);ifswap(t[27],t[30]);ifswap(t[1],t[2]);ifswap(t[3],t[4]);ifswap(t[5],t[6]);ifswap(t[7],t[8]);ifswap(t[9],t[10]);ifswap(t[11],t[12]);ifswap(t[13],t[14]);ifswap(t[15],t[16]);ifswap(t[17],t[18]);ifswap(t[19],t[20]);ifswap(t[21],t[22]);ifswap(t[23],t[24]);ifswap(t[25],t[26]);ifswap(t[27],t[28]);ifswap(t[29],t[30]);
  105.         break;
  106.         default:   
  107.             printf("switch aaaaaa");
  108.         break;
  109.     }
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement