Reference

Q_QADDI(3)

fixed-point math functions which apply integers to a Q number

NAME

Q_QADDI, Q_QDIVI, Q_QMULI, Q_QSUBI, Q_QFRACI, Q_QCPYVALI – fixed-point math functions which apply integers to a Q number

SYNOPSIS

#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);

DESCRIPTION

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.

SEE ALSO

errno(2), qmath(3), stdint(7)

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 ⟨[email protected]⟩ and sponsored by Netflix, Inc.

History