Q_IFRAWMASK(3)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

okay bestie, welcome to Q_IFRAWMASK(3) from the Library Functions Manual β€” the fixed-point math page that’s lowkey iconic and highkey here to explain the combined integer/fractional data bits situation. πŸ’…βœ¨

✨ NAME ✨

The whole squad: Q_IFRAWMASK, Q_IFVALIMASK, Q_IFVALFMASK, Q_GIFRAW, Q_GIFABSVAL, Q_GIFVAL, Q_SIFVAL, Q_SIFVALS β€” fixed-point math functions which manipulate the combined integer/fractional data bits. 🫢

πŸ› οΈ SYNOPSIS πŸ› οΈ

#include <sys/qmath.h>

ITYPE
Q_IFRAWMASK(QTYPE q);

ITYPE
Q_IFVALIMASK(QTYPE q);

ITYPE
Q_IFVALFMASK(QTYPE q);

ITYPE
Q_GIFRAW(QTYPE q);

ITYPE
Q_GIFABSVAL(QTYPE q);

ITYPE
Q_GIFVAL(QTYPE q);

QTYPE
Q_SIFVAL(QTYPE q, ITYPE ifv);

QTYPE
Q_SIFVALS(QTYPE q, ITYPE iv, ITYPE fv);

πŸ’– DESCRIPTION πŸ’–

  • Q_IFRAWMASK() β€” returns a q-specific bit mask for q’s combined integer and fractional data bits. πŸŽ€
  • Q_IFVALIMASK() and Q_IFVALFMASK() β€” return q-specific bit masks for the integer and fractional bits of q’s combined integer and fractional data bits value, i.e., are applicable to the values returned by Q_GIFABSVAL() and Q_GIFVAL(). πŸ¦‹
  • Q_GIFRAW() β€” returns q’s raw masked integer/fractional data bits. ✨
  • Q_GIFABSVAL() and Q_GIFVAL() β€” return the absolute and real values of q’s integer/fractional data bits respectively. πŸ’«
  • Q_SIFVAL() β€” sets q’s combined integer/fractional data bits to the value ifv, whereas Q_SIFVALS() independently sets q’s integer and fractional data bits to the separate values iv and fv. πŸ”₯

All of those functions operate on the following data types: s8q_t, u8q_t, s16q_t, u16q_t, s32q_t, u32q_t, s64q_t, and u64q_t, which are referred to generically as QTYPE. The ITYPE refers to the stdint(7) integer types. 🧚

For more details, see qmath(3). πŸ‘‘

🌈 RETURN VALUES 🌈

Okay so the return-value roster is literally Q_IFRAWMASK(), Q_IFVALIMASK(), Q_IFVALFMASK(), Q_GIFABSVAL(), Q_GIFVAL(), Q_GIFRAW(), Q_GIFABSVAL() and Q_GIFVAL() β€” yes, Q_GIFABSVAL() and Q_GIFVAL() are in there twice, and they return their respective values as integers of the same underlying ITYPE as q. πŸ’€ No cap, that’s the list.

Q_SIFVAL() and Q_SIFVALS() return the value of q post change. Slay. πŸ’…

πŸ‘€ SEE ALSO πŸ‘€

🌸 HISTORY 🌸

The qmath(3) functions first appeared in FreeBSD 13.0. ✨

πŸ‘‘ AUTHORS πŸ‘‘

The qmath(3) functions and this manual page were written by Lawrence Stewart <lstewart@FreeBSD.org> and sponsored by Netflix, Inc. 🫢


πŸ’– source/version: Debian β€’ date: July 8, 2018 β€’ manual: Q_IFRAWMASK(3) β€” bye bestie, go make those bits behave! πŸ§šβ€β™€οΈπŸŒˆ

πŸ“¦ where this page comes from