Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > d1d38291248b5ff58339d3d2ddb22ecd > files > 1267

lib64beecrypt-devel-4.2.1-13.mga4.x86_64.rpm

\hypertarget{mp_8h}{\section{include/beecrypt/mp.h File Reference}
\label{mp_8h}\index{include/beecrypt/mp.\-h@{include/beecrypt/mp.\-h}}
}


Multi-\/precision integer routines.  


{\ttfamily \#include \char`\"{}beecrypt/api.\-h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}beecrypt/mpopt.\-h\char`\"{}}\\*
Include dependency graph for mp.\-h\-:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{mp_8h__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\-:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{mp_8h__dep__incl}
\end{center}
\end{figure}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{mp_8h_a3317414bc77cc27f0c50d300fc93db7e}{M\-P\-\_\-\-H\-W\-B\-I\-T\-S}~(\hyperlink{win_8h_a5e09ba38a82b16227bae0305d377708c}{M\-P\-\_\-\-W\-B\-I\-T\-S} $>$$>$ 1)
\item 
\#define \hyperlink{mp_8h_ac32fb614379620608d1c733a79132cfa}{M\-P\-\_\-\-W\-B\-Y\-T\-E\-S}~(\hyperlink{win_8h_a5e09ba38a82b16227bae0305d377708c}{M\-P\-\_\-\-W\-B\-I\-T\-S} $>$$>$ 3)
\item 
\#define \hyperlink{mp_8h_a3650f0cbb0aaa7100a4a7fba476920bf}{M\-P\-\_\-\-W\-N\-I\-B\-B\-L\-E\-S}~(\hyperlink{win_8h_a5e09ba38a82b16227bae0305d377708c}{M\-P\-\_\-\-W\-B\-I\-T\-S} $>$$>$ 2)
\item 
\#define \hyperlink{mp_8h_a7a243883fb94433b237da964799fabcd}{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-I\-T\-S}(x)~((x) $<$$<$ 6)
\item 
\#define \hyperlink{mp_8h_ab77b2dd70af10d0705b6048dc732a4dc}{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-N\-I\-B\-B\-L\-E\-S}(x)~((x) $<$$<$ 4)
\item 
\#define \hyperlink{mp_8h_a337d99143ec5b28671099a5ea022f3b9}{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-Y\-T\-E\-S}(x)~((x) $<$$<$ 3)
\item 
\#define \hyperlink{mp_8h_ad05de288398b539cf645bec59d9f27e8}{M\-P\-\_\-\-B\-I\-T\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S}(x)~((x) $>$$>$ 6)
\item 
\#define \hyperlink{mp_8h_a65dc4dd0b6906f36f66e42a55097b8b1}{M\-P\-\_\-\-N\-I\-B\-B\-L\-E\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S}(x)~((x) $>$$>$ 4)
\item 
\#define \hyperlink{mp_8h_a9b78d45cecc26f578dc32c4ae2c803dd}{M\-P\-\_\-\-B\-Y\-T\-E\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S}(x)~((x) $>$$>$ 3)
\item 
\#define \hyperlink{mp_8h_a696235b870f5868d66258cbfc903affa}{M\-P\-\_\-\-M\-S\-B\-M\-A\-S\-K}~(((\hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw}) 0x1) $<$$<$ (\-M\-P\-\_\-\-W\-B\-I\-T\-S-\/1))
\item 
\#define \hyperlink{mp_8h_a137aeb18139f4f7c871639eb67ecf7b9}{M\-P\-\_\-\-L\-S\-B\-M\-A\-S\-K}~((\hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw}) 0x1)
\item 
\#define \hyperlink{mp_8h_af5466aa801f08b6c63e02f54cfc7106b}{M\-P\-\_\-\-A\-L\-L\-M\-A\-S\-K}~$\sim$((\hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw}) 0x0)
\item 
\#define \hyperlink{mp_8h_afb750ee5bfe6cdd5a0ed87dccf981d80}{mpcopy}(size, dst, src)~memcpy(dst, src, \hyperlink{mp_8h_a337d99143ec5b28671099a5ea022f3b9}{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-Y\-T\-E\-S}(size))
\item 
\#define \hyperlink{mp_8h_abddd3139e57f9db0c67a896024bc9684}{mpmove}(size, dst, src)~memmove(dst, src, \hyperlink{mp_8h_a337d99143ec5b28671099a5ea022f3b9}{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-Y\-T\-E\-S}(size))
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{mp_8h_ae9fd060d4b6ce84404107a1523f34276}{mpzero} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function zeroes a multi-\/precision integer of a given size. \end{DoxyCompactList}\item 
void \hyperlink{mp_8h_a1624fb65f4a9cac6f6246d64bb0189ea}{mpfill} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} fill)
\begin{DoxyCompactList}\small\item\em This function fills each word of a multi-\/precision integer with a given value. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_a70c9ff9c0f765307214fb28d22cc2c23}{mpodd} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This functions tests if a multi-\/precision integer is odd. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_ab0520c67c603a7e32c9eeb6a39a02595}{mpeven} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function tests if a multi-\/precision integer is even. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_aa849fd262347ab62ea3b1bf4afbf7c7c}{mpz} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function tests if a multi-\/precision integer is zero. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_ade7306885f5508bc52954f6be8820558}{mpnz} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function tests if a multi-\/precision integer is not zero. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_ae801d1996190439b2cf80548f6a03a31}{mpeq} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function tests if two multi-\/precision integers of the same size are equal. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_ae661ccc4c37b796f4671f882e71c9cc4}{mpne} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function tests if two multi-\/precision integers of the same size differ. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_ae4905ad4ef2bb6b7e8a2aa79460041c6}{mpgt} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function tests if the first of two multi-\/precision integers of the same size is greater than the second. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_af4e3a7316789993b73b2289bf34c837b}{mplt} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function tests if the first of two multi-\/precision integers of the same size is less than the second. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_ae01843e52c6a0b0c28c345d8040670dc}{mpge} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function tests if the first of two multi-\/precision integers of the same size is greater than or equal to the second. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_af987c3b7b75fc0eae1f97aab58888006}{mple} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function tests if the first of two multi-\/precision integers of the same size is less than or equal to the second. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_acc8c19971240f6ea22f6b81c1db3553b}{mpcmp} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function performs a comparison of two multi-\/precision integers of the same size. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_af51c09b612e8033399cff6febdb9b505}{mpeqx} (size\-\_\-t xsize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, size\-\_\-t ysize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function tests if two multi-\/precision integers of different size are equal. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_abecba2b8f414da05ee7c9959ac72acb1}{mpnex} (size\-\_\-t xsize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, size\-\_\-t ysize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function tests if two multi-\/precision integers of different size are equal. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_ae2a7b28715b9a820ceda11b77d901953}{mpgtx} (size\-\_\-t xsize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, size\-\_\-t ysize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function tests if the first of two multi-\/precision integers of different size is greater than the second. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_a2d772e5778ec336da5a56302f21786a0}{mpltx} (size\-\_\-t xsize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, size\-\_\-t ysize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function tests if the first of two multi-\/precision integers of different size is less than the second. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_a01b1186616ddfd912772cddce1fc292b}{mpgex} (size\-\_\-t xsize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, size\-\_\-t ysize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function tests if the first of two multi-\/precision integers of different size is greater than or equal to the second. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_adbd7f836f9246cf904207315c346a56c}{mplex} (size\-\_\-t xsize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, size\-\_\-t ysize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function tests if the first of two multi-\/precision integers of different size is less than or equal to the second. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_ac0b786d9f5d016b2d0d06b22d6f89862}{mpcmpx} (size\-\_\-t xsize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, size\-\_\-t ysize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function performs a comparison of two multi-\/precision integers of the different size. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_ae9ab3d1ce03ffda281d610fd8123b06e}{mpisone} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This functions tests if the value of a multi-\/precision integer is equal to one. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_a0605a0ef9815dce0cf2743aafdac03e6}{mpistwo} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function tests if the value of a multi-\/precision integer is equal to two. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_af1f8a61b04fe27911d51aec0c6468238}{mpleone} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function tests if the value of a multi-\/precision integer is less than or equal to one. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_a75df6af46d913aad6f591583683d04e7}{mpeqmone} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function tests if multi-\/precision integer x is equal to y minus one. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_a12d85e63b1d9f4d68909c51890ef0738}{mpmsbset} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function tests if the most significant bit of a multi-\/precision integer is set. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_a84c1045a3fe0074b8b954679bcee62de}{mplsbset} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function tests if the leiast significant bit of a multi-\/precision integer is set. \end{DoxyCompactList}\item 
void \hyperlink{mp_8h_ab3a5821696b1b13a84d6648332ba6cf7}{mpsetmsb} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function sets the most significant bit of a multi-\/precision integer. \end{DoxyCompactList}\item 
void \hyperlink{mp_8h_ac4ccde3ff8c2aac9e324fb0832e28e1a}{mpsetlsb} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function sets the least significant bit of a multi-\/precision integer. \end{DoxyCompactList}\item 
void \hyperlink{mp_8h_a298b2af39ad306efab02829d83d86b4b}{mpclrmsb} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function clears the most significant bit of a multi-\/precision integer. \end{DoxyCompactList}\item 
void \hyperlink{mp_8h_afa0eacfccee374f6e7d4bdf388ddca01}{mpclrlsb} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function clears the least significant bit of a multi-\/precision integer. \end{DoxyCompactList}\item 
void \hyperlink{mp_8h_a13f975884c63ac0be76d2b444a7c6eb4}{mpand} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function computes the bit-\/wise A\-N\-D of two multi-\/precision integers. Modifies xdata. \end{DoxyCompactList}\item 
void \hyperlink{mp_8h_aa1baaac1e8919a218b2369355a8c1c63}{mpor} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function computes the bit-\/wise O\-R of two multi-\/precision integers. Modifies xdata. \end{DoxyCompactList}\item 
void \hyperlink{mp_8h_a6373a586b0e90cb78179143c89de4132}{mpxor} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function computes the bit-\/wise X\-O\-R of two multi-\/precision integers. Modifies xdata. \end{DoxyCompactList}\item 
void \hyperlink{mp_8h_ad0c8185589374810679c5a0cbbe3e0ca}{mpnot} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function flips all bits of a multi-\/precision integer. \end{DoxyCompactList}\item 
void \hyperlink{mp_8h_ad9f0efe339edc592551911ba2216e8cd}{mpsetw} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} y)
\begin{DoxyCompactList}\small\item\em This function sets the value of a multi-\/precision integer to the given word. The given value is copied into the least significant word, while the most significant words are zeroed. \end{DoxyCompactList}\item 
void \hyperlink{mp_8h_aa6dec413795f2d0138d09cb640dc81df}{mpsetws} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, size\-\_\-t y)
\begin{DoxyCompactList}\small\item\em This function sets the value of a multi-\/precision integer to the given word. The given value is copied into the least significant word(s), while the most significant words are zeroed. \end{DoxyCompactList}\item 
void \hyperlink{mp_8h_af94f0424014578a78d77c2084f3f3d5d}{mpsetx} (size\-\_\-t xsize, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, size\-\_\-t ysize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function set the value of the first multi-\/precision integer to the second, truncating the most significant words if ysize $>$ xsize, or zeroing the most significant words if ysize $<$ xsize. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_ad2926f765db1823a1d17a285d97e9ced}{mpaddw} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} y)
\begin{DoxyCompactList}\small\item\em This function adds one word to a multi-\/precision integer. The performed operation is in pseudocode\-: x += y. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_a3dad536563420e9c1f4445a08f37c681}{mpadd} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function adds two multi-\/precision integers of equal size. The performed operation is in pseudocode\-: x += y. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_a101cb432729cd51b2a922ea4ec2281af}{mpaddx} (size\-\_\-t xsize, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, size\-\_\-t ysize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function adds two multi-\/precision integers of different size. The performed operation in pseudocode\-: x += y. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_a5814eb1185a0dc05da2f86323f5c8978}{mpsubw} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} y)
\begin{DoxyCompactList}\small\item\em This function subtracts one word to a multi-\/precision integer. The performed operation in pseudocode\-: x -\/= y. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_a49e790df163e11d7230d81bbc8d5fde2}{mpsub} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function subtracts two multi-\/precision integers of equal size. The performed operation in pseudocode\-: x -\/= y. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_ae77b6a530198f3d8b3d9005b7cbcc0e5}{mpsubx} (size\-\_\-t xsize, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, size\-\_\-t ysize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function subtracts two multi-\/precision integers of different size. The performed operation in pseudocode\-: x -\/= y. \end{DoxyCompactList}\item 
int \hyperlink{mp_8h_ac7f624f09b82cc0451fd76932564a69e}{mpmultwo} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\item 
void \hyperlink{mp_8h_a5f26c9e232c74bacea5ae785692de1d4}{mpneg} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function negates a multi-\/precision integer. \end{DoxyCompactList}\item 
size\-\_\-t \hyperlink{mp_8h_a5847c378eda16688587b23753b65e972}{mpsize} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function returns the true size of a multi-\/precision integer, after stripping leading zero words. \end{DoxyCompactList}\item 
size\-\_\-t \hyperlink{mp_8h_abf18ad28b007603fdcc1d4c3695056e0}{mpbits} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function returns the number of significant bits in a multi-\/precision integer. \end{DoxyCompactList}\item 
size\-\_\-t \hyperlink{mp_8h_a49ae96d66620926a51acc81e915696e5}{mpmszcnt} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\item 
size\-\_\-t \hyperlink{mp_8h_a4a0a37729f64e516b74d3689db90eaf8}{mplszcnt} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\item 
void \hyperlink{mp_8h_aa458547531ad86f7304d1beab35a5e7e}{mplshift} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data, size\-\_\-t count)
\item 
void \hyperlink{mp_8h_acbbc33f1d523347abbea10b755822c05}{mprshift} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data, size\-\_\-t count)
\item 
size\-\_\-t \hyperlink{mp_8h_a2ce894dd95d1f2e82a8afcc75fffaa9c}{mprshiftlsz} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\item 
size\-\_\-t \hyperlink{mp_8h_a0b54adf94eaee674a4e3490b30a2f954}{mpnorm} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\item 
void \hyperlink{mp_8h_a9bb92b1971621bcb54326369dc641ecf}{mpdivtwo} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\item 
void \hyperlink{mp_8h_a9267926999bef7cfae96f50ec8fa7bd6}{mpsdivtwo} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\item 
\hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} \hyperlink{mp_8h_a659c97a015a63a4405c9a45e6a1b49e6}{mpsetmul} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$result, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} y)
\begin{DoxyCompactList}\small\item\em This function performs a multi-\/precision multiply-\/setup. \end{DoxyCompactList}\item 
\hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} \hyperlink{mp_8h_af6319411048f3dd303dfc3297b7c304f}{mpaddmul} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$result, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} y)
\begin{DoxyCompactList}\small\item\em This function performs a mult-\/precision multiply-\/accumulate. \end{DoxyCompactList}\item 
void \hyperlink{mp_8h_a5891518a4754596508b8ba8002499714}{mpaddsqrtrc} (size\-\_\-t size, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$result, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function is used in the calculation of a multi-\/precision squaring. \end{DoxyCompactList}\item 
void \hyperlink{mp_8h_aa936396b75b6e41298482020363c2a94}{mpmul} (\hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$result, size\-\_\-t xsize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, size\-\_\-t ysize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata)
\begin{DoxyCompactList}\small\item\em This function computes a full multi-\/precision product. \end{DoxyCompactList}\item 
void \hyperlink{mp_8h_a7703ab7d9b0b2b4f1ebc6f7415029c9b}{mpsqr} (\hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$result, size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\begin{DoxyCompactList}\small\item\em This function computes a full multi-\/precision square. \end{DoxyCompactList}\item 
void \hyperlink{mp_8h_a599e5e794ea7df612bbdeba64cbddf12}{mpgcd\-\_\-w} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$result, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$wksp)
\item 
int \hyperlink{mp_8h_a872a570802ee8bbf3dc24df3361dcbc4}{mpextgcd\-\_\-w} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$result, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$wksp)
\item 
\hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} \hyperlink{mp_8h_a0f56eafb94580fd8d838ae86a3a4e6f7}{mppndiv} (\hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} xhi, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} xlo, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} y)
\item 
void \hyperlink{mp_8h_a8a0e5d0430ecb60521593164a766294b}{mpmod} (\hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$result, size\-\_\-t xsize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, size\-\_\-t ysize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$wksp)
\item 
void \hyperlink{mp_8h_af2f708ed3c44a665a0024b11dc8e2817}{mpndivmod} (\hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$result, size\-\_\-t xsize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$xdata, size\-\_\-t ysize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$ydata, \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$wksp)
\item 
void \hyperlink{mp_8h_ac1b16cee4b287487d5fde0f423b1f8e5}{mpprint} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\item 
void \hyperlink{mp_8h_ae3dcf4ff639792019af97bfb9585107a}{mpprintln} (size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\item 
void \hyperlink{mp_8h_a9d9d384955be2de91d8edcfc368e7079}{mpfprint} (F\-I\-L\-E $\ast$f, size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\item 
void \hyperlink{mp_8h_acc68e89bb559d3e271fef4400be91db0}{mpfprintln} (F\-I\-L\-E $\ast$f, size\-\_\-t size, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$data)
\item 
int \hyperlink{mp_8h_ae82af22d91fe3e6a94cd649ab4bc7b3c}{i2osp} (\hyperlink{api_8h_ab8ef12fab634c171394422d0ee8baf94}{byte} $\ast$osdata, size\-\_\-t ossize, const \hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$idata, size\-\_\-t isize)
\item 
int \hyperlink{mp_8h_a2e26b9c3109b8a41a8c87bcfe1dfbfc8}{os2ip} (\hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$idata, size\-\_\-t isize, const \hyperlink{api_8h_ab8ef12fab634c171394422d0ee8baf94}{byte} $\ast$osdata, size\-\_\-t ossize)
\item 
int \hyperlink{mp_8h_a75f587dd2a2c286258832da478297c7b}{hs2ip} (\hyperlink{api_8h_a8de7ba63f011c81fa7f87724104d774b}{mpw} $\ast$idata, size\-\_\-t isize, const char $\ast$hsdata, size\-\_\-t hssize)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Multi-\/precision integer routines. The routines declared here are all low-\/level operations, most of them suitable to be implemented in assembler. Prime candidates are in order of importance (according to gprof)\-: 
\begin{DoxyItemize}
\item mpaddmul 
\item mpsetmul 
\item mpaddsqrtrc 
\item mpsub 
\item mpadd 
\end{DoxyItemize}

With some smart use of available assembler instructions, it's possible to speed these routines up by a factor of 2 to 4.

\begin{DoxyAuthor}{Author}
Bob Deblier \href{mailto:bob.deblier@telenet.be}{\tt bob.\-deblier@telenet.\-be} 
\end{DoxyAuthor}


\subsection{Macro Definition Documentation}
\hypertarget{mp_8h_af5466aa801f08b6c63e02f54cfc7106b}{\index{mp.\-h@{mp.\-h}!M\-P\-\_\-\-A\-L\-L\-M\-A\-S\-K@{M\-P\-\_\-\-A\-L\-L\-M\-A\-S\-K}}
\index{M\-P\-\_\-\-A\-L\-L\-M\-A\-S\-K@{M\-P\-\_\-\-A\-L\-L\-M\-A\-S\-K}!mp.h@{mp.\-h}}
\subsubsection[{M\-P\-\_\-\-A\-L\-L\-M\-A\-S\-K}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-P\-\_\-\-A\-L\-L\-M\-A\-S\-K~$\sim$(({\bf mpw}) 0x0)}}\label{mp_8h_af5466aa801f08b6c63e02f54cfc7106b}
\hypertarget{mp_8h_ad05de288398b539cf645bec59d9f27e8}{\index{mp.\-h@{mp.\-h}!M\-P\-\_\-\-B\-I\-T\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S@{M\-P\-\_\-\-B\-I\-T\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S}}
\index{M\-P\-\_\-\-B\-I\-T\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S@{M\-P\-\_\-\-B\-I\-T\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S}!mp.h@{mp.\-h}}
\subsubsection[{M\-P\-\_\-\-B\-I\-T\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-P\-\_\-\-B\-I\-T\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S(
\begin{DoxyParamCaption}
\item[{}]{x}
\end{DoxyParamCaption}
)~((x) $>$$>$ 6)}}\label{mp_8h_ad05de288398b539cf645bec59d9f27e8}
\hypertarget{mp_8h_a9b78d45cecc26f578dc32c4ae2c803dd}{\index{mp.\-h@{mp.\-h}!M\-P\-\_\-\-B\-Y\-T\-E\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S@{M\-P\-\_\-\-B\-Y\-T\-E\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S}}
\index{M\-P\-\_\-\-B\-Y\-T\-E\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S@{M\-P\-\_\-\-B\-Y\-T\-E\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S}!mp.h@{mp.\-h}}
\subsubsection[{M\-P\-\_\-\-B\-Y\-T\-E\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-P\-\_\-\-B\-Y\-T\-E\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S(
\begin{DoxyParamCaption}
\item[{}]{x}
\end{DoxyParamCaption}
)~((x) $>$$>$ 3)}}\label{mp_8h_a9b78d45cecc26f578dc32c4ae2c803dd}
\hypertarget{mp_8h_a3317414bc77cc27f0c50d300fc93db7e}{\index{mp.\-h@{mp.\-h}!M\-P\-\_\-\-H\-W\-B\-I\-T\-S@{M\-P\-\_\-\-H\-W\-B\-I\-T\-S}}
\index{M\-P\-\_\-\-H\-W\-B\-I\-T\-S@{M\-P\-\_\-\-H\-W\-B\-I\-T\-S}!mp.h@{mp.\-h}}
\subsubsection[{M\-P\-\_\-\-H\-W\-B\-I\-T\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-P\-\_\-\-H\-W\-B\-I\-T\-S~({\bf M\-P\-\_\-\-W\-B\-I\-T\-S} $>$$>$ 1)}}\label{mp_8h_a3317414bc77cc27f0c50d300fc93db7e}
\hypertarget{mp_8h_a137aeb18139f4f7c871639eb67ecf7b9}{\index{mp.\-h@{mp.\-h}!M\-P\-\_\-\-L\-S\-B\-M\-A\-S\-K@{M\-P\-\_\-\-L\-S\-B\-M\-A\-S\-K}}
\index{M\-P\-\_\-\-L\-S\-B\-M\-A\-S\-K@{M\-P\-\_\-\-L\-S\-B\-M\-A\-S\-K}!mp.h@{mp.\-h}}
\subsubsection[{M\-P\-\_\-\-L\-S\-B\-M\-A\-S\-K}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-P\-\_\-\-L\-S\-B\-M\-A\-S\-K~(({\bf mpw}) 0x1)}}\label{mp_8h_a137aeb18139f4f7c871639eb67ecf7b9}
\hypertarget{mp_8h_a696235b870f5868d66258cbfc903affa}{\index{mp.\-h@{mp.\-h}!M\-P\-\_\-\-M\-S\-B\-M\-A\-S\-K@{M\-P\-\_\-\-M\-S\-B\-M\-A\-S\-K}}
\index{M\-P\-\_\-\-M\-S\-B\-M\-A\-S\-K@{M\-P\-\_\-\-M\-S\-B\-M\-A\-S\-K}!mp.h@{mp.\-h}}
\subsubsection[{M\-P\-\_\-\-M\-S\-B\-M\-A\-S\-K}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-P\-\_\-\-M\-S\-B\-M\-A\-S\-K~((({\bf mpw}) 0x1) $<$$<$ (\-M\-P\-\_\-\-W\-B\-I\-T\-S-\/1))}}\label{mp_8h_a696235b870f5868d66258cbfc903affa}
\hypertarget{mp_8h_a65dc4dd0b6906f36f66e42a55097b8b1}{\index{mp.\-h@{mp.\-h}!M\-P\-\_\-\-N\-I\-B\-B\-L\-E\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S@{M\-P\-\_\-\-N\-I\-B\-B\-L\-E\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S}}
\index{M\-P\-\_\-\-N\-I\-B\-B\-L\-E\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S@{M\-P\-\_\-\-N\-I\-B\-B\-L\-E\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S}!mp.h@{mp.\-h}}
\subsubsection[{M\-P\-\_\-\-N\-I\-B\-B\-L\-E\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-P\-\_\-\-N\-I\-B\-B\-L\-E\-S\-\_\-\-T\-O\-\_\-\-W\-O\-R\-D\-S(
\begin{DoxyParamCaption}
\item[{}]{x}
\end{DoxyParamCaption}
)~((x) $>$$>$ 4)}}\label{mp_8h_a65dc4dd0b6906f36f66e42a55097b8b1}
\hypertarget{mp_8h_ac32fb614379620608d1c733a79132cfa}{\index{mp.\-h@{mp.\-h}!M\-P\-\_\-\-W\-B\-Y\-T\-E\-S@{M\-P\-\_\-\-W\-B\-Y\-T\-E\-S}}
\index{M\-P\-\_\-\-W\-B\-Y\-T\-E\-S@{M\-P\-\_\-\-W\-B\-Y\-T\-E\-S}!mp.h@{mp.\-h}}
\subsubsection[{M\-P\-\_\-\-W\-B\-Y\-T\-E\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-P\-\_\-\-W\-B\-Y\-T\-E\-S~({\bf M\-P\-\_\-\-W\-B\-I\-T\-S} $>$$>$ 3)}}\label{mp_8h_ac32fb614379620608d1c733a79132cfa}
\hypertarget{mp_8h_a3650f0cbb0aaa7100a4a7fba476920bf}{\index{mp.\-h@{mp.\-h}!M\-P\-\_\-\-W\-N\-I\-B\-B\-L\-E\-S@{M\-P\-\_\-\-W\-N\-I\-B\-B\-L\-E\-S}}
\index{M\-P\-\_\-\-W\-N\-I\-B\-B\-L\-E\-S@{M\-P\-\_\-\-W\-N\-I\-B\-B\-L\-E\-S}!mp.h@{mp.\-h}}
\subsubsection[{M\-P\-\_\-\-W\-N\-I\-B\-B\-L\-E\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-P\-\_\-\-W\-N\-I\-B\-B\-L\-E\-S~({\bf M\-P\-\_\-\-W\-B\-I\-T\-S} $>$$>$ 2)}}\label{mp_8h_a3650f0cbb0aaa7100a4a7fba476920bf}
\hypertarget{mp_8h_a7a243883fb94433b237da964799fabcd}{\index{mp.\-h@{mp.\-h}!M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-I\-T\-S@{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-I\-T\-S}}
\index{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-I\-T\-S@{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-I\-T\-S}!mp.h@{mp.\-h}}
\subsubsection[{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-I\-T\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-I\-T\-S(
\begin{DoxyParamCaption}
\item[{}]{x}
\end{DoxyParamCaption}
)~((x) $<$$<$ 6)}}\label{mp_8h_a7a243883fb94433b237da964799fabcd}
\hypertarget{mp_8h_a337d99143ec5b28671099a5ea022f3b9}{\index{mp.\-h@{mp.\-h}!M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-Y\-T\-E\-S@{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-Y\-T\-E\-S}}
\index{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-Y\-T\-E\-S@{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-Y\-T\-E\-S}!mp.h@{mp.\-h}}
\subsubsection[{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-Y\-T\-E\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-Y\-T\-E\-S(
\begin{DoxyParamCaption}
\item[{}]{x}
\end{DoxyParamCaption}
)~((x) $<$$<$ 3)}}\label{mp_8h_a337d99143ec5b28671099a5ea022f3b9}
\hypertarget{mp_8h_ab77b2dd70af10d0705b6048dc732a4dc}{\index{mp.\-h@{mp.\-h}!M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-N\-I\-B\-B\-L\-E\-S@{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-N\-I\-B\-B\-L\-E\-S}}
\index{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-N\-I\-B\-B\-L\-E\-S@{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-N\-I\-B\-B\-L\-E\-S}!mp.h@{mp.\-h}}
\subsubsection[{M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-N\-I\-B\-B\-L\-E\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-N\-I\-B\-B\-L\-E\-S(
\begin{DoxyParamCaption}
\item[{}]{x}
\end{DoxyParamCaption}
)~((x) $<$$<$ 4)}}\label{mp_8h_ab77b2dd70af10d0705b6048dc732a4dc}
\hypertarget{mp_8h_afb750ee5bfe6cdd5a0ed87dccf981d80}{\index{mp.\-h@{mp.\-h}!mpcopy@{mpcopy}}
\index{mpcopy@{mpcopy}!mp.h@{mp.\-h}}
\subsubsection[{mpcopy}]{\setlength{\rightskip}{0pt plus 5cm}\#define mpcopy(
\begin{DoxyParamCaption}
\item[{}]{size, }
\item[{}]{dst, }
\item[{}]{src}
\end{DoxyParamCaption}
)~memcpy(dst, src, {\bf M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-Y\-T\-E\-S}(size))}}\label{mp_8h_afb750ee5bfe6cdd5a0ed87dccf981d80}
\hypertarget{mp_8h_abddd3139e57f9db0c67a896024bc9684}{\index{mp.\-h@{mp.\-h}!mpmove@{mpmove}}
\index{mpmove@{mpmove}!mp.h@{mp.\-h}}
\subsubsection[{mpmove}]{\setlength{\rightskip}{0pt plus 5cm}\#define mpmove(
\begin{DoxyParamCaption}
\item[{}]{size, }
\item[{}]{dst, }
\item[{}]{src}
\end{DoxyParamCaption}
)~memmove(dst, src, {\bf M\-P\-\_\-\-W\-O\-R\-D\-S\-\_\-\-T\-O\-\_\-\-B\-Y\-T\-E\-S}(size))}}\label{mp_8h_abddd3139e57f9db0c67a896024bc9684}


\subsection{Function Documentation}
\hypertarget{mp_8h_a75f587dd2a2c286258832da478297c7b}{\index{mp.\-h@{mp.\-h}!hs2ip@{hs2ip}}
\index{hs2ip@{hs2ip}!mp.h@{mp.\-h}}
\subsubsection[{hs2ip}]{\setlength{\rightskip}{0pt plus 5cm}int hs2ip (
\begin{DoxyParamCaption}
\item[{{\bf mpw} $\ast$}]{idata, }
\item[{size\-\_\-t}]{isize, }
\item[{const char $\ast$}]{hsdata, }
\item[{size\-\_\-t}]{hssize}
\end{DoxyParamCaption}
)}}\label{mp_8h_a75f587dd2a2c286258832da478297c7b}
\hypertarget{mp_8h_ae82af22d91fe3e6a94cd649ab4bc7b3c}{\index{mp.\-h@{mp.\-h}!i2osp@{i2osp}}
\index{i2osp@{i2osp}!mp.h@{mp.\-h}}
\subsubsection[{i2osp}]{\setlength{\rightskip}{0pt plus 5cm}int i2osp (
\begin{DoxyParamCaption}
\item[{{\bf byte} $\ast$}]{osdata, }
\item[{size\-\_\-t}]{ossize, }
\item[{const {\bf mpw} $\ast$}]{idata, }
\item[{size\-\_\-t}]{isize}
\end{DoxyParamCaption}
)}}\label{mp_8h_ae82af22d91fe3e6a94cd649ab4bc7b3c}
\hypertarget{mp_8h_a3dad536563420e9c1f4445a08f37c681}{\index{mp.\-h@{mp.\-h}!mpadd@{mpadd}}
\index{mpadd@{mpadd}!mp.h@{mp.\-h}}
\subsubsection[{mpadd}]{\setlength{\rightskip}{0pt plus 5cm}int mpadd (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{xdata, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_a3dad536563420e9c1f4445a08f37c681}


This function adds two multi-\/precision integers of equal size. The performed operation is in pseudocode\-: x += y. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integers. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The carry-\/over value of the operation; this value is either 0 or 1. 
\end{DoxyReturn}
\hypertarget{mp_8h_af6319411048f3dd303dfc3297b7c304f}{\index{mp.\-h@{mp.\-h}!mpaddmul@{mpaddmul}}
\index{mpaddmul@{mpaddmul}!mp.h@{mp.\-h}}
\subsubsection[{mpaddmul}]{\setlength{\rightskip}{0pt plus 5cm}{\bf mpw} mpaddmul (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{result, }
\item[{const {\bf mpw} $\ast$}]{data, }
\item[{{\bf mpw}}]{y}
\end{DoxyParamCaption}
)}}\label{mp_8h_af6319411048f3dd303dfc3297b7c304f}


This function performs a mult-\/precision multiply-\/accumulate. 

This function is used in the computation of a full multi-\/precision multiplication. It computes the product-\/by-\/one-\/word and accumulates it with the previous result.


\begin{DoxyParams}{Parameters}
{\em size} & The size of multi-\/precision integer multiplier. \\
\hline
{\em result} & The place where result will be accumulated. \\
\hline
{\em data} & The multi-\/precision integer multiplier. \\
\hline
{\em y} & The multiplicand. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em The} & carry-\/over multi-\/precision word. \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_a5891518a4754596508b8ba8002499714}{\index{mp.\-h@{mp.\-h}!mpaddsqrtrc@{mpaddsqrtrc}}
\index{mpaddsqrtrc@{mpaddsqrtrc}!mp.h@{mp.\-h}}
\subsubsection[{mpaddsqrtrc}]{\setlength{\rightskip}{0pt plus 5cm}void mpaddsqrtrc (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{result, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_a5891518a4754596508b8ba8002499714}


This function is used in the calculation of a multi-\/precision squaring. 

\hypertarget{mp_8h_ad2926f765db1823a1d17a285d97e9ced}{\index{mp.\-h@{mp.\-h}!mpaddw@{mpaddw}}
\index{mpaddw@{mpaddw}!mp.h@{mp.\-h}}
\subsubsection[{mpaddw}]{\setlength{\rightskip}{0pt plus 5cm}int mpaddw (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{xdata, }
\item[{{\bf mpw}}]{y}
\end{DoxyParamCaption}
)}}\label{mp_8h_ad2926f765db1823a1d17a285d97e9ced}


This function adds one word to a multi-\/precision integer. The performed operation is in pseudocode\-: x += y. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em y} & The multi-\/precision word. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The carry-\/over value of the operation; this value is either 0 or 1. 
\end{DoxyReturn}
\hypertarget{mp_8h_a101cb432729cd51b2a922ea4ec2281af}{\index{mp.\-h@{mp.\-h}!mpaddx@{mpaddx}}
\index{mpaddx@{mpaddx}!mp.h@{mp.\-h}}
\subsubsection[{mpaddx}]{\setlength{\rightskip}{0pt plus 5cm}int mpaddx (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{xsize, }
\item[{{\bf mpw} $\ast$}]{xdata, }
\item[{size\-\_\-t}]{ysize, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_a101cb432729cd51b2a922ea4ec2281af}


This function adds two multi-\/precision integers of different size. The performed operation in pseudocode\-: x += y. 


\begin{DoxyParams}{Parameters}
{\em xsize} & The size of the first multi-\/precision integer. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ysize} & The size of the second multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The carry-\/over value of the operation; this value is either 0 or 1. 
\end{DoxyReturn}
\hypertarget{mp_8h_a13f975884c63ac0be76d2b444a7c6eb4}{\index{mp.\-h@{mp.\-h}!mpand@{mpand}}
\index{mpand@{mpand}!mp.h@{mp.\-h}}
\subsubsection[{mpand}]{\setlength{\rightskip}{0pt plus 5cm}mpand (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{xdata, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_a13f975884c63ac0be76d2b444a7c6eb4}


This function computes the bit-\/wise A\-N\-D of two multi-\/precision integers. Modifies xdata. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integers. \\
\hline
{\em xdata} & The multi-\/precision integer data. \\
\hline
{\em ydata} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}
\hypertarget{mp_8h_abf18ad28b007603fdcc1d4c3695056e0}{\index{mp.\-h@{mp.\-h}!mpbits@{mpbits}}
\index{mpbits@{mpbits}!mp.h@{mp.\-h}}
\subsubsection[{mpbits}]{\setlength{\rightskip}{0pt plus 5cm}size\-\_\-t mpbits (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_abf18ad28b007603fdcc1d4c3695056e0}


This function returns the number of significant bits in a multi-\/precision integer. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}
\hypertarget{mp_8h_afa0eacfccee374f6e7d4bdf388ddca01}{\index{mp.\-h@{mp.\-h}!mpclrlsb@{mpclrlsb}}
\index{mpclrlsb@{mpclrlsb}!mp.h@{mp.\-h}}
\subsubsection[{mpclrlsb}]{\setlength{\rightskip}{0pt plus 5cm}void mpclrlsb (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_afa0eacfccee374f6e7d4bdf388ddca01}


This function clears the least significant bit of a multi-\/precision integer. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}
\hypertarget{mp_8h_a298b2af39ad306efab02829d83d86b4b}{\index{mp.\-h@{mp.\-h}!mpclrmsb@{mpclrmsb}}
\index{mpclrmsb@{mpclrmsb}!mp.h@{mp.\-h}}
\subsubsection[{mpclrmsb}]{\setlength{\rightskip}{0pt plus 5cm}void mpclrmsb (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_a298b2af39ad306efab02829d83d86b4b}


This function clears the most significant bit of a multi-\/precision integer. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}
\hypertarget{mp_8h_acc8c19971240f6ea22f6b81c1db3553b}{\index{mp.\-h@{mp.\-h}!mpcmp@{mpcmp}}
\index{mpcmp@{mpcmp}!mp.h@{mp.\-h}}
\subsubsection[{mpcmp}]{\setlength{\rightskip}{0pt plus 5cm}int mpcmp (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_acc8c19971240f6ea22f6b81c1db3553b}


This function performs a comparison of two multi-\/precision integers of the same size. 

\begin{DoxyNote}{Note}
The comparison treats the arguments as unsigned. 
\end{DoxyNote}

\begin{DoxyRetVals}{Return values}
{\em -\/1} & if x $<$ y \\
\hline
{\em 0} & if x == y \\
\hline
{\em 1} & if x $>$ y \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_ac0b786d9f5d016b2d0d06b22d6f89862}{\index{mp.\-h@{mp.\-h}!mpcmpx@{mpcmpx}}
\index{mpcmpx@{mpcmpx}!mp.h@{mp.\-h}}
\subsubsection[{mpcmpx}]{\setlength{\rightskip}{0pt plus 5cm}int mpcmpx (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{xsize, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{size\-\_\-t}]{ysize, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_ac0b786d9f5d016b2d0d06b22d6f89862}


This function performs a comparison of two multi-\/precision integers of the different size. 

\begin{DoxyNote}{Note}
The comparison treats the arguments as unsigned. 
\end{DoxyNote}

\begin{DoxyRetVals}{Return values}
{\em -\/1} & if x $<$ y \\
\hline
{\em 0} & if x == y \\
\hline
{\em 1} & if x $>$ y \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_a9bb92b1971621bcb54326369dc641ecf}{\index{mp.\-h@{mp.\-h}!mpdivtwo@{mpdivtwo}}
\index{mpdivtwo@{mpdivtwo}!mp.h@{mp.\-h}}
\subsubsection[{mpdivtwo}]{\setlength{\rightskip}{0pt plus 5cm}void mpdivtwo (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_a9bb92b1971621bcb54326369dc641ecf}
\hypertarget{mp_8h_ae801d1996190439b2cf80548f6a03a31}{\index{mp.\-h@{mp.\-h}!mpeq@{mpeq}}
\index{mpeq@{mpeq}!mp.h@{mp.\-h}}
\subsubsection[{mpeq}]{\setlength{\rightskip}{0pt plus 5cm}int mpeq (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_ae801d1996190439b2cf80548f6a03a31}


This function tests if two multi-\/precision integers of the same size are equal. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integers. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if equal \\
\hline
{\em 0} & if not equal \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_a75df6af46d913aad6f591583683d04e7}{\index{mp.\-h@{mp.\-h}!mpeqmone@{mpeqmone}}
\index{mpeqmone@{mpeqmone}!mp.h@{mp.\-h}}
\subsubsection[{mpeqmone}]{\setlength{\rightskip}{0pt plus 5cm}int mpeqmone (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_a75df6af46d913aad6f591583683d04e7}


This function tests if multi-\/precision integer x is equal to y minus one. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integers. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if less than or equal to one. \\
\hline
{\em 0} & if greater than one. \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_af51c09b612e8033399cff6febdb9b505}{\index{mp.\-h@{mp.\-h}!mpeqx@{mpeqx}}
\index{mpeqx@{mpeqx}!mp.h@{mp.\-h}}
\subsubsection[{mpeqx}]{\setlength{\rightskip}{0pt plus 5cm}int mpeqx (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{xsize, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{size\-\_\-t}]{ysize, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_af51c09b612e8033399cff6febdb9b505}


This function tests if two multi-\/precision integers of different size are equal. 


\begin{DoxyParams}{Parameters}
{\em xsize} & The size of the first multi-\/precision integer. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ysize} & The size of the first multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if equal \\
\hline
{\em 0} & if not equal \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_ab0520c67c603a7e32c9eeb6a39a02595}{\index{mp.\-h@{mp.\-h}!mpeven@{mpeven}}
\index{mpeven@{mpeven}!mp.h@{mp.\-h}}
\subsubsection[{mpeven}]{\setlength{\rightskip}{0pt plus 5cm}int mpeven (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_ab0520c67c603a7e32c9eeb6a39a02595}


This function tests if a multi-\/precision integer is even. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if even \\
\hline
{\em 0} & if odd \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_a872a570802ee8bbf3dc24df3361dcbc4}{\index{mp.\-h@{mp.\-h}!mpextgcd\-\_\-w@{mpextgcd\-\_\-w}}
\index{mpextgcd\-\_\-w@{mpextgcd\-\_\-w}!mp.h@{mp.\-h}}
\subsubsection[{mpextgcd\-\_\-w}]{\setlength{\rightskip}{0pt plus 5cm}int mpextgcd\-\_\-w (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{const {\bf mpw} $\ast$}]{ydata, }
\item[{{\bf mpw} $\ast$}]{result, }
\item[{{\bf mpw} $\ast$}]{wksp}
\end{DoxyParamCaption}
)}}\label{mp_8h_a872a570802ee8bbf3dc24df3361dcbc4}
\hypertarget{mp_8h_a1624fb65f4a9cac6f6246d64bb0189ea}{\index{mp.\-h@{mp.\-h}!mpfill@{mpfill}}
\index{mpfill@{mpfill}!mp.h@{mp.\-h}}
\subsubsection[{mpfill}]{\setlength{\rightskip}{0pt plus 5cm}void mpfill (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{data, }
\item[{{\bf mpw}}]{fill}
\end{DoxyParamCaption}
)}}\label{mp_8h_a1624fb65f4a9cac6f6246d64bb0189ea}


This function fills each word of a multi-\/precision integer with a given value. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
{\em fill} & The value fill the data with. \\
\hline
\end{DoxyParams}
\hypertarget{mp_8h_a9d9d384955be2de91d8edcfc368e7079}{\index{mp.\-h@{mp.\-h}!mpfprint@{mpfprint}}
\index{mpfprint@{mpfprint}!mp.h@{mp.\-h}}
\subsubsection[{mpfprint}]{\setlength{\rightskip}{0pt plus 5cm}void mpfprint (
\begin{DoxyParamCaption}
\item[{F\-I\-L\-E $\ast$}]{f, }
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_a9d9d384955be2de91d8edcfc368e7079}
\hypertarget{mp_8h_acc68e89bb559d3e271fef4400be91db0}{\index{mp.\-h@{mp.\-h}!mpfprintln@{mpfprintln}}
\index{mpfprintln@{mpfprintln}!mp.h@{mp.\-h}}
\subsubsection[{mpfprintln}]{\setlength{\rightskip}{0pt plus 5cm}void mpfprintln (
\begin{DoxyParamCaption}
\item[{F\-I\-L\-E $\ast$}]{f, }
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_acc68e89bb559d3e271fef4400be91db0}
\hypertarget{mp_8h_a599e5e794ea7df612bbdeba64cbddf12}{\index{mp.\-h@{mp.\-h}!mpgcd\-\_\-w@{mpgcd\-\_\-w}}
\index{mpgcd\-\_\-w@{mpgcd\-\_\-w}!mp.h@{mp.\-h}}
\subsubsection[{mpgcd\-\_\-w}]{\setlength{\rightskip}{0pt plus 5cm}void mpgcd\-\_\-w (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{const {\bf mpw} $\ast$}]{ydata, }
\item[{{\bf mpw} $\ast$}]{result, }
\item[{{\bf mpw} $\ast$}]{wksp}
\end{DoxyParamCaption}
)}}\label{mp_8h_a599e5e794ea7df612bbdeba64cbddf12}
\hypertarget{mp_8h_ae01843e52c6a0b0c28c345d8040670dc}{\index{mp.\-h@{mp.\-h}!mpge@{mpge}}
\index{mpge@{mpge}!mp.h@{mp.\-h}}
\subsubsection[{mpge}]{\setlength{\rightskip}{0pt plus 5cm}int mpge (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_ae01843e52c6a0b0c28c345d8040670dc}


This function tests if the first of two multi-\/precision integers of the same size is greater than or equal to the second. 

\begin{DoxyNote}{Note}
The comparison treats the arguments as unsigned. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integers. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if greater or equal \\
\hline
{\em 0} & if less \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_a01b1186616ddfd912772cddce1fc292b}{\index{mp.\-h@{mp.\-h}!mpgex@{mpgex}}
\index{mpgex@{mpgex}!mp.h@{mp.\-h}}
\subsubsection[{mpgex}]{\setlength{\rightskip}{0pt plus 5cm}int mpgex (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{xsize, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{size\-\_\-t}]{ysize, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_a01b1186616ddfd912772cddce1fc292b}


This function tests if the first of two multi-\/precision integers of different size is greater than or equal to the second. 

\begin{DoxyNote}{Note}
The comparison treats the arguments as unsigned. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em xsize} & The size of the first multi-\/precision integer. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ysize} & The size of the second multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if greater or equal \\
\hline
{\em 0} & if less \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_ae4905ad4ef2bb6b7e8a2aa79460041c6}{\index{mp.\-h@{mp.\-h}!mpgt@{mpgt}}
\index{mpgt@{mpgt}!mp.h@{mp.\-h}}
\subsubsection[{mpgt}]{\setlength{\rightskip}{0pt plus 5cm}int mpgt (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_ae4905ad4ef2bb6b7e8a2aa79460041c6}


This function tests if the first of two multi-\/precision integers of the same size is greater than the second. 

\begin{DoxyNote}{Note}
The comparison treats the arguments as unsigned. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integers. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if greater \\
\hline
{\em 0} & if less or equal \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_ae2a7b28715b9a820ceda11b77d901953}{\index{mp.\-h@{mp.\-h}!mpgtx@{mpgtx}}
\index{mpgtx@{mpgtx}!mp.h@{mp.\-h}}
\subsubsection[{mpgtx}]{\setlength{\rightskip}{0pt plus 5cm}int mpgtx (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{xsize, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{size\-\_\-t}]{ysize, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_ae2a7b28715b9a820ceda11b77d901953}


This function tests if the first of two multi-\/precision integers of different size is greater than the second. 

\begin{DoxyNote}{Note}
The comparison treats the arguments as unsigned. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em xsize} & The size of the first multi-\/precision integer. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ysize} & The size of the second multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if greater \\
\hline
{\em 0} & if less or equal \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_ae9ab3d1ce03ffda281d610fd8123b06e}{\index{mp.\-h@{mp.\-h}!mpisone@{mpisone}}
\index{mpisone@{mpisone}!mp.h@{mp.\-h}}
\subsubsection[{mpisone}]{\setlength{\rightskip}{0pt plus 5cm}int mpisone (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_ae9ab3d1ce03ffda281d610fd8123b06e}


This functions tests if the value of a multi-\/precision integer is equal to one. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if one \\
\hline
{\em 0} & if not one \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_a0605a0ef9815dce0cf2743aafdac03e6}{\index{mp.\-h@{mp.\-h}!mpistwo@{mpistwo}}
\index{mpistwo@{mpistwo}!mp.h@{mp.\-h}}
\subsubsection[{mpistwo}]{\setlength{\rightskip}{0pt plus 5cm}int mpistwo (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_a0605a0ef9815dce0cf2743aafdac03e6}


This function tests if the value of a multi-\/precision integer is equal to two. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if two \\
\hline
{\em 0} & if not two \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_af987c3b7b75fc0eae1f97aab58888006}{\index{mp.\-h@{mp.\-h}!mple@{mple}}
\index{mple@{mple}!mp.h@{mp.\-h}}
\subsubsection[{mple}]{\setlength{\rightskip}{0pt plus 5cm}int mple (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_af987c3b7b75fc0eae1f97aab58888006}


This function tests if the first of two multi-\/precision integers of the same size is less than or equal to the second. 

\begin{DoxyNote}{Note}
The comparison treats the arguments as unsigned. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integers. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if less or equal \\
\hline
{\em 0} & if greater \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_af1f8a61b04fe27911d51aec0c6468238}{\index{mp.\-h@{mp.\-h}!mpleone@{mpleone}}
\index{mpleone@{mpleone}!mp.h@{mp.\-h}}
\subsubsection[{mpleone}]{\setlength{\rightskip}{0pt plus 5cm}int mpleone (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_af1f8a61b04fe27911d51aec0c6468238}


This function tests if the value of a multi-\/precision integer is less than or equal to one. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if less than or equal to one. \\
\hline
{\em 0} & if greater than one. \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_adbd7f836f9246cf904207315c346a56c}{\index{mp.\-h@{mp.\-h}!mplex@{mplex}}
\index{mplex@{mplex}!mp.h@{mp.\-h}}
\subsubsection[{mplex}]{\setlength{\rightskip}{0pt plus 5cm}int mplex (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{xsize, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{size\-\_\-t}]{ysize, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_adbd7f836f9246cf904207315c346a56c}


This function tests if the first of two multi-\/precision integers of different size is less than or equal to the second. 

\begin{DoxyNote}{Note}
The comparison treats the arguments as unsigned. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em xsize} & The size of the first multi-\/precision integer. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ysize} & The size of the second multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if less or equal \\
\hline
{\em 0} & if greater \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_a84c1045a3fe0074b8b954679bcee62de}{\index{mp.\-h@{mp.\-h}!mplsbset@{mplsbset}}
\index{mplsbset@{mplsbset}!mp.h@{mp.\-h}}
\subsubsection[{mplsbset}]{\setlength{\rightskip}{0pt plus 5cm}int mplsbset (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_a84c1045a3fe0074b8b954679bcee62de}


This function tests if the leiast significant bit of a multi-\/precision integer is set. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if set \\
\hline
{\em 0} & if not set \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_aa458547531ad86f7304d1beab35a5e7e}{\index{mp.\-h@{mp.\-h}!mplshift@{mplshift}}
\index{mplshift@{mplshift}!mp.h@{mp.\-h}}
\subsubsection[{mplshift}]{\setlength{\rightskip}{0pt plus 5cm}void mplshift (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{data, }
\item[{size\-\_\-t}]{count}
\end{DoxyParamCaption}
)}}\label{mp_8h_aa458547531ad86f7304d1beab35a5e7e}
\hypertarget{mp_8h_a4a0a37729f64e516b74d3689db90eaf8}{\index{mp.\-h@{mp.\-h}!mplszcnt@{mplszcnt}}
\index{mplszcnt@{mplszcnt}!mp.h@{mp.\-h}}
\subsubsection[{mplszcnt}]{\setlength{\rightskip}{0pt plus 5cm}size\-\_\-t mplszcnt (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_a4a0a37729f64e516b74d3689db90eaf8}
\hypertarget{mp_8h_af4e3a7316789993b73b2289bf34c837b}{\index{mp.\-h@{mp.\-h}!mplt@{mplt}}
\index{mplt@{mplt}!mp.h@{mp.\-h}}
\subsubsection[{mplt}]{\setlength{\rightskip}{0pt plus 5cm}int mplt (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_af4e3a7316789993b73b2289bf34c837b}


This function tests if the first of two multi-\/precision integers of the same size is less than the second. 

\begin{DoxyNote}{Note}
The comparison treats the arguments as unsigned. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integers. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if less \\
\hline
{\em 0} & if greater or equal \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_a2d772e5778ec336da5a56302f21786a0}{\index{mp.\-h@{mp.\-h}!mpltx@{mpltx}}
\index{mpltx@{mpltx}!mp.h@{mp.\-h}}
\subsubsection[{mpltx}]{\setlength{\rightskip}{0pt plus 5cm}int mpltx (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{xsize, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{size\-\_\-t}]{ysize, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_a2d772e5778ec336da5a56302f21786a0}


This function tests if the first of two multi-\/precision integers of different size is less than the second. 

\begin{DoxyNote}{Note}
The comparison treats the arguments as unsigned. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em xsize} & The size of the first multi-\/precision integer. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ysize} & The size of the second multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if less \\
\hline
{\em 0} & if greater or equal \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_a8a0e5d0430ecb60521593164a766294b}{\index{mp.\-h@{mp.\-h}!mpmod@{mpmod}}
\index{mpmod@{mpmod}!mp.h@{mp.\-h}}
\subsubsection[{mpmod}]{\setlength{\rightskip}{0pt plus 5cm}void mpmod (
\begin{DoxyParamCaption}
\item[{{\bf mpw} $\ast$}]{result, }
\item[{size\-\_\-t}]{xsize, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{size\-\_\-t}]{ysize, }
\item[{const {\bf mpw} $\ast$}]{ydata, }
\item[{{\bf mpw} $\ast$}]{wksp}
\end{DoxyParamCaption}
)}}\label{mp_8h_a8a0e5d0430ecb60521593164a766294b}
\hypertarget{mp_8h_a12d85e63b1d9f4d68909c51890ef0738}{\index{mp.\-h@{mp.\-h}!mpmsbset@{mpmsbset}}
\index{mpmsbset@{mpmsbset}!mp.h@{mp.\-h}}
\subsubsection[{mpmsbset}]{\setlength{\rightskip}{0pt plus 5cm}int mpmsbset (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_a12d85e63b1d9f4d68909c51890ef0738}


This function tests if the most significant bit of a multi-\/precision integer is set. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if set \\
\hline
{\em 0} & if not set \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_a49ae96d66620926a51acc81e915696e5}{\index{mp.\-h@{mp.\-h}!mpmszcnt@{mpmszcnt}}
\index{mpmszcnt@{mpmszcnt}!mp.h@{mp.\-h}}
\subsubsection[{mpmszcnt}]{\setlength{\rightskip}{0pt plus 5cm}size\-\_\-t mpmszcnt (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_a49ae96d66620926a51acc81e915696e5}
\hypertarget{mp_8h_aa936396b75b6e41298482020363c2a94}{\index{mp.\-h@{mp.\-h}!mpmul@{mpmul}}
\index{mpmul@{mpmul}!mp.h@{mp.\-h}}
\subsubsection[{mpmul}]{\setlength{\rightskip}{0pt plus 5cm}void mpmul (
\begin{DoxyParamCaption}
\item[{{\bf mpw} $\ast$}]{result, }
\item[{size\-\_\-t}]{xsize, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{size\-\_\-t}]{ysize, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_aa936396b75b6e41298482020363c2a94}


This function computes a full multi-\/precision product. 

\hypertarget{mp_8h_ac7f624f09b82cc0451fd76932564a69e}{\index{mp.\-h@{mp.\-h}!mpmultwo@{mpmultwo}}
\index{mpmultwo@{mpmultwo}!mp.h@{mp.\-h}}
\subsubsection[{mpmultwo}]{\setlength{\rightskip}{0pt plus 5cm}int mpmultwo (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_ac7f624f09b82cc0451fd76932564a69e}
\hypertarget{mp_8h_af2f708ed3c44a665a0024b11dc8e2817}{\index{mp.\-h@{mp.\-h}!mpndivmod@{mpndivmod}}
\index{mpndivmod@{mpndivmod}!mp.h@{mp.\-h}}
\subsubsection[{mpndivmod}]{\setlength{\rightskip}{0pt plus 5cm}void mpndivmod (
\begin{DoxyParamCaption}
\item[{{\bf mpw} $\ast$}]{result, }
\item[{size\-\_\-t}]{xsize, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{size\-\_\-t}]{ysize, }
\item[{const {\bf mpw} $\ast$}]{ydata, }
\item[{{\bf mpw} $\ast$}]{wksp}
\end{DoxyParamCaption}
)}}\label{mp_8h_af2f708ed3c44a665a0024b11dc8e2817}
\hypertarget{mp_8h_ae661ccc4c37b796f4671f882e71c9cc4}{\index{mp.\-h@{mp.\-h}!mpne@{mpne}}
\index{mpne@{mpne}!mp.h@{mp.\-h}}
\subsubsection[{mpne}]{\setlength{\rightskip}{0pt plus 5cm}int mpne (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_ae661ccc4c37b796f4671f882e71c9cc4}


This function tests if two multi-\/precision integers of the same size differ. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integers. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if not equal \\
\hline
{\em 0} & if equal \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_a5f26c9e232c74bacea5ae785692de1d4}{\index{mp.\-h@{mp.\-h}!mpneg@{mpneg}}
\index{mpneg@{mpneg}!mp.h@{mp.\-h}}
\subsubsection[{mpneg}]{\setlength{\rightskip}{0pt plus 5cm}void mpneg (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_a5f26c9e232c74bacea5ae785692de1d4}


This function negates a multi-\/precision integer. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}
\hypertarget{mp_8h_abecba2b8f414da05ee7c9959ac72acb1}{\index{mp.\-h@{mp.\-h}!mpnex@{mpnex}}
\index{mpnex@{mpnex}!mp.h@{mp.\-h}}
\subsubsection[{mpnex}]{\setlength{\rightskip}{0pt plus 5cm}int mpnex (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{xsize, }
\item[{const {\bf mpw} $\ast$}]{xdata, }
\item[{size\-\_\-t}]{ysize, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_abecba2b8f414da05ee7c9959ac72acb1}


This function tests if two multi-\/precision integers of different size are equal. 


\begin{DoxyParams}{Parameters}
{\em xsize} & The size of the first multi-\/precision integer. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ysize} & The size of the first multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if equal \\
\hline
{\em 0} & if not equal \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_a0b54adf94eaee674a4e3490b30a2f954}{\index{mp.\-h@{mp.\-h}!mpnorm@{mpnorm}}
\index{mpnorm@{mpnorm}!mp.h@{mp.\-h}}
\subsubsection[{mpnorm}]{\setlength{\rightskip}{0pt plus 5cm}size\-\_\-t mpnorm (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_a0b54adf94eaee674a4e3490b30a2f954}
\hypertarget{mp_8h_ad0c8185589374810679c5a0cbbe3e0ca}{\index{mp.\-h@{mp.\-h}!mpnot@{mpnot}}
\index{mpnot@{mpnot}!mp.h@{mp.\-h}}
\subsubsection[{mpnot}]{\setlength{\rightskip}{0pt plus 5cm}mpnot (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_ad0c8185589374810679c5a0cbbe3e0ca}


This function flips all bits of a multi-\/precision integer. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}
\hypertarget{mp_8h_ade7306885f5508bc52954f6be8820558}{\index{mp.\-h@{mp.\-h}!mpnz@{mpnz}}
\index{mpnz@{mpnz}!mp.h@{mp.\-h}}
\subsubsection[{mpnz}]{\setlength{\rightskip}{0pt plus 5cm}int mpnz (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_ade7306885f5508bc52954f6be8820558}


This function tests if a multi-\/precision integer is not zero. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if not zero \\
\hline
{\em 0} & if zero \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_a70c9ff9c0f765307214fb28d22cc2c23}{\index{mp.\-h@{mp.\-h}!mpodd@{mpodd}}
\index{mpodd@{mpodd}!mp.h@{mp.\-h}}
\subsubsection[{mpodd}]{\setlength{\rightskip}{0pt plus 5cm}int mpodd (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_a70c9ff9c0f765307214fb28d22cc2c23}


This functions tests if a multi-\/precision integer is odd. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if odd \\
\hline
{\em 0} & if even \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_aa1baaac1e8919a218b2369355a8c1c63}{\index{mp.\-h@{mp.\-h}!mpor@{mpor}}
\index{mpor@{mpor}!mp.h@{mp.\-h}}
\subsubsection[{mpor}]{\setlength{\rightskip}{0pt plus 5cm}void mpor (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{xdata, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_aa1baaac1e8919a218b2369355a8c1c63}


This function computes the bit-\/wise O\-R of two multi-\/precision integers. Modifies xdata. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em xdata} & The multi-\/precision integer data. \\
\hline
{\em ydata} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}
\hypertarget{mp_8h_a0f56eafb94580fd8d838ae86a3a4e6f7}{\index{mp.\-h@{mp.\-h}!mppndiv@{mppndiv}}
\index{mppndiv@{mppndiv}!mp.h@{mp.\-h}}
\subsubsection[{mppndiv}]{\setlength{\rightskip}{0pt plus 5cm}{\bf mpw} mppndiv (
\begin{DoxyParamCaption}
\item[{{\bf mpw}}]{xhi, }
\item[{{\bf mpw}}]{xlo, }
\item[{{\bf mpw}}]{y}
\end{DoxyParamCaption}
)}}\label{mp_8h_a0f56eafb94580fd8d838ae86a3a4e6f7}
\hypertarget{mp_8h_ac1b16cee4b287487d5fde0f423b1f8e5}{\index{mp.\-h@{mp.\-h}!mpprint@{mpprint}}
\index{mpprint@{mpprint}!mp.h@{mp.\-h}}
\subsubsection[{mpprint}]{\setlength{\rightskip}{0pt plus 5cm}void mpprint (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_ac1b16cee4b287487d5fde0f423b1f8e5}
\hypertarget{mp_8h_ae3dcf4ff639792019af97bfb9585107a}{\index{mp.\-h@{mp.\-h}!mpprintln@{mpprintln}}
\index{mpprintln@{mpprintln}!mp.h@{mp.\-h}}
\subsubsection[{mpprintln}]{\setlength{\rightskip}{0pt plus 5cm}void mpprintln (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_ae3dcf4ff639792019af97bfb9585107a}
\hypertarget{mp_8h_acbbc33f1d523347abbea10b755822c05}{\index{mp.\-h@{mp.\-h}!mprshift@{mprshift}}
\index{mprshift@{mprshift}!mp.h@{mp.\-h}}
\subsubsection[{mprshift}]{\setlength{\rightskip}{0pt plus 5cm}void mprshift (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{data, }
\item[{size\-\_\-t}]{count}
\end{DoxyParamCaption}
)}}\label{mp_8h_acbbc33f1d523347abbea10b755822c05}
\hypertarget{mp_8h_a2ce894dd95d1f2e82a8afcc75fffaa9c}{\index{mp.\-h@{mp.\-h}!mprshiftlsz@{mprshiftlsz}}
\index{mprshiftlsz@{mprshiftlsz}!mp.h@{mp.\-h}}
\subsubsection[{mprshiftlsz}]{\setlength{\rightskip}{0pt plus 5cm}size\-\_\-t mprshiftlsz (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_a2ce894dd95d1f2e82a8afcc75fffaa9c}
\hypertarget{mp_8h_a9267926999bef7cfae96f50ec8fa7bd6}{\index{mp.\-h@{mp.\-h}!mpsdivtwo@{mpsdivtwo}}
\index{mpsdivtwo@{mpsdivtwo}!mp.h@{mp.\-h}}
\subsubsection[{mpsdivtwo}]{\setlength{\rightskip}{0pt plus 5cm}void mpsdivtwo (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_a9267926999bef7cfae96f50ec8fa7bd6}
\hypertarget{mp_8h_ac4ccde3ff8c2aac9e324fb0832e28e1a}{\index{mp.\-h@{mp.\-h}!mpsetlsb@{mpsetlsb}}
\index{mpsetlsb@{mpsetlsb}!mp.h@{mp.\-h}}
\subsubsection[{mpsetlsb}]{\setlength{\rightskip}{0pt plus 5cm}void mpsetlsb (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_ac4ccde3ff8c2aac9e324fb0832e28e1a}


This function sets the least significant bit of a multi-\/precision integer. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}
\hypertarget{mp_8h_ab3a5821696b1b13a84d6648332ba6cf7}{\index{mp.\-h@{mp.\-h}!mpsetmsb@{mpsetmsb}}
\index{mpsetmsb@{mpsetmsb}!mp.h@{mp.\-h}}
\subsubsection[{mpsetmsb}]{\setlength{\rightskip}{0pt plus 5cm}void mpsetmsb (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_ab3a5821696b1b13a84d6648332ba6cf7}


This function sets the most significant bit of a multi-\/precision integer. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}
\hypertarget{mp_8h_a659c97a015a63a4405c9a45e6a1b49e6}{\index{mp.\-h@{mp.\-h}!mpsetmul@{mpsetmul}}
\index{mpsetmul@{mpsetmul}!mp.h@{mp.\-h}}
\subsubsection[{mpsetmul}]{\setlength{\rightskip}{0pt plus 5cm}{\bf mpw} mpsetmul (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{result, }
\item[{const {\bf mpw} $\ast$}]{data, }
\item[{{\bf mpw}}]{y}
\end{DoxyParamCaption}
)}}\label{mp_8h_a659c97a015a63a4405c9a45e6a1b49e6}


This function performs a multi-\/precision multiply-\/setup. 

This function is used in the computation of a full multi-\/precision multiplication. By using it we can shave off a few cycles; otherwise we'd have to zero the least significant half of the result first and use another call to the slightly slower mpaddmul function.


\begin{DoxyParams}{Parameters}
{\em size} & The size of multi-\/precision integer multiplier. \\
\hline
{\em result} & The place where result will be accumulated. \\
\hline
{\em data} & The multi-\/precision integer multiplier. \\
\hline
{\em y} & The multiplicand. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The carry-\/over multi-\/precision word. 
\end{DoxyReturn}
\hypertarget{mp_8h_ad9f0efe339edc592551911ba2216e8cd}{\index{mp.\-h@{mp.\-h}!mpsetw@{mpsetw}}
\index{mpsetw@{mpsetw}!mp.h@{mp.\-h}}
\subsubsection[{mpsetw}]{\setlength{\rightskip}{0pt plus 5cm}void mpsetw (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{xdata, }
\item[{{\bf mpw}}]{y}
\end{DoxyParamCaption}
)}}\label{mp_8h_ad9f0efe339edc592551911ba2216e8cd}


This function sets the value of a multi-\/precision integer to the given word. The given value is copied into the least significant word, while the most significant words are zeroed. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em xdata} & The multi-\/precision integer data. \\
\hline
{\em y} & The value to be assigned. \\
\hline
\end{DoxyParams}
\hypertarget{mp_8h_aa6dec413795f2d0138d09cb640dc81df}{\index{mp.\-h@{mp.\-h}!mpsetws@{mpsetws}}
\index{mpsetws@{mpsetws}!mp.h@{mp.\-h}}
\subsubsection[{mpsetws}]{\setlength{\rightskip}{0pt plus 5cm}void mpsetws (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{xdata, }
\item[{size\-\_\-t}]{y}
\end{DoxyParamCaption}
)}}\label{mp_8h_aa6dec413795f2d0138d09cb640dc81df}


This function sets the value of a multi-\/precision integer to the given word. The given value is copied into the least significant word(s), while the most significant words are zeroed. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em xdata} & The multi-\/precision integer data. \\
\hline
{\em y} & The value. \\
\hline
\end{DoxyParams}
\hypertarget{mp_8h_af94f0424014578a78d77c2084f3f3d5d}{\index{mp.\-h@{mp.\-h}!mpsetx@{mpsetx}}
\index{mpsetx@{mpsetx}!mp.h@{mp.\-h}}
\subsubsection[{mpsetx}]{\setlength{\rightskip}{0pt plus 5cm}void mpsetx (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{xsize, }
\item[{{\bf mpw} $\ast$}]{xdata, }
\item[{size\-\_\-t}]{ysize, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_af94f0424014578a78d77c2084f3f3d5d}


This function set the value of the first multi-\/precision integer to the second, truncating the most significant words if ysize $>$ xsize, or zeroing the most significant words if ysize $<$ xsize. 


\begin{DoxyParams}{Parameters}
{\em xsize} & The size of the first multi-\/precision integer. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ysize} & The size of the second multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}
\hypertarget{mp_8h_a5847c378eda16688587b23753b65e972}{\index{mp.\-h@{mp.\-h}!mpsize@{mpsize}}
\index{mpsize@{mpsize}!mp.h@{mp.\-h}}
\subsubsection[{mpsize}]{\setlength{\rightskip}{0pt plus 5cm}size\-\_\-t mpsize (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_a5847c378eda16688587b23753b65e972}


This function returns the true size of a multi-\/precision integer, after stripping leading zero words. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}
\hypertarget{mp_8h_a7703ab7d9b0b2b4f1ebc6f7415029c9b}{\index{mp.\-h@{mp.\-h}!mpsqr@{mpsqr}}
\index{mpsqr@{mpsqr}!mp.h@{mp.\-h}}
\subsubsection[{mpsqr}]{\setlength{\rightskip}{0pt plus 5cm}void mpsqr (
\begin{DoxyParamCaption}
\item[{{\bf mpw} $\ast$}]{result, }
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_a7703ab7d9b0b2b4f1ebc6f7415029c9b}


This function computes a full multi-\/precision square. 

\hypertarget{mp_8h_a49e790df163e11d7230d81bbc8d5fde2}{\index{mp.\-h@{mp.\-h}!mpsub@{mpsub}}
\index{mpsub@{mpsub}!mp.h@{mp.\-h}}
\subsubsection[{mpsub}]{\setlength{\rightskip}{0pt plus 5cm}int mpsub (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{xdata, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_a49e790df163e11d7230d81bbc8d5fde2}


This function subtracts two multi-\/precision integers of equal size. The performed operation in pseudocode\-: x -\/= y. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integers. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The carry-\/over value of the operation; this value is either 0 or 1. 
\end{DoxyReturn}
\hypertarget{mp_8h_a5814eb1185a0dc05da2f86323f5c8978}{\index{mp.\-h@{mp.\-h}!mpsubw@{mpsubw}}
\index{mpsubw@{mpsubw}!mp.h@{mp.\-h}}
\subsubsection[{mpsubw}]{\setlength{\rightskip}{0pt plus 5cm}int mpsubw (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{xdata, }
\item[{{\bf mpw}}]{y}
\end{DoxyParamCaption}
)}}\label{mp_8h_a5814eb1185a0dc05da2f86323f5c8978}


This function subtracts one word to a multi-\/precision integer. The performed operation in pseudocode\-: x -\/= y. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integers. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em y} & The multi-\/precision word. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The carry-\/over value of the operation; this value is either 0 or 1. 
\end{DoxyReturn}
\hypertarget{mp_8h_ae77b6a530198f3d8b3d9005b7cbcc0e5}{\index{mp.\-h@{mp.\-h}!mpsubx@{mpsubx}}
\index{mpsubx@{mpsubx}!mp.h@{mp.\-h}}
\subsubsection[{mpsubx}]{\setlength{\rightskip}{0pt plus 5cm}int mpsubx (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{xsize, }
\item[{{\bf mpw} $\ast$}]{xdata, }
\item[{size\-\_\-t}]{ysize, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_ae77b6a530198f3d8b3d9005b7cbcc0e5}


This function subtracts two multi-\/precision integers of different size. The performed operation in pseudocode\-: x -\/= y. 


\begin{DoxyParams}{Parameters}
{\em xsize} & The size of the first multi-\/precision integer. \\
\hline
{\em xdata} & The first multi-\/precision integer. \\
\hline
{\em ysize} & The size of the second multi-\/precision integer. \\
\hline
{\em ydata} & The second multi-\/precision integer. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The carry-\/over value of the operation; this value is either 0 or 1. 
\end{DoxyReturn}
\hypertarget{mp_8h_a6373a586b0e90cb78179143c89de4132}{\index{mp.\-h@{mp.\-h}!mpxor@{mpxor}}
\index{mpxor@{mpxor}!mp.h@{mp.\-h}}
\subsubsection[{mpxor}]{\setlength{\rightskip}{0pt plus 5cm}void mpxor (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{xdata, }
\item[{const {\bf mpw} $\ast$}]{ydata}
\end{DoxyParamCaption}
)}}\label{mp_8h_a6373a586b0e90cb78179143c89de4132}


This function computes the bit-\/wise X\-O\-R of two multi-\/precision integers. Modifies xdata. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em xdata} & The multi-\/precision integer data. \\
\hline
{\em ydata} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}
\hypertarget{mp_8h_aa849fd262347ab62ea3b1bf4afbf7c7c}{\index{mp.\-h@{mp.\-h}!mpz@{mpz}}
\index{mpz@{mpz}!mp.h@{mp.\-h}}
\subsubsection[{mpz}]{\setlength{\rightskip}{0pt plus 5cm}int mpz (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{const {\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_aa849fd262347ab62ea3b1bf4afbf7c7c}


This function tests if a multi-\/precision integer is zero. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & if zero \\
\hline
{\em 0} & if not zero \\
\hline
\end{DoxyRetVals}
\hypertarget{mp_8h_ae9fd060d4b6ce84404107a1523f34276}{\index{mp.\-h@{mp.\-h}!mpzero@{mpzero}}
\index{mpzero@{mpzero}!mp.h@{mp.\-h}}
\subsubsection[{mpzero}]{\setlength{\rightskip}{0pt plus 5cm}void mpzero (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{size, }
\item[{{\bf mpw} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{mp_8h_ae9fd060d4b6ce84404107a1523f34276}


This function zeroes a multi-\/precision integer of a given size. 


\begin{DoxyParams}{Parameters}
{\em size} & The size of the multi-\/precision integer. \\
\hline
{\em data} & The multi-\/precision integer data. \\
\hline
\end{DoxyParams}
\hypertarget{mp_8h_a2e26b9c3109b8a41a8c87bcfe1dfbfc8}{\index{mp.\-h@{mp.\-h}!os2ip@{os2ip}}
\index{os2ip@{os2ip}!mp.h@{mp.\-h}}
\subsubsection[{os2ip}]{\setlength{\rightskip}{0pt plus 5cm}int os2ip (
\begin{DoxyParamCaption}
\item[{{\bf mpw} $\ast$}]{idata, }
\item[{size\-\_\-t}]{isize, }
\item[{const {\bf byte} $\ast$}]{osdata, }
\item[{size\-\_\-t}]{ossize}
\end{DoxyParamCaption}
)}}\label{mp_8h_a2e26b9c3109b8a41a8c87bcfe1dfbfc8}