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