index 15e005a..6d7a15f 100644 (file)
@@ -24,15 +24,14 @@ individual digits. In practice we will still be limited by the memory and proces
For example, we can represent $5682_{10}$ as a single 16 bit digit or as the sum of two 8 bit digits. Each
digit is being written in base 2 or 10 because there is not a universal base with $\ge 2^8$ unique symbols.
\begin{align*}
-       5682_{10} &= 1011000110010_2 = 10110_2 \times 2^{8} + 110010_{2} \times 2^{0}
+       5682_{10} &= 1011000110010_2 = 10110_2 \times 2^{8} + 110010_{2} \times 2^{0} % = 22_{10} \times 256^{1} + 50_{10} \times 256^{0}
\end{align*}

When performing an operation involving two $m$ digit integers, the result will in general require at most $2m$ digits. A straight forward big integer implementation merely needs to allocate memory for leading zeroes

-Big Integers are implemented on the CPU as part of the standard for several languages including Python\cite{python_pep0237} and Java\cite{java_bigint}. Most implementations are based on the GNU Multiple Precision library (GMP) \cite{gmp2014}. There have also been implementations of Big Integer arithmetic for GPUs\cite{zhao2010GPUMP}.
-
- During this project a custom Big Integer type was implemented, but was found to be vastly inferior to the GMP implementation\cite{documentsArbitraryIntegers}.
+Big Integers are implemented on the CPU as part of the standard for several languages including Python\cite{python_pep0237} and Java\cite{java_bigint}. Most implementations are based on the GNU Multiple Precision library (GMP) \cite{granlund2004GMP}. There have also been implementations of Big Integer arithmetic for GPUs\cite{zhao2010GPUMP}.

+ During this project a custom Big Integer type was implemented, but was found to be vastly inferior to the GMP implementation\cite{documentsArbitraryIntegers}

%{\bf FIXME} Add Maths reference (Cantor's Diagonal argument) without going into all the Pure maths details UCC git Repository :: git.ucc.asn.au