Benchmark: timing 1000000 iterations of p1, p2, p3, p4, p5, p6, p7... p1: 61 wallclock secs (45.42 usr + 0.16 sys = 45.58 CPU) p2: 45 wallclock secs (35.92 usr + 0.11 sys = 36.03 CPU) p3: 127 wallclock secs (102.34 usr + 0.31 sys = 102.65 CPU) p4: 90 wallclock secs (71.84 usr + 0.31 sys = 72.15 CPU) p5: 58 wallclock secs (46.11 usr + 0.14 sys = 46.25 CPU) p6: 55 wallclock secs (43.51 usr + 0.15 sys = 43.66 CPU) p7: 85 wallclock secs (68.11 usr + 0.22 sys = 68.33 CPU)