n=4096 Q=2000000 reps=5 (ns/op, median [min, max]) point add fenwick 10.1 [10.0, 10.4] point add recursive segtree 46.2 [46.1, 47.8] point add zkw 4.3 [4.2, 4.6] range sum fenwick 14.6 [14.4, 15.0] range sum recursive segtree 100.5 [99.8, 103.5] range sum zkw 56.0 [55.6, 57.3] range sum zkw branchless 12.0 [11.9, 12.5] range add two fenwicks 27.3 [25.9, 28.0] range add lazy segtree 174.6 [171.5, 177.0] range sum two fenwicks (after adds) 18.8 [18.7, 19.7] range sum lazy segtree (after adds) 110.7 [108.3, 115.9] n=1000000 Q=2000000 reps=5 (ns/op, median [min, max]) point add fenwick 30.9 [30.3, 31.9] point add recursive segtree 113.7 [95.5, 124.5] point add zkw 31.7 [24.2, 32.5] range sum fenwick 38.8 [38.2, 39.7] range sum recursive segtree 298.2 [270.4, 320.1] range sum zkw 112.3 [105.0, 119.3] range sum zkw branchless 136.7 [86.4, 150.6] range add two fenwicks 145.5 [141.1, 151.3] range add lazy segtree 661.0 [650.2, 679.3] range sum two fenwicks (after adds) 98.6 [82.8, 105.4] range sum lazy segtree (after adds) 372.9 [345.0, 438.8]