rcx

miscellaneous C library
git clone git://git.rr3.xyz/rcx
Log | Files | Refs | README | LICENSE

commit 5a4934636d9eeaada63271c7f58bcdae55ecad60
parent 19f3dade30260560bd1c9846d52e845e6e70c761
Author: Robert Russell <robert@rr3.xyz>
Date:   Sat, 25 Jan 2025 10:28:35 -0800

Remove vestigial duplication in bit zips

Diffstat:
Minc/bits.h | 19+++++++------------
1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/inc/bits.h b/inc/bits.h @@ -35,15 +35,15 @@ static inline u64 r_rotr64(u64 n, uint c) { return (n >> (c&63u)) | (n << (-c&63 /* This is the constant polynomial f0. We use a two's complement trick to * broadcast f0 to an entire u64. */ static inline u64 -r_bz0_(u64 f) { +r_bz0(u64 f) { return !(f & 1u) - 1u; } /* f0 ^ * f1 & u */ static inline u64 -r_bz1_(u64 f, u64 u) { - return r_bz0_(f) ^ (r_bz0_(f >> 1) & u); +r_bz1(u64 f, u64 u) { + return r_bz0(f) ^ (r_bz0(f >> 1) & u); } /* f0 ^ @@ -51,8 +51,8 @@ r_bz1_(u64 f, u64 u) { * f2 & v ^ * f3 & u & v */ static inline u64 -r_bz2_(u64 f, u64 u, u64 v) { - return r_bz1_(f, u) ^ (r_bz1_(f >> 2, u) & v); +r_bz2(u64 f, u64 u, u64 v) { + return r_bz1(f, u) ^ (r_bz1(f >> 2, u) & v); } /* f0 ^ @@ -64,15 +64,10 @@ r_bz2_(u64 f, u64 u, u64 v) { * f6 & v & w ^ * f7 & u & v & w */ static inline u64 -r_bz3_(u64 f, u64 u, u64 v, u64 w) { - return r_bz2_(f, u, v) ^ (r_bz2_(f >> 4, u, v) & w); +r_bz3(u64 f, u64 u, u64 v, u64 w) { + return r_bz2(f, u, v) ^ (r_bz2(f >> 4, u, v) & w); } -static inline u64 r_bz0(u8 f) { return r_bz0_(f); } -static inline u64 r_bz1(u8 f, u64 u) { return r_bz1_(f, u); } -static inline u64 r_bz2(u8 f, u64 u, u64 v) { return r_bz2_(f, u, v); } -static inline u64 r_bz3(u8 f, u64 u, u64 v, u64 w) { return r_bz3_(f, u, v, w); } - /* ----- Population count ----- */