diff options
| author | Mattias Andrée <m@maandree.se> | 2026-01-23 18:47:00 +0100 |
|---|---|---|
| committer | Mattias Andrée <m@maandree.se> | 2026-01-23 18:47:00 +0100 |
| commit | 1220d0b5ae87c08f55dd46c2bc4c1cfb1a5e308b (patch) | |
| tree | 655b819c5e66c7e61d7f6ff3142bf7881571c60e /libj2_j2i_div_j2i.3 | |
| parent | m (diff) | |
| download | libj2-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 'libj2_j2i_div_j2i.3')
| -rw-r--r-- | libj2_j2i_div_j2i.3 | 158 |
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) |
