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 }