xref: /freebsd/lib/msun/man/fegetmode.3 (revision d8b6461f8c56237a00ddc32678b3928bf76f5440)
1*d8b6461fSFaraz Vahedi.\"
2*d8b6461fSFaraz Vahedi.\" Copyright (c) 2026 Faraz Vahedi <kfv@FreeBSD.org>
3*d8b6461fSFaraz Vahedi.\"
4*d8b6461fSFaraz Vahedi.\" SPDX-License-Identifier: BSD-2-Clause
5*d8b6461fSFaraz Vahedi.\"
6*d8b6461fSFaraz Vahedi.Dd August 31, 2026
7*d8b6461fSFaraz Vahedi.Dt FEGETMODE 3
8*d8b6461fSFaraz Vahedi.Os
9*d8b6461fSFaraz Vahedi.Sh NAME
10*d8b6461fSFaraz Vahedi.Nm fegetmode ,
11*d8b6461fSFaraz Vahedi.Nm fesetmode
12*d8b6461fSFaraz Vahedi.Nd save and restore floating-point control modes
13*d8b6461fSFaraz Vahedi.Sh LIBRARY
14*d8b6461fSFaraz Vahedi.Lb libm
15*d8b6461fSFaraz Vahedi.Sh SYNOPSIS
16*d8b6461fSFaraz Vahedi.In fenv.h
17*d8b6461fSFaraz Vahedi.Fd "#pragma STDC FENV_ACCESS ON"
18*d8b6461fSFaraz Vahedi.Ft int
19*d8b6461fSFaraz Vahedi.Fn fegetmode "femode_t *modep"
20*d8b6461fSFaraz Vahedi.Ft int
21*d8b6461fSFaraz Vahedi.Fn fesetmode "const femode_t *modep"
22*d8b6461fSFaraz Vahedi.Sh DESCRIPTION
23*d8b6461fSFaraz VahediThe
24*d8b6461fSFaraz Vahedi.Vt femode_t
25*d8b6461fSFaraz Vaheditype represents the dynamic floating-point control modes,
26*d8b6461fSFaraz Vahediincluding the rounding direction and, where supported, exception
27*d8b6461fSFaraz Vahedimasks and other implementation-defined modes.
28*d8b6461fSFaraz Vahedi.Pp
29*d8b6461fSFaraz VahediThe
30*d8b6461fSFaraz Vahedi.Fn fegetmode
31*d8b6461fSFaraz Vahedifunction stores the current control modes in the object
32*d8b6461fSFaraz Vahedipointed to by
33*d8b6461fSFaraz Vahedi.Fa modep .
34*d8b6461fSFaraz Vahedi.Pp
35*d8b6461fSFaraz VahediThe
36*d8b6461fSFaraz Vahedi.Fn fesetmode
37*d8b6461fSFaraz Vahedifunction establishes the control modes represented by
38*d8b6461fSFaraz Vahedi.Fa modep .
39*d8b6461fSFaraz VahediThe argument
40*d8b6461fSFaraz Vahedi.Fa modep
41*d8b6461fSFaraz Vahedimust point to an object set by a prior call to
42*d8b6461fSFaraz Vahedi.Fn fegetmode ,
43*d8b6461fSFaraz Vahedior equal
44*d8b6461fSFaraz Vahedi.Dv FE_DFL_MODE .
45*d8b6461fSFaraz Vahedi.Dv FE_DFL_MODE
46*d8b6461fSFaraz Vahediexpands to a pointer to the default control modes
47*d8b6461fSFaraz Vahedi.Po
48*d8b6461fSFaraz Vahediinstalled at program startup
49*d8b6461fSFaraz Vahedi.Pc .
50*d8b6461fSFaraz Vahedi.Sh RETURN VALUES
51*d8b6461fSFaraz VahediThe
52*d8b6461fSFaraz Vahedi.Fn fegetmode
53*d8b6461fSFaraz Vahediand
54*d8b6461fSFaraz Vahedi.Fn fesetmode
55*d8b6461fSFaraz Vahedifunctions return 0 if they succeed, and non-zero otherwise;
56*d8b6461fSFaraz Vahedihowever, the present implementation always succeeds.
57*d8b6461fSFaraz Vahedi.Sh SEE ALSO
58*d8b6461fSFaraz Vahedi.Xr fenv 3 ,
59*d8b6461fSFaraz Vahedi.Xr fegetround 3 ,
60*d8b6461fSFaraz Vahedi.Xr fesetround 3
61*d8b6461fSFaraz Vahedi.Sh STANDARDS
62*d8b6461fSFaraz VahediThe
63*d8b6461fSFaraz Vahedi.Fn fegetmode
64*d8b6461fSFaraz Vahediand
65*d8b6461fSFaraz Vahedi.Fn fesetmode
66*d8b6461fSFaraz Vahedifunctions conform to
67*d8b6461fSFaraz Vahedi.St -isoC-2023 .
68*d8b6461fSFaraz Vahedi.Sh HISTORY
69*d8b6461fSFaraz VahediThese routines first appeared in
70*d8b6461fSFaraz Vahedi.Fx 16.0 .
71