commit 0f4e35ab7ce4972243b4bb938ad1360d2473ba1a
parent e1e6fd65758a800c5c76600a96a9326fd63163b0
Author: Mattias Andrée <maandree@kth.se>
Date: Mon, 9 May 2016 17:19:51 +0200
Corrects to the manual, found by Marc
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat:
3 files changed, 32 insertions(+), 26 deletions(-)
diff --git a/doc/get-started.tex b/doc/get-started.tex
@@ -12,7 +12,7 @@ You should read the sections in order.
\section{Initialisation}
\label{sec:Initialisation}
-Before using libzahl, it most be initialised. When
+Before using libzahl, it must be initialised. When
initialising, you must select a location whither libzahl
long jumps on error.
@@ -34,7 +34,7 @@ long jumps on error.
{\tt zsetup} also initialises temporary variables used
by libzahl's functions, and constants used by libzahl's
functions. Furthermore, it initialises the memory pool
-and a stack which libzahl to keep track of temporary
+and a stack which libzahl uses to keep track of temporary
allocations that need to be pooled for use if a function
fails.
@@ -55,8 +55,8 @@ are done using it, for example before the program exits.
\}}
\end{alltt}
-{\tt zunsetup} all memory that has be reclaim to the
-memory pool, and all memory allocated by {\tt zsetup}.
+{\tt zunsetup} all memory that has been reclaimed to
+the memory pool, and all memory allocated by {\tt zsetup}.
Note that this does not free integers that are still
in use. It is possible to simply call {\tt zunsetup}
directly followed by {\tt zsetup} to free all pooled
diff --git a/doc/libzahls-design.tex b/doc/libzahls-design.tex
@@ -20,7 +20,7 @@ Because of the memory pooling, this is a pattern to the
allocation sizes. In an allocation, a power of two
elements, plus a few elements that are discussed in
\secref{sec:Integer structure}, are allocated. That is,
-the number multiplied the size of an element.
+the number multiplied by the size of an element.
Powers of two (growth factor 2) is not the most memory
efficient way to do this, but it is the simplest and
performance efficient. This power of two (sans the few
@@ -40,14 +40,14 @@ of temporary variables predefined.
\label{sec:Error handling}
In C, it is traditional to return a sentiel value
-if case an error has occurred, and set the value
-of a globale variable to describe the error that
+in case an error has occurred, and set the value
+of a global variable to describe the error that
has occurred. The programmer can choose whether to
check for errors, ignore errors where it does not
-matter, or simple ignore errors all together and let
-the program eventual crash. This is a simple
+matter, or simple ignore errors altogether and let
+the program eventually crash. This is a simple
technique that gives the programmer a better
-understanding of what can happend. A great advantage
+understanding of what can happen. A great advantage
C has over most programming languages.
Another technique is to use long jumps on error.
@@ -70,7 +70,7 @@ Rather than writing
\end{alltt}
\noindent
-or a but cleaner, if there are a lot of calls,
+or a bit cleaner, if there are a lot of calls,
\begin{alltt}
#define TRY(...) do if (__VA_ARGS__) goto out; while (0)
@@ -79,7 +79,7 @@ or a but cleaner, if there are a lot of calls,
\end{alltt}
\noindent
-you write
+we write
\begin{alltt}
jmp_buf env;
@@ -91,7 +91,7 @@ you write
\end{alltt}
You only need to call {\tt setjmp} and {\tt zsetup}
-once, but can may update the return point by calling
+once, but can update the return point by calling
them once more.
If you don't need to check for errors, you can
@@ -211,7 +211,7 @@ or
Like any self respecting bignum library, libzahl
supports using the same big integer reference as
-for output as input, as long as the all output
+for output as input, as long as all the output
parameters are mutually unique. For example
\begin{alltt}
@@ -235,7 +235,7 @@ is written, using libzahl, as
For commutative functions, like {\tt zadd}, the
implementation is optimised to assume that this
order is more likely to be used than the alternative.
-That is, you should, for example, write
+That is, we should, for example, write
\begin{alltt}
zadd(a, a, b);
@@ -249,5 +249,5 @@ rather than
\end{alltt}
\noindent
-This is assumption is not made for non-commutative
+This assumption is not made for non-commutative
functions.
diff --git a/doc/what-is-libzahl.tex b/doc/what-is-libzahl.tex
@@ -27,14 +27,14 @@ Whilst this is almost none of the elements in {\bf Z},
it is substantially more than available using the intrinsic
integer types in C. libzahl of course also implements
functions for performing arithmetic operations over
-integers represented using libzahl. Libraries such as
-libzahl as called bigint libraries, big integer libraries,
+integers represented using libzahl. Libraries such as
+libzahl are called bigint libraries, big integer libraries,
multiple precision integer libraries, arbitrary precision
integer libraries,\footnote{`Multiple precision integer'
and `arbitrary precision integer' are misnomers, precision
is only relevant for floating-point numbers.} or bignum
libraries, or any of the previous with `number' substituted
-for `integer'. Some libraries that refer to themself bignum
+for `integer'. Some libraries that refer to themselves as bignum
libraries or any of using the word `number' support other
number types than integers. libzahl only supports integers.
@@ -44,8 +44,8 @@ number types than integers. libzahl only supports integers.
\label{sec:Why does it exist?}
libzahl's main competitors are GNU MP (gmp),\footnote{GNU
-Multiple Precision Arithmetic Library} LibTomMath (ltm),
-and TomsFastMath (tfm). All of these have problems:
+Multiple Precision Arithmetic Library} LibTomMath (ltm),
+TomsFastMath (tfm) and Hebimath. All of these have problems:
\begin{itemize}
\item
@@ -65,6 +65,12 @@ this, it is not really that simple.
TomsFastMath is slow, complicated, and is not a true
big integer library and is specifically targeted at
cryptography.
+
+\item
+Hebimath is far from stable, some fundamental functions
+are not implemented and some functions are broken. The
+author thinks Hebimath is promising, but that many things
+can be done better.
\end{itemize}
libzahl is developed under the suckless.org umbrella.
@@ -89,7 +95,7 @@ followed by input parameters. The former variant is the
conventional for C functions. The latter is more in style
with primitive operations, pseudo-code, mathematics, and
how it would look if the output was return. In libzahl,
-the latter convention is used. That is, why write
+the latter convention is used. That is, we write
\begin{alltt}
zadd(sum, augend, addend);
@@ -116,8 +122,8 @@ versus
$augend + addend \rightarrow sum$.
\vspace{1ex}
-libzahl, GNU MP, and Hebimath uses the output-first
-convention. LibTomMath and TomsFastMath uses the
+libzahl, GNU MP, and Hebimath use the output-first
+convention. LibTomMath and TomsFastMath use the
input-first convention.
Unlike other bignum libraries, errors in libzahl are
@@ -139,8 +145,8 @@ integer operators.
libzahl is not recommended for cryptographic
applications, it is not mature enough, and its author
-does not have the necessary expertise. And in,
-particular it does not implement constant time
+does not have the necessary expertise. And in
+particular, it does not implement constant time
operations. Additionally, libzahl is not thread-safe.
libzahl is also only designed for POSIX systems.