diff options
212 files changed, 1250 insertions, 129 deletions
@@ -512,9 +512,9 @@ SUBHDR =\ libj2/constants.h\ libj2/signum.h\ libj2/constructors.h\ - libj2/unsigned-comparsion.h\ - libj2/signed-comparsion.h\ - libj2/mixed-comparsion.h\ + libj2/unsigned-comparison.h\ + libj2/signed-comparison.h\ + libj2/mixed-comparison.h\ libj2/bitwise-logic.h\ libj2/sign-shifting.h\ libj2/bit-shifting.h\ @@ -17,10 +17,10 @@ DESCRIPTION Extend an intrinsic integer to an extended-precision integer. libj2_j2i_min(3), libj2_j2u_min(3) - Assign the minimum presentable value. + Assign the minimum representable value. libj2_j2i_max(3), libj2_j2u_max(3) - Assign the maximum presentable value. + Assign the maximum representable value. libj2_j2i_zero(3), libj2_j2u_zero(3) Assign the value zero. @@ -48,13 +48,13 @@ DESCRIPTION libj2_minus_abs_j2i(3), libj2_minus_abs_j2i_to_j2i(3) Calculate the additive inverse of the absolute value. - libj2 provides the following comparsion functions: + libj2 provides the following comparison functions: libj2_j2i_cmp_j2i(3), libj2_j2i_cmp_ji(3), libj2_ji_cmp_j2i(3), libj2_j2i_cmp_j2u(3), libj2_j2i_cmp_ju(3), libj2_ji_cmp_j2u(3), libj2_j2u_cmp_j2i(3), libj2_j2u_cmp_ji(3), libj2_ju_cmp_j2i(3), libj2_j2u_cmp_j2u(3), libj2_j2u_cmp_ju(3), libj2_ju_cmp_j2u(3) - Perform three-way comparision. + Perform three-way comparison. libj2_j2i_eq_j2i(3), libj2_j2i_eq_ji(3), libj2_ji_eq_j2i(3), libj2_j2i_eq_j2u(3), libj2_j2i_eq_ju(3), libj2_ji_eq_j2u(3), @@ -95,10 +95,10 @@ DESCRIPTION or eqaul to it. libj2_j2i_is_min(3), libj2_j2u_is_min(3) - Check whether a value is the minimum presentable value. + Check whether a value is the minimum representable value. libj2_j2i_is_max(3), libj2_j2u_is_max(3) - Check whether a value is the maximum presentable value. + Check whether a value is the maximum representable value. libj2_j2i_is_zero(3), libj2_j2u_is_zero(3) Check whether a value is the value zero. @@ -110,7 +110,7 @@ DESCRIPTION Check whether a value is negative. libj2_sgn_j2i(3), libj2_sgn_j2u(3) - Perform three-way comparision against the value zero (get the + Perform three-way comparison against the value zero (get the signum of a value). libj2_j2i_max_j2i(3), libj2_j2i_max_j2i_to_j2i(3), @@ -30,12 +30,12 @@ Extend an intrinsic integer to an extended-precision integer. .BR libj2_j2i_min (3), .TQ .BR libj2_j2u_min (3) -Assign the minimum presentable value. +Assign the minimum representable value. .TP .BR libj2_j2i_max (3), .TQ .BR libj2_j2u_max (3) -Assign the maximum presentable value. +Assign the maximum representable value. .TP .BR libj2_j2i_zero (3), .TQ @@ -91,7 +91,7 @@ Calculate the additive inverse. Calculate the additive inverse of the absolute value. .PP .B libj2 -provides the following comparsion functions: +provides the following comparison functions: .TP .BR libj2_j2i_cmp_j2i (3), .TQ @@ -116,7 +116,7 @@ provides the following comparsion functions: .BR libj2_j2u_cmp_ju (3), .TQ .BR libj2_ju_cmp_j2u (3) -Perform three-way comparision. +Perform three-way comparison. .TP .BR libj2_j2i_eq_j2i (3), .TQ @@ -273,12 +273,12 @@ or eqaul to it. .BR libj2_j2i_is_min (3), .TQ .BR libj2_j2u_is_min (3) -Check whether a value is the minimum presentable value. +Check whether a value is the minimum representable value. .TP .BR libj2_j2i_is_max (3), .TQ .BR libj2_j2u_is_max (3) -Check whether a value is the maximum presentable value. +Check whether a value is the maximum representable value. .TP .BR libj2_j2i_is_zero (3), .TQ @@ -296,7 +296,7 @@ Check whether a value is negative. .BR libj2_sgn_j2i (3), .TQ .BR libj2_sgn_j2u (3) -Perform three-way comparision against the value zero (get the +Perform three-way comparison against the value zero (get the signum of a value). .TP .BR libj2_j2i_max_j2i (3), @@ -155,9 +155,9 @@ enum libj2_overflow { #include "libj2/constants.h" #include "libj2/signum.h" #include "libj2/constructors.h" -#include "libj2/unsigned-comparsion.h" -#include "libj2/signed-comparsion.h" -#include "libj2/mixed-comparsion.h" +#include "libj2/unsigned-comparison.h" +#include "libj2/signed-comparison.h" +#include "libj2/mixed-comparison.h" #include "libj2/bitwise-logic.h" #include "libj2/sign-shifting.h" #include "libj2/bit-shifting.h" diff --git a/libj2/mixed-comparsion.h b/libj2/mixed-comparison.h index dedf18d..dedf18d 100644 --- a/libj2/mixed-comparsion.h +++ b/libj2/mixed-comparison.h diff --git a/libj2/sign-shifting.h b/libj2/sign-shifting.h index 7f57136..75a4620 100644 --- a/libj2/sign-shifting.h +++ b/libj2/sign-shifting.h @@ -93,7 +93,7 @@ libj2_minus_j2i(struct libj2_j2i *a) * `libj2_minus_j2i_to_j2u(a, res)` implements * `*res = -*a` * - * Overflows if `libj2_j2i_is_min(a) || libj2_j2i_is_positive(a)` + * Overflows if `libj2_j2i_is_positive(a)` * * @param a The integer to invert * @param res Output parameter for the inverse diff --git a/libj2/signed-comparsion.h b/libj2/signed-comparison.h index 1bed2f1..1bed2f1 100644 --- a/libj2/signed-comparsion.h +++ b/libj2/signed-comparison.h diff --git a/libj2/strings.h b/libj2/strings.h index 721b34f..05ccc80 100644 --- a/libj2/strings.h +++ b/libj2/strings.h @@ -83,7 +83,7 @@ size_t libj2_j2u_to_str(const struct libj2_j2u *a, char *buf, size_t bufsize, co * '-' prefix characters * @return 0 upon successful completion, or an error * code on failure - * + * * @throws EINVAL `digits1` or `digits2` is misconfigured * @throws EINVAL No digit was encountered; * `*a` (unless it's `NULL`) will be set to @@ -138,7 +138,7 @@ int libj2_str_to_j2u_sign(const char *s, size_t slen, char **end, const char *di * @param a Output parameter for the decoded integer * @return 0 upon successful completion, or an error * code on failure - * + * * @throws EINVAL `digits1` or `digits2` is misconfigured * @throws EINVAL No digit was encountered; * `*a` (unless it's `NULL`) will be set to @@ -259,7 +259,7 @@ libj2_j2i_to_str(const struct libj2_j2i *a, char *buf, size_t bufsize, const cha * @param a Output parameter for the decoded integer * @return 0 upon successful completion, or an error * code on failure - * + * * @throws EINVAL `digits1` or `digits2` is misconfigured * @throws EINVAL No digit was encountered; * `*a` (unless it's `NULL`) will be set to diff --git a/libj2/unsigned-comparsion.h b/libj2/unsigned-comparison.h index c13397a..c13397a 100644 --- a/libj2/unsigned-comparsion.h +++ b/libj2/unsigned-comparison.h diff --git a/libj2_abs_j2i.3 b/libj2_abs_j2i.3 new file mode 100644 index 0000000..ca5d885 --- /dev/null +++ b/libj2_abs_j2i.3 @@ -0,0 +1,68 @@ +.TH LIBJ2_ABS_J2I 3 LIBJ2 +.SH NAME +libj2_abs_j2i \- Calculate absolute value + +.SH SYNOPSIS +.nf +#include <libj2.h> + +void \fBlibj2_abs_j2i\fP(struct libj2_j2i *\fIa\fP); +void \fBlibj2_abs_j2i_to_j2i\fP(const struct libj2_j2i *\fIa\fP, struct libj2_j2i *\fIr\fP); +void \fBlibj2_abs_j2i_to_j2u\fP(const struct libj2_j2i *\fIa\fP, struct libj2_j2u *\fIr\fP); +.fi +.PP +Link with +.IR -lj2 . + +.SH DESCRIPTION +The +.BR libj2_abs_j2i (), +.BR libj2_abs_j2i_to_j2i (), +and +.BR libj2_abs_j2i_to_j2u () +functions calculate the absolute value of +.IR a . +.PP +The +.BR libj2_abs_j2i () +function stores the result in +.IR a . +.PP +The +.BR libj2_abs_j2i_to_j2i () +and +.BR libj2_abs_j2i_to_j2u () +function stores the result in +.IR r . +.PP +In the case that +.I a +is the minimum representable value, the +calculation of the +.BR libj2_abs_j2i () +and +.BR libj2_abs_j2i_to_j2i () +functions overflow to the input value. +.PP +The arguments are assumed to be +.RI non- NULL . + +.SH RETURN VALUE +None. + +.SH ERRORS +The above listed functions cannot fail. + +.SH HISTORY +The +.BR libj2_abs_j2i (), +.BR libj2_abs_j2i_to_j2i (), +and +.BR libj2_abs_j2i_to_j2u () +functions were added in version 1.1 of +.BR libj2 . + +.SH SEE ALSO +.BR libj2 (7), +.BR libj2_minus_j2i (3), +.BR libj2_minus_abs_j2i (3) diff --git a/libj2_abs_j2i.c b/libj2_abs_j2i.c index 999ff8b..e3c9d33 100644 --- a/libj2_abs_j2i.c +++ b/libj2_abs_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_abs_j2i(struct libj2_j2i *a); -/* TODO Add man page */ #else diff --git a/libj2_abs_j2i_to_j2i.3 b/libj2_abs_j2i_to_j2i.3 new file mode 120000 index 0000000..f5881fe --- /dev/null +++ b/libj2_abs_j2i_to_j2i.3 @@ -0,0 +1 @@ +libj2_abs_j2i.3
\ No newline at end of file diff --git a/libj2_abs_j2i_to_j2i.c b/libj2_abs_j2i_to_j2i.c index 00776ce..bbbc511 100644 --- a/libj2_abs_j2i_to_j2i.c +++ b/libj2_abs_j2i_to_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_abs_j2i_to_j2i(const struct libj2_j2i *a, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_abs_j2i_to_j2u.3 b/libj2_abs_j2i_to_j2u.3 new file mode 120000 index 0000000..f5881fe --- /dev/null +++ b/libj2_abs_j2i_to_j2u.3 @@ -0,0 +1 @@ +libj2_abs_j2i.3
\ No newline at end of file diff --git a/libj2_abs_j2i_to_j2u.c b/libj2_abs_j2i_to_j2u.c index a50de01..e1f8876 100644 --- a/libj2_abs_j2i_to_j2u.c +++ b/libj2_abs_j2i_to_j2u.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_abs_j2i_to_j2u(const struct libj2_j2i *a, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_j2i_add_j2i.3 b/libj2_j2i_add_j2i.3 new file mode 100644 index 0000000..f7d01d2 --- /dev/null +++ b/libj2_j2i_add_j2i.3 @@ -0,0 +1,136 @@ +.TH LIBJ2_J2I_ADD_J2I 3 LIBJ2 +.SH NAME +libj2_j2i_add_j2i \- Calculate sum + +.SH SYNOPSIS +.nf +#include <libj2.h> + +void \fBlibj2_j2i_add_j2i\fP(struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP); +void \fBlibj2_j2i_add_j2i_to_j2i\fP(const struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP, struct libj2_j2i *\fIr\fP); +void \fBlibj2_j2i_add_ji\fP(struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP); +void \fBlibj2_j2i_add_ji_to_j2i\fP(const struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP, struct libj2_j2i *\fIr\fP); +void \fBlibj2_ji_add_j2i_to_j2i\fP(intmax_t \fIa\fP, const struct libj2_j2i *\fIb\fP, struct libj2_j2i *\fIr\fP); +void \fBlibj2_ji_add_ji_to_j2i\fP(intmax_t \fIa\fP, intmax_t \fIb\fP, struct libj2_j2i *\fIr\fP); + +int \fBlibj2_j2i_add_j2i_overflow\fP(struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP); +int \fBlibj2_j2i_add_j2i_to_j2i_overflow\fP(const struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP, struct libj2_j2i *\fIr\fP); +int \fBlibj2_j2i_add_ji_overflow\fP(struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP); +int \fBlibj2_j2i_add_ji_to_j2i_overflow\fP(const struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP, struct libj2_j2i *\fIr\fP); +int \fBlibj2_ji_add_j2i_to_j2i_overflow\fP(intmax_t \fIa\fP, const struct libj2_j2i *\fIb\fP, struct libj2_j2i *\fIr\fP); + +int \fBlibj2_j2i_add_j2i_overflow_p\fP(const struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP); +int \fBlibj2_j2i_add_ji_overflow_p\fP(const struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP); +int \fBlibj2_ji_add_j2i_overflow_p\fP(intmax_t \fIa\fP, const struct libj2_j2i *\fIb\fP); + +void \fBlibj2_j2u_add_j2u\fP(struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP); +void \fBlibj2_j2u_add_j2u_to_j2u\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP); +void \fBlibj2_j2u_add_ju\fP(struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP); +void \fBlibj2_j2u_add_ju_to_j2u\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP); +void \fBlibj2_ju_add_j2u_to_j2u\fP(uintmax_t \fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP); +void \fBlibj2_ju_add_ju_to_j2u\fP(uintmax_t \fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP); + +int \fBlibj2_j2u_add_j2u_overflow\fP(struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP); +int \fBlibj2_j2u_add_j2u_to_j2u_overflow\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP); +int \fBlibj2_j2u_add_ju_overflow\fP(struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP); +int \fBlibj2_j2u_add_ju_to_j2u_overflow\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP); +int \fBlibj2_ju_add_j2u_to_j2u_overflow\fP(uintmax_t \fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP); + +int \fBlibj2_j2u_add_j2u_overflow_p\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP); +int \fBlibj2_j2u_add_ju_overflow_p\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP); +int \fBlibj2_ju_add_j2u_overflow_p\fP(uintmax_t \fIa\fP, const struct libj2_j2u *\fIb\fP); +.fi +.PP +Link with +.IR -lj2 . + +.SH DESCRIPTION +The above listed functions calculate the +sum of the values of +.I a +and +.IR b . +The functions with the parameter +.I r +store the result in +.IR r , +the other functions store the result in +.IR a , +except the functions +.BR libj2_j2i_add_j2i_overflow_p (), +.BR libj2_j2i_add_ji_overflow_p (), +.BR libj2_ji_add_j2i_overflow_p (), +.BR libj2_j2u_add_j2u_overflow_p (), +.BR libj2_j2u_add_ju_overflow_p (), +and +.BR libj2_ju_add_j2u_overflow_p () +only predict overflow, and do not calculate +the sum, and therefore does store it anywhere. +.PP +The value-returning functions (that is, those +with word +.B overflow +in their name), detect arithmetic overflow. +.PP +The result is truncated to the least significant +bits, as many as can be stored, in case of overflow; +that is, modular arithmetics is used. + +.PP +The arguments are assumed to be +.RI non- NULL . + +.SH RETURN VALUE +For functions with a return value, the functions +return +1 if the result is positive but too large +to be represented, -1 if the result is negative +(not only possible with functions where the result is a +.IR "struct libj2_j2i" ) +but too large, and 0 otherwise. + +.SH ERRORS +The above listed functions cannot fail. + +.SH HISTORY +The +.BR libj2_j2u_add_j2u (3), +.BR libj2_j2u_add_j2u_to_j2u (3), +.BR libj2_j2u_add_ju (3), +.BR libj2_j2u_add_ju_to_j2u (3), +.BR libj2_ju_add_j2u_to_j2u (3), +.BR libj2_ju_add_ju_to_j2u (3), +.BR libj2_j2u_add_j2u_overflow (3), +.BR libj2_j2u_add_j2u_to_j2u_overflow (3), +.BR libj2_j2u_add_ju_overflow (3), +.BR libj2_j2u_add_ju_to_j2u_overflow (3), +.BR libj2_ju_add_j2u_to_j2u_overflow (3), +.BR libj2_j2u_add_j2u_overflow_p (3), +.BR libj2_j2u_add_ju_overflow_p (3), +and +.BR libj2_ju_add_j2u_overflow_p (3) +functions were added in version 1.0 of +.BR libj2 . +.PP +The +.BR libj2_j2i_add_j2i (3), +.BR libj2_j2i_add_j2i_to_j2i (3), +.BR libj2_j2i_add_ji (3), +.BR libj2_j2i_add_ji_to_j2i (3), +.BR libj2_ji_add_j2i_to_j2i (3), +.BR libj2_ji_add_ji_to_j2i (3), +.BR libj2_j2i_add_j2i_overflow (3), +.BR libj2_j2i_add_j2i_to_j2i_overflow (3), +.BR libj2_j2i_add_ji_overflow (3), +.BR libj2_j2i_add_ji_to_j2i_overflow (3), +.BR libj2_ji_add_j2i_to_j2i_overflow (3), +.BR libj2_j2i_add_j2i_overflow_p (3), +.BR libj2_j2i_add_ji_overflow_p (3), +and +.BR libj2_ji_add_j2i_overflow_p (3) +functions were added in version 1.1 of +.BR libj2 . + +.SH SEE ALSO +.BR libj2 (7), +.BR libj2_j2i_sub_j2i (3), +.BR libj2_j2u_sub_j2u (3) diff --git a/libj2_j2i_add_j2i.c b/libj2_j2i_add_j2i.c index f1889d8..7b58333 100644 --- a/libj2_j2i_add_j2i.c +++ b/libj2_j2i_add_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2i_add_j2i(struct libj2_j2i *a, const struct libj2_j2i *b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_add_j2i_overflow.3 b/libj2_j2i_add_j2i_overflow.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2i_add_j2i_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_add_j2i_overflow.c b/libj2_j2i_add_j2i_overflow.c index 02464d8..ec4f20a 100644 --- a/libj2_j2i_add_j2i_overflow.c +++ b/libj2_j2i_add_j2i_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_add_j2i_overflow(struct libj2_j2i *a, const struct libj2_j2i *b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_add_j2i_overflow_p.3 b/libj2_j2i_add_j2i_overflow_p.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2i_add_j2i_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_add_j2i_overflow_p.c b/libj2_j2i_add_j2i_overflow_p.c index 3b703be..9f39c17 100644 --- a/libj2_j2i_add_j2i_overflow_p.c +++ b/libj2_j2i_add_j2i_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_add_j2i_overflow_p(const struct libj2_j2i *a, const struct libj2_j2i *b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_add_j2i_to_j2i.3 b/libj2_j2i_add_j2i_to_j2i.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2i_add_j2i_to_j2i.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_add_j2i_to_j2i.c b/libj2_j2i_add_j2i_to_j2i.c index 259f91e..a640196 100644 --- a/libj2_j2i_add_j2i_to_j2i.c +++ b/libj2_j2i_add_j2i_to_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2i_add_j2i_to_j2i(const struct libj2_j2i *a, const struct libj2_j2i *b, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_j2i_add_j2i_to_j2i_overflow.3 b/libj2_j2i_add_j2i_to_j2i_overflow.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2i_add_j2i_to_j2i_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_add_j2i_to_j2i_overflow.c b/libj2_j2i_add_j2i_to_j2i_overflow.c index b36ac10..44ad164 100644 --- a/libj2_j2i_add_j2i_to_j2i_overflow.c +++ b/libj2_j2i_add_j2i_to_j2i_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_add_j2i_to_j2i_overflow(const struct libj2_j2i *a, const struct libj2_j2i *b, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_j2i_add_ji.3 b/libj2_j2i_add_ji.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2i_add_ji.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_add_ji.c b/libj2_j2i_add_ji.c index 97880e2..ac60798 100644 --- a/libj2_j2i_add_ji.c +++ b/libj2_j2i_add_ji.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2i_add_ji(struct libj2_j2i *a, intmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_add_ji_overflow.3 b/libj2_j2i_add_ji_overflow.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2i_add_ji_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_add_ji_overflow.c b/libj2_j2i_add_ji_overflow.c index 1686ae4..e5e92a3 100644 --- a/libj2_j2i_add_ji_overflow.c +++ b/libj2_j2i_add_ji_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_add_ji_overflow(struct libj2_j2i *a, intmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_add_ji_overflow_p.3 b/libj2_j2i_add_ji_overflow_p.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2i_add_ji_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_add_ji_overflow_p.c b/libj2_j2i_add_ji_overflow_p.c index 76fff49..fdd64ae 100644 --- a/libj2_j2i_add_ji_overflow_p.c +++ b/libj2_j2i_add_ji_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_add_ji_overflow_p(const struct libj2_j2i *a, intmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_add_ji_to_j2i.3 b/libj2_j2i_add_ji_to_j2i.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2i_add_ji_to_j2i.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_add_ji_to_j2i.c b/libj2_j2i_add_ji_to_j2i.c index 787b563..7ab12cc 100644 --- a/libj2_j2i_add_ji_to_j2i.c +++ b/libj2_j2i_add_ji_to_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2i_add_ji_to_j2i(const struct libj2_j2i *a, intmax_t b, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_j2i_add_ji_to_j2i_overflow.3 b/libj2_j2i_add_ji_to_j2i_overflow.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2i_add_ji_to_j2i_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_add_ji_to_j2i_overflow.c b/libj2_j2i_add_ji_to_j2i_overflow.c index 9e813ac..1ab5b83 100644 --- a/libj2_j2i_add_ji_to_j2i_overflow.c +++ b/libj2_j2i_add_ji_to_j2i_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_add_ji_to_j2i_overflow(const struct libj2_j2i *a, intmax_t b, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_j2i_cmp_j2i.3 b/libj2_j2i_cmp_j2i.3 index 162e09d..6da4b5b 100644 --- a/libj2_j2i_cmp_j2i.3 +++ b/libj2_j2i_cmp_j2i.3 @@ -85,4 +85,10 @@ functions were added in version 1.1 of .BR libj2_j2i_lt_j2i (3), .BR libj2_j2i_le_j2i (3), .BR libj2_j2i_gt_j2i (3), -.BR libj2_j2i_ge_j2i (3) +.BR libj2_j2i_ge_j2i (3), +.BR libj2_j2i_is_min (3), +.BR libj2_j2i_is_max (3), +.BR libj2_j2i_is_zero (3), +.BR libj2_j2i_is_positive (3), +.BR libj2_j2i_is_negative (3), +.BR libj2_sgn_j2i (3) diff --git a/libj2_j2i_eq_j2i.3 b/libj2_j2i_eq_j2i.3 index ceab214..ac5ce87 100644 --- a/libj2_j2i_eq_j2i.3 +++ b/libj2_j2i_eq_j2i.3 @@ -73,4 +73,10 @@ functions were added in version 1.1 of .BR libj2_j2i_lt_j2i (3), .BR libj2_j2i_le_j2i (3), .BR libj2_j2i_gt_j2i (3), -.BR libj2_j2i_ge_j2i (3) +.BR libj2_j2i_ge_j2i (3), +.BR libj2_j2i_is_min (3), +.BR libj2_j2i_is_max (3), +.BR libj2_j2i_is_zero (3), +.BR libj2_j2i_is_positive (3), +.BR libj2_j2i_is_negative (3), +.BR libj2_sgn_j2i (3) diff --git a/libj2_j2i_ge_j2i.3 b/libj2_j2i_ge_j2i.3 index 4c1dcc7..bc6990e 100644 --- a/libj2_j2i_ge_j2i.3 +++ b/libj2_j2i_ge_j2i.3 @@ -73,4 +73,8 @@ functions were added in version 1.1 of .BR libj2_j2i_ne_j2i (3), .BR libj2_j2i_lt_j2i (3), .BR libj2_j2i_le_j2i (3), -.BR libj2_j2i_gt_j2i (3) +.BR libj2_j2i_gt_j2i (3), +.BR libj2_j2i_is_zero (3), +.BR libj2_j2i_is_positive (3), +.BR libj2_j2i_is_negative (3), +.BR libj2_sgn_j2i (3) diff --git a/libj2_j2i_gt_j2i.3 b/libj2_j2i_gt_j2i.3 index 69795a6..bf3b9d2 100644 --- a/libj2_j2i_gt_j2i.3 +++ b/libj2_j2i_gt_j2i.3 @@ -73,4 +73,8 @@ functions were added in version 1.1 of .BR libj2_j2i_ne_j2i (3), .BR libj2_j2i_lt_j2i (3), .BR libj2_j2i_le_j2i (3), -.BR libj2_j2i_ge_j2i (3) +.BR libj2_j2i_ge_j2i (3), +.BR libj2_j2i_is_zero (3), +.BR libj2_j2i_is_positive (3), +.BR libj2_j2i_is_negative (3), +.BR libj2_sgn_j2i (3) diff --git a/libj2_j2i_is_max.3 b/libj2_j2i_is_max.3 new file mode 100644 index 0000000..0d05dd5 --- /dev/null +++ b/libj2_j2i_is_max.3 @@ -0,0 +1,57 @@ +.TH LIBJ2_J2I_IS_MAX 3 LIBJ2 +.SH NAME +libj2_j2i_is_max \- Compare against maximum representable value + +.SH SYNOPSIS +.nf +#include <libj2.h> + +int \fBlibj2_j2i_is_max\fP(const struct libj2_j2i *\fIa\fP); +int \fBlibj2_j2u_is_max\fP(const struct libj2_j2u *\fIa\fP); +.fi +.PP +Link with +.IR -lj2 . + +.SH DESCRIPTION +The +.BR libj2_j2i_is_max () +and +.BR libj2_j2u_is_max () +functions check whether +.I a +is the largest positive number. +.PP +.I a +is assumed to be +.RI non- NULL . + +.SH RETURN VALUE +The functions return 1 if +.I a +is the maximum representable value, +and 0 otherwise. + +.SH ERRORS +The functions cannot fail. + +.SH HISTORY +The +.BR libj2_j2u_is_max () +function was added in version 1.0 of +.BR libj2 . +.PP +The +.BR libj2_j2i_is_max () +function was added in version 1.1 of +.BR libj2 . + +.SH SEE ALSO +.BR libj2 (7), +.BR libj2_j2i_max (3), +.BR libj2_j2i_cmp_j2i (3), +.BR libj2_j2i_is_min (3), +.BR libj2_j2i_is_zero (3), +.BR libj2_j2i_is_positive (3), +.BR libj2_j2i_is_negative (3), +.BR libj2_sgn_j2i (3) diff --git a/libj2_j2i_is_max.c b/libj2_j2i_is_max.c index 78c9448..ce86ddc 100644 --- a/libj2_j2i_is_max.c +++ b/libj2_j2i_is_max.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_is_max(const struct libj2_j2i *a); -/* TODO Add man page */ #else diff --git a/libj2_j2i_is_min.3 b/libj2_j2i_is_min.3 new file mode 100644 index 0000000..d748d4f --- /dev/null +++ b/libj2_j2i_is_min.3 @@ -0,0 +1,64 @@ +.TH LIBJ2_J2I_IS_MIN 3 LIBJ2 +.SH NAME +libj2_j2i_is_min \- Compare against minimum representable value + +.SH SYNOPSIS +.nf +#include <libj2.h> + +int \fBlibj2_j2i_is_min\fP(const struct libj2_j2i *\fIa\fP); +int \fBlibj2_j2u_is_min\fP(const struct libj2_j2u *\fIa\fP); +.fi +.PP +Link with +.IR -lj2 . + +.SH DESCRIPTION +The +.BR libj2_j2i_is_min () +function checks whether +.I a +is the largest negative number. +.PP +The +.BR libj2_j2u_is_min () +function is identical to the +.BR libj2_j2u_is_zero () +function, since +.I a +cannot be negative for it because +it is unsigned. +.PP +.I a +is assumed to be +.RI non- NULL . + +.SH RETURN VALUE +The functions return 1 if +.I a +is the minimum representable value, +and 0 otherwise. + +.SH ERRORS +The functions cannot fail. + +.SH HISTORY +The +.BR libj2_j2u_is_min () +function was added in version 1.0 of +.BR libj2 . +.PP +The +.BR libj2_j2i_is_min () +function was added in version 1.1 of +.BR libj2 . + +.SH SEE ALSO +.BR libj2 (7), +.BR libj2_j2i_min (3), +.BR libj2_j2i_cmp_j2i (3), +.BR libj2_j2i_is_max (3), +.BR libj2_j2i_is_zero (3), +.BR libj2_j2i_is_positive (3), +.BR libj2_j2i_is_negative (3), +.BR libj2_sgn_j2i (3) diff --git a/libj2_j2i_is_min.c b/libj2_j2i_is_min.c index 2393b72..dd1117f 100644 --- a/libj2_j2i_is_min.c +++ b/libj2_j2i_is_min.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_is_min(const struct libj2_j2i *a); -/* TODO Add man page */ #else diff --git a/libj2_j2i_is_negative.3 b/libj2_j2i_is_negative.3 new file mode 100644 index 0000000..97c2199 --- /dev/null +++ b/libj2_j2i_is_negative.3 @@ -0,0 +1,46 @@ +.TH LIBJ2_J2I_IS_NEGATIVE 3 LIBJ2 +.SH NAME +libj2_j2i_is_negative \- Check if value is negative + +.SH SYNOPSIS +.nf +#include <libj2.h> + +int \fBlibj2_j2i_is_negative\fP(const struct libj2_j2i *\fIa\fP); +.fi +.PP +Link with +.IR -lj2 . + +.SH DESCRIPTION +The +.BR libj2_j2i_is_negative () +function checks whether the +value of +.I a +is negative. +.PP +.I a +is assumed to be +.RI non- NULL . + +.SH RETURN VALUE +The function returns 1 if the value of +.I a +is negative, and 0 otherwise. + +.SH ERRORS +The function cannot fail. + +.SH HISTORY +The +.BR libj2_j2i_is_negative () +function was added in version 1.1 of +.BR libj2 . + +.SH SEE ALSO +.BR libj2 (7), +.BR libj2_j2i_cmp_j2i (3), +.BR libj2_j2i_is_zero (3), +.BR libj2_j2i_is_positive (3), +.BR libj2_sgn_j2i (3) diff --git a/libj2_j2i_is_negative.c b/libj2_j2i_is_negative.c index 6970cb2..6a5f48a 100644 --- a/libj2_j2i_is_negative.c +++ b/libj2_j2i_is_negative.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_is_negative(const struct libj2_j2i *a); -/* TODO Add man page */ #else diff --git a/libj2_j2i_is_positive.3 b/libj2_j2i_is_positive.3 new file mode 100644 index 0000000..c08ddbe --- /dev/null +++ b/libj2_j2i_is_positive.3 @@ -0,0 +1,54 @@ +.TH LIBJ2_J2I_IS_POSITIVE 3 LIBJ2 +.SH NAME +libj2_j2i_is_positive \- Check if value is positive + +.SH SYNOPSIS +.nf +#include <libj2.h> + +int \fBlibj2_j2i_is_positive\fP(const struct libj2_j2i *\fIa\fP); +int \fBlibj2_j2u_is_positive\fP(const struct libj2_j2u *\fIa\fP); +.fi +.PP +Link with +.IR -lj2 . + +.SH DESCRIPTION +The +.BR libj2_j2i_is_positive () +and +.BR libj2_j2u_is_positive () +functions check whether the +value of +.I a +is positive. +.PP +.I a +is assumed to be +.RI non- NULL . + +.SH RETURN VALUE +The functions return 1 if the value of +.I a +is positive, and 0 otherwise. + +.SH ERRORS +The functions cannot fail. + +.SH HISTORY +The +.BR libj2_j2u_is_positive () +function was added in version 1.0 of +.BR libj2 . +.PP +The +.BR libj2_j2i_is_positive () +function was added in version 1.1 of +.BR libj2 . + +.SH SEE ALSO +.BR libj2 (7), +.BR libj2_j2i_cmp_j2i (3), +.BR libj2_j2i_is_zero (3), +.BR libj2_j2i_is_negative (3), +.BR libj2_sgn_j2i (3) diff --git a/libj2_j2i_is_positive.c b/libj2_j2i_is_positive.c index d36d5ec..04058bd 100644 --- a/libj2_j2i_is_positive.c +++ b/libj2_j2i_is_positive.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_is_positive(const struct libj2_j2i *a); -/* TODO Add man page */ #else diff --git a/libj2_j2i_is_zero.3 b/libj2_j2i_is_zero.3 new file mode 100644 index 0000000..e120c46 --- /dev/null +++ b/libj2_j2i_is_zero.3 @@ -0,0 +1,57 @@ +.TH LIBJ2_J2I_IS_ZERO 3 LIBJ2 +.SH NAME +libj2_j2i_is_zero \- Check if value is zero + +.SH SYNOPSIS +.nf +#include <libj2.h> + +int \fBlibj2_j2i_is_zero\fP(const struct libj2_j2i *\fIa\fP); +int \fBlibj2_j2u_is_zero\fP(const struct libj2_j2u *\fIa\fP); +.fi +.PP +Link with +.IR -lj2 . + +.SH DESCRIPTION +The +.BR libj2_j2i_is_zero () +and +.BR libj2_j2u_is_zero () +functions check whether the +value of +.I a +is zero. +.PP +.I a +is assumed to be +.RI non- NULL . + +.SH RETURN VALUE +The functions return 1 if the value of +.I a +is zero, and 0 otherwise. + +.SH ERRORS +The functions cannot fail. + +.SH HISTORY +The +.BR libj2_j2u_is_zero () +function was added in version 1.0 of +.BR libj2 . +.PP +The +.BR libj2_j2i_is_zero () +function was added in version 1.1 of +.BR libj2 . + +.SH SEE ALSO +.BR libj2 (7), +.BR libj2_j2i_zero (3), +.BR libj2_j2i_cmp_j2i (3), +.BR libj2_j2i_is_min (3), +.BR libj2_j2i_is_max (3), +.BR libj2_j2i_is_positive (3), +.BR libj2_j2i_is_negative (3), +.BR libj2_sgn_j2i (3) diff --git a/libj2_j2i_is_zero.c b/libj2_j2i_is_zero.c index 7559674..e2f71e4 100644 --- a/libj2_j2i_is_zero.c +++ b/libj2_j2i_is_zero.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_is_zero(const struct libj2_j2i *a); -/* TODO Add man page */ #else diff --git a/libj2_j2i_le_j2i.3 b/libj2_j2i_le_j2i.3 index e4d325a..8654f86 100644 --- a/libj2_j2i_le_j2i.3 +++ b/libj2_j2i_le_j2i.3 @@ -73,4 +73,8 @@ functions were added in version 1.1 of .BR libj2_j2i_ne_j2i (3), .BR libj2_j2i_lt_j2i (3), .BR libj2_j2i_gt_j2i (3), -.BR libj2_j2i_ge_j2i (3) +.BR libj2_j2i_ge_j2i (3), +.BR libj2_j2i_is_zero (3), +.BR libj2_j2i_is_positive (3), +.BR libj2_j2i_is_negative (3), +.BR libj2_sgn_j2i (3) diff --git a/libj2_j2i_lt_j2i.3 b/libj2_j2i_lt_j2i.3 index ba39d49..ac92433 100644 --- a/libj2_j2i_lt_j2i.3 +++ b/libj2_j2i_lt_j2i.3 @@ -73,4 +73,8 @@ functions were added in version 1.1 of .BR libj2_j2i_ne_j2i (3), .BR libj2_j2i_le_j2i (3), .BR libj2_j2i_gt_j2i (3), -.BR libj2_j2i_ge_j2i (3) +.BR libj2_j2i_ge_j2i (3), +.BR libj2_j2i_is_zero (3), +.BR libj2_j2i_is_positive (3), +.BR libj2_j2i_is_negative (3), +.BR libj2_sgn_j2i (3) diff --git a/libj2_j2i_max.3 b/libj2_j2i_max.3 new file mode 100644 index 0000000..f3580c9 --- /dev/null +++ b/libj2_j2i_max.3 @@ -0,0 +1,50 @@ +.TH LIBJ2_J2I_MAX 3 LIBJ2 +.SH NAME +libj2_j2i_max \- Assign maximum representable value + +.SH SYNOPSIS +.nf +#include <libj2.h> + +void \fBlibj2_j2i_max\fP(struct libj2_j2i *\fIr\fP); +void \fBlibj2_j2u_max\fP(struct libj2_j2u *\fIr\fP); +.fi +.PP +Link with +.IR -lj2 . + +.SH DESCRIPTION +The +.BR libj2_j2i_max () +and +.BR libj2_j2u_max () +functions assign the largest positive +representable value to +.IR r . +.PP +.I r +is assumed to be +.RI non- NULL . + +.SH RETURN VALUE +None + +.SH ERRORS +The functions cannot fail. + +.SH HISTORY +The +.BR libj2_j2u_max () +function was added in version 1.0 of +.BR libj2 . +.PP +The +.BR libj2_j2i_max () +function was added in version 1.1 of +.BR libj2 . + +.SH SEE ALSO +.BR libj2 (7), +.BR libj2_j2i_min (3), +.BR libj2_j2i_zero (3), +.BR libj2_j2i_is_max (3) diff --git a/libj2_j2i_max.c b/libj2_j2i_max.c index c751060..10fe379 100644 --- a/libj2_j2i_max.c +++ b/libj2_j2i_max.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2i_max(struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_j2i_min.3 b/libj2_j2i_min.3 new file mode 100644 index 0000000..f2af4f5 --- /dev/null +++ b/libj2_j2i_min.3 @@ -0,0 +1,57 @@ +.TH LIBJ2_J2I_MIN 3 LIBJ2 +.SH NAME +libj2_j2i_min \- Assign minimum representable value + +.SH SYNOPSIS +.nf +#include <libj2.h> + +void \fBlibj2_j2i_min\fP(struct libj2_j2i *\fIr\fP); +void \fBlibj2_j2u_min\fP(struct libj2_j2u *\fIr\fP); +.fi +.PP +Link with +.IR -lj2 . + +.SH DESCRIPTION +The +.BR libj2_j2i_min () +function assigns the largest negative +representable value to +.IR r . +.PP +The +.BR libj2_j2u_min () +function is identical to the +.BR libj2_j2u_zero () +function, since +.I r +cannot hold negative values because +it is unsigned. +.PP +.I r +is assumed to be +.RI non- NULL . + +.SH RETURN VALUE +None + +.SH ERRORS +The functions cannot fail. + +.SH HISTORY +The +.BR libj2_j2u_min () +function was added in version 1.0 of +.BR libj2 . +.PP +The +.BR libj2_j2i_min () +function was added in version 1.1 of +.BR libj2 . + +.SH SEE ALSO +.BR libj2 (7), +.BR libj2_j2i_max (3), +.BR libj2_j2i_zero (3), +.BR libj2_j2i_is_min (3) diff --git a/libj2_j2i_min.c b/libj2_j2i_min.c index 201f69f..7adb716 100644 --- a/libj2_j2i_min.c +++ b/libj2_j2i_min.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2i_min(struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_j2i_ne_j2i.3 b/libj2_j2i_ne_j2i.3 index 505492f..0ee7f94 100644 --- a/libj2_j2i_ne_j2i.3 +++ b/libj2_j2i_ne_j2i.3 @@ -73,4 +73,10 @@ functions were added in version 1.1 of .BR libj2_j2i_lt_j2i (3), .BR libj2_j2i_le_j2i (3), .BR libj2_j2i_gt_j2i (3), -.BR libj2_j2i_ge_j2i (3) +.BR libj2_j2i_ge_j2i (3), +.BR libj2_j2i_is_min (3), +.BR libj2_j2i_is_max (3), +.BR libj2_j2i_is_zero (3), +.BR libj2_j2i_is_positive (3), +.BR libj2_j2i_is_negative (3), +.BR libj2_sgn_j2i (3) diff --git a/libj2_j2i_rsub_j2i.3 b/libj2_j2i_rsub_j2i.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_j2i_rsub_j2i.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_rsub_j2i.c b/libj2_j2i_rsub_j2i.c index ba68d80..745f31a 100644 --- a/libj2_j2i_rsub_j2i.c +++ b/libj2_j2i_rsub_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2i_rsub_j2i(struct libj2_j2i *a, const struct libj2_j2i *b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_rsub_j2i_overflow.3 b/libj2_j2i_rsub_j2i_overflow.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_j2i_rsub_j2i_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_rsub_j2i_overflow.c b/libj2_j2i_rsub_j2i_overflow.c index 9840a41..a665b5b 100644 --- a/libj2_j2i_rsub_j2i_overflow.c +++ b/libj2_j2i_rsub_j2i_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_rsub_j2i_overflow(struct libj2_j2i *a, const struct libj2_j2i *b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_rsub_j2i_overflow_p.3 b/libj2_j2i_rsub_j2i_overflow_p.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_j2i_rsub_j2i_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_rsub_j2i_overflow_p.c b/libj2_j2i_rsub_j2i_overflow_p.c index a45675c..9459beb 100644 --- a/libj2_j2i_rsub_j2i_overflow_p.c +++ b/libj2_j2i_rsub_j2i_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_rsub_j2i_overflow_p(const struct libj2_j2i *a, const struct libj2_j2i *b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_rsub_ji.3 b/libj2_j2i_rsub_ji.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_j2i_rsub_ji.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_rsub_ji.c b/libj2_j2i_rsub_ji.c index eb99109..614eed4 100644 --- a/libj2_j2i_rsub_ji.c +++ b/libj2_j2i_rsub_ji.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2i_rsub_ji(struct libj2_j2i *a, intmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_rsub_ji_overflow.3 b/libj2_j2i_rsub_ji_overflow.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_j2i_rsub_ji_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_rsub_ji_overflow.c b/libj2_j2i_rsub_ji_overflow.c index 1fd1346..2227745 100644 --- a/libj2_j2i_rsub_ji_overflow.c +++ b/libj2_j2i_rsub_ji_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_rsub_ji_overflow(struct libj2_j2i *a, intmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_rsub_ji_overflow_p.3 b/libj2_j2i_rsub_ji_overflow_p.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_j2i_rsub_ji_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_rsub_ji_overflow_p.c b/libj2_j2i_rsub_ji_overflow_p.c index bad6009..897ae1f 100644 --- a/libj2_j2i_rsub_ji_overflow_p.c +++ b/libj2_j2i_rsub_ji_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_rsub_ji_overflow_p(const struct libj2_j2i *a, intmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_sub_j2i.3 b/libj2_j2i_sub_j2i.3 new file mode 100644 index 0000000..9d0fcf1 --- /dev/null +++ b/libj2_j2i_sub_j2i.3 @@ -0,0 +1,122 @@ +.TH LIBJ2_J2I_SUB_J2I 3 LIBJ2 +.SH NAME +libj2_j2i_sub_j2i \- Calculate difference + +.SH SYNOPSIS +.nf +#include <libj2.h> + +void \fBlibj2_j2i_sub_j2i\fP(struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP); +void \fBlibj2_j2i_sub_j2i_to_j2i\fP(const struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP, struct libj2_j2i *\fIr\fP); +void \fBlibj2_j2i_sub_ji\fP(struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP); +void \fBlibj2_j2i_sub_ji_to_j2i\fP(const struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP, struct libj2_j2i *\fIr\fP); +void \fBlibj2_ji_sub_j2i_to_j2i\fP(intmax_t \fIa\fP, const struct libj2_j2i *\fIb\fP, struct libj2_j2i *\fIr\fP); +void \fBlibj2_ji_sub_ji_to_j2i\fP(intmax_t \fIa\fP, intmax_t \fIb\fP, struct libj2_j2i *\fIr\fP); + +int \fBlibj2_j2i_sub_j2i_overflow\fP(struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP); +int \fBlibj2_j2i_sub_j2i_to_j2i_overflow\fP(const struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP, struct libj2_j2i *\fIr\fP); +int \fBlibj2_j2i_sub_ji_overflow\fP(struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP); +int \fBlibj2_j2i_sub_ji_to_j2i_overflow\fP(const struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP, struct libj2_j2i *\fIr\fP); +int \fBlibj2_ji_sub_j2i_to_j2i_overflow\fP(intmax_t \fIa\fP, const struct libj2_j2i *\fIb\fP, struct libj2_j2i *\fIr\fP); + +int \fBlibj2_j2i_sub_j2i_overflow_p\fP(const struct libj2_j2i *\fIa\fP, const struct libj2_j2i *\fIb\fP); +int \fBlibj2_j2i_sub_ji_overflow_p\fP(const struct libj2_j2i *\fIa\fP, intmax_t \fIb\fP); +int \fBlibj2_ji_sub_j2i_overflow_p\fP(intmax_t \fIa\fP, const struct libj2_j2i *\fIb\fP); + +void \fBlibj2_j2i_rsub_j2i\fP(struct libj2_j2i *\fIb\fP, const struct libj2_j2i *\fIa\fP); +void \fBlibj2_j2i_rsub_ji\fP(struct libj2_j2i *\fIb\fP, intmax_t \fIa\fP); + +int \fBlibj2_j2i_rsub_j2i_overflow\fP(struct libj2_j2i *\fIb\fP, const struct libj2_j2i *\fIa\fP); +int \fBlibj2_j2i_rsub_ji_overflow\fP(struct libj2_j2i *\fIb\fP, intmax_t \fIa\fP); + +int \fBlibj2_j2i_rsub_j2i_overflow_p\fP(const struct libj2_j2i *\fIb\fP, const struct libj2_j2i *\fIa\fP); +int \fBlibj2_j2i_rsub_ji_overflow_p\fP(const struct libj2_j2i *\fIb\fP, intmax_t \fIa\fP); +.fi +.PP +Link with +.IR -lj2 . + +.SH DESCRIPTION +The above listed functions calculate the +difference of the values of +.I a +(the minuend) +and +.I b +(the subtrahend). +The functions with the parameter +.I r +store the result in +.IR r , +the other functions store the result in +.IR a , +except the functions +.BR libj2_j2i_sub_j2i_overflow_p (), +.BR libj2_j2i_sub_ji_overflow_p (), +.BR libj2_ji_sub_j2i_overflow_p (), +.BR libj2_j2i_rsub_j2i_overflow_p (), +and +.BR libj2_j2i_rsub_ji_overflow_p (), +only predict overflow, and do not calculate +the sum, and therefore does store it anywhere; +and except the functions +.BR libj2_j2i_rsub_j2i (), +.BR libj2_j2i_rsub_ji (), +.BR libj2_j2i_rsub_j2i_overflow (), +and +.BR libj2_j2i_rsub_ji_overflow (), +store the result in +.IR b . +.PP +The value-returning functions (that is, those +with word +.B overflow +in their name), detect arithmetic overflow. +.PP +The result is truncated to the least significant +bits, as many as can be stored, in case of overflow; +that is, modular arithmetics is used. + +.PP +The arguments are assumed to be +.RI non- NULL . + +.SH RETURN VALUE +For functions with a return value, the functions +return +1 if the result is positive but too large +to be represented, -1 if the result is negative +but too large, and 0 otherwise. + +.SH ERRORS +The above listed functions cannot fail. + +.SH HISTORY +The +.BR libj2_j2i_sub_j2i (3), +.BR libj2_j2i_sub_j2i_to_j2i (3), +.BR libj2_j2i_sub_ji (3), +.BR libj2_j2i_sub_ji_to_j2i (3), +.BR libj2_ji_sub_j2i_to_j2i (3), +.BR libj2_ji_sub_ji_to_j2i (3), +.BR libj2_j2i_sub_j2i_overflow (3), +.BR libj2_j2i_sub_j2i_to_j2i_overflow (3), +.BR libj2_j2i_sub_ji_overflow (3), +.BR libj2_j2i_sub_ji_to_j2i_overflow (3), +.BR libj2_ji_sub_j2i_to_j2i_overflow (3), +.BR libj2_j2i_sub_j2i_overflow_p (3), +.BR libj2_j2i_sub_ji_overflow_p (3), +.BR libj2_ji_sub_j2i_overflow_p (3), +.BR libj2_j2i_rsub_j2i (3), +.BR libj2_j2i_rsub_ji (3), +.BR libj2_j2i_rsub_j2i_overflow (3), +.BR libj2_j2i_rsub_ji_overflow (3), +.BR libj2_j2i_rsub_j2i_overflow_p (3), +and +.BR libj2_j2i_rsub_ji_overflow_p (3) +functions were added in version 1.1 of +.BR libj2 . + +.SH SEE ALSO +.BR libj2 (7), +.BR libj2_j2u_sub_j2u (3), +.BR libj2_j2i_add_j2i (3) diff --git a/libj2_j2i_sub_j2i.c b/libj2_j2i_sub_j2i.c index 92a344a..0492bea 100644 --- a/libj2_j2i_sub_j2i.c +++ b/libj2_j2i_sub_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2i_sub_j2i(struct libj2_j2i *a, const struct libj2_j2i *b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_sub_j2i_overflow.3 b/libj2_j2i_sub_j2i_overflow.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_j2i_sub_j2i_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_sub_j2i_overflow.c b/libj2_j2i_sub_j2i_overflow.c index 17275f2..292ae48 100644 --- a/libj2_j2i_sub_j2i_overflow.c +++ b/libj2_j2i_sub_j2i_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_sub_j2i_overflow(struct libj2_j2i *a, const struct libj2_j2i *b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_sub_j2i_overflow_p.3 b/libj2_j2i_sub_j2i_overflow_p.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_j2i_sub_j2i_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_sub_j2i_overflow_p.c b/libj2_j2i_sub_j2i_overflow_p.c index 0df616b..deb450b 100644 --- a/libj2_j2i_sub_j2i_overflow_p.c +++ b/libj2_j2i_sub_j2i_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_sub_j2i_overflow_p(const struct libj2_j2i *a, const struct libj2_j2i *b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_sub_j2i_to_j2i.3 b/libj2_j2i_sub_j2i_to_j2i.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_j2i_sub_j2i_to_j2i.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_sub_j2i_to_j2i.c b/libj2_j2i_sub_j2i_to_j2i.c index 5522262..1b95a03 100644 --- a/libj2_j2i_sub_j2i_to_j2i.c +++ b/libj2_j2i_sub_j2i_to_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2i_sub_j2i_to_j2i(const struct libj2_j2i *a, const struct libj2_j2i *b, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_j2i_sub_j2i_to_j2i_overflow.3 b/libj2_j2i_sub_j2i_to_j2i_overflow.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_j2i_sub_j2i_to_j2i_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_sub_j2i_to_j2i_overflow.c b/libj2_j2i_sub_j2i_to_j2i_overflow.c index db703c9..9ce4f07 100644 --- a/libj2_j2i_sub_j2i_to_j2i_overflow.c +++ b/libj2_j2i_sub_j2i_to_j2i_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_sub_j2i_to_j2i_overflow(const struct libj2_j2i *a, const struct libj2_j2i *b, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_j2i_sub_ji.3 b/libj2_j2i_sub_ji.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_j2i_sub_ji.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_sub_ji.c b/libj2_j2i_sub_ji.c index 27bf013..4fc8e0e 100644 --- a/libj2_j2i_sub_ji.c +++ b/libj2_j2i_sub_ji.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2i_sub_ji(struct libj2_j2i *a, intmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_sub_ji_overflow.3 b/libj2_j2i_sub_ji_overflow.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_j2i_sub_ji_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_sub_ji_overflow.c b/libj2_j2i_sub_ji_overflow.c index d8201be..e48b7a1 100644 --- a/libj2_j2i_sub_ji_overflow.c +++ b/libj2_j2i_sub_ji_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_sub_ji_overflow(struct libj2_j2i *a, intmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_sub_ji_overflow_p.3 b/libj2_j2i_sub_ji_overflow_p.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_j2i_sub_ji_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_sub_ji_overflow_p.c b/libj2_j2i_sub_ji_overflow_p.c index 1c07791..6cd194b 100644 --- a/libj2_j2i_sub_ji_overflow_p.c +++ b/libj2_j2i_sub_ji_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_sub_ji_overflow_p(const struct libj2_j2i *a, intmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2i_sub_ji_to_j2i.3 b/libj2_j2i_sub_ji_to_j2i.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_j2i_sub_ji_to_j2i.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_sub_ji_to_j2i.c b/libj2_j2i_sub_ji_to_j2i.c index 4c06968..a3e76bd 100644 --- a/libj2_j2i_sub_ji_to_j2i.c +++ b/libj2_j2i_sub_ji_to_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2i_sub_ji_to_j2i(const struct libj2_j2i *a, intmax_t b, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_j2i_sub_ji_to_j2i_overflow.3 b/libj2_j2i_sub_ji_to_j2i_overflow.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_j2i_sub_ji_to_j2i_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_j2i_sub_ji_to_j2i_overflow.c b/libj2_j2i_sub_ji_to_j2i_overflow.c index 52b2d2f..7eb807e 100644 --- a/libj2_j2i_sub_ji_to_j2i_overflow.c +++ b/libj2_j2i_sub_ji_to_j2i_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2i_sub_ji_to_j2i_overflow(const struct libj2_j2i *a, intmax_t b, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_j2i_zero.3 b/libj2_j2i_zero.3 new file mode 100644 index 0000000..f864672 --- /dev/null +++ b/libj2_j2i_zero.3 @@ -0,0 +1,49 @@ +.TH LIBJ2_J2I_ZERO 3 LIBJ2 +.SH NAME +libj2_j2i_zero \- Assign the value zero + +.SH SYNOPSIS +.nf +#include <libj2.h> + +void \fBlibj2_j2i_zero\fP(struct libj2_j2i *\fIr\fP); +void \fBlibj2_j2u_zero\fP(struct libj2_j2u *\fIr\fP); +.fi +.PP +Link with +.IR -lj2 . + +.SH DESCRIPTION +The +.BR libj2_j2i_zero () +and +.BR libj2_j2u_zero () +functions assign the value zero to +.IR r . +.PP +.I r +is assumed to be +.RI non- NULL . + +.SH RETURN VALUE +None + +.SH ERRORS +The functions cannot fail. + +.SH HISTORY +The +.BR libj2_j2u_zero () +function was added in version 1.0 of +.BR libj2 . +.PP +The +.BR libj2_j2i_zero () +function was added in version 1.1 of +.BR libj2 . + +.SH SEE ALSO +.BR libj2 (7), +.BR libj2_j2i_min (3), +.BR libj2_j2i_max (3), +.BR libj2_j2i_is_zero (3) diff --git a/libj2_j2i_zero.c b/libj2_j2i_zero.c index ae8f904..3f4c8e4 100644 --- a/libj2_j2i_zero.c +++ b/libj2_j2i_zero.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2u_zero(struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_j2u_add_j2u.3 b/libj2_j2u_add_j2u.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2u_add_j2u.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2u_add_j2u.c b/libj2_j2u_add_j2u.c index 29d2a93..861e207 100644 --- a/libj2_j2u_add_j2u.c +++ b/libj2_j2u_add_j2u.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2u_add_j2u(struct libj2_j2u *a, const struct libj2_j2u *b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_add_j2u_overflow.3 b/libj2_j2u_add_j2u_overflow.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2u_add_j2u_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2u_add_j2u_overflow.c b/libj2_j2u_add_j2u_overflow.c index cab3cf6..38b873e 100644 --- a/libj2_j2u_add_j2u_overflow.c +++ b/libj2_j2u_add_j2u_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_add_j2u_overflow(struct libj2_j2u *a, const struct libj2_j2u *b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_add_j2u_overflow_p.3 b/libj2_j2u_add_j2u_overflow_p.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2u_add_j2u_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2u_add_j2u_overflow_p.c b/libj2_j2u_add_j2u_overflow_p.c index eea2fe6..8c619ab 100644 --- a/libj2_j2u_add_j2u_overflow_p.c +++ b/libj2_j2u_add_j2u_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_add_j2u_overflow_p(const struct libj2_j2u *a, const struct libj2_j2u *b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_add_j2u_to_j2u.3 b/libj2_j2u_add_j2u_to_j2u.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2u_add_j2u_to_j2u.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2u_add_j2u_to_j2u.c b/libj2_j2u_add_j2u_to_j2u.c index ebd96da..1e4ce88 100644 --- a/libj2_j2u_add_j2u_to_j2u.c +++ b/libj2_j2u_add_j2u_to_j2u.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2u_add_j2u_to_j2u(const struct libj2_j2u *a, const struct libj2_j2u *b, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_j2u_add_j2u_to_j2u_overflow.3 b/libj2_j2u_add_j2u_to_j2u_overflow.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2u_add_j2u_to_j2u_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2u_add_j2u_to_j2u_overflow.c b/libj2_j2u_add_j2u_to_j2u_overflow.c index 8a152ff..41ea754 100644 --- a/libj2_j2u_add_j2u_to_j2u_overflow.c +++ b/libj2_j2u_add_j2u_to_j2u_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_add_j2u_to_j2u_overflow(const struct libj2_j2u *a, const struct libj2_j2u *b, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_j2u_add_ju.3 b/libj2_j2u_add_ju.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2u_add_ju.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2u_add_ju.c b/libj2_j2u_add_ju.c index 1b6458f..4e8fe10 100644 --- a/libj2_j2u_add_ju.c +++ b/libj2_j2u_add_ju.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2u_add_ju(struct libj2_j2u *a, uintmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_add_ju_overflow.3 b/libj2_j2u_add_ju_overflow.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2u_add_ju_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2u_add_ju_overflow.c b/libj2_j2u_add_ju_overflow.c index 9c01dd2..c2a36d3 100644 --- a/libj2_j2u_add_ju_overflow.c +++ b/libj2_j2u_add_ju_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_add_ju_overflow(struct libj2_j2u *a, uintmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_add_ju_overflow_p.3 b/libj2_j2u_add_ju_overflow_p.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2u_add_ju_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2u_add_ju_overflow_p.c b/libj2_j2u_add_ju_overflow_p.c index 11d436f..fa693db 100644 --- a/libj2_j2u_add_ju_overflow_p.c +++ b/libj2_j2u_add_ju_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_add_ju_overflow_p(const struct libj2_j2u *a, uintmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_add_ju_to_j2u.3 b/libj2_j2u_add_ju_to_j2u.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2u_add_ju_to_j2u.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2u_add_ju_to_j2u.c b/libj2_j2u_add_ju_to_j2u.c index 348cc2c..ceda8aa 100644 --- a/libj2_j2u_add_ju_to_j2u.c +++ b/libj2_j2u_add_ju_to_j2u.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2u_add_ju_to_j2u(const struct libj2_j2u *a, uintmax_t b, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_j2u_add_ju_to_j2u_overflow.3 b/libj2_j2u_add_ju_to_j2u_overflow.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_j2u_add_ju_to_j2u_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_j2u_add_ju_to_j2u_overflow.c b/libj2_j2u_add_ju_to_j2u_overflow.c index d93e76d..495556b 100644 --- a/libj2_j2u_add_ju_to_j2u_overflow.c +++ b/libj2_j2u_add_ju_to_j2u_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_add_ju_to_j2u_overflow(const struct libj2_j2u *a, uintmax_t b, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_j2u_is_max.3 b/libj2_j2u_is_max.3 new file mode 120000 index 0000000..6add9a4 --- /dev/null +++ b/libj2_j2u_is_max.3 @@ -0,0 +1 @@ +libj2_j2i_is_max.3
\ No newline at end of file diff --git a/libj2_j2u_is_max.c b/libj2_j2u_is_max.c index 5e90264..cff2187 100644 --- a/libj2_j2u_is_max.c +++ b/libj2_j2u_is_max.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_is_max(const struct libj2_j2u *a); -/* TODO Add man page */ #else diff --git a/libj2_j2u_is_min.3 b/libj2_j2u_is_min.3 new file mode 120000 index 0000000..142f87d --- /dev/null +++ b/libj2_j2u_is_min.3 @@ -0,0 +1 @@ +libj2_j2i_is_min.3
\ No newline at end of file diff --git a/libj2_j2u_is_min.c b/libj2_j2u_is_min.c index 7a50372..78df3a5 100644 --- a/libj2_j2u_is_min.c +++ b/libj2_j2u_is_min.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_is_min(const struct libj2_j2u *a); -/* TODO Add man page */ #else diff --git a/libj2_j2u_is_positive.3 b/libj2_j2u_is_positive.3 new file mode 120000 index 0000000..5f5dd81 --- /dev/null +++ b/libj2_j2u_is_positive.3 @@ -0,0 +1 @@ +libj2_j2i_is_positive.3
\ No newline at end of file diff --git a/libj2_j2u_is_positive.c b/libj2_j2u_is_positive.c index f4b7cfc..9a15bf5 100644 --- a/libj2_j2u_is_positive.c +++ b/libj2_j2u_is_positive.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_is_positive(const struct libj2_j2u *a); -/* TODO Add man page */ #else diff --git a/libj2_j2u_is_zero.3 b/libj2_j2u_is_zero.3 new file mode 120000 index 0000000..9906e5b --- /dev/null +++ b/libj2_j2u_is_zero.3 @@ -0,0 +1 @@ +libj2_j2i_is_zero.3
\ No newline at end of file diff --git a/libj2_j2u_is_zero.c b/libj2_j2u_is_zero.c index 4c2adf9..0d96334 100644 --- a/libj2_j2u_is_zero.c +++ b/libj2_j2u_is_zero.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_is_zero(const struct libj2_j2u *a); -/* TODO Add man page */ #else diff --git a/libj2_j2u_max.3 b/libj2_j2u_max.3 new file mode 120000 index 0000000..55fc6e0 --- /dev/null +++ b/libj2_j2u_max.3 @@ -0,0 +1 @@ +libj2_j2i_max.3
\ No newline at end of file diff --git a/libj2_j2u_max.c b/libj2_j2u_max.c index 49fbb28..7440e99 100644 --- a/libj2_j2u_max.c +++ b/libj2_j2u_max.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2u_max(struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_j2u_min.3 b/libj2_j2u_min.3 new file mode 120000 index 0000000..e36f02d --- /dev/null +++ b/libj2_j2u_min.3 @@ -0,0 +1 @@ +libj2_j2i_min.3
\ No newline at end of file diff --git a/libj2_j2u_min.c b/libj2_j2u_min.c index f2f78ae..fdf5f56 100644 --- a/libj2_j2u_min.c +++ b/libj2_j2u_min.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2u_min(struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_j2u_rsub_j2u.3 b/libj2_j2u_rsub_j2u.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_j2u_rsub_j2u.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_j2u_rsub_j2u.c b/libj2_j2u_rsub_j2u.c index edae0e7..9a1d5de 100644 --- a/libj2_j2u_rsub_j2u.c +++ b/libj2_j2u_rsub_j2u.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2u_rsub_j2u(struct libj2_j2u *a, const struct libj2_j2u *b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_rsub_j2u_overflow.3 b/libj2_j2u_rsub_j2u_overflow.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_j2u_rsub_j2u_overflow.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_j2u_rsub_j2u_overflow.c b/libj2_j2u_rsub_j2u_overflow.c index e730930..39963dc 100644 --- a/libj2_j2u_rsub_j2u_overflow.c +++ b/libj2_j2u_rsub_j2u_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_rsub_j2u_overflow(struct libj2_j2u *a, const struct libj2_j2u *b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_rsub_j2u_overflow_p.3 b/libj2_j2u_rsub_j2u_overflow_p.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_j2u_rsub_j2u_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_j2u_rsub_j2u_overflow_p.c b/libj2_j2u_rsub_j2u_overflow_p.c index 4bf6cab..0081cde 100644 --- a/libj2_j2u_rsub_j2u_overflow_p.c +++ b/libj2_j2u_rsub_j2u_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_rsub_j2u_overflow_p(const struct libj2_j2u *a, const struct libj2_j2u *b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_rsub_ju.3 b/libj2_j2u_rsub_ju.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_j2u_rsub_ju.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_j2u_rsub_ju.c b/libj2_j2u_rsub_ju.c index cd3a80f..3ed3cb4 100644 --- a/libj2_j2u_rsub_ju.c +++ b/libj2_j2u_rsub_ju.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2u_rsub_ju(struct libj2_j2u *a, uintmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_rsub_ju_overflow.3 b/libj2_j2u_rsub_ju_overflow.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_j2u_rsub_ju_overflow.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_j2u_rsub_ju_overflow.c b/libj2_j2u_rsub_ju_overflow.c index 398479f..d609af5 100644 --- a/libj2_j2u_rsub_ju_overflow.c +++ b/libj2_j2u_rsub_ju_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_rsub_ju_overflow(struct libj2_j2u *a, uintmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_rsub_ju_overflow_p.3 b/libj2_j2u_rsub_ju_overflow_p.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_j2u_rsub_ju_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_j2u_rsub_ju_overflow_p.c b/libj2_j2u_rsub_ju_overflow_p.c index 9666070..d7c5448 100644 --- a/libj2_j2u_rsub_ju_overflow_p.c +++ b/libj2_j2u_rsub_ju_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_rsub_ju_overflow_p(const struct libj2_j2u *a, uintmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_sub_j2u.3 b/libj2_j2u_sub_j2u.3 new file mode 100644 index 0000000..c2a5baf --- /dev/null +++ b/libj2_j2u_sub_j2u.3 @@ -0,0 +1,130 @@ +.TH LIBJ2_J2U_SUB_J2U 3 LIBJ2 +.SH NAME +libj2_j2u_sub_j2u \- Calculate difference + +.SH SYNOPSIS +.nf +#include <libj2.h> + +void \fBlibj2_j2u_sub_j2u\fP(struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP); +void \fBlibj2_j2u_sub_j2u_to_j2u\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP); +void \fBlibj2_j2u_sub_ju\fP(struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP); +void \fBlibj2_j2u_sub_ju_to_j2u\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP); +void \fBlibj2_ju_sub_j2u_to_j2u\fP(uintmax_t \fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP); +void \fBlibj2_ju_sub_ju_to_j2u\fP(uintmax_t \fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP); + +int \fBlibj2_j2u_sub_j2u_overflow\fP(struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP); +int \fBlibj2_j2u_sub_j2u_to_j2u_overflow\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP); +int \fBlibj2_j2u_sub_ju_overflow\fP(struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP); +int \fBlibj2_j2u_sub_ju_to_j2u_overflow\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP); +int \fBlibj2_ju_sub_j2u_to_j2u_overflow\fP(uintmax_t \fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP); +int \fBlibj2_ju_sub_ju_to_j2u_overflow\fP(uintmax_t \fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP); + +int \fBlibj2_j2u_sub_j2u_overflow_p\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP); +int \fBlibj2_j2u_sub_ju_overflow_p\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP); +int \fBlibj2_ju_sub_j2u_overflow_p\fP(uintmax_t \fIa\fP, const struct libj2_j2u *\fIb\fP); +int \fBlibj2_ju_sub_ju_overflow_p\fP(uintmax_t \fIa\fP, uintmax_t \fIb\fP); + +void \fBlibj2_j2u_rsub_j2u\fP(struct libj2_j2u *\fIb\fP, const struct libj2_j2u *\fIa\fP); +void \fBlibj2_j2u_rsub_ju\fP(struct libj2_j2u *\fIb\fP, uintmax_t \fIa\fP); + +int \fBlibj2_j2u_rsub_j2u_overflow\fP(struct libj2_j2u *\fIb\fP, const struct libj2_j2u *\fIa\fP); +int \fBlibj2_j2u_rsub_ju_overflow\fP(struct libj2_j2u *\fIb\fP, uintmax_t \fIa\fP); + +int \fBlibj2_j2u_rsub_j2u_overflow_p\fP(const struct libj2_j2u *\fIb\fP, const struct libj2_j2u *\fIa\fP); +int \fBlibj2_j2u_rsub_ju_overflow_p\fP(const struct libj2_j2u *\fIb\fP, uintmax_t \fIa\fP); +.fi +.PP +Link with +.IR -lj2 . + +.SH DESCRIPTION +The above listed functions calculate the +difference of the values of +.I a +(the minuend) +and +.I b +(the subtrahend). +The functions with the parameter +.I r +store the result in +.IR r , +the other functions store the result in +.IR a , +except the functions +.BR libj2_j2u_sub_j2u_overflow_p (), +.BR libj2_j2u_sub_ju_overflow_p (), +.BR libj2_ju_sub_j2u_overflow_p (), +.BR libj2_ju_sub_ju_overflow_p (), +.BR libj2_j2u_rsub_j2u_overflow_p (), +and +.BR libj2_j2u_rsub_ju_overflow_p (), +only predict overflow, and do not calculate +the sum, and therefore does store it anywhere; +and except the functions +.BR libj2_j2u_rsub_j2u (), +.BR libj2_j2u_rsub_ju (), +.BR libj2_j2u_rsub_j2u_overflow (), +and +.BR libj2_j2u_rsub_ju_overflow (), +store the result in +.IR b . +.PP +The value-returning functions (that is, those +with word +.B overflow +in their name), detect arithmetic overflow. +.PP +The result is truncated to the least significant +bits, as many as can be stored, in case of overflow; +that is, modular arithmetics is used. + +.PP +The arguments are assumed to be +.RI non- NULL . + +.SH RETURN VALUE +For functions with a return value, the functions +return 1 if the result too large to be represented, +and 0 otherwise. + +.SH ERRORS +The above listed functions cannot fail. + +.SH HISTORY +The +.BR libj2_j2u_sub_j2u (3), +.BR libj2_j2u_sub_j2u_to_j2u (3), +.BR libj2_j2u_sub_ju (3), +.BR libj2_j2u_sub_ju_to_j2u (3), +.BR libj2_ju_sub_j2u_to_j2u (3), +.BR libj2_ju_sub_ju_to_j2u (3), +.BR libj2_j2u_sub_j2u_overflow (3), +.BR libj2_j2u_sub_j2u_to_j2u_overflow (3), +.BR libj2_j2u_sub_ju_overflow (3), +.BR libj2_j2u_sub_ju_to_j2u_overflow (3), +.BR libj2_ju_sub_j2u_to_j2u_overflow (3), +.BR libj2_ju_sub_ju_to_j2u_overflow (3), +.BR libj2_j2u_sub_j2u_overflow_p (3), +.BR libj2_j2u_sub_ju_overflow_p (3), +.BR libj2_ju_sub_j2u_overflow_p (3), +.BR libj2_ju_sub_ju_overflow_p (3), +.BR libj2_j2u_rsub_j2u (3), +.BR libj2_j2u_rsub_ju (3), +.BR libj2_j2u_rsub_j2u_overflow (3), +.BR libj2_j2u_rsub_ju_overflow (3), +.BR libj2_j2u_rsub_j2u_overflow_p (3), +and +.BR libj2_j2u_rsub_ju_overflow_p (3) +functions were added in version 1.0 of +.BR libj2 . + +.SH NOTES +The return value 1 represents negative +overflow. Positive overflow is impossible. + +.SH SEE ALSO +.BR libj2 (7), +.BR libj2_j2i_sub_j2i (3), +.BR libj2_j2i_add_j2i (3) diff --git a/libj2_j2u_sub_j2u.c b/libj2_j2u_sub_j2u.c index d69fb02..288aa33 100644 --- a/libj2_j2u_sub_j2u.c +++ b/libj2_j2u_sub_j2u.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2u_sub_j2u(struct libj2_j2u *a, const struct libj2_j2u *b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_sub_j2u_overflow.3 b/libj2_j2u_sub_j2u_overflow.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_j2u_sub_j2u_overflow.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_j2u_sub_j2u_overflow.c b/libj2_j2u_sub_j2u_overflow.c index c4e3052..e2d723d 100644 --- a/libj2_j2u_sub_j2u_overflow.c +++ b/libj2_j2u_sub_j2u_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_sub_j2u_overflow(struct libj2_j2u *a, const struct libj2_j2u *b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_sub_j2u_overflow_p.3 b/libj2_j2u_sub_j2u_overflow_p.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_j2u_sub_j2u_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_j2u_sub_j2u_overflow_p.c b/libj2_j2u_sub_j2u_overflow_p.c index 424b9a0..841b5e1 100644 --- a/libj2_j2u_sub_j2u_overflow_p.c +++ b/libj2_j2u_sub_j2u_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_sub_j2u_overflow_p(const struct libj2_j2u *a, const struct libj2_j2u *b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_sub_j2u_to_j2u.3 b/libj2_j2u_sub_j2u_to_j2u.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_j2u_sub_j2u_to_j2u.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_j2u_sub_j2u_to_j2u.c b/libj2_j2u_sub_j2u_to_j2u.c index 4f3e0c3..0cc2c47 100644 --- a/libj2_j2u_sub_j2u_to_j2u.c +++ b/libj2_j2u_sub_j2u_to_j2u.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2u_sub_j2u_to_j2u(const struct libj2_j2u *a, const struct libj2_j2u *b, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_j2u_sub_j2u_to_j2u_overflow.3 b/libj2_j2u_sub_j2u_to_j2u_overflow.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_j2u_sub_j2u_to_j2u_overflow.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_j2u_sub_j2u_to_j2u_overflow.c b/libj2_j2u_sub_j2u_to_j2u_overflow.c index ca518a9..42fe088 100644 --- a/libj2_j2u_sub_j2u_to_j2u_overflow.c +++ b/libj2_j2u_sub_j2u_to_j2u_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_sub_j2u_to_j2u_overflow(const struct libj2_j2u *a, const struct libj2_j2u *b, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_j2u_sub_ju.3 b/libj2_j2u_sub_ju.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_j2u_sub_ju.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_j2u_sub_ju.c b/libj2_j2u_sub_ju.c index 651cd1c..1c6f174 100644 --- a/libj2_j2u_sub_ju.c +++ b/libj2_j2u_sub_ju.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2u_sub_ju(struct libj2_j2u *a, uintmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_sub_ju_overflow.3 b/libj2_j2u_sub_ju_overflow.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_j2u_sub_ju_overflow.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_j2u_sub_ju_overflow.c b/libj2_j2u_sub_ju_overflow.c index 4b675be..0809417 100644 --- a/libj2_j2u_sub_ju_overflow.c +++ b/libj2_j2u_sub_ju_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_sub_ju_overflow(struct libj2_j2u *a, uintmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_sub_ju_overflow_p.3 b/libj2_j2u_sub_ju_overflow_p.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_j2u_sub_ju_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_j2u_sub_ju_overflow_p.c b/libj2_j2u_sub_ju_overflow_p.c index 54b037d..0da311b 100644 --- a/libj2_j2u_sub_ju_overflow_p.c +++ b/libj2_j2u_sub_ju_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_sub_ju_overflow_p(const struct libj2_j2u *a, uintmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_j2u_sub_ju_to_j2u.3 b/libj2_j2u_sub_ju_to_j2u.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_j2u_sub_ju_to_j2u.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_j2u_sub_ju_to_j2u.c b/libj2_j2u_sub_ju_to_j2u.c index 78ddc3a..d57326e 100644 --- a/libj2_j2u_sub_ju_to_j2u.c +++ b/libj2_j2u_sub_ju_to_j2u.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2u_sub_ju_to_j2u(const struct libj2_j2u *a, uintmax_t b, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_j2u_sub_ju_to_j2u_overflow.3 b/libj2_j2u_sub_ju_to_j2u_overflow.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_j2u_sub_ju_to_j2u_overflow.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_j2u_sub_ju_to_j2u_overflow.c b/libj2_j2u_sub_ju_to_j2u_overflow.c index 4f983ab..cdd40f9 100644 --- a/libj2_j2u_sub_ju_to_j2u_overflow.c +++ b/libj2_j2u_sub_ju_to_j2u_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_j2u_sub_ju_to_j2u_overflow(const struct libj2_j2u *a, uintmax_t b, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_j2u_zero.3 b/libj2_j2u_zero.3 new file mode 120000 index 0000000..49c665e --- /dev/null +++ b/libj2_j2u_zero.3 @@ -0,0 +1 @@ +libj2_j2i_zero.3
\ No newline at end of file diff --git a/libj2_j2u_zero.c b/libj2_j2u_zero.c index b95a91d..192c710 100644 --- a/libj2_j2u_zero.c +++ b/libj2_j2u_zero.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_j2i_zero(struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_ji_add_j2i_overflow_p.3 b/libj2_ji_add_j2i_overflow_p.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_ji_add_j2i_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_ji_add_j2i_overflow_p.c b/libj2_ji_add_j2i_overflow_p.c index 82ccd0a..bd38a5c 100644 --- a/libj2_ji_add_j2i_overflow_p.c +++ b/libj2_ji_add_j2i_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_ji_add_j2i_overflow_p(intmax_t a, const struct libj2_j2i *b); -/* TODO Add man page */ #else diff --git a/libj2_ji_add_j2i_to_j2i.3 b/libj2_ji_add_j2i_to_j2i.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_ji_add_j2i_to_j2i.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_ji_add_j2i_to_j2i.c b/libj2_ji_add_j2i_to_j2i.c index dafa114..9b15477 100644 --- a/libj2_ji_add_j2i_to_j2i.c +++ b/libj2_ji_add_j2i_to_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_ji_add_j2i_to_j2i(intmax_t a, const struct libj2_j2i *b, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_ji_add_j2i_to_j2i_overflow.3 b/libj2_ji_add_j2i_to_j2i_overflow.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_ji_add_j2i_to_j2i_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_ji_add_j2i_to_j2i_overflow.c b/libj2_ji_add_j2i_to_j2i_overflow.c index bbdbd95..3586042 100644 --- a/libj2_ji_add_j2i_to_j2i_overflow.c +++ b/libj2_ji_add_j2i_to_j2i_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_ji_add_j2i_to_j2i_overflow(intmax_t a, const struct libj2_j2i *b, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_ji_add_ji_to_j2i.3 b/libj2_ji_add_ji_to_j2i.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_ji_add_ji_to_j2i.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_ji_add_ji_to_j2i.c b/libj2_ji_add_ji_to_j2i.c index 08bf2e1..9bd741d 100644 --- a/libj2_ji_add_ji_to_j2i.c +++ b/libj2_ji_add_ji_to_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_ji_add_ji_to_j2i(intmax_t a, intmax_t b, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_ji_sub_j2i_overflow_p.3 b/libj2_ji_sub_j2i_overflow_p.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_ji_sub_j2i_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_ji_sub_j2i_overflow_p.c b/libj2_ji_sub_j2i_overflow_p.c index afd2d4d..e9782e0 100644 --- a/libj2_ji_sub_j2i_overflow_p.c +++ b/libj2_ji_sub_j2i_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_ji_sub_j2i_overflow_p(intmax_t a, const struct libj2_j2i *b); -/* TODO Add man page */ #else diff --git a/libj2_ji_sub_j2i_to_j2i.3 b/libj2_ji_sub_j2i_to_j2i.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_ji_sub_j2i_to_j2i.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_ji_sub_j2i_to_j2i.c b/libj2_ji_sub_j2i_to_j2i.c index d77aca3..bd3f2bc 100644 --- a/libj2_ji_sub_j2i_to_j2i.c +++ b/libj2_ji_sub_j2i_to_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_ji_sub_j2i_to_j2i(intmax_t a, const struct libj2_j2i *b, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_ji_sub_j2i_to_j2i_overflow.3 b/libj2_ji_sub_j2i_to_j2i_overflow.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_ji_sub_j2i_to_j2i_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_ji_sub_j2i_to_j2i_overflow.c b/libj2_ji_sub_j2i_to_j2i_overflow.c index ff8a3a4..7106537 100644 --- a/libj2_ji_sub_j2i_to_j2i_overflow.c +++ b/libj2_ji_sub_j2i_to_j2i_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_ji_sub_j2i_to_j2i_overflow(intmax_t a, const struct libj2_j2i *b, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_ji_sub_ji_to_j2i.3 b/libj2_ji_sub_ji_to_j2i.3 new file mode 120000 index 0000000..2bb1ba8 --- /dev/null +++ b/libj2_ji_sub_ji_to_j2i.3 @@ -0,0 +1 @@ +libj2_j2i_sub_j2i.3
\ No newline at end of file diff --git a/libj2_ji_sub_ji_to_j2i.c b/libj2_ji_sub_ji_to_j2i.c index 018c93c..1057db6 100644 --- a/libj2_ji_sub_ji_to_j2i.c +++ b/libj2_ji_sub_ji_to_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_ji_sub_ji_to_j2i(intmax_t a, intmax_t b, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_ju_add_j2u_overflow_p.3 b/libj2_ju_add_j2u_overflow_p.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_ju_add_j2u_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_ju_add_j2u_overflow_p.c b/libj2_ju_add_j2u_overflow_p.c index bc827c8..fc9e6fa 100644 --- a/libj2_ju_add_j2u_overflow_p.c +++ b/libj2_ju_add_j2u_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_ju_add_j2u_overflow_p(uintmax_t a, const struct libj2_j2u *b); -/* TODO Add man page */ #else diff --git a/libj2_ju_add_j2u_to_j2u.3 b/libj2_ju_add_j2u_to_j2u.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_ju_add_j2u_to_j2u.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_ju_add_j2u_to_j2u.c b/libj2_ju_add_j2u_to_j2u.c index 60fff73..46e34f9 100644 --- a/libj2_ju_add_j2u_to_j2u.c +++ b/libj2_ju_add_j2u_to_j2u.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_ju_add_j2u_to_j2u(uintmax_t a, const struct libj2_j2u *b, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_ju_add_j2u_to_j2u_overflow.3 b/libj2_ju_add_j2u_to_j2u_overflow.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_ju_add_j2u_to_j2u_overflow.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_ju_add_j2u_to_j2u_overflow.c b/libj2_ju_add_j2u_to_j2u_overflow.c index d02dfee..00eb3ff 100644 --- a/libj2_ju_add_j2u_to_j2u_overflow.c +++ b/libj2_ju_add_j2u_to_j2u_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_ju_add_j2u_to_j2u_overflow(uintmax_t a, const struct libj2_j2u *b, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_ju_add_ju_to_j2u.3 b/libj2_ju_add_ju_to_j2u.3 new file mode 120000 index 0000000..668244f --- /dev/null +++ b/libj2_ju_add_ju_to_j2u.3 @@ -0,0 +1 @@ +libj2_j2i_add_j2i.3
\ No newline at end of file diff --git a/libj2_ju_add_ju_to_j2u.c b/libj2_ju_add_ju_to_j2u.c index 7622b84..4360938 100644 --- a/libj2_ju_add_ju_to_j2u.c +++ b/libj2_ju_add_ju_to_j2u.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_ju_add_ju_to_j2u(uintmax_t a, uintmax_t b, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_ju_sub_j2u_overflow_p.3 b/libj2_ju_sub_j2u_overflow_p.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_ju_sub_j2u_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_ju_sub_j2u_overflow_p.c b/libj2_ju_sub_j2u_overflow_p.c index 90fe79c..5b57ae6 100644 --- a/libj2_ju_sub_j2u_overflow_p.c +++ b/libj2_ju_sub_j2u_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_ju_sub_j2u_overflow_p(uintmax_t a, const struct libj2_j2u *b); -/* TODO Add man page */ #else diff --git a/libj2_ju_sub_j2u_to_j2u.3 b/libj2_ju_sub_j2u_to_j2u.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_ju_sub_j2u_to_j2u.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_ju_sub_j2u_to_j2u.c b/libj2_ju_sub_j2u_to_j2u.c index 6e85181..8a2c9e4 100644 --- a/libj2_ju_sub_j2u_to_j2u.c +++ b/libj2_ju_sub_j2u_to_j2u.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_ju_sub_j2u_to_j2u(uintmax_t a, const struct libj2_j2u *b, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_ju_sub_j2u_to_j2u_overflow.3 b/libj2_ju_sub_j2u_to_j2u_overflow.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_ju_sub_j2u_to_j2u_overflow.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_ju_sub_j2u_to_j2u_overflow.c b/libj2_ju_sub_j2u_to_j2u_overflow.c index 5fef105..29d226c 100644 --- a/libj2_ju_sub_j2u_to_j2u_overflow.c +++ b/libj2_ju_sub_j2u_to_j2u_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_ju_sub_j2u_to_j2u_overflow(uintmax_t a, const struct libj2_j2u *b, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_ju_sub_ju_overflow_p.3 b/libj2_ju_sub_ju_overflow_p.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_ju_sub_ju_overflow_p.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_ju_sub_ju_overflow_p.c b/libj2_ju_sub_ju_overflow_p.c index 05bc298..be1964a 100644 --- a/libj2_ju_sub_ju_overflow_p.c +++ b/libj2_ju_sub_ju_overflow_p.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_ju_sub_ju_overflow_p(uintmax_t a, uintmax_t b); -/* TODO Add man page */ #else diff --git a/libj2_ju_sub_ju_to_j2u.3 b/libj2_ju_sub_ju_to_j2u.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_ju_sub_ju_to_j2u.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_ju_sub_ju_to_j2u.c b/libj2_ju_sub_ju_to_j2u.c index cedc6f3..93f682f 100644 --- a/libj2_ju_sub_ju_to_j2u.c +++ b/libj2_ju_sub_ju_to_j2u.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_ju_sub_ju_to_j2u(uintmax_t a, uintmax_t b, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_ju_sub_ju_to_j2u_overflow.3 b/libj2_ju_sub_ju_to_j2u_overflow.3 new file mode 120000 index 0000000..126e9a9 --- /dev/null +++ b/libj2_ju_sub_ju_to_j2u_overflow.3 @@ -0,0 +1 @@ +libj2_j2u_sub_j2u.3
\ No newline at end of file diff --git a/libj2_ju_sub_ju_to_j2u_overflow.c b/libj2_ju_sub_ju_to_j2u_overflow.c index cd3c67b..11b16cf 100644 --- a/libj2_ju_sub_ju_to_j2u_overflow.c +++ b/libj2_ju_sub_ju_to_j2u_overflow.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_ju_sub_ju_to_j2u_overflow(uintmax_t a, uintmax_t b, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_minus_abs_j2i.3 b/libj2_minus_abs_j2i.3 new file mode 100644 index 0000000..f750ce3 --- /dev/null +++ b/libj2_minus_abs_j2i.3 @@ -0,0 +1,55 @@ +.TH LIBJ2_MINUS_ABS_J2I 3 LIBJ2 +.SH NAME +libj2_minus_abs_j2i \- Calculate the additive inverse of the absolute value + +.SH SYNOPSIS +.nf +#include <libj2.h> + +void \fBlibj2_minus_abs_j2i\fP(struct libj2_j2i *\fIa\fP); +void \fBlibj2_minus_abs_j2i_to_j2i\fP(const struct libj2_j2i *\fIa\fP, struct libj2_j2i *\fIr\fP); +.fi +.PP +Link with +.IR -lj2 . + +.SH DESCRIPTION +The +.BR libj2_minus_abs_j2i () +and +.BR libj2_minus_abs_j2i_to_j2i () +functions calculate the additive inverse +of the absolute value of +.IR a . +.PP +The +.BR libj2_minus_abs_j2i () +function stores the result in +.IR a . +.PP +The +.BR libj2_minus_abs_j2i_to_j2i () +function stores the result in +.IR r . +.PP +The arguments are assumed to be +.RI non- NULL . + +.SH RETURN VALUE +None. + +.SH ERRORS +The above listed functions cannot fail. + +.SH HISTORY +The +.BR libj2_minus_abs_j2i () +and +.BR libj2_minus_abs_j2i_to_j2i () +functions were added in version 1.1 of +.BR libj2 . + +.SH SEE ALSO +.BR libj2 (7), +.BR libj2_abs_j2i (3), +.BR libj2_minus_j2i (3) diff --git a/libj2_minus_abs_j2i.c b/libj2_minus_abs_j2i.c index d2f56b4..1d3ab90 100644 --- a/libj2_minus_abs_j2i.c +++ b/libj2_minus_abs_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_minus_abs_j2i(struct libj2_j2i *a); -/* TODO Add man page */ #else diff --git a/libj2_minus_abs_j2i_to_j2i.3 b/libj2_minus_abs_j2i_to_j2i.3 new file mode 120000 index 0000000..2c9c672 --- /dev/null +++ b/libj2_minus_abs_j2i_to_j2i.3 @@ -0,0 +1 @@ +libj2_minus_abs_j2i.3
\ No newline at end of file diff --git a/libj2_minus_abs_j2i_to_j2i.c b/libj2_minus_abs_j2i_to_j2i.c index 8f41cab..d082049 100644 --- a/libj2_minus_abs_j2i_to_j2i.c +++ b/libj2_minus_abs_j2i_to_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_minus_abs_j2i_to_j2i(const struct libj2_j2i *a, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_minus_j2i.3 b/libj2_minus_j2i.3 new file mode 100644 index 0000000..64aeda7 --- /dev/null +++ b/libj2_minus_j2i.3 @@ -0,0 +1,99 @@ +.TH LIBJ2_MINUS_J2I 3 LIBJ2 +.SH NAME +libj2_minus_j2i \- Additively inverse + +.SH SYNOPSIS +.nf +#include <libj2.h> + +void \fBlibj2_minus_j2i\fP(struct libj2_j2i *\fIa\fP); +void \fBlibj2_minus_j2i_to_j2i\fP(const struct libj2_j2i *\fIa\fP, struct libj2_j2i *\fIr\fP); +void \fBlibj2_minus_j2i_to_j2u\fP(const struct libj2_j2i *\fIa\fP, struct libj2_j2u *\fIr\fP); +void \fBlibj2_minus_j2u\fP(struct libj2_j2u *\fIa\fP); +void \fBlibj2_minus_j2u_to_j2i\fP(const struct libj2_j2u *\fIa\fP, struct libj2_j2i *\fIr\fP); +void \fBlibj2_minus_j2u_to_j2u\fP(const struct libj2_j2u *\fIa\fP, struct libj2_j2u *\fIr\fP); +.fi +.PP +Link with +.IR -lj2 . + +.SH DESCRIPTION +The +.BR libj2_minus_j2i () +and +.BR libj2_minus_j2u () +functions additively inverse the value of +.IR a . +.PP +The +.BR libj2_minus_j2i_to_j2i (), +.BR libj2_minus_j2i_to_j2u (), +.BR libj2_minus_j2u_to_j2i (), +and +.BR libj2_minus_j2u_to_j2u (), +functions calculate the additive inverse +of the value of +.I a +and store the result in +.IR r . +.PP +In the case that +.I a +is the minimum representable value, the +calculation of the +.BR libj2_minus_j2i () +and +.BR libj2_minus_j2i_to_j2i () +functions overflow to the input value. +.PP +In the case that +.I a +is positive, the calculation of the +.BR libj2_minus_j2i_to_j2u () +function technically overflows, however +the result is as if +.I a +was converted to +.B struct libj2_j2i +and then inverted. +.PP +In the case that +.I a +has its most significant bit set in +addition to at least one other bit, +that is if +.IR "libj2_co_j2u(a) > 1U && libj2_j2u_test_bit(a, LIBJ2_J2U_BIT - 1U)" , +the calculation of the +.BR libj2_minus_j2u_to_j2i () +function overflows to the input value. +.PP +The arguments are assumed to be +.RI non- NULL . + +.SH RETURN VALUE +None. + +.SH ERRORS +The above listed functions cannot fail. + +.SH HISTORY +The +.BR libj2_minus_j2u () +and +.BR libj2_minus_j2u_to_j2u () +functions were added in version 1.0 of +.BR libj2 . +.PP +The +.BR libj2_minus_j2i (), +.BR libj2_minus_j2i_to_j2i (), +.BR libj2_minus_j2i_to_j2u (), +and +.BR libj2_minus_j2u_to_j2i () +functions were added in version 1.1 of +.BR libj2 . + +.SH SEE ALSO +.BR libj2 (7), +.BR libj2_abs_j2i (3), +.BR libj2_minus_abs_j2i (3) diff --git a/libj2_minus_j2i.c b/libj2_minus_j2i.c index 805afde..a1c0d62 100644 --- a/libj2_minus_j2i.c +++ b/libj2_minus_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_minus_j2i(struct libj2_j2i *a); -/* TODO Add man page */ #else diff --git a/libj2_minus_j2i_to_j2i.3 b/libj2_minus_j2i_to_j2i.3 new file mode 120000 index 0000000..824efb3 --- /dev/null +++ b/libj2_minus_j2i_to_j2i.3 @@ -0,0 +1 @@ +libj2_minus_j2i.3
\ No newline at end of file diff --git a/libj2_minus_j2i_to_j2i.c b/libj2_minus_j2i_to_j2i.c index 01e559a..f0482be 100644 --- a/libj2_minus_j2i_to_j2i.c +++ b/libj2_minus_j2i_to_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_minus_j2i_to_j2i(const struct libj2_j2i *a, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_minus_j2i_to_j2u.3 b/libj2_minus_j2i_to_j2u.3 new file mode 120000 index 0000000..824efb3 --- /dev/null +++ b/libj2_minus_j2i_to_j2u.3 @@ -0,0 +1 @@ +libj2_minus_j2i.3
\ No newline at end of file diff --git a/libj2_minus_j2i_to_j2u.c b/libj2_minus_j2i_to_j2u.c index 5e570a5..46837d0 100644 --- a/libj2_minus_j2i_to_j2u.c +++ b/libj2_minus_j2i_to_j2u.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_minus_j2i_to_j2u(const struct libj2_j2i *a, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_minus_j2u.3 b/libj2_minus_j2u.3 new file mode 120000 index 0000000..824efb3 --- /dev/null +++ b/libj2_minus_j2u.3 @@ -0,0 +1 @@ +libj2_minus_j2i.3
\ No newline at end of file diff --git a/libj2_minus_j2u.c b/libj2_minus_j2u.c index f19c5b7..a141bbf 100644 --- a/libj2_minus_j2u.c +++ b/libj2_minus_j2u.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_minus_j2u(struct libj2_j2u *a); -/* TODO Add man page */ #else diff --git a/libj2_minus_j2u_to_j2i.3 b/libj2_minus_j2u_to_j2i.3 new file mode 120000 index 0000000..824efb3 --- /dev/null +++ b/libj2_minus_j2u_to_j2i.3 @@ -0,0 +1 @@ +libj2_minus_j2i.3
\ No newline at end of file diff --git a/libj2_minus_j2u_to_j2i.c b/libj2_minus_j2u_to_j2i.c index b453bfb..55a229a 100644 --- a/libj2_minus_j2u_to_j2i.c +++ b/libj2_minus_j2u_to_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_minus_j2u_to_j2i(const struct libj2_j2u *a, struct libj2_j2i *res); -/* TODO Add man page */ #else diff --git a/libj2_minus_j2u_to_j2u.3 b/libj2_minus_j2u_to_j2u.3 new file mode 120000 index 0000000..824efb3 --- /dev/null +++ b/libj2_minus_j2u_to_j2u.3 @@ -0,0 +1 @@ +libj2_minus_j2i.3
\ No newline at end of file diff --git a/libj2_minus_j2u_to_j2u.c b/libj2_minus_j2u_to_j2u.c index 1198d4e..2339073 100644 --- a/libj2_minus_j2u_to_j2u.c +++ b/libj2_minus_j2u_to_j2u.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline void libj2_minus_j2u_to_j2u(const struct libj2_j2u *a, struct libj2_j2u *res); -/* TODO Add man page */ #else diff --git a/libj2_sgn_j2i.3 b/libj2_sgn_j2i.3 new file mode 100644 index 0000000..6c48cac --- /dev/null +++ b/libj2_sgn_j2i.3 @@ -0,0 +1,58 @@ +.TH LIBJ2_SGN_J2I 3 LIBJ2 +.SH NAME +libj2_sgn_j2i \- Get signum of value + +.SH SYNOPSIS +.nf +#include <libj2.h> + +int \fBlibj2_sgn_j2i\fP(const struct libj2_j2i *\fIa\fP); +int \fBlibj2_sgn_j2u\fP(const struct libj2_j2u *\fIa\fP); +.fi +.PP +Link with +.IR -lj2 . + +.SH DESCRIPTION +The +.BR libj2_sgn_j2i () +and +.BR libj2_sgn_j2u () +function compares +.I a +against zero, returning whether +the value is positive, negative, or zero. +.PP +.I a +is assumed to be +.RI non- NULL . + +.SH RETURN VALUE +The functions return -1 if the value of +.I a +is negative +(impossible for the +.BR libj2_sgn_j2u () +function), +1 if the value is positive, +and 0 if zero. + +.SH ERRORS +The functions cannot fail. + +.SH HISTORY +The +.BR libj2_sgn_j2u () +function was added in version 1.0 of +.BR libj2 . +.PP +The +.BR libj2_sgn_j2i () +function was added in version 1.1 of +.BR libj2 . + +.SH SEE ALSO +.BR libj2 (7), +.BR libj2_j2i_cmp_j2i (3), +.BR libj2_j2i_is_zero (3), +.BR libj2_j2i_is_negative (3), +.BR libj2_j2i_is_positive (3) diff --git a/libj2_sgn_j2i.c b/libj2_sgn_j2i.c index f2c0265..68cd2bd 100644 --- a/libj2_sgn_j2i.c +++ b/libj2_sgn_j2i.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_sgn_j2i(const struct libj2_j2i *a); -/* TODO Add man page */ #else diff --git a/libj2_sgn_j2u.3 b/libj2_sgn_j2u.3 new file mode 120000 index 0000000..a300860 --- /dev/null +++ b/libj2_sgn_j2u.3 @@ -0,0 +1 @@ +libj2_sgn_j2i.3
\ No newline at end of file diff --git a/libj2_sgn_j2u.c b/libj2_sgn_j2u.c index 5638388..22f3cdf 100644 --- a/libj2_sgn_j2u.c +++ b/libj2_sgn_j2u.c @@ -3,7 +3,6 @@ #ifndef TEST extern inline int libj2_sgn_j2u(const struct libj2_j2u *a); -/* TODO Add man page */ #else |
