Benchmark: timing 5000000 iterations of sub1, sub2, sub3... sub1: 8 wallclock secs @ 664805.21/s (n=5000000) sub2: 6 wallclock secs @ 988924.05/s (n=5000000) sub3: 4 wallclock secs @ 1139731.02/s (n=5000000)