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.