Subject: | Primes() step j += 2*i for less work |
Date: | Sat, 06 Nov 2010 06:38:29 +1100 |
To: | bug-Bit-Vector [...] rt.cpan.org |
From: | Kevin Ryde <user42 [...] zip.com.au> |
In Bit::Vector 7.1 BitVector_Primes(), as an optimization I wonder if
the "j" loop could increment by "j += 2*i" instead of "j += i". The
even numbers are already cleared by the 0xAAAA initializer are they?,
leaving only odd multiples of i needing attention.
Not sure if 2*i would risk overflow if bits==2^32-1, or near there, or
make more big sizes where it might overflow. Perhaps the loop condition
would be j <= bits-2*i before incrementing, with bits-2*i itself not
underflowing because i <= sqrt(bits) so bits >= 2*i ... if that sounds
right.