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
#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);
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).
Q_IFRAWMASK(),
Q_IFVALIMASK(),
Q_IFVALFMASK(),
Q_GIFABSVAL(), Q_GIFVAL(),
Q_GIFRAW(), Q_GIFABSVAL()
and Q_GIFVAL() return their respective values as
integers of the same underlying ITYPE as q.
Q_SIFVAL() and
Q_SIFVALS() return the value of
q post change.
The
qmath(3)
functions first appeared in FreeBSD 13.0.