Q_QADDI3
Fixed-point math functions which apply integers to a q number
Usage
#include <sys/qmath.h>
int
Q_QADDI(QTYPE *a, ITYPE b);
int
Q_QDIVI(QTYPE *a, ITYPE b);
int
Q_QMULI(QTYPE *a, ITYPE b);
int
Q_QSUBI(QTYPE *a, ITYPE b);
int
Q_QFRACI(QTYPE *q, ITYPE n, ITYPE d);
int
Q_QCPYVALI(QTYPE *q, ITYPE i);
Overview
The Q_QADDI(), Q_QDIVI(), Q_QMULI() and Q_QSUBI() functions add, divide, multiply or subtract b to/by/from a respectively, storing the result in a.
The Q_QFRACI() function computes the fraction n divided by d and stores the fixed-point result in q.
The Q_QCPYVALI() function overwrites q's integer and fractional bits with the Q representation of integer value i.
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
Q_QADDI(), Q_QDIVI(), Q_QMULI(), Q_QSUBI(), Q_QFRACI() and Q_QCPYVALI() functions return 0 on success, or an errno on failure. EINVAL is returned for divide-by-zero. EOVERFLOW and ERANGE are returned for overflow and underflow respectively.
Releases
15 releases since FreeBSD 13.0-RELEASE; the text changed 1 time.