Header File
float.h
Category
Math Routines
Prototype
unsigned int _control87(unsigned int newcw, unsigned int mask);
unsigned int _controlfp(unsigned int newcw, unsigned int mask);
Description
Manipulates the floating-point control word.
_control87 retrieves or changes the floating-point control word.
The floating-point control word is an unsigned int that, bit by bit, specifies certain modes in the floating-point package; namely, the precision, infinity, and rounding modes. Changing these modes lets you mask or unmask floating-point exceptions.
_control87 matches the bits in mask to the bits in newcw. If a mask bit equals 1, the corresponding bit in newcw contains the new value for the same bit in the floating-point control word, and _control87 sets that bit in the control word to the new value.
Here is a simple illustration:
Original control word: |
0100 |
0011 |
0110 |
0011 |
|
mask: |
|
1000 |
0001 |
0100 |
1111 |
newcw: |
|
1110 |
1001 |
0000 |
0101 |
Changing bits: |
|
1xxx |
xxx1 |
x0xx |
0101 |
If mask equals 0, _control87 returns the floating-point control word without altering it.
_controlfp is for Microsoft compatibility. _controlfp is identical to _control87 except that it always removes (turns off) the EM_DEMORMAL bit from the mask parameter.
Return Value
The bits in the value returned reflect the new floating-point control word. For a complete definition of the bits returned by _control87, see the header file float.h.
Portability
|
POSIX |
Win32 |
ANSI C |
ANSI C++ |
_control87 |
|
+ |
|
|
_controlfp |
|
+ |
|
|
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|