big integer library
git clone git://
Log | Files | Refs | README | LICENSE

commit bc8390c7615cf9a466420aa05130322488d54d7b
parent 437b35efd43f788a1edcf483e623d766642d1c29
Author: Mattias Andrée <>
Date:   Sat, 14 May 2016 20:20:10 +0200

Division is truncated, not floored

Signed-off-by: Mattias Andrée <>

Mdoc/bit-operations.tex | 17++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/doc/bit-operations.tex b/doc/bit-operations.tex @@ -40,15 +40,14 @@ $r = \phantom{0100}100001_2$ after calling {\tt zrsh(r, a, 2)}. \vspace{1em} {\tt zlsh(r, a, b)} is equivalent to $r \gets a \cdot 2^b$, -and {\tt zrsh(r, a, b)} is equivalent to -$r \gets \lfloor a \div 2^b \rfloor$, {\tt zlsh} and -{\tt zrsh} are significantly faster than {\tt zpowu} -and should be used whenever possible. {\tt zpowu} -does not check if it is possible for it to use {\tt zlsh} -instead, even if it would, {\tt zlsh} and {\tt zrsh} -would still be preferable in most cases because it -removes the need for {\tt zmul} and {\tt zdiv}, -respectively. +and {\tt zrsh(r, a, b)} is equivalent to $r \gets a \div 2^b$, +with truncated division, {\tt zlsh} and {\tt zrsh} are +significantly faster than {\tt zpowu} and should be used +whenever possible. {\tt zpowu} does not check if it is +possible for it to use {\tt zlsh} instead, even if it +would, {\tt zlsh} and {\tt zrsh} would still be preferable +in most cases because it removes the need for {\tt zmul} +and {\tt zdiv}, respectively. {\tt zlsh} and {\tt zrsh} are implemented in two steps: (1) shift whole characters, that is, groups of aligned