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 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
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_factor
Return 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_factor
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.
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 |
---|