1*5a38af1fSEdward Tomasz Napierala.\" 2*5a38af1fSEdward Tomasz Napierala.\" Copyright (c) 2018 Netflix, Inc. 3*5a38af1fSEdward Tomasz Napierala.\" All rights reserved. 4*5a38af1fSEdward Tomasz Napierala.\" 5*5a38af1fSEdward Tomasz Napierala.\" Redistribution and use in source and binary forms, with or without 6*5a38af1fSEdward Tomasz Napierala.\" modification, are permitted provided that the following conditions 7*5a38af1fSEdward Tomasz Napierala.\" are met: 8*5a38af1fSEdward Tomasz Napierala.\" 1. Redistributions of source code must retain the above copyright 9*5a38af1fSEdward Tomasz Napierala.\" notice, this list of conditions, and the following disclaimer, 10*5a38af1fSEdward Tomasz Napierala.\" without modification, immediately at the beginning of the file. 11*5a38af1fSEdward Tomasz Napierala.\" 2. The name of the author may not be used to endorse or promote products 12*5a38af1fSEdward Tomasz Napierala.\" derived from this software without specific prior written permission. 13*5a38af1fSEdward Tomasz Napierala.\" 14*5a38af1fSEdward Tomasz Napierala.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15*5a38af1fSEdward Tomasz Napierala.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16*5a38af1fSEdward Tomasz Napierala.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*5a38af1fSEdward Tomasz Napierala.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR 18*5a38af1fSEdward Tomasz Napierala.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*5a38af1fSEdward Tomasz Napierala.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20*5a38af1fSEdward Tomasz Napierala.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21*5a38af1fSEdward Tomasz Napierala.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22*5a38af1fSEdward Tomasz Napierala.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23*5a38af1fSEdward Tomasz Napierala.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24*5a38af1fSEdward Tomasz Napierala.\" SUCH DAMAGE. 25*5a38af1fSEdward Tomasz Napierala.\" 26*5a38af1fSEdward Tomasz Napierala.Dd July 8, 2018 27*5a38af1fSEdward Tomasz Napierala.Dt Q_QADDI 3 28*5a38af1fSEdward Tomasz Napierala.Os 29*5a38af1fSEdward Tomasz Napierala.Sh NAME 30*5a38af1fSEdward Tomasz Napierala.Nm Q_QADDI , 31*5a38af1fSEdward Tomasz Napierala.Nm Q_QDIVI , 32*5a38af1fSEdward Tomasz Napierala.Nm Q_QMULI , 33*5a38af1fSEdward Tomasz Napierala.Nm Q_QSUBI , 34*5a38af1fSEdward Tomasz Napierala.Nm Q_QFRACI , 35*5a38af1fSEdward Tomasz Napierala.Nm Q_QCPYVALI 36*5a38af1fSEdward Tomasz Napierala.Nd fixed-point math functions which apply integers to a Q number 37*5a38af1fSEdward Tomasz Napierala.Sh SYNOPSIS 38*5a38af1fSEdward Tomasz Napierala.In sys/qmath.h 39*5a38af1fSEdward Tomasz Napierala.Ft int 40*5a38af1fSEdward Tomasz Napierala.Fn Q_QADDI "QTYPE *a" "ITYPE b" 41*5a38af1fSEdward Tomasz Napierala.Ft int 42*5a38af1fSEdward Tomasz Napierala.Fn Q_QDIVI "QTYPE *a" "ITYPE b" 43*5a38af1fSEdward Tomasz Napierala.Ft int 44*5a38af1fSEdward Tomasz Napierala.Fn Q_QMULI "QTYPE *a" "ITYPE b" 45*5a38af1fSEdward Tomasz Napierala.Ft int 46*5a38af1fSEdward Tomasz Napierala.Fn Q_QSUBI "QTYPE *a" "ITYPE b" 47*5a38af1fSEdward Tomasz Napierala.Ft int 48*5a38af1fSEdward Tomasz Napierala.Fn Q_QFRACI "QTYPE *q" "ITYPE n" "ITYPE d" 49*5a38af1fSEdward Tomasz Napierala.Ft int 50*5a38af1fSEdward Tomasz Napierala.Fn Q_QCPYVALI "QTYPE *q" "ITYPE i" 51*5a38af1fSEdward Tomasz Napierala.Sh DESCRIPTION 52*5a38af1fSEdward Tomasz NapieralaThe 53*5a38af1fSEdward Tomasz Napierala.Fn Q_QADDI , 54*5a38af1fSEdward Tomasz Napierala.Fn Q_QDIVI , 55*5a38af1fSEdward Tomasz Napierala.Fn Q_QMULI 56*5a38af1fSEdward Tomasz Napieralaand 57*5a38af1fSEdward Tomasz Napierala.Fn Q_QSUBI 58*5a38af1fSEdward Tomasz Napieralafunctions add, divide, multiply or subtract 59*5a38af1fSEdward Tomasz Napierala.Fa b 60*5a38af1fSEdward Tomasz Napieralato/by/from 61*5a38af1fSEdward Tomasz Napierala.Fa a 62*5a38af1fSEdward Tomasz Napieralarespectively, storing the result in 63*5a38af1fSEdward Tomasz Napierala.Fa a . 64*5a38af1fSEdward Tomasz Napierala.Pp 65*5a38af1fSEdward Tomasz NapieralaThe 66*5a38af1fSEdward Tomasz Napierala.Fn Q_QFRACI 67*5a38af1fSEdward Tomasz Napieralafunction computes the fraction 68*5a38af1fSEdward Tomasz Napierala.Fa n 69*5a38af1fSEdward Tomasz Napieraladivided by 70*5a38af1fSEdward Tomasz Napierala.Fa d 71*5a38af1fSEdward Tomasz Napieralaand stores the fixed-point result in 72*5a38af1fSEdward Tomasz Napierala.Fa q . 73*5a38af1fSEdward Tomasz Napierala.Pp 74*5a38af1fSEdward Tomasz NapieralaThe 75*5a38af1fSEdward Tomasz Napierala.Fn Q_QCPYVALI 76*5a38af1fSEdward Tomasz Napieralafunction overwrites 77*5a38af1fSEdward Tomasz Napierala.Fa q Ap s 78*5a38af1fSEdward Tomasz Napieralainteger and fractional bits with the Q representation of integer value 79*5a38af1fSEdward Tomasz Napierala.Fa i . 80*5a38af1fSEdward Tomasz Napierala.Pp 81*5a38af1fSEdward Tomasz NapieralaAll of those functions operate on 82*5a38af1fSEdward Tomasz Napieralathe following data types: 83*5a38af1fSEdward Tomasz Napierala.Vt s8q_t , 84*5a38af1fSEdward Tomasz Napierala.Vt u8q_t , 85*5a38af1fSEdward Tomasz Napierala.Vt s16q_t , 86*5a38af1fSEdward Tomasz Napierala.Vt u16q_t , 87*5a38af1fSEdward Tomasz Napierala.Vt s32q_t , 88*5a38af1fSEdward Tomasz Napierala.Vt u32q_t , 89*5a38af1fSEdward Tomasz Napierala.Vt s64q_t , 90*5a38af1fSEdward Tomasz Napieralaand 91*5a38af1fSEdward Tomasz Napierala.Vt u64q_t , 92*5a38af1fSEdward Tomasz Napieralawhich are referred to generically as 93*5a38af1fSEdward Tomasz Napierala.Fa QTYPE . 94*5a38af1fSEdward Tomasz NapieralaThe 95*5a38af1fSEdward Tomasz Napierala.Fa ITYPE 96*5a38af1fSEdward Tomasz Napieralarefers to the 97*5a38af1fSEdward Tomasz Napierala.Xr stdint 7 98*5a38af1fSEdward Tomasz Napieralainteger types. 99*5a38af1fSEdward Tomasz Napierala.Pp 100*5a38af1fSEdward Tomasz NapieralaFor more details, see 101*5a38af1fSEdward Tomasz Napierala.Xr qmath 3 . 102*5a38af1fSEdward Tomasz Napierala.Sh RETURN VALUES 103*5a38af1fSEdward Tomasz Napierala.Fn Q_QADDI , 104*5a38af1fSEdward Tomasz Napierala.Fn Q_QDIVI , 105*5a38af1fSEdward Tomasz Napierala.Fn Q_QMULI , 106*5a38af1fSEdward Tomasz Napierala.Fn Q_QSUBI , 107*5a38af1fSEdward Tomasz Napierala.Fn Q_QFRACI 108*5a38af1fSEdward Tomasz Napieralaand 109*5a38af1fSEdward Tomasz Napierala.Fn Q_QCPYVALI 110*5a38af1fSEdward Tomasz Napieralafunctions return 0 on success, or an errno on failure. 111*5a38af1fSEdward Tomasz Napierala.Er EINVAL 112*5a38af1fSEdward Tomasz Napieralais returned for divide-by-zero. 113*5a38af1fSEdward Tomasz Napierala.Er EOVERFLOW 114*5a38af1fSEdward Tomasz Napieralaand 115*5a38af1fSEdward Tomasz Napierala.Er ERANGE 116*5a38af1fSEdward Tomasz Napieralaare returned for overflow and underflow respectively. 117*5a38af1fSEdward Tomasz Napierala.Sh SEE ALSO 118*5a38af1fSEdward Tomasz Napierala.Xr errno 2 , 119*5a38af1fSEdward Tomasz Napierala.Xr qmath 3 , 120*5a38af1fSEdward Tomasz Napierala.Xr stdint 7 121*5a38af1fSEdward Tomasz Napierala.Sh HISTORY 122*5a38af1fSEdward Tomasz NapieralaThe 123*5a38af1fSEdward Tomasz Napierala.Xr qmath 3 124*5a38af1fSEdward Tomasz Napieralafunctions first appeared in 125*5a38af1fSEdward Tomasz Napierala.Fx 13.0 . 126*5a38af1fSEdward Tomasz Napierala.Sh AUTHORS 127*5a38af1fSEdward Tomasz Napierala.An -nosplit 128*5a38af1fSEdward Tomasz NapieralaThe 129*5a38af1fSEdward Tomasz Napierala.Xr qmath 3 130*5a38af1fSEdward Tomasz Napieralafunctions and this manual page were written by 131*5a38af1fSEdward Tomasz Napierala.An Lawrence Stewart Aq Mt lstewart@FreeBSD.org 132*5a38af1fSEdward Tomasz Napieralaand sponsored by Netflix, Inc. 133