coverity appeasement
[minix.git] / lib / libc / gen / fpgetmask.3
blob04b27ff1f13d7a66fe1003b185feba8032ba22b3
1 .\"     $NetBSD: fpgetmask.3,v 1.10 2008/04/30 13:10:50 martin Exp $
2 .\"
3 .\" Copyright (c) 1999 The NetBSD Foundation, Inc.
4 .\" All rights reserved.
5 .\"
6 .\" This code is derived from software contributed to The NetBSD Foundation
7 .\" by Ross Harvey.
8 .\"
9 .\" Redistribution and use in source and binary forms, with or without
10 .\" modification, are permitted provided that the following conditions
11 .\" are met:
12 .\" 1. Redistributions of source code must retain the above copyright
13 .\"    notice, this list of conditions and the following disclaimer.
14 .\" 2. Redistributions in binary form must reproduce the above copyright
15 .\"    notice, this list of conditions and the following disclaimer in the
16 .\"    documentation and/or other materials provided with the distribution.
17 .\"
18 .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19 .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20 .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21 .\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22 .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 .\" POSSIBILITY OF SUCH DAMAGE.
29 .\"
30 .Dd April 4, 2004
31 .Dt FPGETMASK 3
32 .Os
33 .Sh NAME
34 .Nm fpgetmask ,
35 .Nm fpgetround ,
36 .Nm fpgetsticky ,
37 .Nm fpsetmask ,
38 .Nm fpsetround ,
39 .Nm fpsetsticky
40 .Nd IEEE FP mode control
41 .Sh LIBRARY
42 .Lb libc
43 .Sh SYNOPSIS
44 .In ieeefp.h
45 .Ft fp_except
46 .Fn fpgetmask void
47 .Ft fp_rnd
48 .Fn fpgetround void
49 .Ft fp_except
50 .Fn fpgetsticky void
51 .Ft fp_except
52 .Fn fpsetmask fp_except\ mask
53 .Ft fp_rnd
54 .Fn fpsetround fp_rnd\ rnd_dir
55 .Ft fp_except
56 .Fn fpsetsticky fp_except\ sticky
57 .Sh DESCRIPTION
58 A rounding mode is one of
59 .Dv FP_RZ , FP_RM , FP_RN ,
61 .Dv FP_RP ,
62 for rounding towards zero, rounding
63 .Pq Em Minus infinity
64 down, rounding to
65 .Em nearest ,
66 and rounding
67 .Pq Em Plus infinity
68 up.
69 The default mode is
70 .Dv FP_RN .
71 .Pp
73 .Ft fp_except
74 value is a bitmask specifying an exception type and containing any of
75 the values listed below.
76 .Bl -column -offset indent FP_X_UFLxx
77 .It Dv FP_X_INV Ta Invalid\ Operation
78 .It Dv FP_X_DZ Ta Division\ by\ zero
79 .It Dv FP_X_OFL Ta Overflow
80 .It Dv FP_X_UFL Ta Underflow
81 .It Dv FP_X_IMP Ta Imprecision (inexact)
82 .It Dv FP_X_IOV Ta Integer\ Overflow
83 .El
84 .Pp
85 The
86 .Fn fpsetmask
87 function will set the current exception mask, i.e., it will cause
88 future operations with the specified result status to raise the
89 .Dv SIGFPE
90 exception.
91 The
92 .Fn fpgetmask
93 function will return the current exception mask.
94 .Pp
95 The
96 .Fn fpsetround
97 function will cause future operations to use the specified dynamic
98 rounding mode.
99 The
100 .Fn fpgetround
101 function will return the current rounding mode.
102 .Bl -tag -width Note:x
103 .It Em Note :
104 On some architectures, instructions can optionally specify static
105 rounding modes and exception enables that will supersede the specified
106 dynamic mode.
107 On other architectures, these features may not be fully supported.
111 .Dq sticky
112 status word may be maintained in which a bit is set every time an
113 exceptional floating point condition is encountered, whether or not a
114 .Dv SIGFPE
115 is generated.
117 .Fn fpsetsticky
118 function will set or clear the specified exception history bits.
120 .Fn fpgetsticky
121 function will return the exception history bits.
122 .Sh RETURN VALUES
124 .Fn fpgetround
126 .Fn fpsetround
127 functions return the
128 .Pq previous
129 rounding mode.
131 .Fn fpgetmask ,
132 .Fn fpsetmask ,
133 .Fn fpgetsticky ,
135 .Fn fpsetsticky
136 functions return the
137 .Pq previous
138 exception mask and exception history bits.
139 .Sh SEE ALSO
140 .Xr sigaction 2