aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <m@maandree.se>2025-12-28 16:50:07 +0100
committerMattias Andrée <m@maandree.se>2025-12-28 16:50:07 +0100
commit6eee556a6db19c077dbe82576167f716205d092f (patch)
treeca4880b9ce756fbc91af9c01e7bd08d9c7744490
parentAdd some man pages (diff)
downloadlibj2-6eee556a6db19c077dbe82576167f716205d092f.tar.gz
libj2-6eee556a6db19c077dbe82576167f716205d092f.tar.bz2
libj2-6eee556a6db19c077dbe82576167f716205d092f.tar.xz
Add man pages for the regular addition function
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to '')
-rw-r--r--libj2_j2i_add_j2i.3134
-rw-r--r--libj2_j2i_add_j2i.c1
l---------libj2_j2i_add_j2i_overflow.31
-rw-r--r--libj2_j2i_add_j2i_overflow.c1
l---------libj2_j2i_add_j2i_overflow_p.31
-rw-r--r--libj2_j2i_add_j2i_overflow_p.c1
l---------libj2_j2i_add_j2i_to_j2i.31
-rw-r--r--libj2_j2i_add_j2i_to_j2i.c1
l---------libj2_j2i_add_j2i_to_j2i_overflow.31
-rw-r--r--libj2_j2i_add_j2i_to_j2i_overflow.c1
l---------libj2_j2i_add_ji.31
-rw-r--r--libj2_j2i_add_ji.c1
l---------libj2_j2i_add_ji_overflow.31
-rw-r--r--libj2_j2i_add_ji_overflow.c1
l---------libj2_j2i_add_ji_overflow_p.31
-rw-r--r--libj2_j2i_add_ji_overflow_p.c1
l---------libj2_j2i_add_ji_to_j2i.31
-rw-r--r--libj2_j2i_add_ji_to_j2i.c1
l---------libj2_j2i_add_ji_to_j2i_overflow.31
-rw-r--r--libj2_j2i_add_ji_to_j2i_overflow.c1
l---------libj2_j2u_add_j2u.31
-rw-r--r--libj2_j2u_add_j2u.c1
l---------libj2_j2u_add_j2u_overflow.31
-rw-r--r--libj2_j2u_add_j2u_overflow.c1
l---------libj2_j2u_add_j2u_overflow_p.31
-rw-r--r--libj2_j2u_add_j2u_overflow_p.c1
l---------libj2_j2u_add_j2u_to_j2u.31
-rw-r--r--libj2_j2u_add_j2u_to_j2u.c1
l---------libj2_j2u_add_j2u_to_j2u_overflow.31
-rw-r--r--libj2_j2u_add_j2u_to_j2u_overflow.c1
l---------libj2_j2u_add_ju.31
-rw-r--r--libj2_j2u_add_ju.c1
l---------libj2_j2u_add_ju_overflow.31
-rw-r--r--libj2_j2u_add_ju_overflow.c1
l---------libj2_j2u_add_ju_overflow_p.31
-rw-r--r--libj2_j2u_add_ju_overflow_p.c1
l---------libj2_j2u_add_ju_to_j2u.31
-rw-r--r--libj2_j2u_add_ju_to_j2u.c1
l---------libj2_j2u_add_ju_to_j2u_overflow.31
-rw-r--r--libj2_j2u_add_ju_to_j2u_overflow.c1
l---------libj2_ji_add_j2i_overflow_p.31
-rw-r--r--libj2_ji_add_j2i_overflow_p.c1
l---------libj2_ji_add_j2i_to_j2i.31
-rw-r--r--libj2_ji_add_j2i_to_j2i.c1
l---------libj2_ji_add_j2i_to_j2i_overflow.31
-rw-r--r--libj2_ji_add_j2i_to_j2i_overflow.c1
l---------libj2_ji_add_ji_to_j2i.31
-rw-r--r--libj2_ji_add_ji_to_j2i.c1
l---------libj2_ju_add_j2u_overflow_p.31
-rw-r--r--libj2_ju_add_j2u_overflow_p.c1
l---------libj2_ju_add_j2u_to_j2u.31
-rw-r--r--libj2_ju_add_j2u_to_j2u.c1
l---------libj2_ju_add_j2u_to_j2u_overflow.31
-rw-r--r--libj2_ju_add_j2u_to_j2u_overflow.c1
l---------libj2_ju_add_ju_to_j2u.31
-rw-r--r--libj2_ju_add_ju_to_j2u.c1
56 files changed, 161 insertions, 28 deletions
diff --git a/libj2_j2i_add_j2i.3 b/libj2_j2i_add_j2i.3
new file mode 100644
index 0000000..c58cc76
--- /dev/null
+++ b/libj2_j2i_add_j2i.3
@@ -0,0 +1,134 @@
+.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)
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_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_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_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