aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <m@maandree.se>2026-01-20 22:40:07 +0100
committerMattias Andrée <m@maandree.se>2026-01-20 22:40:07 +0100
commita793e017e5d14abd28da89dbb8eb7c1919c4f997 (patch)
tree529ec3305f2ab926f9ee30aa53506ab2155b00d4
parentAdd some man pages (diff)
downloadlibj2-a793e017e5d14abd28da89dbb8eb7c1919c4f997.tar.gz
libj2-a793e017e5d14abd28da89dbb8eb7c1919c4f997.tar.bz2
libj2-a793e017e5d14abd28da89dbb8eb7c1919c4f997.tar.xz
Add libj2_not_j2u.3 and libj2_j2i_xor_sign.3
Signed-off-by: Mattias Andrée <m@maandree.se>
-rw-r--r--libj2_j2i_xor_sign.355
-rw-r--r--libj2_j2i_xor_sign.c5
-rw-r--r--libj2_not_j2u.369
-rw-r--r--libj2_not_j2u.c5
4 files changed, 124 insertions, 10 deletions
diff --git a/libj2_j2i_xor_sign.3 b/libj2_j2i_xor_sign.3
new file mode 100644
index 0000000..0290d87
--- /dev/null
+++ b/libj2_j2i_xor_sign.3
@@ -0,0 +1,55 @@
+.TH LIBJ2_J2I_XOR_SIGN 3 LIBJ2
+.SH NAME
+libj2_j2i_xor_sign \- Calculate bitwise NOT iff sign-bit is set
+
+.SH SYNOPSIS
+.nf
+#include <libj2.h>
+
+void \fBlibj2_j2i_xor_sign\fP(struct libj2_j2i *\fIa\fP);
+void \fBlibj2_j2i_xor_sign_to_j2i\fP(const struct libj2_j2i *\fIa\fP, struct libj2_j2i *\fIr\fP);
+void \fBlibj2_j2i_xor_sign_to_j2u\fP(const struct libj2_j2i *\fIa\fP, struct libj2_j2u *\fIr\fP);
+.fi
+.PP
+Link with
+.IR -lj2 .
+
+.SH DESCRIPTION
+The above listed functions calculate
+the bitwise inverse (NOT) of
+.I a
+if the sign-bit is set in
+.IR a ,
+that is, if and only if
+.I a
+is negative: for each bit, the XOR with
+the sign-bit is calculated. The result,
+which is always non-negative, is stored in
+.IR r ,
+except in the case of the
+.BR libj2_j2i_xor_sign ()
+function, where the result is stored in
+.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_j2i_xor_sign (),
+.BR libj2_j2i_xor_sign_to_j2i (),
+and
+.BR libj2_j2i_xor_sign_to_j2u ()
+functions were added in version 1.1 of
+.BR libj2 .
+
+.SH SEE ALSO
+.BR libj2 (7),
+.BR libj2_j2u_not (3),
+.BR libj2_j2i_is_negative (3)
diff --git a/libj2_j2i_xor_sign.c b/libj2_j2i_xor_sign.c
index 171c2ef..6826f02 100644
--- a/libj2_j2i_xor_sign.c
+++ b/libj2_j2i_xor_sign.c
@@ -3,11 +3,6 @@
#ifndef TEST
extern inline void libj2_j2i_xor_sign(struct libj2_j2i *a);
-/* TODO Add man pages
- libj2_j2i_xor_sign
- libj2_j2i_xor_sign_to_j2i
- libj2_j2i_xor_sign_to_j2u
- */
#else
diff --git a/libj2_not_j2u.3 b/libj2_not_j2u.3
new file mode 100644
index 0000000..5d51d8a
--- /dev/null
+++ b/libj2_not_j2u.3
@@ -0,0 +1,69 @@
+.TH LIBJ2_NOT_J2U 3 LIBJ2
+.SH NAME
+libj2_not_j2u \- Calculate bitwise NOT
+
+.SH SYNOPSIS
+.nf
+#include <libj2.h>
+
+void \fBlibj2_not_j2u\fP(struct libj2_j2u *\fIa\fP);
+void \fBlibj2_not_j2u_to_j2u\fP(const struct libj2_j2u *\fIa\fP, struct libj2_j2u *\fIr\fP);
+void \fBlibj2_not_ju_to_j2u\fP(uintmax_t \fIa\fP, struct libj2_j2u *\fIr\fP);
+.fi
+.PP
+Link with
+.IR -lj2 .
+
+.SH DESCRIPTION
+The above listed functions calculate
+the bitwise inverse (NOT) of
+.IR a .
+For the
+.BR libj2_not_j2u ()
+function, the result is stored in
+.IR a.
+For the
+.BR libj2_not_j2u_to_j2u ()
+and
+.BR libj2_not_ju_to_j2u ()
+functions, the result is stored in
+.IR r.
+Additionally, for the
+.BR libj2_not_ju_to_j2u ()
+.I a
+is virtually extended to double-max precision,
+so all bits in the most significant half of
+.I r
+will always be set.
+.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_not_j2u (),
+.BR libj2_not_j2u_to_j2u (),
+and
+.BR libj2_not_ju_to_j2u ()
+functions were added in version 1.0 of
+.BR libj2 .
+
+.SH SEE ALSO
+.BR libj2 (7),
+.BR libj2_j2i_xor_sign (3),
+.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_j2u_nimply_j2u (3)
diff --git a/libj2_not_j2u.c b/libj2_not_j2u.c
index 5a0ebdc..6880fb2 100644
--- a/libj2_not_j2u.c
+++ b/libj2_not_j2u.c
@@ -3,11 +3,6 @@
#ifndef TEST
extern inline void libj2_not_j2u(struct libj2_j2u *a);
-/* TODO Add man pages
- libj2_not_j2u
- libj2_not_j2u_to_j2u
- libj2_not_ju_to_j2u
- */
#else