diff options
| author | Mattias Andrée <m@maandree.se> | 2026-01-23 16:11:20 +0100 |
|---|---|---|
| committer | Mattias Andrée <m@maandree.se> | 2026-01-23 16:11:20 +0100 |
| commit | 1902d4efc986d2d7e6fd1fbdd74339da0a95ea61 (patch) | |
| tree | a98eea88c17f1b67434de1e457014a1f8171d59d /libj2_j2i_divmod_j2i.3 | |
| parent | Add libj2_str_to_j2i.3 (diff) | |
| download | libj2-1902d4efc986d2d7e6fd1fbdd74339da0a95ea61.tar.gz libj2-1902d4efc986d2d7e6fd1fbdd74339da0a95ea61.tar.bz2 libj2-1902d4efc986d2d7e6fd1fbdd74339da0a95ea61.tar.xz | |
Man pages
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to 'libj2_j2i_divmod_j2i.3')
| -rw-r--r-- | libj2_j2i_divmod_j2i.3 | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/libj2_j2i_divmod_j2i.3 b/libj2_j2i_divmod_j2i.3 new file mode 100644 index 0000000..25c8413 --- /dev/null +++ b/libj2_j2i_divmod_j2i.3 @@ -0,0 +1,188 @@ +.TH LIBJ2_J2I_DIVMOD_J2I 3 LIBJ2 +.SH NAME +libj2_j2i_divmod_j2i \- Calculate quotient and remainder + +.SH SYNOPSIS +.nf +#include <libj2.h> + +intmax_t \fBlibj2_j2i_divmod_j2i\fP( + struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP); +void \fBlibj2_j2i_divmod_j2i_to_j2i\fP( + struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP, + struct libj2_j2i *\fIq\fP); +void \fBlibj2_j2i_divmod_j2i_to_j2i_j2i\fP( + const struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP, + struct libj2_j2i *\fIq\fP, struct libj2_j2i *\fIr\fP); + +intmax_t \fBlibj2_j2i_divmod_ji\fP( + struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP); +void \fBlibj2_j2i_divmod_ji_to_j2i\fP( + struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP, + struct libj2_j2i *\fIq\fP); +void \fBlibj2_j2i_divmod_ji_to_j2i_j2i\fP( + const struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP, + struct libj2_j2i *\fIq\fP, struct libj2_j2i *\fIr\fP); + +uintmax_t \fBlibj2_j2u_divmod_j2u\fP( + struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP); +void \fBlibj2_j2u_divmod_j2u_to_j2u\fP( + struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, + struct libj2_j2u *\fIq\fP); +void \fBlibj2_j2u_divmod_j2u_to_j2u_j2u\fP( + const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, + struct libj2_j2u *\fIq\fP, struct libj2_j2u *\fIr\fP); + +uintmax_t \fBlibj2_j2u_divmod_ju\fP( + struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP); +void \fBlibj2_j2u_divmod_ju_to_j2u\fP( + struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, + struct libj2_j2u *\fIq\fP); +void \fBlibj2_j2u_divmod_ju_to_j2u_j2u\fP( + const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, + struct libj2_j2u *\fIq\fP, struct libj2_j2u *\fIr\fP); + +intmax_t \fBlibj2_j2i_rdivmod_j2i\fP( + struct libj2_j2i *\fIb\fP, const struct libj2_j2i *\fIa\fP); +void \fBlibj2_j2i_rdivmod_j2i_to_j2i\fP( + struct libj2_j2i *\fIb\fP, const struct libj2_j2i *\fIa\fP, + struct libj2_j2i *\fIq\fP); + +uintmax_t \fBlibj2_j2u_rdivmod_j2u\fP( + struct libj2_j2u *\fIb\fP, const struct libj2_j2u *\fIa\fP); +void \fBlibj2_j2u_rdivmod_j2u_to_j2u\fP( + struct libj2_j2u *\fIb\fP, const struct libj2_j2u *\fIa\fP, + struct libj2_j2u *\fIq\fP); +.fi +.PP +Link with +.IR -lj2 . + +.SH DESCRIPTION +The above listed functions calculate the +calculate the quotient between +.I a +and +.IR b , +and as a side-effect calculates the remainder +(for no additional computational cost). +.PP +The +.BR libj2_j2i_divmod_j2i (), +.BR libj2_j2i_divmod_ji (), +.BR libj2_j2u_divmod_j2u (), +and +.BR libj2_j2u_divmod_ju () +functions return the quotient, the remainder +of the functions store the quotient in +.IR q . +.PP +The +.BR libj2_j2i_divmod_j2i (), +.BR libj2_j2i_divmod_j2i_to_j2i (), +.BR libj2_j2i_divmod_ji (), +.BR libj2_j2i_divmod_ji_to_j2i (), +.BR libj2_j2u_divmod_j2u (), +.BR libj2_j2u_divmod_j2u_to_j2u (), +.BR libj2_j2u_divmod_ju (), +and +.BR libj2_j2u_divmod_ju_to_j2u () +functions store the remainder in +.IR a . +.PP +The +.BR libj2_j2i_rdivmod_j2i () +and +.BR libj2_j2u_rdivmod_j2u () +functions store the remainder in +.IR b . +.PP +The +.BR libj2_j2i_divmod_j2i_to_j2i_j2i (), +.BR libj2_j2i_divmod_ji_to_j2i_j2i (), +.BR libj2_j2u_divmod_j2u_to_j2u_j2u (), +and +.BR libj2_j2u_divmod_ju_to_j2u_j2u () +functions store the remainder in +.IR r . +.PP +If +.I b +is -1 and +.I a +is the largest negative value that can be +represented, the computation will overflow +such that the quotient will be largest negative +value, rather than the largest positive value +plus one. For the +.BR libj2_j2i_divmod_j2i () +and +.BR libj2_j2i_divmod_ji () +functions, the quotient will truncate to zero +in that case. +.PP +The quotient is rounded towards zero. +The remainder is defined such that the +product of the rounded quotient and the +divisor is equal to the difference between +the dividend and the remainder. +.PP +The remainder of the functions do not +return any value. +.PP +The arguments are assumed to be +.RI non- NULL . + +.SH RETURN VALUE +The +.BR libj2_j2i_divmod_j2i () +and +.BR libj2_j2i_divmod_ji () +functions return the quotient truncated to an +.BR intmax_t. +.PP +The +.BR libj2_j2u_divmod_j2u () +and +.BR libj2_j2u_divmod_ju () +functions return the quotient truncated to a +.BR uintmax_t. + +.SH ERRORS +The above listed functions cannot fail. + +.SH HISTORY +The +.BR libj2_j2u_divmod_j2u (), +.BR libj2_j2u_divmod_j2u_to_j2u (), +.BR libj2_j2u_divmod_j2u_to_j2u_j2u (), +.BR libj2_j2u_divmod_ju (), +.BR libj2_j2u_divmod_ju_to_j2u (), +.BR libj2_j2u_divmod_ju_to_j2u_j2u (), +.BR libj2_j2u_rdivmod_j2u (), +and +.BR libj2_j2u_rdivmod_j2u_to_j2u () +functions were added in version 1.0 of +.BR libj2 . +.PP +The +.BR libj2_j2i_divmod_j2i (), +.BR libj2_j2i_divmod_j2i_to_j2i (), +.BR libj2_j2i_divmod_j2i_to_j2i_j2i (), +.BR libj2_j2i_divmod_ji (), +.BR libj2_j2i_divmod_ji_to_j2i (), +.BR libj2_j2i_divmod_ji_to_j2i_j2i (), +.BR libj2_j2i_rdivmod_j2i (), +and +.BR libj2_j2i_rdivmod_j2i_to_j2i () +functions were added in version 1.1 of +.BR libj2 . + +.SH SEE ALSO +.BR libj2 (7), +.BR libj2_j2i_div_j2i (3), +.BR libj2_j2i_mod_j2i (3), +.BR libj2_j2i_add_j2i (3), +.BR libj2_j2i_sub_j2i (3), +.BR libj2_j2u_sub_j2u (3), +.BR libj2_j2i_mul_j2i (3) |
