Command Section

Q_SIGNED(3)            FreeBSD Library Functions Manual            Q_SIGNED(3)

NAME
     Q_SIGNED, Q_LTZ, Q_PRECEQ, Q_QLTQ, Q_QLEQ, Q_QGTQ, Q_QGEQ, Q_QEQ, Q_QNEQ,
     Q_OFLOW, Q_RELPREC - fixed-point math comparison and logic functions

SYNOPSIS
     #include <sys/qmath.h>

     bool
     Q_SIGNED(NTYPE n);

     bool
     Q_LTZ(NTYPE n);

     bool
     Q_PRECEQ(QTYPE a, QTYPE b);

     bool
     Q_QLTQ(QTYPE a, QTYPE b);

     bool
     Q_QLEQ(QTYPE a, QTYPE b);

     bool
     Q_QGTQ(QTYPE a, QTYPE b);

     bool
     Q_QGEQ(QTYPE a, QTYPE b);

     bool
     Q_QEQ(QTYPE a, QTYPE b);

     bool
     Q_QNEQ(QTYPE a, QTYPE b);

     bool
     Q_OFLOW(QTYPE q, ITYPE iv);

     int
     Q_RELPREC(QTYPE a, QTYPE b);

DESCRIPTION
     Q_SIGNED() returns true if the numeric data type passed in as n is
     signed, or false otherwise.

     Q_LTZ() returns true if the numeric value passed in as n is negative
     (requires types which use the MSB as the sign bit), or false otherwise.

     Q_PRECEQ() returns true if the number of a and b fractional bits is the
     same, false otherwise.

     The Q_QLTQ(), Q_QLEQ(), Q_QGTQ(), Q_QGEQ(), Q_QEQ() and Q_QNEQ()
     functions compare two Q numbers, returning true if a is less than, less
     than or equal to, greater than, greater than or equal to, equal to, or
     not equal to b respectively, or false otherwise.  The integral and
     fractional values are used to perform the comparison, without explicit
     concern for the underlying number of integer versus fractional bits.

     Q_OFLOW() returns true if integer value iv cannot be stored in q without
     truncation, or false otherwise.

     Q_RELPREC() returns the relative precision of a versus b.  In terms of
     Qm.n notation, this function returns the difference between the n values
     of a and b.  For example, a return value of +4 means that a has an
     additional 4 bits of fractional precision compared to b.

     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.
     NTYPE is used to refer to any numeric type and is therefore a superset of
     QTYPE and ITYPE.

     For more details, see qmath(3).

RETURN VALUES
     The Q_SIGNED(), Q_LTZ(), Q_PRECEQ(), Q_QLTQ(), Q_QLEQ(), Q_QGTQ(),
     Q_QGEQ(), Q_QEQ(), Q_QNEQ() and Q_OFLOW() functions return expressions
     that evaluate to boolean true or false.

     Q_RELPREC() returns the relative precision difference as a signed
     integer.

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 <lstewart@FreeBSD.org> and sponsored by Netflix, Inc.

FreeBSD 13.1-RELEASE-p6          July 8, 2018          FreeBSD 13.1-RELEASE-p6

Command Section

man2web Home...