Sorry i forgot result Benchmark: timing 1000000 iterations of use_direct, use_list, use_shift... use_direct: 0 wallclock secs ( 0.57 usr + 0.00 sys = 0.57 CPU) @ 1754385.96/s (n=1000000) use_list: 1 wallclock secs ( 0.86 usr + 0.00 sys = 0.86 CPU) @ 1162790.70/s (n=1000000) use_shift: 2 wallclock secs ( 0.96 usr + 0.00 sys = 0.96 CPU) @ 1041666.67/s (n=1000000)