Introduction
Introduction Statistics Contact Development Disclaimer Help
On bit-truncation - libzahl - big integer library
git clone git://git.suckless.org/libzahl
Log
Files
Refs
README
LICENSE
---
commit a9388ee62cd0553aa62f7305956b37d677d23c97
parent 4ff3671b42f011862ab7a8c6b8ddf66780a2054b
Author: Mattias Andrée <[email protected]>
Date: Sat, 14 May 2016 17:01:55 +0200
On bit-truncation
Signed-off-by: Mattias Andrée <[email protected]>
Diffstat:
M doc/bit-operations.tex | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
---
diff --git a/doc/bit-operations.tex b/doc/bit-operations.tex
@@ -88,7 +88,30 @@ whenever possible. One such wrapper could be
\section{Truncation}
\label{sec:Truncation}
-TODO % ztrunc
+In \secref{sec:Shift} we have seen how bit-shift
+operations can be used to multiply or divide by a
+power of two. There is also a bit-truncation
+operation: {\tt ztrunc}, which is used to keep
+only the lowest bits, or equivalently, calculate
+the remainder of a division by a power of two.
+
+\begin{alltt}
+ void ztrunc(z_t r, z_t a, size_t b);
+\end{alltt}
+
+\noindent
+is consistent with {\tt zmod}; like {\tt zlsh} and
+{\tt zrsh}, {\tt a}'s sign is preserved into {\tt r}
+assuming the result is non-zero.
+
+{\tt ztrunc(r, a, b)} stores only the lowest {\tt b}
+bits in {\tt a} into {\tt r}, or equivalently,
+calculates $r \gets a \mod 2^b$. For example, if
+
+$a = 100011000_2$ then
+
+$r = \phantom{10001}1000_2$ after calling
+{\tt ztrunc(r, a, 4)}.
\newpage
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.