1     Object rearrangeShared(int window) {
   2         $type$[] as = fa.apply(size);
   3         int[] order = fs.apply(size);
   4         $type$[] rs = fr.apply(size);
   5 
   6         for (int i = 0; i < as.length; i += window) {
   7             for (int j = 0; j < window; j++) {
   8                 $type$ a = as[i+j];
   9                 int pos = order[j];
  10                 rs[i + pos] = a;
  11             }
  12         }
  13 
  14         return rs;
  15     }
  16 
  17     @Benchmark
  18     public Object rearrange064() {
  19         int window = 64 / $Wideboxtype$.SIZE;
  20         return rearrangeShared(window);
  21     }
  22 
  23     @Benchmark
  24     public Object rearrange128() {
  25         int window = 128 / $Wideboxtype$.SIZE;
  26         return rearrangeShared(window);
  27     }
  28 
  29     @Benchmark
  30     public Object rearrange256() {
  31         int window = 256 / $Wideboxtype$.SIZE;
  32         return rearrangeShared(window);
  33     }
  34 
  35     @Benchmark
  36     public Object rearrange512() {
  37         int window = 512 / $Wideboxtype$.SIZE;
  38         return rearrangeShared(window);
  39     }