Non-Computational Operations Functions
Many routines in the
libbfp754
Library are more optimized for Intel® microprocessors than for non-Intel microprocessors.
The Intel® IEEE 754-2008 Binary Conformance Library supports the following functions for non-computational operations:
is754version1985
Description:
The function returns
1
, if and only if this programming environment conforms to IEEE Std. 754-1985, otherwise returns
0
.
Calling interface:
int __binary_is754version1985(void);
This function in this library always returns
0
.
is754version2008
Description:
The function returns
1
, if and only if this programming environment conforms to IEEE Std. 754-2008, otherwise returns
0
.
Calling interface:
int __binary_is754version2008(void);
This function in this library always returns
1
.
class
Description:
The function returns which class of the ten classes (signalingNaN, quietNaN
,
negativeInfinity
,
negativeNormal
,
negativeSubnormal
,
negativeZero
,
positiveZero
,
positiveSubnormal
,
positiveNormal
,
positiveInfinity
) the input floating-point number
x
belongs.
Return value
| Class
|
---|---|
0
| signalingNaN |
1
| quietNaN |
2
| negativeInfinity |
3
| negativeNormal |
4
| negativeSubnormal |
5
| negativeZero |
6
| positiveZero |
7
| positiveSubnormal |
8
| positiveNormal |
9
| positiveInfinity |
Calling interface:
int __binary32_class(float x);
int __binary64_class(double x);
isSignMinus
Description:
The function returns
1
, if and only if its argument has negative sign.
Calling interface:
int __binary32_isSignMinus(float x);
int __binary64_isSignMinus(double x);
isNormal
Description:
The function returns
1
, if and only if its argument is normal (not zero
,
subnormal
,
infinite
, or
NaN
).
Calling interface:
int __binary32_isNormal(float x);
int __binary64_isNormal(double x);
isFinite
Description:
The function returns
1
, if and only if its argument is
finite
(not
infinite
or
NaN
).
Calling interface:
isZero
Description:
The function returns
1
, if and only if its argument is ±0.
Calling interface:
int __binary32_isZero(float x);
int __binary64_isZero(double x);
isSubnormal
Description:
The function returns
1
, if and only if its argument is
subnormal.
Calling interface:
int __binary32_isSubnormal(float x);
int __binary64_isSubnormal(double x);
isInfinite
Description:
The function returns
1
, if and only if its argument is
infinite
Calling interface:
int __binary32_isInfinite(float x);
int __binary64_isInfinite(double x);
isNaN
Description:
The function returns
1
, if and only if its argument is a
NaN.
Calling interface:
int __binary32_isNaN(float x);
int __binary64_isNaN(double x);
isSignaling
Description:
The function returns
1
, if and only if its argument is a signaling
NaN
.
Calling interface:
int __binary32_isSignaling(float x);
int __binary64_isSignaling(double x);
isCanonical
Description:
The function returns
1
, if and only if its argument is a finite number,
infinity
, or
NaN
that is canonical.
Calling interface:
int __binary32_isCanonical(float x);
int __binary64_isCanonical(double x);
This function in this library always returns
1
, as only canonical floating-point numbers are expected.
radix
Description:
The function returns the radix of the format of the input floating-point number.
Calling interface:
int __binary32_radix(float x);
int __binary64_radix(double x);
This function in this library always returns
2
, as the library is intended for binary floating-point numbers.
totalOrder
Description:
The function returns
1
if and only if two floating-point inputs
x
and
y
is total ordered and
0
otherwise.
Calling interface:
int _binary32_totalOrder(float x, float y);
int _binary64_totalOrder(double x, double y);
totalOrderMag
Description:
totalOrderMag(x, y)
is the same as
totalOrder(abs(x), abs(y))
.
Calling interface:
int _binary32_totalOrderMag(float x, float y);
int _binary64_totalOrderMag(double x, double y);
lowerFlags
Description:
The function lowers the flags of the exception group specified by the input.
Value | Exception name |
---|---|
1 | __BFP754_INVALID |
2 | __BFP754_DIVBYZERO |
4 | __BFP754_OVERFLOW |
8 | __BFP754_UNDERFLOW |
16 | __BFP754_INEXACT |
Calling interface:
void __binary_lowerFlags(int x);
raiseFlags
Description:
The function raises the flags of the exception group specified by the input.
Calling interface:
void __binary_raiseFlags(int x);
testFlags
Description:
The function returns
1
, if and only if any flag of the exception group specified by the input is raised, and
0
otherwise.
Calling interface:
int __binary_testFlags(int x);
testSavedFlags
Description:
The function returns
1
, if and only if any flag of the exception group specified by the input
y
is raised in
x
, and
0
otherwise.
Calling interface:
int __binary_testSavedFlags(int x, int y);
restoreFlags
Description:
The function restores the flags to their states represented in
x
.
Calling interface:
void __binary_restoreFlags(int x);
saveFlags
Description:
The function returns a representation of the state of all status flags.
Calling interface:
int __binary_saveFlags(void);
getBinaryRoundingDirection
Description:
The function returns an integer representing the rounding direction in use.
Value
| Exception name
|
---|---|
0 | __BFP754_ROUND_TO_NEAREST_EVEN |
1
| __BFP754_ROUND_TOWARD_POSITIVE |
2
| __BFP754_ROUND_TOWARD_NEGATIVE |
3 | __BFP754_ROUND_TOWARD_ZERO
|
Calling interface:
int __binary_getBinaryRoundingDirection(void);
setBinaryRoundingDirection
Description:
The function sets the rounding direction based on input integer.
Calling interface:
void __binary_setBinaryRoundingDirection(int x);
saveModes
Description:
The function saves the values of all dynamic-specifiable modes.
Calling interface:
int __binary_saveModes(void);
saveModes
behaves in the same way as
getBinaryRoundingDirection
does, as the rounding mode is the only dynamic-specifiable mode supported.
restoreModes
Description:
The function restores the values of all dynamic-specifiable modes to the input.
Calling interface:
int __binary_restoreModes(void);
restoreModes
behaves in the same way as
setBinaryRoundingDirection
does, as the rounding mode is the only dynamic-specifiable mode supported.
defaultMode
Description:
The function sets the values of all dynamic-specifiable modes to default.
Calling interface:
void __binary_defaultMode(void);
defaultMode
sets the rounding-direction attribute to
roundTiesToEven
, as the rounding mode is the only dynamic-specifiable mode supported.