diff options
85 files changed, 295 insertions, 43 deletions
diff --git a/libj2_j2i_add_j2i.3 b/libj2_j2i_add_j2i.3 index c58cc76..f7d01d2 100644 --- a/libj2_j2i_add_j2i.3 +++ b/libj2_j2i_add_j2i.3 @@ -131,4 +131,6 @@ functions were added in version 1.1 of .BR libj2 . .SH SEE ALSO -.BR libj2 (7) +.BR libj2 (7), +.BR libj2_j2i_sub_j2i (3), +.BR libj2_j2u_sub_j2u (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_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_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_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 |
