xref: /freebsd/share/man/man3/Q_QADDI.3 (revision fa9896e082a1046ff4fbc75fcba4d18d1f2efc19)
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