libzahl

big integer library
git clone git://git.suckless.org/libzahl
Log | Files | Refs | README | LICENSE

commit 8237156ffb390b38c55863d1b14f246af8a1c19c
parent cb82f578cadb97cdfc79b7e8e160a7a598265a73
Author: Mattias Andrée <maandree@kth.se>
Date:   Sat,  5 Mar 2016 16:36:56 +0100

More detailed description of division and modulus

Signed-off-by: Mattias Andrée <maandree@kth.se>

Diffstat:
Mman/zdiv.3 | 2+-
Mman/zdivmod.3 | 8++++++--
Mman/zmod.3 | 13++++++++++++-
Mman/zmodmul.3 | 4++++
Mman/zmodpow.3 | 4++++
Mman/zmodpowu.3 | 4++++
Mman/zmodsqr.3 | 4++++
7 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/man/zdiv.3 b/man/zdiv.3 @@ -9,7 +9,7 @@ void zdiv(z_t \fIquotient\fP, z_t \fIdividend\fP, z_t \fIdivisor\fP); .fi .SH DESCRIPTION .B zdiv -calculates the quotient of a +calculates the truncated quotient of a .I dividend and a .IR divisor , diff --git a/man/zdivmod.3 b/man/zdivmod.3 @@ -9,11 +9,11 @@ void zdivmod(z_t \fIquotient\fP, z_t \fIremainder\fP, z_t \fIdividend\fP, z_t \f .fi .SH DESCRIPTION .B zdivmod -calculates the quotient and the remainder of a +calculates the truncated quotient and the remainder of a .I dividend and a .IR divisor , -and stores the quotient in +and stores the truncated quotient in .I quotient and the remainder in .IR remainder . @@ -38,6 +38,10 @@ except it is safe to call .B zdivmod with .IR "(quotient==remainder)" . +.P +See +.BR zmod (3) +for details on modulation. .SH RATIONALE Calculating the remainder requires calculating division to be performed, and performing a division gives the remainder diff --git a/man/zmod.3 b/man/zmod.3 @@ -24,11 +24,22 @@ Mod .P The result .RI ( remainder ) -is always non-negative. +is always non-negative. To be more precise, +a Mod b = |a| Mod |b| for all integers a +and b. .P It is safe to call .B zmod with non-unique parameters. +.SH RATIONALE +There are many ways to define modulus with +negative integers. You have to select how the +signness is selected, and when to invert +(in respect to modulated addition) the remainder. +The simplest way to implement modulus is to +ignore the sign of the operands. This solution +also makes it very easy for those that which +to write a wrapper that changes the definition. .SH SEE ALSO .BR zdivmod (3), .BR zstr (3), diff --git a/man/zmodmul.3 b/man/zmodmul.3 @@ -29,6 +29,10 @@ Mod It is safe to call .B zmodmul with non-unique parameters. +.P +See +.BR zmod (3) +for details on modulation. .SH RATIONALE It is possible to calculate the modular product with a faster algorithm than calculating the diff --git a/man/zmodpow.3 b/man/zmodpow.3 @@ -29,6 +29,10 @@ Mod It is safe to call .B zmodpow with non-unique parameters. +.P +See +.BR zmod (3) +for details on modulation. .SH RATIONALE It is possible to calculate the modular power with a faster algorithm than calculating the diff --git a/man/zmodpowu.3 b/man/zmodpowu.3 @@ -29,6 +29,10 @@ Mod It is safe to call .B zmodpowu with non-unique parameters. +.P +See +.BR zmod (3) +for details on modulation. .SH RATIONALE It is possible to calculate the modular power with a faster algorithm than calculating the diff --git a/man/zmodsqr.3 b/man/zmodsqr.3 @@ -25,6 +25,10 @@ Mod It is safe to call .B zmodsqr with non-unique parameters. +.P +See +.BR zmod (3) +for details on modulation. .SH RATIONALE See rationle for .BR zmodmul (3),