1 2 @Benchmark 3 public Object scatterBase0() { 4 $type$[] as = fa.apply(size); 5 int[] is = fs.apply(size); 6 $type$[] rs = fr.apply(size); 7 8 for (int i = 0; i < as.length; i++) { 9 int ix = 0 + is[i]; 10 rs[ix] = as[i]; 11 } 12 13 return rs; 14 } 15 16 Object scatter(int window) { 17 $type$[] as = fa.apply(size); 18 int[] is = fs.apply(size); 19 $type$[] rs = fr.apply(size); 20 21 for (int i = 0; i < as.length; i += window) { 22 for (int j = 0; j < window; j++) { 23 int ix = i + is[i + j]; 24 rs[ix] = as[i + j]; 25 } 26 } 27 28 return rs; 29 } 30 31 @Benchmark 32 public Object scatter064() { 33 int window = 64 / $Wideboxtype$.SIZE; 34 return scatter(window); 35 } 36 37 @Benchmark 38 public Object scatter128() { 39 int window = 128 / $Wideboxtype$.SIZE; 40 return scatter(window); 41 } 42 43 @Benchmark 44 public Object scatter256() { 45 int window = 256 / $Wideboxtype$.SIZE; 46 return scatter(window); 47 } 48 49 @Benchmark 50 public Object scatter512() { 51 int window = 512 / $Wideboxtype$.SIZE; 52 return scatter(window); 53 }