Introduction
Introduction Statistics Contact Development Disclaimer Help
Add exercise: [▶02] Saturated subtraction - libzahl - big integer library
git clone git://git.suckless.org/libzahl
Log
Files
Refs
README
LICENSE
---
commit d89b4e54d7b4ee8aee05051ccf6e3b96019ac3ea
parent dbb82e8a1184eaa7f6fa4b04e0560589cc6092e9
Author: Mattias Andrée <[email protected]>
Date: Sun, 24 Jul 2016 18:04:15 +0200
Add exercise: [▶02] Saturated subtraction
Signed-off-by: Mattias Andrée <[email protected]>
Diffstat:
M doc/exercises.tex | 32 +++++++++++++++++++++++++++++…
1 file changed, 31 insertions(+), 1 deletion(-)
---
diff --git a/doc/exercises.tex b/doc/exercises.tex
@@ -22,6 +22,22 @@
\begin{enumerate}[label=\textbf{\arabic*}.]
+
+\item {[$\RHD$\textit{02}]} \textbf{Saturated subtraction}
+
+Implement the function
+
+\vspace{-1em}
+\begin{alltt}
+ void monus(z_t r, z_t a, z_t b);
+\end{alltt}
+\vspace{-1em}
+
+\noindent
+which calculates $a \dotminus b = \max \{ 0,~ a - b \}$.
+
+
+
\item {[\textit{M10}]} \textbf{Convergence of the Lucas Number ratios}
Find an approximation for
@@ -122,6 +138,20 @@ Use this to implement a fast primality tester.
\begin{enumerate}[label=\textbf{\arabic*}.]
+\item \textbf{Saturated subtraction}
+
+\vspace{-1em}
+\begin{alltt}
+void monus(z_t r, z_t a, z_t b)
+\{
+ zsub(r, a, b);
+ if (zsignum(r) < 0)
+ zsetu(r, 0);
+\}
+\end{alltt}
+
+
+
\item \textbf{Convergence of the Lucas Number ratios}
It would be a mistake to use bignum, and bigint in particular,
@@ -243,7 +273,7 @@ enum zprimality ptest_fast(z_t p)
z_t a;
int c = zcmpu(p, 2);
if (c <= 0)
- return c ? NONPRIME : PRIME;
+ return c ? NONPRIME : PRIME;
zinit(a);
zsetu(a, 1);
zlsh(a, a, p);
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.