
- Examine behavior near 32-bit limit on 32-bit machines.
  (done for factoring)

- GMP versions of all routines.

- segment sieve should itself use a segment for its primes.
  Today we'd need sqrt(2^64) max = 140MB.  Segmenting would yield under 1MB.

- Add test to check maxbits in compiled library vs. Perl

- Pure perl implementations

- input validation (in XS, or do we need to make Perl wrappers for everything?)
  We can do inpuut val in XS by looking at the NV.  But I think long term we'll
  have a little Perl front end for everything to route to bignum routines or
  regular routines.

- Faster SQUFOF

- Init a 1k static const with the 7/11/13 marks, and use that to init both
  erat30 and segment_sieve.

- speed up random_prime for large numbers

- better prime count upper/lower bounds

- Thread-safety.  Change all uses of sieve and segment to include a free call.
  For segment we can:
     1) mutex  (holy slowdown, batman)
     2) use one cache, and malloc/free if the cache isn't available.
  For sieve I think we'll need a counting semaphore.

- Move .c / .h files into separate directory.
  version does it in a painful way.  Something simpler to be had?

- Iterator or tie?

- Get rid of erat_simple and bitarray.h.  They're only there for comparison.

- Need to be more aware of precision for the math operations.
