aboutsummaryrefslogtreecommitdiffstats
path: root/libj2_j2i_divmod_j2i.3
diff options
context:
space:
mode:
authorMattias Andrée <m@maandree.se>2026-01-23 16:11:20 +0100
committerMattias Andrée <m@maandree.se>2026-01-23 16:11:20 +0100
commit1902d4efc986d2d7e6fd1fbdd74339da0a95ea61 (patch)
treea98eea88c17f1b67434de1e457014a1f8171d59d /libj2_j2i_divmod_j2i.3
parentAdd libj2_str_to_j2i.3 (diff)
downloadlibj2-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.3188
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)