| java.lang.Object | |
| ↳ | sun.misc.FpUtils |
The class FpUtils contains static utility methods for
manipulating and inspecting float and
double floating-point numbers. These methods include
functionality recommended or required by the IEEE 754
floating-point standard.
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Returns the first floating-point argument with the sign of the
second floating-point argument.
| |||||||||||
Returns the first floating-point argument with the sign of the
second floating-point argument.
| |||||||||||
Returns unbiased exponent of a
float. | |||||||||||
Returns unbiased exponent of a
double. | |||||||||||
Returns unbiased exponent of a
float; for
subnormal values, the number is treated as if it were
normalized. | |||||||||||
Returns unbiased exponent of a
double; for
subnormal values, the number is treated as if it were
normalized. | |||||||||||
Returns
true if the argument is a finite
floating-point value; returns false otherwise (for
NaN and infinity arguments). | |||||||||||
Returns
true if the argument is a finite
floating-point value; returns false otherwise (for
NaN and infinity arguments). | |||||||||||
Returns
true if the specified number is infinitely
large in magnitude, false otherwise. | |||||||||||
Returns
true if the specified number is infinitely
large in magnitude, false otherwise. | |||||||||||
Returns
true if the specified number is a
Not-a-Number (NaN) value, false otherwise. | |||||||||||
Returns
true if the specified number is a
Not-a-Number (NaN) value, false otherwise. | |||||||||||
Returns
true if the unordered relation holds
between the two arguments. | |||||||||||
Returns
true if the unordered relation holds
between the two arguments. | |||||||||||
Returns the floating-point number adjacent to the first
argument in the direction of the second argument.
| |||||||||||
Returns the floating-point number adjacent to the first
argument in the direction of the second argument.
| |||||||||||
Returns the floating-point value adjacent to
d in
the direction of negative infinity. | |||||||||||
Returns the floating-point value adjacent to
f in
the direction of negative infinity. | |||||||||||
Returns the floating-point value adjacent to
f in
the direction of positive infinity. | |||||||||||
Returns the floating-point value adjacent to
d in
the direction of positive infinity. | |||||||||||
Returns the first floating-point argument with the sign of the
second floating-point argument.
| |||||||||||
Returns the first floating-point argument with the sign of the
second floating-point argument.
| |||||||||||
Return
d ×
2scale_factor rounded as if performed
by a single correctly rounded floating-point multiply to a
member of the double value set. | |||||||||||
Return
f ×
2scale_factor rounded as if performed
by a single correctly rounded floating-point multiply to a
member of the float value set. | |||||||||||
Returns the signum function of the argument; zero if the argument
is zero, 1.0 if the argument is greater than zero, -1.0 if the
argument is less than zero.
| |||||||||||
Returns the signum function of the argument; zero if the argument
is zero, 1.0f if the argument is greater than zero, -1.0f if the
argument is less than zero.
| |||||||||||
Returns the size of an ulp of the argument.
| |||||||||||
Returns the size of an ulp of the argument.
| |||||||||||
|
[Expand]
Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
| |||||||||||
Returns the first floating-point argument with the sign of the
second floating-point argument. For this method, a NaN
sign argument is always treated as if it were
positive.
| magnitude | the parameter providing the magnitude of the result |
|---|---|
| sign | the parameter providing the sign of the result |
magnitude
and the sign of sign.Returns the first floating-point argument with the sign of the
second floating-point argument. For this method, a NaN
sign argument is always treated as if it were
positive.
| magnitude | the parameter providing the magnitude of the result |
|---|---|
| sign | the parameter providing the sign of the result |
magnitude
and the sign of sign.Returns unbiased exponent of a float.
Returns unbiased exponent of a double.
Returns unbiased exponent of a float; for
subnormal values, the number is treated as if it were
normalized. That is for all finite, non-zero, positive numbers
x, scalb(x, -ilogb(x)) is
always in the range [1, 2).
Special cases:
| f | floating-point number whose exponent is to be extracted |
|---|
Returns unbiased exponent of a double; for
subnormal values, the number is treated as if it were
normalized. That is for all finite, non-zero, positive numbers
x, scalb(x, -ilogb(x)) is
always in the range [1, 2).
Special cases:
| d | floating-point number whose exponent is to be extracted |
|---|
Returns true if the argument is a finite
floating-point value; returns false otherwise (for
NaN and infinity arguments).
| f | the float value to be tested |
|---|
true if the argument is a finite
floating-point value, false otherwise.
Returns true if the argument is a finite
floating-point value; returns false otherwise (for
NaN and infinity arguments).
| d | the double value to be tested |
|---|
true if the argument is a finite
floating-point value, false otherwise.
Returns true if the specified number is infinitely
large in magnitude, false otherwise.
Note that this method is equivalent to the Float.isInfinite method; the
functionality is included in this class for convenience.
| f | the value to be tested. |
|---|
true if the argument is positive infinity or
negative infinity; false otherwise.
Returns true if the specified number is infinitely
large in magnitude, false otherwise.
Note that this method is equivalent to the Double.isInfinite method; the
functionality is included in this class for convenience.
| d | the value to be tested. |
|---|
true if the value of the argument is positive
infinity or negative infinity; false otherwise.
Returns true if the specified number is a
Not-a-Number (NaN) value, false otherwise.
Note that this method is equivalent to the Double.isNaN method; the functionality is
included in this class for convenience.
| d | the value to be tested. |
|---|
true if the value of the argument is NaN;
false otherwise.
Returns true if the specified number is a
Not-a-Number (NaN) value, false otherwise.
Note that this method is equivalent to the Float.isNaN method; the functionality is
included in this class for convenience.
| f | the value to be tested. |
|---|
true if the argument is NaN;
false otherwise.
Returns true if the unordered relation holds
between the two arguments. When two floating-point values are
unordered, one value is neither less than, equal to, nor
greater than the other. For the unordered relation to be true,
at least one argument must be a NaN.
| arg1 | the first argument |
|---|---|
| arg2 | the second argument |
true if at least one argument is a NaN,
false otherwise.
Returns true if the unordered relation holds
between the two arguments. When two floating-point values are
unordered, one value is neither less than, equal to, nor
greater than the other. For the unordered relation to be true,
at least one argument must be a NaN.
| arg1 | the first argument |
|---|---|
| arg2 | the second argument |
true if at least one argument is a NaN,
false otherwise.
Returns the floating-point number adjacent to the first argument in the direction of the second argument. If both arguments compare as equal, the second argument is returned.
Special cases:
float
zero with the same sign as direction is returned
(as implied by the requirement of returning the second argument
if the arguments compare as equal).
start is
±Float.MIN_VALUE and direction
has a value such that the result should have a smaller
magnitude, then a zero with the same sign as start
is returned.
start is infinite and
direction has a value such that the result should
have a smaller magnitude, Float.MAX_VALUE with the
same sign as start is returned.
start is equal to ±
Float.MAX_VALUE and direction has a
value such that the result should have a larger magnitude, an
infinity with same sign as start is returned.
| start | starting floating-point value |
|---|---|
| direction | value indicating which of
start's neighbors or start should
be returned |
start in the
direction of direction.Returns the floating-point number adjacent to the first argument in the direction of the second argument. If both arguments compare as equal the second argument is returned.
Special cases:
direction
is returned unchanged (as implied by the requirement of
returning the second argument if the arguments compare as
equal).
start is
±Double.MIN_VALUE and direction
has a value such that the result should have a smaller
magnitude, then a zero with the same sign as start
is returned.
start is infinite and
direction has a value such that the result should
have a smaller magnitude, Double.MAX_VALUE with the
same sign as start is returned.
start is equal to ±
Double.MAX_VALUE and direction has a
value such that the result should have a larger magnitude, an
infinity with same sign as start is returned.
| start | starting floating-point value |
|---|---|
| direction | value indicating which of
start's neighbors or start should
be returned |
start in the
direction of direction.Returns the floating-point value adjacent to d in
the direction of negative infinity. This method is
semantically equivalent to nextAfter(d,
Double.NEGATIVE_INFINITY); however, a
nextDown implementation may run faster than its
equivalent nextAfter call.
Special Cases:
-Double.MIN_VALUE
| d | starting floating-point value |
|---|
Returns the floating-point value adjacent to f in
the direction of negative infinity. This method is
semantically equivalent to nextAfter(f,
Float.NEGATIVE_INFINITY); however, a
nextDown implementation may run faster than its
equivalent nextAfter call.
Special Cases:
-Float.MIN_VALUE
| f | starting floating-point value |
|---|
Returns the floating-point value adjacent to f in
the direction of positive infinity. This method is
semantically equivalent to nextAfter(f,
Double.POSITIVE_INFINITY); however, a nextUp
implementation may run faster than its equivalent
nextAfter call.
Special Cases:
Float.MIN_VALUE
| f | starting floating-point value |
|---|
Returns the floating-point value adjacent to d in
the direction of positive infinity. This method is
semantically equivalent to nextAfter(d,
Double.POSITIVE_INFINITY); however, a nextUp
implementation may run faster than its equivalent
nextAfter call.
Special Cases:
Double.MIN_VALUE
| d | starting floating-point value |
|---|
Returns the first floating-point argument with the sign of the
second floating-point argument. Note that unlike the copySign method, this method
does not require NaN sign arguments to be treated
as positive values; implementations are permitted to treat some
NaN arguments as positive and other NaN arguments as negative
to allow greater performance.
| magnitude | the parameter providing the magnitude of the result |
|---|---|
| sign | the parameter providing the sign of the result |
magnitude
and the sign of sign.Returns the first floating-point argument with the sign of the
second floating-point argument. Note that unlike the copySign method, this method
does not require NaN sign arguments to be treated
as positive values; implementations are permitted to treat some
NaN arguments as positive and other NaN arguments as negative
to allow greater performance.
| magnitude | the parameter providing the magnitude of the result |
|---|---|
| sign | the parameter providing the sign of the result |
magnitude
and the sign of sign.Return d ×
2scale_factor rounded as if performed
by a single correctly rounded floating-point multiply to a
member of the double value set. See §4.2.3
of the Java
Language Specification for a discussion of floating-point
value sets. If the exponent of the result is between the
double's minimum exponent and maximum exponent,
the answer is calculated exactly. If the exponent of the
result would be larger than doubles's maximum
exponent, an infinity is returned. Note that if the result is
subnormal, precision may be lost; that is, when scalb(x,
n) is subnormal, scalb(scalb(x, n), -n) may
not equal x. When the result is non-NaN, the result has
the same sign as d.
Special cases:
| d | number to be scaled by a power of two. |
|---|---|
| scale_factor | power of 2 used to scale d |
d * 2scale_factorReturn f ×
2scale_factor rounded as if performed
by a single correctly rounded floating-point multiply to a
member of the float value set. See §4.2.3
of the Java
Language Specification for a discussion of floating-point
value set. If the exponent of the result is between the
float's minimum exponent and maximum exponent, the
answer is calculated exactly. If the exponent of the result
would be larger than float's maximum exponent, an
infinity is returned. Note that if the result is subnormal,
precision may be lost; that is, when scalb(x, n)
is subnormal, scalb(scalb(x, n), -n) may not equal
x. When the result is non-NaN, the result has the same
sign as f.
Special cases:
| f | number to be scaled by a power of two. |
|---|---|
| scale_factor | power of 2 used to scale f |
f * 2scale_factorReturns the signum function of the argument; zero if the argument is zero, 1.0 if the argument is greater than zero, -1.0 if the argument is less than zero.
Special Cases:
| d | the floating-point value whose signum is to be returned |
|---|
Returns the signum function of the argument; zero if the argument is zero, 1.0f if the argument is greater than zero, -1.0f if the argument is less than zero.
Special Cases:
| f | the floating-point value whose signum is to be returned |
|---|
Returns the size of an ulp of the argument. An ulp of a
float value is the positive distance between this
floating-point value and the float value next
larger in magnitude. Note that for non-NaN x,
ulp(-x) == ulp(x).
Special Cases:
Float.MIN_VALUE.
Float.MAX_VALUE, then
the result is equal to 2104.
| f | the floating-point value whose ulp is to be returned |
|---|
Returns the size of an ulp of the argument. An ulp of a
double value is the positive distance between this
floating-point value and the double value next
larger in magnitude. Note that for non-NaN x,
ulp(-x) == ulp(x).
Special Cases:
Double.MIN_VALUE.
Double.MAX_VALUE, then
the result is equal to 2971.
| d | the floating-point value whose ulp is to be returned |
|---|