\section{Purenum Integers}

Original Author: Shawn Yarbrough
              
Web Site: http://www.nailstorm.com/products/purenum/
                 
Email: info@nailstorm.com    (subject: Purenum)

Purenum is a C++ bignum library for programmers.  Its unlimited-width Integer
type works with all of the C++ math operators (+ and / and *= etc.) but unlike
the int type there can never be overflow errors.  Division by zero and running
out of memory are catchable exceptions.  Optimized inline code is used and the
software Integer operations for single-width values run almost as quickly as
hardware int operations do.  An Array type provides for resizeable arrays of
bignums.

The Purenum library provides bignums with a minimal slowdown.  Other bignum
projects spend much design effort trying to make really huge numbers be
processed efficiently.  That's great for scientists and mathematicians but most
programs rarely use numbers over the low billions.  The problem for most
programmers is the occasional unnoticed overflow, not the exact diameter of the
galaxy measured in centimeters.

Purenum provides bignums whenever they are needed (at any speed) but it runs
it's absolute fastest while processing those common smaller numbers used by
most programs most of the time.  An existing program converted to use Purenum
will run almost as quickly as it did in the first place... AND all of it's
subtle overflow bugs will automatically be fixed.

Another advantage of Purenum is program portability between different kinds of
computers.  A Purenum-based C++ program should recompile and run on 16-bit,
32-bit, 64-bit, and other kinds of CPUs with no integer code changes.  Extra
CPU power will be taken advantage of where it is available.  The program will
work everywhere, even on slow, obsolete hardware.  Hardware independence is a
wonderful thing!
