aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README8
-rw-r--r--libj2.78
-rw-r--r--libj2_j2i_cmp_j2i.38
-rw-r--r--libj2_j2i_eq_j2i.38
-rw-r--r--libj2_j2i_ge_j2i.36
-rw-r--r--libj2_j2i_gt_j2i.36
-rw-r--r--libj2_j2i_is_max.357
-rw-r--r--libj2_j2i_is_max.c1
-rw-r--r--libj2_j2i_is_min.364
-rw-r--r--libj2_j2i_is_min.c1
-rw-r--r--libj2_j2i_is_negative.346
-rw-r--r--libj2_j2i_is_negative.c1
-rw-r--r--libj2_j2i_is_positive.354
-rw-r--r--libj2_j2i_is_positive.c1
-rw-r--r--libj2_j2i_is_zero.357
-rw-r--r--libj2_j2i_is_zero.c1
-rw-r--r--libj2_j2i_le_j2i.36
-rw-r--r--libj2_j2i_lt_j2i.36
-rw-r--r--libj2_j2i_max.350
-rw-r--r--libj2_j2i_max.c1
-rw-r--r--libj2_j2i_min.357
-rw-r--r--libj2_j2i_min.c1
-rw-r--r--libj2_j2i_ne_j2i.38
-rw-r--r--libj2_j2i_zero.349
-rw-r--r--libj2_j2i_zero.c1
l---------libj2_j2u_is_max.31
-rw-r--r--libj2_j2u_is_max.c1
l---------libj2_j2u_is_min.31
-rw-r--r--libj2_j2u_is_min.c1
l---------libj2_j2u_is_positive.31
-rw-r--r--libj2_j2u_is_positive.c1
l---------libj2_j2u_is_zero.31
-rw-r--r--libj2_j2u_is_zero.c1
l---------libj2_j2u_max.31
-rw-r--r--libj2_j2u_max.c1
l---------libj2_j2u_min.31
-rw-r--r--libj2_j2u_min.c1
l---------libj2_j2u_zero.31
-rw-r--r--libj2_j2u_zero.c1
-rw-r--r--libj2_sgn_j2i.358
-rw-r--r--libj2_sgn_j2i.c1
l---------libj2_sgn_j2u.31
-rw-r--r--libj2_sgn_j2u.c1
43 files changed, 549 insertions, 32 deletions
diff --git a/README b/README
index 7bb64e0..c29bb6e 100644
--- a/README
+++ b/README
@@ -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.
@@ -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.
diff --git a/libj2.7 b/libj2.7
index 8a7562f..102e53e 100644
--- a/libj2.7
+++ b/libj2.7
@@ -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
@@ -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
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_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_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_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_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