From 5990e4e42754a84edfaed2a31ee5cea3c4c9d9b1 Mon Sep 17 00:00:00 2001
From: Mattias Andrée <maandree@kth.se>
Date: Thu, 2 Jun 2016 12:06:27 +0200
Subject: Some comments
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Mattias Andrée <maandree@kth.se>
---
 doc/arithmetic.tex | 36 +++++++++++++++++++++++++++++++++++-
 1 file changed, 35 insertions(+), 1 deletion(-)

(limited to 'doc/arithmetic.tex')

diff --git a/doc/arithmetic.tex b/doc/arithmetic.tex
index 4601a7a..2e15a75 100644
--- a/doc/arithmetic.tex
+++ b/doc/arithmetic.tex
@@ -186,6 +186,7 @@ lend you a hand.
    \}
 \end{alltt}
 
+% Floored division
 \begin{alltt}
    void \textcolor{c}{/* \textrm{All arguments most be unique.} */}
    divmod_floor(z_t q, z_t r, z_t n, z_t d)
@@ -196,9 +197,10 @@ lend you a hand.
    \}
 \end{alltt}
 
+% Ceiled division
 \begin{alltt}
    void \textcolor{c}{/* \textrm{All arguments most be unique.} */}
-   divmod_ceil(z_t q, z_t r, z_t n, z_t d)
+   divmod_ceiling(z_t q, z_t r, z_t n, z_t d)
    \{
        zdivmod(q, r, n, d);
        if (!zzero(r) && isneg(n) == isneg(d))
@@ -206,6 +208,10 @@ lend you a hand.
    \}
 \end{alltt}
 
+% Division with round half aways from zero
+% This rounding method is also called:
+%    round half toward infinity
+%    commercial rounding
 \begin{alltt}
    /* \textrm{This is how we normally round numbers.} */
    void \textcolor{c}{/* \textrm{All arguments most be unique.} */}
@@ -227,6 +233,9 @@ not award you a face-slap. % Had positive punishment
 % been legal or even mildly pedagogical. But I would
 % not put it past Coca-Cola.
 
+% Division with round half toward zero
+% This rounding method is also called:
+%     round half away from infinity
 \begin{alltt}
    void \textcolor{c}{/* \textrm{All arguments most be unique.} */}
    divmod_half_to_zero(z_t q, z_t r, z_t n, z_t d)
@@ -241,6 +250,9 @@ not award you a face-slap. % Had positive punishment
    \}
 \end{alltt}
 
+% Division with round half up
+% This rounding method is also called:
+%     round half towards positive infinity
 \begin{alltt}
    void \textcolor{c}{/* \textrm{All arguments most be unique.} */}
    divmod_half_up(z_t q, z_t r, z_t n, z_t d)
@@ -256,6 +268,9 @@ not award you a face-slap. % Had positive punishment
    \}
 \end{alltt}
 
+% Division with round half down
+% This rounding method is also called:
+%     round half towards negative infinity
 \begin{alltt}
    void \textcolor{c}{/* \textrm{All arguments most be unique.} */}
    divmod_half_down(z_t q, z_t r, z_t n, z_t d)
@@ -271,6 +286,16 @@ not award you a face-slap. % Had positive punishment
    \}
 \end{alltt}
 
+% Division with round half to even
+% This rounding method is also called:
+%     unbiased rounding        (really stupid name)
+%     convergent rounding      (also quite stupid name)
+%     statistician's rounding
+%     Dutch rounding
+%     Gaussian rounding
+%     odd–even rounding
+%     bankers' rounding
+% It is the default rounding method used in IEEE 754.
 \begin{alltt}
    void \textcolor{c}{/* \textrm{All arguments most be unique.} */}
    divmod_half_to_even(z_t q, z_t r, z_t n, z_t d)
@@ -288,6 +313,7 @@ not award you a face-slap. % Had positive punishment
    \}
 \end{alltt}
 
+% Division with round half to odd
 \newpage
 \begin{alltt}
    void \textcolor{c}{/* \textrm{All arguments most be unique.} */}
@@ -306,6 +332,14 @@ not award you a face-slap. % Had positive punishment
    \}
 \end{alltt}
 
+% Other standard methods include stochastic rounding
+% and round half alternatingly, and what is is
+% New Zealand called “Swedish rounding”, which is
+% no longer used in Sweden, and is just normal round
+% half aways from zero but with 0.5 rather than
+% 1 as the integral unit, and is just a special case
+% of a more general rounding method.
+
 Currently, libzahl uses an almost trivial division
 algorithm. It operates on positive numbers. It begins
 by left-shifting the divisor as must as possible with
-- 
cgit v1.2.3-70-g09d2

