xref: /openbsd-src/lib/libm/man/fegetenv.3 (revision 519cd48eb264cb116003e990c67a26e3eee23800)
1*519cd48eSschwarze.\"	$OpenBSD: fegetenv.3,v 1.4 2018/03/16 16:58:26 schwarze Exp $
2939fdbfbSmartynas.\"
3939fdbfbSmartynas.\" Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
4939fdbfbSmartynas.\"
5939fdbfbSmartynas.\" Permission to use, copy, modify, and distribute this software for any
6939fdbfbSmartynas.\" purpose with or without fee is hereby granted, provided that the above
7939fdbfbSmartynas.\" copyright notice and this permission notice appear in all copies.
8939fdbfbSmartynas.\"
9939fdbfbSmartynas.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10939fdbfbSmartynas.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11939fdbfbSmartynas.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12939fdbfbSmartynas.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13939fdbfbSmartynas.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14939fdbfbSmartynas.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15939fdbfbSmartynas.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16939fdbfbSmartynas.\"
17*519cd48eSschwarze.Dd $Mdocdate: March 16 2018 $
18939fdbfbSmartynas.Dt FEGETENV 3
19939fdbfbSmartynas.Os
20939fdbfbSmartynas.Sh NAME
21939fdbfbSmartynas.Nm fegetenv ,
22939fdbfbSmartynas.Nm feholdexcept ,
23939fdbfbSmartynas.Nm fesetenv ,
24939fdbfbSmartynas.Nm feupdateenv
25939fdbfbSmartynas.Nd manage floating-point environment
26939fdbfbSmartynas.Sh SYNOPSIS
2786f9d4cdStedu.In fenv.h
28939fdbfbSmartynas.Ft int
29939fdbfbSmartynas.Fn fegetenv "fenv_t *envp"
30939fdbfbSmartynas.Ft int
31939fdbfbSmartynas.Fn feholdexcept "fenv_t *envp"
32939fdbfbSmartynas.Ft int
33939fdbfbSmartynas.Fn fesetenv "const fenv_t *envp"
34939fdbfbSmartynas.Ft int
35939fdbfbSmartynas.Fn feupdateenv "const fenv_t *envp"
36939fdbfbSmartynas.Sh DESCRIPTION
37*519cd48eSschwarzeThese functions manage the floating-point environment \(em status
38*519cd48eSschwarzeflags, rounding direction modes and exception masks \(em as one entity.
39939fdbfbSmartynasThe
40939fdbfbSmartynas.Fa envp
410fde9a44Sjmcinput argument is an object representing the floating-point environment.
42939fdbfbSmartynasThe macro
43939fdbfbSmartynas.Dv FE_DFL_ENV
44*519cd48eSschwarzerepresents the default floating-point environment \(em the one installed
45939fdbfbSmartynasat program startup.
46939fdbfbSmartynas.Pp
47939fdbfbSmartynasThe
48939fdbfbSmartynas.Fn fegetenv
49939fdbfbSmartynasfunction stores the current floating-point environment in the object
50939fdbfbSmartynaspointed to by
51939fdbfbSmartynas.Pa envp .
52939fdbfbSmartynas.Pp
53939fdbfbSmartynasThe
54939fdbfbSmartynas.Fn feholdexcept
55939fdbfbSmartynasfunction saves the current floating-point environment in the object
56939fdbfbSmartynaspointed to by
57939fdbfbSmartynas.Pa envp ,
58939fdbfbSmartynasclears the floating-point status flags, and then installs a non-stop
59939fdbfbSmartynas(continue on floating-point exceptions) mode for all floating-point
60939fdbfbSmartynasexceptions.
61939fdbfbSmartynas.Pp
62939fdbfbSmartynasThe
63939fdbfbSmartynas.Fn fesetenv
64939fdbfbSmartynasfunction establishes the floating-point environment represented by
65939fdbfbSmartynasthe object pointed to by
66939fdbfbSmartynas.Pa envp .
67939fdbfbSmartynasThe argument
68939fdbfbSmartynas.Pa envp
69939fdbfbSmartynasshall point to an object set by a call to
70939fdbfbSmartynas.Fn fegetenv
71939fdbfbSmartynasor
72939fdbfbSmartynas.Fn feholdexcept ,
73939fdbfbSmartynasor equal the macro
74939fdbfbSmartynas.Dv FE_DFL_ENV .
75939fdbfbSmartynasNote that
76939fdbfbSmartynas.Fn fesetenv
77939fdbfbSmartynasmerely installs the state of the floating-point status flags
78939fdbfbSmartynasrepresented through its argument, and does not raise these
79939fdbfbSmartynasfloating-point exceptions.
80939fdbfbSmartynas.Pp
81939fdbfbSmartynasThe
82939fdbfbSmartynas.Fn feupdateenv
83939fdbfbSmartynasfunction saves the currently raised floating-point exceptions in
84939fdbfbSmartynasits automatic storage, installs the floating-point environment
85939fdbfbSmartynasrepresented by the object pointed to by
86939fdbfbSmartynas.Pa envp ,
87939fdbfbSmartynasand then raises the saved floating-point exceptions.
88939fdbfbSmartynasThe argument
89939fdbfbSmartynas.Pa envp
90939fdbfbSmartynasshall point to an object set by a call to
91939fdbfbSmartynas.Fn feholdexcept
92939fdbfbSmartynasor
93939fdbfbSmartynas.Fn fegetenv ,
94939fdbfbSmartynasor equal the macro
95939fdbfbSmartynas.Dv FE_DFL_ENV .
96939fdbfbSmartynas.Sh RETURN VALUES
97939fdbfbSmartynasThe
98939fdbfbSmartynas.Fn fegetenv ,
99939fdbfbSmartynas.Fn feholdexcept ,
100939fdbfbSmartynas.Fn fesetenv ,
101939fdbfbSmartynasand
102939fdbfbSmartynas.Fn feupdateenv
103939fdbfbSmartynasfunctions return zero on success, and non-zero if an error occurred.
104939fdbfbSmartynas.Sh SEE ALSO
105939fdbfbSmartynas.Xr feclearexcept 3 ,
1060fde9a44Sjmc.Xr feenableexcept 3 ,
1070fde9a44Sjmc.Xr fegetround 3
108939fdbfbSmartynas.Sh STANDARDS
109939fdbfbSmartynasThe
110939fdbfbSmartynas.Fn fegetenv ,
111939fdbfbSmartynas.Fn feholdexcept ,
112939fdbfbSmartynas.Fn fesetenv ,
113939fdbfbSmartynasand
114939fdbfbSmartynas.Fn feupdateenv
115939fdbfbSmartynasfunctions conform to
116939fdbfbSmartynas.St -isoC-99 .
117939fdbfbSmartynas.Pp
118939fdbfbSmartynasThe return types for
119939fdbfbSmartynas.Fn fegetenv ,
120939fdbfbSmartynas.Fn fesetenv ,
121939fdbfbSmartynasand
122939fdbfbSmartynas.Fn feupdateenv
123939fdbfbSmartynasare
124939fdbfbSmartynas.Vt int
125939fdbfbSmartynasfor alignment with
126939fdbfbSmartynas.St -isoC-99
127939fdbfbSmartynasDefect Report #202.
128