%%% -*-latex-*-

\chapter{Multiprecision arithmetic}
\label{chap:mp}

Most public-key cryptographic systems, and some other cryptographic
primitives, require arithmetic on large numbers.  Catacomb provides a
reasonably efficient library of arithmetic functions, designed particularly
for cryptographic applications.


\section{Structure of the Catacomb multiprecision library}

The multiprecision routines in Catacomb are divided into a number of
logically separate units:

\begin{itemize*}
\item Very low-level unsigned arithmetic (\unit{mpx}).
\item Memory management support and allocation hooks (\unit{mparena}).
\item Standard operations on signed multiprecision integers (\unit{mp}).
\item I/O support for multiprecision integers (\unit{mptext}, \unit{mpint}).
\item Number-theoretic algorithms and functions (\unit{mpcrt}).
\item Modular multiplication and exponentiation functions (\unit{mpmont}).
\item Prime number searching and testing (\unit{pgen}, \unit{rabin}).
\end{itemize*}

\input{mp-mpx}
\input{mp-mp}
\input{mp-mod}

%%% Local Variables:
%%% mode: latex
%%% TeX-master: "catacomb"
%%% End:
