projects
/
u
/
mdw
/
catacomb
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gdsa: Fix the conversion of hashes to integers to conform to the spec.
[u/mdw/catacomb]
/
manual
/
mp-mpx.tex
diff --git
a/manual/mp-mpx.tex
b/manual/mp-mpx.tex
index
28c1424
..
ce370b8
100644
(file)
--- a/
manual/mp-mpx.tex
+++ b/
manual/mp-mpx.tex
@@
-91,7
+91,7
@@
the array, denoted $\mp(v .. \vl)$, is defined to be
\[
\mp(v .. \vl) =
\sum_{0 \le i < \vl - v}
\[
\mp(v .. \vl) =
\sum_{0 \le i < \vl - v}
-
2^{\code{MPW_BITS} \cdot i} v[i]
+ 2^{\code{MPW_BITS} \cdot i} v[i]
\]
If the array is empty (i.e., $v = \vl$) then the number is zero. If the
array is empty, or the final word is nonzero, then the representation is said
\]
If the array is empty (i.e., $v = \vl$) then the number is zero. If the
array is empty, or the final word is nonzero, then the representation is said
@@
-152,7
+152,7
@@
largest integer such that
\begin{listinglist}
|#include <catacomb/mpx.h>| \\
|MPX_OCTETS(size_t |$o$|,|
\begin{listinglist}
|#include <catacomb/mpx.h>| \\
|MPX_OCTETS(size_t |$o$|,|
-
|const mpw *|$v$|, const mpw *|$\vl$|);|
+ |const mpw *|$v$|, const mpw *|$\vl$|);|
\end{listinglist}
\fsec{Description}
\end{listinglist}
\fsec{Description}
@@
-174,7
+174,7
@@
The result $o$ can be calculated from the number of bits~$b$ reported by
\begin{listinglist}
|#include <catacomb/mpx.h>| \\
|MPX_COPY(mpw *|$\dv$|, mpw *|$\dvl$|,|
\begin{listinglist}
|#include <catacomb/mpx.h>| \\
|MPX_COPY(mpw *|$\dv$|, mpw *|$\dvl$|,|
-
|const mpw *|$\av$|, const mpw *|$\avl$|);|
+ |const mpw *|$\av$|, const mpw *|$\avl$|);|
\end{listinglist}
\fsec{Description}
\end{listinglist}
\fsec{Description}
@@
-234,7
+234,7
@@
in an octet array of a particular size.
\begin{listinglist}
|#include <catacomb/mpx.h>| \\
|void mpx_storel(const mpw *|$v$|, const mpw *|$\vl$|,|
\begin{listinglist}
|#include <catacomb/mpx.h>| \\
|void mpx_storel(const mpw *|$v$|, const mpw *|$\vl$|,|
-
|void *|$p$|, size_t |$\sz$|);|
+ |void *|$p$|, size_t |$\sz$|);|
\end{listinglist}
\fsec{Description}
\end{listinglist}
\fsec{Description}
@@
-251,7
+251,7
@@
byte first).
\begin{listinglist}
|#include <catacomb/mpx.h>| \\
|void mpx_loadl(mpw *|$v$|, mpw *|$\vl$|,|
\begin{listinglist}
|#include <catacomb/mpx.h>| \\
|void mpx_loadl(mpw *|$v$|, mpw *|$\vl$|,|
-
|const void *|$p$|, size_t |$\sz$|);|
+ |const void *|$p$|, size_t |$\sz$|);|
\end{listinglist}
\fsec{Description}
\end{listinglist}
\fsec{Description}
@@
-268,7
+268,7
@@
significant byte first).
\begin{listinglist}
|#include <catacomb/mpx.h>| \\
|void mpx_storeb(const mpw *|$v$|, const mpw *|$\vl$|,|
\begin{listinglist}
|#include <catacomb/mpx.h>| \\
|void mpx_storeb(const mpw *|$v$|, const mpw *|$\vl$|,|
-
|void *|$p$|, size_t |$\sz$|);|
+ |void *|$p$|, size_t |$\sz$|);|
\end{listinglist}
\fsec{Description}
\end{listinglist}
\fsec{Description}
@@
-285,7
+285,7
@@
byte last).
\begin{listinglist}
|#include <catacomb/mpx.h>| \\
|void mpx_loadb(mpw *|$v$|, mpw *|$\vl$|,|
\begin{listinglist}
|#include <catacomb/mpx.h>| \\
|void mpx_loadb(mpw *|$v$|, mpw *|$\vl$|,|
-
|const void *|$p$|, size_t |$\sz$|);|
+ |const void *|$p$|, size_t |$\sz$|);|
\end{listinglist}
\fsec{Description}
\end{listinglist}
\fsec{Description}
@@
-319,7
+319,7
@@
integer.
\begin{tabbing}
|#include <catacomb/mpx.h>| \\
|void mpx_lsl(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,| \\
\begin{tabbing}
|#include <catacomb/mpx.h>| \\
|void mpx_lsl(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,| \\
-
\>|const mpw *|$\av$|, const mpw *|$\avl$|, size_t |$n$|);|
+ \>|const mpw *|$\av$|, const mpw *|$\avl$|, size_t |$n$|);|
\end{tabbing}
\end{listinglist}
\end{tabbing}
\end{listinglist}
@@
-337,7
+337,7
@@
$n$~bits (i.e., multiplying it by~$2^n$).
\begin{tabbing}
|#include <catacomb/mpx.h>| \\
|void mpx_lsr(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,| \\
\begin{tabbing}
|#include <catacomb/mpx.h>| \\
|void mpx_lsr(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,| \\
-
\>|const mpw *|$\av$|, const mpw *|$\avl$|, size_t |$n$|);|
+ \>|const mpw *|$\av$|, const mpw *|$\avl$|, size_t |$n$|);|
\end{tabbing}
\end{listinglist}
\end{tabbing}
\end{listinglist}
@@
-369,7
+369,7
@@
destination partially overlap the sources.
\begin{listinglist}
|#include <catacomb/mpx.h>| \\
|void mpx_2c(mpw *|$\dv$|, mpw *|$\dvl$|,|
\begin{listinglist}
|#include <catacomb/mpx.h>| \\
|void mpx_2c(mpw *|$\dv$|, mpw *|$\dvl$|,|
-
|const mpw *|$v$|, const mpw *|$\vl$|);|
+ |const mpw *|$v$|, const mpw *|$\vl$|);|
\end{listinglist}
\fsec{Description}
\end{listinglist}
\fsec{Description}
@@
-385,9
+385,9
@@
$\dv .. \dvl$. The two arrays $v .. \vl$ and $\dv .. \dvl$ may be the same.
\begin{tabbing}
|#include <catacomb/mpx.h>| \\
|int mpx_ucmp(|\=|const mpw *|$\av$|, const mpw *|$\avl$|,| \\
\begin{tabbing}
|#include <catacomb/mpx.h>| \\
|int mpx_ucmp(|\=|const mpw *|$\av$|, const mpw *|$\avl$|,| \\
-
\>|const mpw *|$\bv$|, const mpw *|$\bvl$|);| \\
+ \>|const mpw *|$\bv$|, const mpw *|$\bvl$|);| \\
|int MPX_UCMP(|\=|const mpw *|$\av$|, const mpw *|$\avl$|, |\synt{rel-op}|,|
|int MPX_UCMP(|\=|const mpw *|$\av$|, const mpw *|$\avl$|, |\synt{rel-op}|,|
- \\
\>|const mpw *|$\bv$|, const mpw *|$\bvl$|);|
+ \\ \>|const mpw *|$\bv$|, const mpw *|$\bvl$|);|
\end{tabbing}
\end{listinglist}
\end{tabbing}
\end{listinglist}
@@
-420,8
+420,8
@@
The macro \code{MPX_UCMP} returns a nonzero result if $a
\begin{tabbing}
|#include <catacomb/mpx.h>| \\
|void mpx_uadd(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,|
\begin{tabbing}
|#include <catacomb/mpx.h>| \\
|void mpx_uadd(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,|
-
|const mpw *|$\av$|, const mpw *|$\avl$|,| \\
-
\>|const mpw *|$\bv$|, const mpw *|$\bvl$|);|
+ |const mpw *|$\av$|, const mpw *|$\avl$|,| \\
+ \>|const mpw *|$\bv$|, const mpw *|$\bvl$|);|
\end{tabbing}
\end{listinglist}
\end{tabbing}
\end{listinglist}
@@
-461,8
+461,8
@@
inline code rather than calling a function.
\begin{tabbing}
|#include <catacomb/mpx.h>| \\
|void mpx_usub(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,|
\begin{tabbing}
|#include <catacomb/mpx.h>| \\
|void mpx_usub(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,|
-
|const mpw *|$\av$|, const mpw *|$\avl$|,| \\
-
\>|const mpw *|$\bv$|, const mpw *|$\bvl$|);|
+ |const mpw *|$\av$|, const mpw *|$\avl$|,| \\
+ \>|const mpw *|$\bv$|, const mpw *|$\bvl$|);|
\end{tabbing}
\end{listinglist}
\end{tabbing}
\end{listinglist}
@@
-471,7
+471,7
@@
inline code rather than calling a function.
Subtracts one multiprecision integer from another. The difference of the two
arguments $\mp(\av .. \avl) - \mp(\bv .. \bvl)$ is stored in $\dv .. \dvl$.
The destination array may be equal to either or both source
Subtracts one multiprecision integer from another. The difference of the two
arguments $\mp(\av .. \avl) - \mp(\bv .. \bvl)$ is stored in $\dv .. \dvl$.
The destination array may be equal to either or both source
-arrays.\footnote{%
+arrays.\footnote{%
Subtracting a number from itself is a particularly poor way of clearing an
integer to zero. A call to \code{MPX_ZERO} (page~\pageref{fn:MPX-ZERO}) is
much more efficient.} %
Subtracting a number from itself is a particularly poor way of clearing an
integer to zero. A call to \code{MPX_ZERO} (page~\pageref{fn:MPX-ZERO}) is
much more efficient.} %
@@
-508,8
+508,8
@@
inline code rather than calling a function.
\begin{tabbing}
|#include <catacomb/mpx.h>| \\
|void mpx_umul(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,|
\begin{tabbing}
|#include <catacomb/mpx.h>| \\
|void mpx_umul(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,|
-
|const mpw *|$\av$|, const mpw *|$\avl$|,| \\
-
\>|const mpw *|$\bv$|, const mpw *|$\bvl$|);|
+ |const mpw *|$\av$|, const mpw *|$\avl$|,| \\
+ \>|const mpw *|$\bv$|, const mpw *|$\bvl$|);|
\end{tabbing}
\end{listinglist}
\end{tabbing}
\end{listinglist}
@@
-528,9
+528,9
@@
destination array may not be equal to either source array.
\begin{tabbing}
|#include <catacomb/mpx.h>| \\
|void mpx_umuln(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,| \\
\begin{tabbing}
|#include <catacomb/mpx.h>| \\
|void mpx_umuln(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,| \\
-
\> |const mpw *|$\av$|, const mpw *|$\avl$|, mpw |$n$|);| \\
+ \> |const mpw *|$\av$|, const mpw *|$\avl$|, mpw |$n$|);| \\
|void MPX_UMULN(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,| \\
|void MPX_UMULN(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,| \\
-
\> |const mpw *|$\av$|, const mpw *|$\avl$|, mpw |$n$|);|
+ \> |const mpw *|$\av$|, const mpw *|$\avl$|, mpw |$n$|);|
\end{tabbing}
\end{listinglist}
\end{tabbing}
\end{listinglist}
@@
-554,9
+554,9
@@
inline code rather than calling a function.
\begin{tabbing}
|#include <catacomb/mpx.h>| \\*
|void mpx_umlan(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,| \\*
\begin{tabbing}
|#include <catacomb/mpx.h>| \\*
|void mpx_umlan(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,| \\*
-
\> |const mpw *|$\av$|, const mpw *|$\avl$|, mpw |$n$|);| \\
+ \> |const mpw *|$\av$|, const mpw *|$\avl$|, mpw |$n$|);| \\
|void MPX_UMLAN(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,| \\
|void MPX_UMLAN(|\=|mpw *|$\dv$|, mpw *|$\dvl$|,| \\
-
\> |const mpw *|$\av$|, const mpw *|$\avl$|, mpw |$n$|);|
+ \> |const mpw *|$\av$|, const mpw *|$\avl$|, mpw |$n$|);|
\end{tabbing}
\end{listinglist}
\end{tabbing}
\end{listinglist}
@@
-579,7
+579,7
@@
inline code rather than calling a function.
\begin{listinglist}
|#include <catacomb/mpx.h>| \\
|void mpx_usqr(mpw *|$\dv$|, mpw *|$\dvl$|,|
\begin{listinglist}
|#include <catacomb/mpx.h>| \\
|void mpx_usqr(mpw *|$\dv$|, mpw *|$\dvl$|,|
-
|const mpw *|$\av$|, const mpw *|$\avl$|);|
+ |const mpw *|$\av$|, const mpw *|$\avl$|);|
\end{listinglist}
\fsec{Description}
\end{listinglist}
\fsec{Description}
@@
-600,8
+600,8
@@
itself.
\begin{tabbing}
|#include <catacomb/mpx.h>| \\
|void mpx_udiv(|\=|mpw *|$\qv$|, mpw *|$\qvl$|, mpw *|$\rv$|, mpw *|$\rvl$|,|
\begin{tabbing}
|#include <catacomb/mpx.h>| \\
|void mpx_udiv(|\=|mpw *|$\qv$|, mpw *|$\qvl$|, mpw *|$\rv$|, mpw *|$\rvl$|,|
-\\
\>|const mpw *|$\dv$|, const mpw *|$\dvl$|,|
-
|mpw *|$\mathit{sv}$|, mpw *|$\mathit{svl}$|);|
+\\ \>|const mpw *|$\dv$|, const mpw *|$\dvl$|,|
+ |mpw *|$\mathit{sv}$|, mpw *|$\mathit{svl}$|);|
\end{tabbing}
\end{listinglist}
\end{tabbing}
\end{listinglist}
@@
-628,7
+628,7
@@
In particular, this definition implies that $r$ has the same sign as $y$,
which is a useful property when performing modular reductions.
\shortverb\|
which is a useful property when performing modular reductions.
\shortverb\|
-%%% Local Variables:
+%%% Local Variables:
%%% mode: latex
%%% TeX-master: "catacomb"
%%% mode: latex
%%% TeX-master: "catacomb"
-%%% End:
+%%% End: