aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
l---------libj2_j2u_and_bit.31
-rw-r--r--libj2_j2u_and_bit.c4
-rw-r--r--libj2_j2u_and_j2u.384
-rw-r--r--libj2_j2u_and_j2u.c7
l---------libj2_j2u_if_bit.31
-rw-r--r--libj2_j2u_if_bit.c4
-rw-r--r--libj2_j2u_if_j2u.382
-rw-r--r--libj2_j2u_if_j2u.c7
l---------libj2_j2u_imply_bit.31
-rw-r--r--libj2_j2u_imply_bit.c4
-rw-r--r--libj2_j2u_imply_j2u.382
-rw-r--r--libj2_j2u_imply_j2u.c7
l---------libj2_j2u_nand_bit.31
-rw-r--r--libj2_j2u_nand_bit.c4
-rw-r--r--libj2_j2u_nand_j2u.382
-rw-r--r--libj2_j2u_nand_j2u.c7
l---------libj2_j2u_nif_bit.31
-rw-r--r--libj2_j2u_nif_bit.c4
-rw-r--r--libj2_j2u_nif_j2u.382
-rw-r--r--libj2_j2u_nif_j2u.c7
l---------libj2_j2u_nimply_bit.31
-rw-r--r--libj2_j2u_nimply_bit.c4
-rw-r--r--libj2_j2u_nimply_j2u.382
-rw-r--r--libj2_j2u_nimply_j2u.c7
l---------libj2_j2u_nor_bit.31
-rw-r--r--libj2_j2u_nor_bit.c4
-rw-r--r--libj2_j2u_nor_j2u.382
-rw-r--r--libj2_j2u_nor_j2u.c7
l---------libj2_j2u_or_bit.31
-rw-r--r--libj2_j2u_or_bit.c4
-rw-r--r--libj2_j2u_or_j2u.382
-rw-r--r--libj2_j2u_or_j2u.c7
l---------libj2_j2u_xnor_bit.31
-rw-r--r--libj2_j2u_xnor_bit.c4
-rw-r--r--libj2_j2u_xnor_j2u.382
-rw-r--r--libj2_j2u_xnor_j2u.c7
l---------libj2_j2u_xor_bit.31
-rw-r--r--libj2_j2u_xor_bit.c4
-rw-r--r--libj2_j2u_xor_j2u.382
-rw-r--r--libj2_j2u_xor_j2u.c7
40 files changed, 832 insertions, 110 deletions
diff --git a/libj2_j2u_and_bit.3 b/libj2_j2u_and_bit.3
new file mode 120000
index 0000000..c3326e2
--- /dev/null
+++ b/libj2_j2u_and_bit.3
@@ -0,0 +1 @@
+libj2_j2u_and_j2u.3 \ No newline at end of file
diff --git a/libj2_j2u_and_bit.c b/libj2_j2u_and_bit.c
index e2d08cf..5fe70e5 100644
--- a/libj2_j2u_and_bit.c
+++ b/libj2_j2u_and_bit.c
@@ -3,10 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_and_bit(struct libj2_j2u *a, unsigned b);
-/* TODO Add man pages
- libj2_j2u_and_bit
- libj2_j2u_and_bit_to_j2u
- */
#else
diff --git a/libj2_j2u_and_j2u.3 b/libj2_j2u_and_j2u.3
new file mode 100644
index 0000000..90a87d6
--- /dev/null
+++ b/libj2_j2u_and_j2u.3
@@ -0,0 +1,84 @@
+.TH LIBJ2_J2U_AND_J2U 3 LIBJ2
+.SH NAME
+libj2_j2u_and_j2u \- Calculate bitwise AND
+
+.SH SYNOPSIS
+.nf
+#include <libj2.h>
+
+void \fBlibj2_j2u_and_j2u\fP(struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP);
+void \fBlibj2_j2u_and_j2u_to_j2u\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_and_ju\fP(struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP);
+void \fBlibj2_j2u_and_ju_to_j2u\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_ju_and_j2u_to_j2u\fP(uintmax_t \fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_and_bit\fP(struct libj2_j2u *\fIa\fP, unsigned \fIb\fP);\fP
+void \fBlibj2_j2u_and_bit_to_j2u\fP(const struct libj2_j2u *\fIa, unsigned \fIb, struct libj2_j2u *\fIr\fP);\fP
+.fi
+.PP
+Link with
+.IR -lj2 .
+
+.SH DESCRIPTION
+The above listed functions
+calculate the bitwise AND of
+.I a
+and
+.IR b ;
+for the functions where one of the
+parameter uses a narrower, that
+argument is extended with cleared
+bits above it's most significant
+bit; except that for the functions
+.BR libj2_j2u_and_bit ()
+and
+.BR libj2_j2u_and_bit_to_j2u ()
+the argument
+.I b
+is replaced with an argument with
+all bits cleared, except the
+.IR b th
+bit (counting from 0 at the least
+significant bit) which is set.
+The result is written to
+.IR r ,
+or if the function doesn't not the
+.I r
+parameter, to
+.IR a .
+.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_j2u_and_j2u (),
+.BR libj2_j2u_and_j2u_to_j2u (),
+.BR libj2_j2u_and_ju (),
+.BR libj2_j2u_and_ju_to_j2u (),
+.BR libj2_ju_and_j2u_to_j2u (),
+.BR libj2_j2u_and_bit (),
+and
+.BR libj2_j2u_and_bit_to_j2u ()
+functions were added in version 1.0 of
+.BR libj2 .
+
+.SH SEE ALSO
+.BR libj2 (7),
+.BR libj2_j2u_test_j2u (3),
+.BR libj2_j2u_has_j2u (3),
+.BR libj2_j2u_or_j2u (3),
+.BR libj2_j2u_xor_j2u (3),
+.BR libj2_j2u_if_j2u (3),
+.BR libj2_j2u_imply_j2u (3),
+.BR libj2_j2u_nand_j2u (3),
+.BR libj2_j2u_nor_j2u (3),
+.BR libj2_j2u_xnor_j2u (3),
+.BR libj2_j2u_nif_j2u (3),
+.BR libj2_j2u_nimply_j2u (3),
+.BR libj2_not_j2u (3)
diff --git a/libj2_j2u_and_j2u.c b/libj2_j2u_and_j2u.c
index 23a2184..b701f3d 100644
--- a/libj2_j2u_and_j2u.c
+++ b/libj2_j2u_and_j2u.c
@@ -3,13 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_and_j2u(struct libj2_j2u *a, const struct libj2_j2u *b);
-/* TODO Add man pages
- libj2_j2u_and_j2u
- libj2_j2u_and_j2u_to_j2u
- libj2_j2u_and_ju
- libj2_j2u_and_ju_to_j2u
- libj2_ju_and_j2u_to_j2u
- */
#else
diff --git a/libj2_j2u_if_bit.3 b/libj2_j2u_if_bit.3
new file mode 120000
index 0000000..426c77e
--- /dev/null
+++ b/libj2_j2u_if_bit.3
@@ -0,0 +1 @@
+libj2_j2u_if_j2u.3 \ No newline at end of file
diff --git a/libj2_j2u_if_bit.c b/libj2_j2u_if_bit.c
index b8fdb75..af2497a 100644
--- a/libj2_j2u_if_bit.c
+++ b/libj2_j2u_if_bit.c
@@ -3,10 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_if_bit(struct libj2_j2u *a, unsigned b);
-/* TODO Add man pages
- libj2_j2u_if_bit
- libj2_j2u_if_bit_to_j2u
- */
#else
diff --git a/libj2_j2u_if_j2u.3 b/libj2_j2u_if_j2u.3
new file mode 100644
index 0000000..4ec9270
--- /dev/null
+++ b/libj2_j2u_if_j2u.3
@@ -0,0 +1,82 @@
+.TH LIBJ2_J2U_IF_J2U 3 LIBJ2
+.SH NAME
+libj2_j2u_if_j2u \- Calculate bitwise IF
+
+.SH SYNOPSIS
+.nf
+#include <libj2.h>
+
+void \fBlibj2_j2u_if_j2u\fP(struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP);
+void \fBlibj2_j2u_if_j2u_to_j2u\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_if_ju\fP(struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP);
+void \fBlibj2_j2u_if_ju_to_j2u\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_ju_if_j2u_to_j2u\fP(uintmax_t \fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_if_bit\fP(struct libj2_j2u *\fIa\fP, unsigned \fIb\fP);\fP
+void \fBlibj2_j2u_if_bit_to_j2u\fP(const struct libj2_j2u *\fIa, unsigned \fIb, struct libj2_j2u *\fIr\fP);\fP
+.fi
+.PP
+Link with
+.IR -lj2 .
+
+.SH DESCRIPTION
+The above listed functions
+calculate the bitwise IF of
+.I a
+and
+.IR b ;
+for the functions where one of the
+parameter uses a narrower, that
+argument is extended with cleared
+bits above it's most significant
+bit; except that for the functions
+.BR libj2_j2u_if_bit ()
+and
+.BR libj2_j2u_if_bit_to_j2u ()
+the argument
+.I b
+is replaced with an argument with
+all bits cleared, except the
+.IR b th
+bit (counting from 0 at the least
+significant bit) which is set.
+The result is written to
+.IR r ,
+or if the function doesn't not the
+.I r
+parameter, to
+.IR a .
+.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_j2u_if_j2u (),
+.BR libj2_j2u_if_j2u_to_j2u (),
+.BR libj2_j2u_if_ju (),
+.BR libj2_j2u_if_ju_to_j2u (),
+.BR libj2_ju_if_j2u_to_j2u (),
+.BR libj2_j2u_if_bit (),
+and
+.BR libj2_j2u_if_bit_to_j2u ()
+functions were added in version 1.0 of
+.BR libj2 .
+
+.SH SEE ALSO
+.BR libj2 (7),
+.BR libj2_j2u_and_j2u (3),
+.BR libj2_j2u_or_j2u (3),
+.BR libj2_j2u_xor_j2u (3),
+.BR libj2_j2u_imply_j2u (3),
+.BR libj2_j2u_nand_j2u (3),
+.BR libj2_j2u_nor_j2u (3),
+.BR libj2_j2u_xnor_j2u (3),
+.BR libj2_j2u_nif_j2u (3),
+.BR libj2_j2u_nimply_j2u (3),
+.BR libj2_not_j2u (3)
diff --git a/libj2_j2u_if_j2u.c b/libj2_j2u_if_j2u.c
index 4998894..38e25bb 100644
--- a/libj2_j2u_if_j2u.c
+++ b/libj2_j2u_if_j2u.c
@@ -3,13 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_if_j2u(struct libj2_j2u *a, const struct libj2_j2u *b);
-/* TODO Add man pages
- libj2_j2u_if_j2u
- libj2_j2u_if_j2u_to_j2u
- libj2_j2u_if_ju
- libj2_j2u_if_ju_to_j2u
- libj2_ju_if_j2u_to_j2u
- */
#else
diff --git a/libj2_j2u_imply_bit.3 b/libj2_j2u_imply_bit.3
new file mode 120000
index 0000000..d45c7b2
--- /dev/null
+++ b/libj2_j2u_imply_bit.3
@@ -0,0 +1 @@
+libj2_j2u_imply_j2u.3 \ No newline at end of file
diff --git a/libj2_j2u_imply_bit.c b/libj2_j2u_imply_bit.c
index a4bfdcb..f31939d 100644
--- a/libj2_j2u_imply_bit.c
+++ b/libj2_j2u_imply_bit.c
@@ -3,10 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_imply_bit(struct libj2_j2u *a, unsigned b);
-/* TODO Add man pages
- libj2_j2u_imply_bit
- libj2_j2u_imply_bit_to_j2u
- */
#else
diff --git a/libj2_j2u_imply_j2u.3 b/libj2_j2u_imply_j2u.3
new file mode 100644
index 0000000..c6c6b52
--- /dev/null
+++ b/libj2_j2u_imply_j2u.3
@@ -0,0 +1,82 @@
+.TH LIBJ2_J2U_IMPLY_J2U 3 LIBJ2
+.SH NAME
+libj2_j2u_imply_j2u \- Calculate bitwise IMPLY
+
+.SH SYNOPSIS
+.nf
+#include <libj2.h>
+
+void \fBlibj2_j2u_imply_j2u\fP(struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP);
+void \fBlibj2_j2u_imply_j2u_to_j2u\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_imply_ju\fP(struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP);
+void \fBlibj2_j2u_imply_ju_to_j2u\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_ju_imply_j2u_to_j2u\fP(uintmax_t \fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_imply_bit\fP(struct libj2_j2u *\fIa\fP, unsigned \fIb\fP);\fP
+void \fBlibj2_j2u_imply_bit_to_j2u\fP(const struct libj2_j2u *\fIa, unsigned \fIb, struct libj2_j2u *\fIr\fP);\fP
+.fi
+.PP
+Link with
+.IR -lj2 .
+
+.SH DESCRIPTION
+The above listed functions
+calculate the bitwise IMPLY of
+.I a
+and
+.IR b ;
+for the functions where one of the
+parameter uses a narrower, that
+argument is extended with cleared
+bits above it's most significant
+bit; except that for the functions
+.BR libj2_j2u_imply_bit ()
+and
+.BR libj2_j2u_imply_bit_to_j2u ()
+the argument
+.I b
+is replaced with an argument with
+all bits cleared, except the
+.IR b th
+bit (counting from 0 at the least
+significant bit) which is set.
+The result is written to
+.IR r ,
+or if the function doesn't not the
+.I r
+parameter, to
+.IR a .
+.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_j2u_imply_j2u (),
+.BR libj2_j2u_imply_j2u_to_j2u (),
+.BR libj2_j2u_imply_ju (),
+.BR libj2_j2u_imply_ju_to_j2u (),
+.BR libj2_ju_imply_j2u_to_j2u (),
+.BR libj2_j2u_imply_bit (),
+and
+.BR libj2_j2u_imply_bit_to_j2u ()
+functions were added in version 1.0 of
+.BR libj2 .
+
+.SH SEE ALSO
+.BR libj2 (7),
+.BR libj2_j2u_and_j2u (3),
+.BR libj2_j2u_or_j2u (3),
+.BR libj2_j2u_xor_j2u (3),
+.BR libj2_j2u_if_j2u (3),
+.BR libj2_j2u_nand_j2u (3),
+.BR libj2_j2u_nor_j2u (3),
+.BR libj2_j2u_xnor_j2u (3),
+.BR libj2_j2u_nif_j2u (3),
+.BR libj2_j2u_nimply_j2u (3),
+.BR libj2_not_j2u (3)
diff --git a/libj2_j2u_imply_j2u.c b/libj2_j2u_imply_j2u.c
index ef9ff72..9ae967c 100644
--- a/libj2_j2u_imply_j2u.c
+++ b/libj2_j2u_imply_j2u.c
@@ -3,13 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_imply_j2u(struct libj2_j2u *a, const struct libj2_j2u *b);
-/* TODO Add man pages
- libj2_j2u_imply_j2u
- libj2_j2u_imply_j2u_to_j2u
- libj2_j2u_imply_ju
- libj2_j2u_imply_ju_to_j2u
- libj2_ju_imply_j2u_to_j2u
- */
#else
diff --git a/libj2_j2u_nand_bit.3 b/libj2_j2u_nand_bit.3
new file mode 120000
index 0000000..12415c3
--- /dev/null
+++ b/libj2_j2u_nand_bit.3
@@ -0,0 +1 @@
+libj2_j2u_nand_j2u.3 \ No newline at end of file
diff --git a/libj2_j2u_nand_bit.c b/libj2_j2u_nand_bit.c
index 899b9ce..7e19412 100644
--- a/libj2_j2u_nand_bit.c
+++ b/libj2_j2u_nand_bit.c
@@ -3,10 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_nand_bit(struct libj2_j2u *a, unsigned b);
-/* TODO Add man pages
- libj2_j2u_nand_bit
- libj2_j2u_nand_bit_to_j2u
- */
#else
diff --git a/libj2_j2u_nand_j2u.3 b/libj2_j2u_nand_j2u.3
new file mode 100644
index 0000000..f231a39
--- /dev/null
+++ b/libj2_j2u_nand_j2u.3
@@ -0,0 +1,82 @@
+.TH LIBJ2_J2U_NAND_J2U 3 LIBJ2
+.SH NAME
+libj2_j2u_nand_j2u \- Calculate bitwise NAND
+
+.SH SYNOPSIS
+.nf
+#include <libj2.h>
+
+void \fBlibj2_j2u_nand_j2u\fP(struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP);
+void \fBlibj2_j2u_nand_j2u_to_j2u\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_nand_ju\fP(struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP);
+void \fBlibj2_j2u_nand_ju_to_j2u\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_ju_nand_j2u_to_j2u\fP(uintmax_t \fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_nand_bit\fP(struct libj2_j2u *\fIa\fP, unsigned \fIb\fP);\fP
+void \fBlibj2_j2u_nand_bit_to_j2u\fP(const struct libj2_j2u *\fIa, unsigned \fIb, struct libj2_j2u *\fIr\fP);\fP
+.fi
+.PP
+Link with
+.IR -lj2 .
+
+.SH DESCRIPTION
+The above listed functions
+calculate the bitwise NAND of
+.I a
+and
+.IR b ;
+for the functions where one of the
+parameter uses a narrower, that
+argument is extended with cleared
+bits above it's most significant
+bit; except that for the functions
+.BR libj2_j2u_nand_bit ()
+and
+.BR libj2_j2u_nand_bit_to_j2u ()
+the argument
+.I b
+is replaced with an argument with
+all bits cleared, except the
+.IR b th
+bit (counting from 0 at the least
+significant bit) which is set.
+The result is written to
+.IR r ,
+or if the function doesn't not the
+.I r
+parameter, to
+.IR a .
+.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_j2u_nand_j2u (),
+.BR libj2_j2u_nand_j2u_to_j2u (),
+.BR libj2_j2u_nand_ju (),
+.BR libj2_j2u_nand_ju_to_j2u (),
+.BR libj2_ju_nand_j2u_to_j2u (),
+.BR libj2_j2u_nand_bit (),
+and
+.BR libj2_j2u_nand_bit_to_j2u ()
+functions were added in version 1.0 of
+.BR libj2 .
+
+.SH SEE ALSO
+.BR libj2 (7),
+.BR libj2_j2u_and_j2u (3),
+.BR libj2_j2u_or_j2u (3),
+.BR libj2_j2u_xor_j2u (3),
+.BR libj2_j2u_if_j2u (3),
+.BR libj2_j2u_imply_j2u (3),
+.BR libj2_j2u_nor_j2u (3),
+.BR libj2_j2u_xnor_j2u (3),
+.BR libj2_j2u_nif_j2u (3),
+.BR libj2_j2u_nimply_j2u (3),
+.BR libj2_not_j2u (3)
diff --git a/libj2_j2u_nand_j2u.c b/libj2_j2u_nand_j2u.c
index d8688bb..77b23f8 100644
--- a/libj2_j2u_nand_j2u.c
+++ b/libj2_j2u_nand_j2u.c
@@ -3,13 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_nand_j2u(struct libj2_j2u *a, const struct libj2_j2u *b);
-/* TODO Add man pages
- libj2_j2u_nand_j2u
- libj2_j2u_nand_j2u_to_j2u
- libj2_j2u_nand_ju
- libj2_j2u_nand_ju_to_j2u
- libj2_ju_nand_j2u_to_j2u
- */
#else
diff --git a/libj2_j2u_nif_bit.3 b/libj2_j2u_nif_bit.3
new file mode 120000
index 0000000..39ceb63
--- /dev/null
+++ b/libj2_j2u_nif_bit.3
@@ -0,0 +1 @@
+libj2_j2u_nif_j2u.3 \ No newline at end of file
diff --git a/libj2_j2u_nif_bit.c b/libj2_j2u_nif_bit.c
index c04b491..e3156df 100644
--- a/libj2_j2u_nif_bit.c
+++ b/libj2_j2u_nif_bit.c
@@ -3,10 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_nif_bit(struct libj2_j2u *a, unsigned b);
-/* TODO Add man pages
- libj2_j2u_nif_bit
- libj2_j2u_nif_bit_to_j2u
- */
#else
diff --git a/libj2_j2u_nif_j2u.3 b/libj2_j2u_nif_j2u.3
new file mode 100644
index 0000000..cab990a
--- /dev/null
+++ b/libj2_j2u_nif_j2u.3
@@ -0,0 +1,82 @@
+.TH LIBJ2_J2U_NIF_J2U 3 LIBJ2
+.SH NAME
+libj2_j2u_nif_j2u \- Calculate bitwise NIF
+
+.SH SYNOPSIS
+.nf
+#include <libj2.h>
+
+void \fBlibj2_j2u_nif_j2u\fP(struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP);
+void \fBlibj2_j2u_nif_j2u_to_j2u\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_nif_ju\fP(struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP);
+void \fBlibj2_j2u_nif_ju_to_j2u\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_ju_nif_j2u_to_j2u\fP(uintmax_t \fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_nif_bit\fP(struct libj2_j2u *\fIa\fP, unsigned \fIb\fP);\fP
+void \fBlibj2_j2u_nif_bit_to_j2u\fP(const struct libj2_j2u *\fIa, unsigned \fIb, struct libj2_j2u *\fIr\fP);\fP
+.fi
+.PP
+Link with
+.IR -lj2 .
+
+.SH DESCRIPTION
+The above listed functions
+calculate the bitwise NIF of
+.I a
+and
+.IR b ;
+for the functions where one of the
+parameter uses a narrower, that
+argument is extended with cleared
+bits above it's most significant
+bit; except that for the functions
+.BR libj2_j2u_nif_bit ()
+and
+.BR libj2_j2u_nif_bit_to_j2u ()
+the argument
+.I b
+is replaced with an argument with
+all bits cleared, except the
+.IR b th
+bit (counting from 0 at the least
+significant bit) which is set.
+The result is written to
+.IR r ,
+or if the function doesn't not the
+.I r
+parameter, to
+.IR a .
+.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_j2u_nif_j2u (),
+.BR libj2_j2u_nif_j2u_to_j2u (),
+.BR libj2_j2u_nif_ju (),
+.BR libj2_j2u_nif_ju_to_j2u (),
+.BR libj2_ju_nif_j2u_to_j2u (),
+.BR libj2_j2u_nif_bit (),
+and
+.BR libj2_j2u_nif_bit_to_j2u ()
+functions were added in version 1.0 of
+.BR libj2 .
+
+.SH SEE ALSO
+.BR libj2 (7),
+.BR libj2_j2u_and_j2u (3),
+.BR libj2_j2u_or_j2u (3),
+.BR libj2_j2u_xor_j2u (3),
+.BR libj2_j2u_if_j2u (3),
+.BR libj2_j2u_imply_j2u (3),
+.BR libj2_j2u_nand_j2u (3),
+.BR libj2_j2u_nor_j2u (3),
+.BR libj2_j2u_xnor_j2u (3),
+.BR libj2_j2u_nimply_j2u (3),
+.BR libj2_not_j2u (3)
diff --git a/libj2_j2u_nif_j2u.c b/libj2_j2u_nif_j2u.c
index d2c2222..bc46cda 100644
--- a/libj2_j2u_nif_j2u.c
+++ b/libj2_j2u_nif_j2u.c
@@ -3,13 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_nif_j2u(struct libj2_j2u *a, const struct libj2_j2u *b);
-/* TODO Add man pages
- libj2_j2u_nif_j2u
- libj2_j2u_nif_j2u_to_j2u
- libj2_j2u_nif_ju
- libj2_j2u_nif_ju_to_j2u
- libj2_ju_nif_j2u_to_j2u
- */
#else
diff --git a/libj2_j2u_nimply_bit.3 b/libj2_j2u_nimply_bit.3
new file mode 120000
index 0000000..4e8bcb6
--- /dev/null
+++ b/libj2_j2u_nimply_bit.3
@@ -0,0 +1 @@
+libj2_j2u_nimply_j2u.3 \ No newline at end of file
diff --git a/libj2_j2u_nimply_bit.c b/libj2_j2u_nimply_bit.c
index 8a39f45..6c7dff6 100644
--- a/libj2_j2u_nimply_bit.c
+++ b/libj2_j2u_nimply_bit.c
@@ -3,10 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_nimply_bit(struct libj2_j2u *a, unsigned b);
-/* TODO Add man pages
- libj2_j2u_nimply_bit
- libj2_j2u_nimply_bit_to_j2u
- */
#else
diff --git a/libj2_j2u_nimply_j2u.3 b/libj2_j2u_nimply_j2u.3
new file mode 100644
index 0000000..50df73b
--- /dev/null
+++ b/libj2_j2u_nimply_j2u.3
@@ -0,0 +1,82 @@
+.TH LIBJ2_J2U_NIMPLY_J2U 3 LIBJ2
+.SH NAME
+libj2_j2u_nimply_j2u \- Calculate bitwise NIMPLY
+
+.SH SYNOPSIS
+.nf
+#include <libj2.h>
+
+void \fBlibj2_j2u_nimply_j2u\fP(struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP);
+void \fBlibj2_j2u_nimply_j2u_to_j2u\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_nimply_ju\fP(struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP);
+void \fBlibj2_j2u_nimply_ju_to_j2u\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_ju_nimply_j2u_to_j2u\fP(uintmax_t \fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_nimply_bit\fP(struct libj2_j2u *\fIa\fP, unsigned \fIb\fP);\fP
+void \fBlibj2_j2u_nimply_bit_to_j2u\fP(const struct libj2_j2u *\fIa, unsigned \fIb, struct libj2_j2u *\fIr\fP);\fP
+.fi
+.PP
+Link with
+.IR -lj2 .
+
+.SH DESCRIPTION
+The above listed functions
+calculate the bitwise NIMPLY of
+.I a
+and
+.IR b ;
+for the functions where one of the
+parameter uses a narrower, that
+argument is extended with cleared
+bits above it's most significant
+bit; except that for the functions
+.BR libj2_j2u_nimply_bit ()
+and
+.BR libj2_j2u_nimply_bit_to_j2u ()
+the argument
+.I b
+is replaced with an argument with
+all bits cleared, except the
+.IR b th
+bit (counting from 0 at the least
+significant bit) which is set.
+The result is written to
+.IR r ,
+or if the function doesn't not the
+.I r
+parameter, to
+.IR a .
+.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_j2u_nimply_j2u (),
+.BR libj2_j2u_nimply_j2u_to_j2u (),
+.BR libj2_j2u_nimply_ju (),
+.BR libj2_j2u_nimply_ju_to_j2u (),
+.BR libj2_ju_nimply_j2u_to_j2u (),
+.BR libj2_j2u_nimply_bit (),
+and
+.BR libj2_j2u_nimply_bit_to_j2u ()
+functions were added in version 1.0 of
+.BR libj2 .
+
+.SH SEE ALSO
+.BR libj2 (7),
+.BR libj2_j2u_and_j2u (3),
+.BR libj2_j2u_or_j2u (3),
+.BR libj2_j2u_xor_j2u (3),
+.BR libj2_j2u_if_j2u (3),
+.BR libj2_j2u_imply_j2u (3),
+.BR libj2_j2u_nand_j2u (3),
+.BR libj2_j2u_nor_j2u (3),
+.BR libj2_j2u_xnor_j2u (3),
+.BR libj2_j2u_nif_j2u (3),
+.BR libj2_not_j2u (3)
diff --git a/libj2_j2u_nimply_j2u.c b/libj2_j2u_nimply_j2u.c
index d571dde..012e35b 100644
--- a/libj2_j2u_nimply_j2u.c
+++ b/libj2_j2u_nimply_j2u.c
@@ -3,13 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_nimply_j2u(struct libj2_j2u *a, const struct libj2_j2u *b);
-/* TODO Add man pages
- libj2_j2u_nimply_j2u
- libj2_j2u_nimply_j2u_to_j2u
- libj2_j2u_nimply_ju
- libj2_j2u_nimply_ju_to_j2u
- libj2_ju_nimply_j2u_to_j2u
- */
#else
diff --git a/libj2_j2u_nor_bit.3 b/libj2_j2u_nor_bit.3
new file mode 120000
index 0000000..ecbbca5
--- /dev/null
+++ b/libj2_j2u_nor_bit.3
@@ -0,0 +1 @@
+libj2_j2u_nor_j2u.3 \ No newline at end of file
diff --git a/libj2_j2u_nor_bit.c b/libj2_j2u_nor_bit.c
index 26f9c04..c964379 100644
--- a/libj2_j2u_nor_bit.c
+++ b/libj2_j2u_nor_bit.c
@@ -3,10 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_nor_bit(struct libj2_j2u *a, unsigned b);
-/* TODO Add man pages
- libj2_j2u_nor_bit
- libj2_j2u_nor_bit_to_j2u
- */
#else
diff --git a/libj2_j2u_nor_j2u.3 b/libj2_j2u_nor_j2u.3
new file mode 100644
index 0000000..d09e58c
--- /dev/null
+++ b/libj2_j2u_nor_j2u.3
@@ -0,0 +1,82 @@
+.TH LIBJ2_J2U_NOR_J2U 3 LIBJ2
+.SH NAME
+libj2_j2u_nor_j2u \- Calculate bitwise NOR
+
+.SH SYNOPSIS
+.nf
+#include <libj2.h>
+
+void \fBlibj2_j2u_nor_j2u\fP(struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP);
+void \fBlibj2_j2u_nor_j2u_to_j2u\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_nor_ju\fP(struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP);
+void \fBlibj2_j2u_nor_ju_to_j2u\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_ju_nor_j2u_to_j2u\fP(uintmax_t \fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_nor_bit\fP(struct libj2_j2u *\fIa\fP, unsigned \fIb\fP);\fP
+void \fBlibj2_j2u_nor_bit_to_j2u\fP(const struct libj2_j2u *\fIa, unsigned \fIb, struct libj2_j2u *\fIr\fP);\fP
+.fi
+.PP
+Link with
+.IR -lj2 .
+
+.SH DESCRIPTION
+The above listed functions
+calculate the bitwise NOR of
+.I a
+and
+.IR b ;
+for the functions where one of the
+parameter uses a narrower, that
+argument is extended with cleared
+bits above it's most significant
+bit; except that for the functions
+.BR libj2_j2u_nor_bit ()
+and
+.BR libj2_j2u_nor_bit_to_j2u ()
+the argument
+.I b
+is replaced with an argument with
+all bits cleared, except the
+.IR b th
+bit (counting from 0 at the least
+significant bit) which is set.
+The result is written to
+.IR r ,
+or if the function doesn't not the
+.I r
+parameter, to
+.IR a .
+.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_j2u_nor_j2u (),
+.BR libj2_j2u_nor_j2u_to_j2u (),
+.BR libj2_j2u_nor_ju (),
+.BR libj2_j2u_nor_ju_to_j2u (),
+.BR libj2_ju_nor_j2u_to_j2u (),
+.BR libj2_j2u_nor_bit (),
+and
+.BR libj2_j2u_nor_bit_to_j2u ()
+functions were added in version 1.0 of
+.BR libj2 .
+
+.SH SEE ALSO
+.BR libj2 (7),
+.BR libj2_j2u_and_j2u (3),
+.BR libj2_j2u_or_j2u (3),
+.BR libj2_j2u_xor_j2u (3),
+.BR libj2_j2u_if_j2u (3),
+.BR libj2_j2u_imply_j2u (3),
+.BR libj2_j2u_nand_j2u (3),
+.BR libj2_j2u_xnor_j2u (3),
+.BR libj2_j2u_nif_j2u (3),
+.BR libj2_j2u_nimply_j2u (3),
+.BR libj2_not_j2u (3)
diff --git a/libj2_j2u_nor_j2u.c b/libj2_j2u_nor_j2u.c
index 86416f2..e2e9751 100644
--- a/libj2_j2u_nor_j2u.c
+++ b/libj2_j2u_nor_j2u.c
@@ -3,13 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_nor_j2u(struct libj2_j2u *a, const struct libj2_j2u *b);
-/* TODO Add man pages
- libj2_j2u_nor_j2u
- libj2_j2u_nor_j2u_to_j2u
- libj2_j2u_nor_ju
- libj2_j2u_nor_ju_to_j2u
- libj2_ju_nor_j2u_to_j2u
- */
#else
diff --git a/libj2_j2u_or_bit.3 b/libj2_j2u_or_bit.3
new file mode 120000
index 0000000..2718776
--- /dev/null
+++ b/libj2_j2u_or_bit.3
@@ -0,0 +1 @@
+libj2_j2u_or_j2u.3 \ No newline at end of file
diff --git a/libj2_j2u_or_bit.c b/libj2_j2u_or_bit.c
index b11c9e6..70bf90f 100644
--- a/libj2_j2u_or_bit.c
+++ b/libj2_j2u_or_bit.c
@@ -3,10 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_or_bit(struct libj2_j2u *a, unsigned b);
-/* TODO Add man pages
- libj2_j2u_or_bit
- libj2_j2u_or_bit_to_j2u
- */
#else
diff --git a/libj2_j2u_or_j2u.3 b/libj2_j2u_or_j2u.3
new file mode 100644
index 0000000..786d6d0
--- /dev/null
+++ b/libj2_j2u_or_j2u.3
@@ -0,0 +1,82 @@
+.TH LIBJ2_J2U_OR_J2U 3 LIBJ2
+.SH NAME
+libj2_j2u_or_j2u \- Calculate bitwise OR
+
+.SH SYNOPSIS
+.nf
+#include <libj2.h>
+
+void \fBlibj2_j2u_or_j2u\fP(struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP);
+void \fBlibj2_j2u_or_j2u_to_j2u\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_or_ju\fP(struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP);
+void \fBlibj2_j2u_or_ju_to_j2u\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_ju_or_j2u_to_j2u\fP(uintmax_t \fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_or_bit\fP(struct libj2_j2u *\fIa\fP, unsigned \fIb\fP);\fP
+void \fBlibj2_j2u_or_bit_to_j2u\fP(const struct libj2_j2u *\fIa, unsigned \fIb, struct libj2_j2u *\fIr\fP);\fP
+.fi
+.PP
+Link with
+.IR -lj2 .
+
+.SH DESCRIPTION
+The above listed functions
+calculate the bitwise OR of
+.I a
+and
+.IR b ;
+for the functions where one of the
+parameter uses a narrower, that
+argument is extended with cleared
+bits above it's most significant
+bit; except that for the functions
+.BR libj2_j2u_or_bit ()
+and
+.BR libj2_j2u_or_bit_to_j2u ()
+the argument
+.I b
+is replaced with an argument with
+all bits cleared, except the
+.IR b th
+bit (counting from 0 at the least
+significant bit) which is set.
+The result is written to
+.IR r ,
+or if the function doesn't not the
+.I r
+parameter, to
+.IR a .
+.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_j2u_or_j2u (),
+.BR libj2_j2u_or_j2u_to_j2u (),
+.BR libj2_j2u_or_ju (),
+.BR libj2_j2u_or_ju_to_j2u (),
+.BR libj2_ju_or_j2u_to_j2u (),
+.BR libj2_j2u_or_bit (),
+and
+.BR libj2_j2u_or_bit_to_j2u ()
+functions were added in version 1.0 of
+.BR libj2 .
+
+.SH SEE ALSO
+.BR libj2 (7),
+.BR libj2_j2u_and_j2u (3),
+.BR libj2_j2u_xor_j2u (3),
+.BR libj2_j2u_if_j2u (3),
+.BR libj2_j2u_imply_j2u (3),
+.BR libj2_j2u_nand_j2u (3),
+.BR libj2_j2u_nor_j2u (3),
+.BR libj2_j2u_xnor_j2u (3),
+.BR libj2_j2u_nif_j2u (3),
+.BR libj2_j2u_nimply_j2u (3),
+.BR libj2_not_j2u (3)
diff --git a/libj2_j2u_or_j2u.c b/libj2_j2u_or_j2u.c
index 5c0650b..ce42786 100644
--- a/libj2_j2u_or_j2u.c
+++ b/libj2_j2u_or_j2u.c
@@ -3,13 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_or_j2u(struct libj2_j2u *a, const struct libj2_j2u *b);
-/* TODO Add man pages
- libj2_j2u_or_j2u
- libj2_j2u_or_j2u_to_j2u
- libj2_j2u_or_ju
- libj2_j2u_or_ju_to_j2u
- libj2_ju_or_j2u_to_j2u
- */
#else
diff --git a/libj2_j2u_xnor_bit.3 b/libj2_j2u_xnor_bit.3
new file mode 120000
index 0000000..5f139bd
--- /dev/null
+++ b/libj2_j2u_xnor_bit.3
@@ -0,0 +1 @@
+libj2_j2u_xnor_j2u.3 \ No newline at end of file
diff --git a/libj2_j2u_xnor_bit.c b/libj2_j2u_xnor_bit.c
index 1e1a675..36d95fd 100644
--- a/libj2_j2u_xnor_bit.c
+++ b/libj2_j2u_xnor_bit.c
@@ -3,10 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_xnor_bit(struct libj2_j2u *a, unsigned b);
-/* TODO Add man pages
- libj2_j2u_xnor_bit
- libj2_j2u_xnor_bit_to_j2u
- */
#else
diff --git a/libj2_j2u_xnor_j2u.3 b/libj2_j2u_xnor_j2u.3
new file mode 100644
index 0000000..83ad333
--- /dev/null
+++ b/libj2_j2u_xnor_j2u.3
@@ -0,0 +1,82 @@
+.TH LIBJ2_J2U_XNOR_J2U 3 LIBJ2
+.SH NAME
+libj2_j2u_xnor_j2u \- Calculate bitwise XNOR
+
+.SH SYNOPSIS
+.nf
+#include <libj2.h>
+
+void \fBlibj2_j2u_xnor_j2u\fP(struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP);
+void \fBlibj2_j2u_xnor_j2u_to_j2u\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_xnor_ju\fP(struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP);
+void \fBlibj2_j2u_xnor_ju_to_j2u\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_ju_xnor_j2u_to_j2u\fP(uintmax_t \fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_xnor_bit\fP(struct libj2_j2u *\fIa\fP, unsigned \fIb\fP);\fP
+void \fBlibj2_j2u_xnor_bit_to_j2u\fP(const struct libj2_j2u *\fIa, unsigned \fIb, struct libj2_j2u *\fIr\fP);\fP
+.fi
+.PP
+Link with
+.IR -lj2 .
+
+.SH DESCRIPTION
+The above listed functions
+calculate the bitwise XNOR of
+.I a
+and
+.IR b ;
+for the functions where one of the
+parameter uses a narrower, that
+argument is extended with cleared
+bits above it's most significant
+bit; except that for the functions
+.BR libj2_j2u_xnor_bit ()
+and
+.BR libj2_j2u_xnor_bit_to_j2u ()
+the argument
+.I b
+is replaced with an argument with
+all bits cleared, except the
+.IR b th
+bit (counting from 0 at the least
+significant bit) which is set.
+The result is written to
+.IR r ,
+or if the function doesn't not the
+.I r
+parameter, to
+.IR a .
+.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_j2u_xnor_j2u (),
+.BR libj2_j2u_xnor_j2u_to_j2u (),
+.BR libj2_j2u_xnor_ju (),
+.BR libj2_j2u_xnor_ju_to_j2u (),
+.BR libj2_ju_xnor_j2u_to_j2u (),
+.BR libj2_j2u_xnor_bit (),
+and
+.BR libj2_j2u_xnor_bit_to_j2u ()
+functions were added in version 1.0 of
+.BR libj2 .
+
+.SH SEE ALSO
+.BR libj2 (7),
+.BR libj2_j2u_and_j2u (3),
+.BR libj2_j2u_or_j2u (3),
+.BR libj2_j2u_xor_j2u (3),
+.BR libj2_j2u_if_j2u (3),
+.BR libj2_j2u_imply_j2u (3),
+.BR libj2_j2u_nand_j2u (3),
+.BR libj2_j2u_nor_j2u (3),
+.BR libj2_j2u_nif_j2u (3),
+.BR libj2_j2u_nimply_j2u (3),
+.BR libj2_not_j2u (3)
diff --git a/libj2_j2u_xnor_j2u.c b/libj2_j2u_xnor_j2u.c
index 5e033f4..38aba0c 100644
--- a/libj2_j2u_xnor_j2u.c
+++ b/libj2_j2u_xnor_j2u.c
@@ -3,13 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_xnor_j2u(struct libj2_j2u *a, const struct libj2_j2u *b);
-/* TODO Add man pages
- libj2_j2u_xnor_j2u
- libj2_j2u_xnor_j2u_to_j2u
- libj2_j2u_xnor_ju
- libj2_j2u_xnor_ju_to_j2u
- libj2_ju_xnor_j2u_to_j2u
- */
#else
diff --git a/libj2_j2u_xor_bit.3 b/libj2_j2u_xor_bit.3
new file mode 120000
index 0000000..25041a4
--- /dev/null
+++ b/libj2_j2u_xor_bit.3
@@ -0,0 +1 @@
+libj2_j2u_xor_j2u.3 \ No newline at end of file
diff --git a/libj2_j2u_xor_bit.c b/libj2_j2u_xor_bit.c
index 116268a..6d6f87f 100644
--- a/libj2_j2u_xor_bit.c
+++ b/libj2_j2u_xor_bit.c
@@ -3,10 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_xor_bit(struct libj2_j2u *a, unsigned b);
-/* TODO Add man pages
- libj2_j2u_xor_bit
- libj2_j2u_xor_bit_to_j2u
- */
#else
diff --git a/libj2_j2u_xor_j2u.3 b/libj2_j2u_xor_j2u.3
new file mode 100644
index 0000000..d6d779c
--- /dev/null
+++ b/libj2_j2u_xor_j2u.3
@@ -0,0 +1,82 @@
+.TH LIBJ2_J2U_XOR_J2U 3 LIBJ2
+.SH NAME
+libj2_j2u_xor_j2u \- Calculate bitwise XOR
+
+.SH SYNOPSIS
+.nf
+#include <libj2.h>
+
+void \fBlibj2_j2u_xor_j2u\fP(struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP);
+void \fBlibj2_j2u_xor_j2u_to_j2u\fP(const struct libj2_j2u *\fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_xor_ju\fP(struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP);
+void \fBlibj2_j2u_xor_ju_to_j2u\fP(const struct libj2_j2u *\fIa\fP, uintmax_t \fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_ju_xor_j2u_to_j2u\fP(uintmax_t \fIa\fP, const struct libj2_j2u *\fIb\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_j2u_xor_bit\fP(struct libj2_j2u *\fIa\fP, unsigned \fIb\fP);\fP
+void \fBlibj2_j2u_xor_bit_to_j2u\fP(const struct libj2_j2u *\fIa, unsigned \fIb, struct libj2_j2u *\fIr\fP);\fP
+.fi
+.PP
+Link with
+.IR -lj2 .
+
+.SH DESCRIPTION
+The above listed functions
+calculate the bitwise XOR of
+.I a
+and
+.IR b ;
+for the functions where one of the
+parameter uses a narrower, that
+argument is extended with cleared
+bits above it's most significant
+bit; except that for the functions
+.BR libj2_j2u_xor_bit ()
+and
+.BR libj2_j2u_xor_bit_to_j2u ()
+the argument
+.I b
+is replaced with an argument with
+all bits cleared, except the
+.IR b th
+bit (counting from 0 at the least
+significant bit) which is set.
+The result is written to
+.IR r ,
+or if the function doesn't not the
+.I r
+parameter, to
+.IR a .
+.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_j2u_xor_j2u (),
+.BR libj2_j2u_xor_j2u_to_j2u (),
+.BR libj2_j2u_xor_ju (),
+.BR libj2_j2u_xor_ju_to_j2u (),
+.BR libj2_ju_xor_j2u_to_j2u (),
+.BR libj2_j2u_xor_bit (),
+and
+.BR libj2_j2u_xor_bit_to_j2u ()
+functions were added in version 1.0 of
+.BR libj2 .
+
+.SH SEE ALSO
+.BR libj2 (7),
+.BR libj2_j2u_and_j2u (3),
+.BR libj2_j2u_or_j2u (3),
+.BR libj2_j2u_if_j2u (3),
+.BR libj2_j2u_imply_j2u (3),
+.BR libj2_j2u_nand_j2u (3),
+.BR libj2_j2u_nor_j2u (3),
+.BR libj2_j2u_xnor_j2u (3),
+.BR libj2_j2u_nif_j2u (3),
+.BR libj2_j2u_nimply_j2u (3),
+.BR libj2_not_j2u (3)
diff --git a/libj2_j2u_xor_j2u.c b/libj2_j2u_xor_j2u.c
index 2668c8f..b6bd66d 100644
--- a/libj2_j2u_xor_j2u.c
+++ b/libj2_j2u_xor_j2u.c
@@ -3,13 +3,6 @@
#ifndef TEST
extern inline void libj2_j2u_xor_j2u(struct libj2_j2u *a, const struct libj2_j2u *b);
-/* TODO Add man pages
- libj2_j2u_xor_j2u
- libj2_j2u_xor_j2u_to_j2u
- libj2_j2u_xor_ju
- libj2_j2u_xor_ju_to_j2u
- libj2_ju_xor_j2u_to_j2u
- */
#else