Class Math
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final doubleThe double value that is closer than any other to e, the base of the natural logarithms.static final doubleThe double value that is closer than any other to , the ratio of the circumference of a circle to its diameter.static final doubleTwice pi, the ratio of a circle's circumference to its radius. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic doubleabs(double a) Returns the absolute value of a double value.static floatabs(float a) Returns the absolute value of a float value.static intabs(int a) Returns the absolute value of an int value.static longabs(long a) Returns the absolute value of a long value.static intabsExact(int a) The absolute value, throwing forInteger.MIN_VALUE, which has none.static longabsExact(long a) The absolute value, throwing forLong.MIN_VALUE, which has none.static intaddExact(int x, int y) x + y, throwing when it overflows.static longaddExact(long x, long y) x + y, throwing when it overflows.static doublecbrt(double a) The cube root ofa.static doubleceil(double a) Returns the smallest (closest to negative infinity) double value that is not less than the argument and is equal to a mathematical integer.static intceilDiv(int x, int y) The smallest int not less thanx / y.static longceilDiv(long x, int y) The smallest long not less thanx / y.static longceilDiv(long x, long y) The smallest long not less thanx / y.static intceilDivExact(int x, int y) ceilDiv(x, y), throwing on the one quotient that overflows.static longceilDivExact(long x, long y) ceilDiv(x, y), throwing on the one quotient that overflows.static intceilMod(int x, int y) x - ceilDiv(x, y) * y.static intceilMod(long x, int y) x - ceilDiv(x, y) * y.static longceilMod(long x, long y) x - ceilDiv(x, y) * y.static doubleclamp(double value, double min, double max) valueclamped to[min, max].static floatclamp(float value, float min, float max) valueclamped to[min, max].static intclamp(long value, int min, int max) valueclamped to[min, max], as an int.static longclamp(long value, long min, long max) valueclamped to[min, max].static doublecopySign(double magnitude, double sign) magnitudewith the sign bit ofsign.static floatcopySign(float magnitude, float sign) magnitudewith the sign bit ofsign.static doublecos(double a) Returns the trigonometric cosine of an angle.static doublecosh(double x) The hyperbolic cosine ofx.static intdecrementExact(int a) a - 1, throwing when it overflows.static longdecrementExact(long a) a - 1, throwing when it overflows.static intdivideExact(int x, int y) x / y, throwing on the one quotient that overflows.static longdivideExact(long x, long y) x / y, throwing on the one quotient that overflows.static doublefloor(double a) Returns the largest (closest to positive infinity) double value that is not greater than the argument and is equal to a mathematical integer.static intfloorDiv(int x, int y) The largest int not greater thanx / y.static longfloorDiv(long x, int y) The largest long not greater thanx / y.static longfloorDiv(long x, long y) The largest long not greater thanx / y.static intfloorDivExact(int x, int y) floorDiv(x, y), throwing on the one quotient that overflows.static longfloorDivExact(long x, long y) floorDiv(x, y), throwing on the one quotient that overflows.static intfloorMod(int x, int y) x - floorDiv(x, y) * y: the remainder with the sign ofy.static intfloorMod(long x, int y) x - floorDiv(x, y) * y: the remainder with the sign ofy.static longfloorMod(long x, long y) x - floorDiv(x, y) * y: the remainder with the sign ofy.static intgetExponent(double d) The unbiased exponent ofd: 1024 for NaN and the infinities, -1023 for zero and the subnormals.static intgetExponent(float f) The unbiased exponent off: 128 for NaN and the infinities, -127 for zero and the subnormals.static doublehypot(double x, double y) The square root ofx * x + y * y, without overflow in between.static intincrementExact(int a) a + 1, throwing when it overflows.static longincrementExact(long a) a + 1, throwing when it overflows.static doublemax(double a, double b) Returns the greater of two double values.static floatmax(float a, float b) Returns the greater of two float values.static intmax(int a, int b) Returns the greater of two int values.static longmax(long a, long b) Returns the greater of two long values.static doublemin(double a, double b) Returns the smaller of two double values.static floatmin(float a, float b) Returns the smaller of two float values.static intmin(int a, int b) Returns the smaller of two int values.static longmin(long a, long b) Returns the smaller of two long values.static intmultiplyExact(int x, int y) x * y, throwing when it overflows.static longmultiplyExact(long x, int y) x * y, throwing when it overflows.static longmultiplyExact(long x, long y) x * y, throwing when it overflows.static longmultiplyFull(int x, int y) The exact product of two ints.static longmultiplyHigh(long x, long y) The high 64 bits of the 128-bit product of two signed longs.static intnegateExact(int a) -a, throwing when it overflows.static longnegateExact(long a) -a, throwing when it overflows.static doublenextAfter(double start, double direction) static floatnextAfter(float start, double direction) static doublenextDown(double d) static floatnextDown(float f) The float next toftowards negative infinity.static doublenextUp(double d) The double next todtowards positive infinity.static floatnextUp(float f) The float next toftowards positive infinity.static doublerandom()A pseudo-random double in[0, 1).static doublerint(double a) The whole number nearesta; a tie goes to the even one.static longround(double d) Returns the result of rounding the argument to an integer.static intround(float f) Returns the result of rounding the argument to an integer.static doublescalb(double d, int scaleFactor) dtimes 2 to the powerscaleFactor, rounded once.static floatscalb(float f, int scaleFactor) ftimes 2 to the powerscaleFactor, rounded once.static doublesignum(double d) -1.0, 0.0 or 1.0 by the sign ofd; a zero or NaN is returned as it is.static floatsignum(float f) -1.0f, 0.0f or 1.0f by the sign off; a zero or NaN is returned as it is.static doublesin(double a) Returns the trigonometric sine of an angle.static doublesinh(double x) The hyperbolic sine ofx.static doublesqrt(double a) Returns the correctly rounded positive square root of a double value.static intsubtractExact(int x, int y) x - y, throwing when it overflows.static longsubtractExact(long x, long y) x - y, throwing when it overflows.static doubletan(double a) Returns the trigonometric tangent of an angle.static doubletanh(double x) The hyperbolic tangent ofx.static doubletoDegrees(double angrad) Converts an angle measured in radians to the equivalent angle measured in degrees.static inttoIntExact(long value) The value as an int, throwing when it does not fit.static doubletoRadians(double angdeg) Converts an angle measured in degrees to the equivalent angle measured in radians.static doubleulp(double d) The distance fromdto the next double of larger magnitude.static floatulp(float f) The distance fromfto the next float of larger magnitude.static longunsignedMultiplyHigh(long x, long y) The high 64 bits of the 128-bit product of two unsigned longs.
-
Field Details
-
E
public static final double EThe double value that is closer than any other to e, the base of the natural logarithms. Since: CLDC 1.1 See Also:Constant Field Values- See Also:
-
PI
public static final double PIThe double value that is closer than any other to , the ratio of the circumference of a circle to its diameter. Since: CLDC 1.1 See Also:Constant Field Values- See Also:
-
TAU
public static final double TAUTwice pi, the ratio of a circle's circumference to its radius.- See Also:
-
-
Constructor Details
-
Math
public Math()
-
-
Method Details
-
abs
public static double abs(double a) Returns the absolute value of a double value. If the argument is not negative, the argument is returned. If the argument is negative, the negation of the argument is returned. Special cases: If the argument is positive zero or negative zero, the result is positive zero. If the argument is infinite, the result is positive infinity. If the argument is NaN, the result is NaN. In other words, the result is equal to the value of the expression: Double.longBitsToDouble((Double.doubleToLongBits(a)>>1) -
abs
public static float abs(float a) Returns the absolute value of a float value. If the argument is not negative, the argument is returned. If the argument is negative, the negation of the argument is returned. Special cases: If the argument is positive zero or negative zero, the result is positive zero. If the argument is infinite, the result is positive infinity. If the argument is NaN, the result is NaN. In other words, the result is equal to the value of the expression: Float.intBitsToFloat(0x7fffffff & Float.floatToIntBits(a)) -
abs
public static int abs(int a) Returns the absolute value of an int value. If the argument is not negative, the argument is returned. If the argument is negative, the negation of the argument is returned. Note that if the argument is equal to the value of Integer.MIN_VALUE, the most negative representable int value, the result is that same value, which is negative. -
abs
public static long abs(long a) Returns the absolute value of a long value. If the argument is not negative, the argument is returned. If the argument is negative, the negation of the argument is returned. Note that if the argument is equal to the value of Long.MIN_VALUE, the most negative representable long value, the result is that same value, which is negative. -
ceil
public static double ceil(double a) Returns the smallest (closest to negative infinity) double value that is not less than the argument and is equal to a mathematical integer. Special cases: If the argument value is already equal to a mathematical integer, then the result is the same as the argument. If the argument is NaN or an infinity or positive zero or negative zero, then the result is the same as the argument. If the argument value is less than zero but greater than -1.0, then the result is negative zero. Note that the value of Math.ceil(x) is exactly the value of -Math.floor(-x). -
cos
public static double cos(double a) Returns the trigonometric cosine of an angle. Special case: If the argument is NaN or an infinity, then the result is NaN. -
floor
public static double floor(double a) Returns the largest (closest to positive infinity) double value that is not greater than the argument and is equal to a mathematical integer. Special cases: If the argument value is already equal to a mathematical integer, then the result is the same as the argument. If the argument is NaN or an infinity or positive zero or negative zero, then the result is the same as the argument. -
max
public static double max(double a, double b) Returns the greater of two double values. That is, the result is the argument closer to positive infinity. If the arguments have the same value, the result is that same value. If either value is NaN, then the result is NaN. Unlike the the numerical comparison operators, this method considers negative zero to be strictly smaller than positive zero. If one argument is positive zero and the other negative zero, the result is positive zero. -
max
public static float max(float a, float b) Returns the greater of two float values. That is, the result is the argument closer to positive infinity. If the arguments have the same value, the result is that same value. If either value is NaN, then the result is NaN. Unlike the the numerical comparison operators, this method considers negative zero to be strictly smaller than positive zero. If one argument is positive zero and the other negative zero, the result is positive zero. -
max
public static int max(int a, int b) Returns the greater of two int values. That is, the result is the argument closer to the value of Integer.MAX_VALUE. If the arguments have the same value, the result is that same value. -
max
public static long max(long a, long b) Returns the greater of two long values. That is, the result is the argument closer to the value of Long.MAX_VALUE. If the arguments have the same value, the result is that same value. -
min
public static double min(double a, double b) Returns the smaller of two double values. That is, the result is the value closer to negative infinity. If the arguments have the same value, the result is that same value. If either value is NaN, then the result is NaN. Unlike the the numerical comparison operators, this method considers negative zero to be strictly smaller than positive zero. If one argument is positive zero and the other is negative zero, the result is negative zero. -
min
public static float min(float a, float b) Returns the smaller of two float values. That is, the result is the value closer to negative infinity. If the arguments have the same value, the result is that same value. If either value is NaN, then the result is NaN. Unlike the the numerical comparison operators, this method considers negative zero to be strictly smaller than positive zero. If one argument is positive zero and the other is negative zero, the result is negative zero. -
min
public static int min(int a, int b) Returns the smaller of two int values. That is, the result the argument closer to the value of Integer.MIN_VALUE. If the arguments have the same value, the result is that same value. -
min
public static long min(long a, long b) Returns the smaller of two long values. That is, the result is the argument closer to the value of Long.MIN_VALUE. If the arguments have the same value, the result is that same value. -
sin
public static double sin(double a) Returns the trigonometric sine of an angle. Special cases: If the argument is NaN or an infinity, then the result is NaN. If the argument is positive zero, then the result is positive zero; if the argument is negative zero, then the result is negative zero. -
sqrt
public static double sqrt(double a) Returns the correctly rounded positive square root of a double value. Special cases: If the argument is NaN or less than zero, then the result is NaN. If the argument is positive infinity, then the result is positive infinity. If the argument is positive zero or negative zero, then the result is the same as the argument. -
tan
public static double tan(double a) Returns the trigonometric tangent of an angle. Special cases: If the argument is NaN or an infinity, then the result is NaN. If the argument is positive zero, then the result is positive zero; if the argument is negative zero, then the result is negative zero -
toDegrees
public static double toDegrees(double angrad) Converts an angle measured in radians to the equivalent angle measured in degrees. -
toRadians
public static double toRadians(double angdeg) Converts an angle measured in degrees to the equivalent angle measured in radians. -
round
public static long round(double d) Returns the result of rounding the argument to an integer. The result is equivalent to
(long) Math.floor(d+0.5).Special cases:
-
round(+0.0) = (long) +0.0 -
round(-0.0) = (long) +0.0 -
round((anything > Long.MAX_VALUE) = Long.MAX_VALUE -
round((anything < Long.MIN_VALUE) = Long.MIN_VALUE -
round(+infinity) = Long.MAX_VALUE -
round(-infinity) = Long.MIN_VALUE -
round(NaN) = (long) +0.0
Parameters
d: the value to be rounded.
Returns
the closest integer to the argument.
-
-
round
public static int round(float f) Returns the result of rounding the argument to an integer. The result is equivalent to
(int) Math.floor(f+0.5).Special cases:
-
round(+0.0) = (int) +0.0 -
round(-0.0) = (int) +0.0 -
round((anything > Integer.MAX_VALUE) = Integer.MAX_VALUE -
round((anything < Integer.MIN_VALUE) = Integer.MIN_VALUE -
round(+infinity) = Integer.MAX_VALUE -
round(-infinity) = Integer.MIN_VALUE -
round(NaN) = (int) +0.0
Parameters
f: the value to be rounded.
Returns
the closest integer to the argument.
-
-
nextDown
public static double nextDown(double d) -
nextAfter
public static double nextAfter(double start, double direction) -
nextAfter
public static float nextAfter(float start, double direction) -
random
public static double random()A pseudo-random double in[0, 1). -
signum
public static double signum(double d) -1.0, 0.0 or 1.0 by the sign ofd; a zero or NaN is returned as it is. -
signum
public static float signum(float f) -1.0f, 0.0f or 1.0f by the sign off; a zero or NaN is returned as it is. -
copySign
public static double copySign(double magnitude, double sign) magnitudewith the sign bit ofsign. -
copySign
public static float copySign(float magnitude, float sign) magnitudewith the sign bit ofsign. -
getExponent
public static int getExponent(double d) The unbiased exponent ofd: 1024 for NaN and the infinities, -1023 for zero and the subnormals. -
getExponent
public static int getExponent(float f) The unbiased exponent off: 128 for NaN and the infinities, -127 for zero and the subnormals. -
ulp
public static double ulp(double d) The distance fromdto the next double of larger magnitude. -
ulp
public static float ulp(float f) The distance fromfto the next float of larger magnitude. -
nextUp
public static double nextUp(double d) The double next todtowards positive infinity. -
nextUp
public static float nextUp(float f) The float next toftowards positive infinity. -
nextDown
public static float nextDown(float f) The float next toftowards negative infinity. -
scalb
public static double scalb(double d, int scaleFactor) dtimes 2 to the powerscaleFactor, rounded once. -
scalb
public static float scalb(float f, int scaleFactor) ftimes 2 to the powerscaleFactor, rounded once. -
hypot
public static double hypot(double x, double y) The square root ofx * x + y * y, without overflow in between. -
cbrt
public static double cbrt(double a) The cube root ofa. -
rint
public static double rint(double a) The whole number nearesta; a tie goes to the even one. -
sinh
public static double sinh(double x) The hyperbolic sine ofx. -
cosh
public static double cosh(double x) The hyperbolic cosine ofx. -
tanh
public static double tanh(double x) The hyperbolic tangent ofx. -
floorDiv
public static int floorDiv(int x, int y) The largest int not greater thanx / y. -
floorDiv
public static long floorDiv(long x, int y) The largest long not greater thanx / y. -
floorDiv
public static long floorDiv(long x, long y) The largest long not greater thanx / y. -
floorMod
public static int floorMod(int x, int y) x - floorDiv(x, y) * y: the remainder with the sign ofy. -
floorMod
public static int floorMod(long x, int y) x - floorDiv(x, y) * y: the remainder with the sign ofy. -
floorMod
public static long floorMod(long x, long y) x - floorDiv(x, y) * y: the remainder with the sign ofy. -
ceilDiv
public static int ceilDiv(int x, int y) The smallest int not less thanx / y. -
ceilDiv
public static long ceilDiv(long x, int y) The smallest long not less thanx / y. -
ceilDiv
public static long ceilDiv(long x, long y) The smallest long not less thanx / y. -
ceilMod
public static int ceilMod(int x, int y) x - ceilDiv(x, y) * y. -
ceilMod
public static int ceilMod(long x, int y) x - ceilDiv(x, y) * y. -
ceilMod
public static long ceilMod(long x, long y) x - ceilDiv(x, y) * y. -
divideExact
public static int divideExact(int x, int y) x / y, throwing on the one quotient that overflows. -
divideExact
public static long divideExact(long x, long y) x / y, throwing on the one quotient that overflows. -
floorDivExact
public static int floorDivExact(int x, int y) floorDiv(x, y), throwing on the one quotient that overflows. -
floorDivExact
public static long floorDivExact(long x, long y) floorDiv(x, y), throwing on the one quotient that overflows. -
ceilDivExact
public static int ceilDivExact(int x, int y) ceilDiv(x, y), throwing on the one quotient that overflows. -
ceilDivExact
public static long ceilDivExact(long x, long y) ceilDiv(x, y), throwing on the one quotient that overflows. -
addExact
public static int addExact(int x, int y) x + y, throwing when it overflows. -
addExact
public static long addExact(long x, long y) x + y, throwing when it overflows. -
subtractExact
public static int subtractExact(int x, int y) x - y, throwing when it overflows. -
subtractExact
public static long subtractExact(long x, long y) x - y, throwing when it overflows. -
multiplyExact
public static int multiplyExact(int x, int y) x * y, throwing when it overflows. -
multiplyExact
public static long multiplyExact(long x, int y) x * y, throwing when it overflows. -
multiplyExact
public static long multiplyExact(long x, long y) x * y, throwing when it overflows. -
multiplyFull
public static long multiplyFull(int x, int y) The exact product of two ints. -
multiplyHigh
public static long multiplyHigh(long x, long y) The high 64 bits of the 128-bit product of two signed longs. -
unsignedMultiplyHigh
public static long unsignedMultiplyHigh(long x, long y) The high 64 bits of the 128-bit product of two unsigned longs. -
incrementExact
public static int incrementExact(int a) a + 1, throwing when it overflows. -
incrementExact
public static long incrementExact(long a) a + 1, throwing when it overflows. -
decrementExact
public static int decrementExact(int a) a - 1, throwing when it overflows. -
decrementExact
public static long decrementExact(long a) a - 1, throwing when it overflows. -
negateExact
public static int negateExact(int a) -a, throwing when it overflows. -
negateExact
public static long negateExact(long a) -a, throwing when it overflows. -
toIntExact
public static int toIntExact(long value) The value as an int, throwing when it does not fit. -
absExact
public static int absExact(int a) The absolute value, throwing forInteger.MIN_VALUE, which has none. -
absExact
public static long absExact(long a) The absolute value, throwing forLong.MIN_VALUE, which has none. -
clamp
public static int clamp(long value, int min, int max) valueclamped to[min, max], as an int. -
clamp
public static long clamp(long value, long min, long max) valueclamped to[min, max]. -
clamp
public static double clamp(double value, double min, double max) valueclamped to[min, max]. -
clamp
public static float clamp(float value, float min, float max) valueclamped to[min, max].
-