aboutsummaryrefslogtreecommitdiffstats
path: root/libj2_j2i_div_j2i.3
diff options
context:
space:
mode:
authorMattias Andrée <m@maandree.se>2026-01-23 18:47:00 +0100
committerMattias Andrée <m@maandree.se>2026-01-23 18:47:00 +0100
commit1220d0b5ae87c08f55dd46c2bc4c1cfb1a5e308b (patch)
tree655b819c5e66c7e61d7f6ff3142bf7881571c60e /libj2_j2i_div_j2i.3
parentm (diff)
downloadlibj2-1220d0b5ae87c08f55dd46c2bc4c1cfb1a5e308b.tar.gz
libj2-1220d0b5ae87c08f55dd46c2bc4c1cfb1a5e308b.tar.bz2
libj2-1220d0b5ae87c08f55dd46c2bc4c1cfb1a5e308b.tar.xz
Add libj2_j2i_div_j2i.3
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to '')
-rw-r--r--libj2_j2i_div_j2i.3158
1 files changed, 158 insertions, 0 deletions
diff --git a/libj2_j2i_div_j2i.3 b/libj2_j2i_div_j2i.3
new file mode 100644
index 0000000..4c1cd7c
--- /dev/null
+++ b/libj2_j2i_div_j2i.3
@@ -0,0 +1,158 @@
+.TH LIBJ2_J2I_DIV_J2I 3 LIBJ2
+.SH NAME
+libj2_j2i_div_j2i \- Calculate quotient
+
+.SH SYNOPSIS
+.nf
+#include <libj2.h>
+
+void \fBlibj2_j2i_div_j2i\fP(struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP);
+void \fBlibj2_j2i_div_j2i_to_j2i\fP(const struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP, struct libj2_j2i *\fIr\fP);
+intmax_t \fBlibj2_j2i_div_j2i_return\fP(const struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP);
+void \fBlibj2_j2i_div_ji\fP(struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP);
+void \fBlibj2_j2i_div_ji_to_j2i\fP(const struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP, struct libj2_j2i *\fIr\fP);
+intmax_t \fBlibj2_j2i_div_ji_return\fP(const struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP);
+
+void \fBlibj2_j2u_div_j2u\fP(struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP);
+void \fBlibj2_j2u_div_j2u_to_j2u\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+uintmax_t \fBlibj2_j2u_div_j2u_return\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP);
+void \fBlibj2_j2u_div_ju\fP(struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP);
+void \fBlibj2_j2u_div_ju_to_j2u\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP);
+uintmax_t \fBlibj2_j2u_div_ju_return\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP);
+
+int \fBlibj2_j2i_div_j2i_underflow\fP(struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP);
+int \fBlibj2_j2i_div_j2i_to_j2i_underflow\fP(const struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP, struct libj2_j2i *\fIr\fP);
+int \fBlibj2_j2i_div_ji_underflow\fP(struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP);
+int \fBlibj2_j2i_div_ji_to_j2i_underflow\fP(const struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP, struct libj2_j2i *\fIr\fP);
+
+int \fBlibj2_j2u_div_j2u_underflow\fP(struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP);
+int \fBlibj2_j2u_div_j2u_to_j2u_underflow\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+int \fBlibj2_j2u_div_ju_underflow\fP(struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP);
+int \fBlibj2_j2u_div_ju_to_j2u_underflow\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP);
+
+void \fBlibj2_j2i_rdiv_j2i\fP(struct libj2_j2i *\fIb\fP, const struct libj2_j2i *\fIa\fP);
+void \fBlibj2_j2u_rdiv_j2u\fP(struct libj2_j2u *\fIb\fP, const struct libj2_j2u *\fIa\fP);
+
+int \fBlibj2_j2i_rdiv_j2i_underflow\fP(struct libj2_j2i *\fIb\fP, const struct libj2_j2i *\fIa\fP);
+int \fBlibj2_j2u_rdiv_j2u_underflow\fP(struct libj2_j2u *\fIb\fP, const struct libj2_j2u *\fIa\fP);
+.fi
+.PP
+Link with
+.IR -lj2 .
+
+.SH DESCRIPTION
+The above listed functions
+calculate the quotient between
+.I a
+by
+.I b
+and stores it in
+.IR r ,
+or in the first argument for the functions
+without an
+.I r
+argument, except for the functions
+.BR libj2_j2i_div_j2i_return (),
+.BR libj2_j2i_div_ji_return (),
+.BR libj2_j2u_div_j2u_return (),
+and
+.BR libj2_j2u_div_ju_return (),
+which truncate the quotient (halves the
+precision) and return it.
+.PP
+The functions whose name contain the word
+.B underflow
+inspects the remainder, which is calculates
+as a side-effect of calculating the quotient
+(no additional computation cost), and return
+0 if the remainder is zero, and 1 otherwise.
+.PP
+The arguments are assumed to be
+.RI non- NULL .
+
+.SH RETURN VALUE
+The
+.BR libj2_j2i_div_j2i_return ()
+and
+.BR libj2_j2i_div_ji_return ()
+functions return the quotient truncated to an
+.BR intmax_t.
+.PP
+The
+.BR libj2_j2u_div_j2u_return ()
+and
+.BR libj2_j2u_div_ju_return ()
+functions return the quotient truncated to a
+.BR uintmax_t.
+.PP
+The
+.BR libj2_j2i_div_j2i_underflow (),
+.BR libj2_j2i_div_j2i_to_j2i_underflow (),
+.BR libj2_j2i_div_ji_underflow (),
+.BR libj2_j2i_div_ji_to_j2i_underflow (),
+.BR libj2_j2u_div_j2u_underflow (),
+.BR libj2_j2u_div_j2u_to_j2u_underflow (),
+.BR libj2_j2u_div_ju_underflow (),
+and
+.BR libj2_j2u_div_ju_to_j2u_underflow ()
+functions return 0 if the remainder is zero,
+and 1 otherwise.
+.PP
+The rest of the functions do not return any value.
+
+.SH ERRORS
+The above listed functions cannot fail.
+
+.SH HISTORY
+The
+.BR libj2_j2u_div_j2u (),
+.BR libj2_j2u_div_j2u_to_j2u (),
+.BR libj2_j2u_div_j2u_return (),
+.BR libj2_j2u_div_ju (),
+.BR libj2_j2u_div_ju_to_j2u (),
+.BR libj2_j2u_div_ju_return (),
+.BR libj2_j2u_div_j2u_underflow (),
+.BR libj2_j2u_div_j2u_to_j2u_underflow (),
+.BR libj2_j2u_div_ju_underflow (),
+.BR libj2_j2u_div_ju_to_j2u_underflow (),
+.BR libj2_j2u_rdiv_j2u (),
+and
+.BR libj2_j2u_rdiv_j2u_underflow ()
+functions were added in version 1.0 of
+.BR libj2 .
+.PP
+The
+.BR libj2_j2i_div_j2i (),
+.BR libj2_j2i_div_j2i_to_j2i (),
+.BR libj2_j2i_div_j2i_return (),
+.BR libj2_j2i_div_ji (),
+.BR libj2_j2i_div_ji_to_j2i (),
+.BR libj2_j2i_div_ji_return (),
+.BR libj2_j2i_div_j2i_underflow (),
+.BR libj2_j2i_div_j2i_to_j2i_underflow (),
+.BR libj2_j2i_div_ji_underflow (),
+.BR libj2_j2i_div_ji_to_j2i_underflow (),
+.BR libj2_j2i_rdiv_j2i (),
+and
+.BR libj2_j2i_rdiv_j2i_underflow ()
+functions were added in version 1.1 of
+.BR libj2 .
+
+.SH NOTES
+If you want both the quotient and
+the remainder, a
+.B divmod
+function (see
+.BR libj2_j2i_divmod_j2i (3))
+can be used to calculate both at the
+same time, for the computational
+cost of calculating one.
+
+.SH SEE ALSO
+.BR libj2 (7),
+.BR libj2_j2i_divmod_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)