.TH LIBJ2_J2I_DIV_J2I 3 LIBJ2 .SH NAME libj2_j2i_div_j2i \- Calculate quotient .SH SYNOPSIS .nf #include 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)