Overview | Package | Class | Tree | Deprecated | Index | Help
| J avolution v5.2 (J2SE 1.5+)
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javolution.lang
Class MathLib

    java.lang.Object
      javolution.lang.MathLib

    public final class MathLib

extends java.lang.Object

This utility class ensures cross-platform portability of the math library. Functions not supported by the platform are emulated. Developers may replace the current implementation with native implementations for faster execution (unlike `java.lang.Math` this class can be customized).

Version:
  4.2, January 6, 2007
Author:
  Jean-Marie Dautelle

Field Summary
`static double` | `E` The natural logarithm.
`static double` | `FOUR_PI` Four time the ratio of the circumference of a circle to its diameter.
`static double` | `HALF_PI` Half the ratio of the circumference of a circle to its diameter.
`static double` | `Infinity` Infinity.
`static double` | `LOG10` The natural logarithm of ten.
`static double` | `LOG2` The natural logarithm of two.
`static double` | `NaN` Not-A-Number.
`static double` | `PI` The ratio of the circumference of a circle to its diameter.
`static double` | `PI_SQUARE` Holds `PI` * `PI`.
`static double` | `SQRT2` The square root of two.
`static double` | `TWO_PI` Twice the ratio of the circumference of a circle to its diameter.

Method Summary
`static double` | `abs(double d)` Returns the absolute value of the specified `double` argument.
`static float` | `abs(float f)` Returns the absolute value of the specified `float` argument.
`static int` | `abs(int i)` Returns the absolute value of the specified `int` argument.
`static long` | `abs(long l)` Returns the absolute value of the specified `long` argument.
`static double` | `acos(double x)` Returns the arc cosine of the specified value, in the range of 0.0 through pi.
`static double` | `asin(double x)` Returns the arc sine of the specified value, in the range of -pi/2 through pi/2.
`static double` | `atan(double x)` Returns the arc tangent of the specified value, in the range of -pi/2 through pi/2.
`static double` | `atan2(double y, double x)` Returns the angle theta such that `(x == cos(theta)) && (y == sin(theta))`.
`static int` | `bitLength(int i)` Returns the number of bits in the minimal two's-complement representation of the specified `int`, excluding a sign bit.
`static int` | `bitLength(long l)` Returns the number of bits in the minimal two's-complement representation of the specified `long`, excluding a sign bit.
`static double` | `ceil(double x)` Returns the smallest (closest to negative infinity) `double` value that is not less than the argument and is equal to a mathematical integer.
`static double` | `cos(double radians)` Returns the trigonometric cosine of the specified angle in radians.
`static double` | `cosh(double x)` Returns the hyperbolic cosine of x.
`static int` | `digitLength(int i)` Returns the number of digits in the minimal ten's-complement representation of the specified `int`, excluding a sign bit.
`static int` | `digitLength(long l)` Returns the number of digits in the minimal ten's-complement representation of the specified `long`, excluding a sign bit.
`static double` | `exp(double x)` Returns `e` raised to the specified power.
`static double` | `floor(double x)` Returns the largest (closest to positive infinity) `double` value that is not greater than the argument and is equal to a mathematical integer.
`static int` | `floorLog10(double d)` Returns the largest power of 10 that is less than or equal to the the specified positive value.
`static int` | `floorLog2(double d)` Returns the largest power of 2 that is less than or equal to the the specified positive value.
`static double` | `log(double x)` Returns the natural logarithm (base `e`) of the specified value.
`static double` | `log10(double x)` Returns the decimal logarithm of the specified value.
`static double` | `max(double x, double y)` Returns the greater of two `double` values.
`static float` | `max(float x, float y)` Returns the greater of two `float` values.
`static int` | `max(int x, int y)` Returns the greater of two `int` values.
`static long` | `max(long x, long y)` Returns the greater of two `long` values.
`static double` | `min(double x, double y)` Returns the smaller of two `double` values.
`static float` | `min(float x, float y)` Returns the smaller of two `float` values.
`static int` | `min(int x, int y)` Returns the smaller of two `int` values.
`static long` | `min(long x, long y)` Returns the smaller of two `long` values.
`static double` | `pow(double x, double y)` Returns the value of the first argument raised to the power of the second argument.
`static double` | `random()` Returns a random number between zero and one.
`static double` | `random(double min, double max)` Returns a pseudo random `double` value in the range `[min, max]` (fast and thread-safe without synchronization).
`static float` | `random(float min, float max)` Returns a pseudo random `float` value in the range `[min, max]` (fast and thread-safe without synchronization).
`static int` | `random(int min, int max)` Returns a pseudo random `int` value in the range `[min, max]` (fast and thread-safe without synchronization).
`static long` | `random(long min, long max)` Returns a pseudo random `long` value in the range `[min, max]` (fast and thread-safe without synchronization).
`static double` | `rem(double x, double y)` Returns the remainder of the division of the specified two arguments.
`static long` | `round(double d)` Returns the closest `long` to the specified argument.
`static int` | `round(float f)` Returns the closest `int` to the specified argument.
`static double` | `sin(double radians)` Returns the trigonometric sine of the specified angle in radians.
`static double` | `sinh(double x)` Returns the hyperbolic sine of x.
`static double` | `sqrt(double x)` Returns the positive square root of the specified value.
`static double` | `tan(double radians)` Returns the trigonometric tangent of the specified angle in radians.
`static double` | `tanh(double x)` Returns the hyperbolic tangent of x.
`static double` | `toDegrees(double radians)` Converts an angle in radians to degrees.
`static double` | `toDoublePow10(long m, int n)` Returns the closest `double` representation of the specified `long` number multiplied by a power of ten.
`static double` | `toDoublePow2(long m, int n)` Returns the closest `double` representation of the specified `long` number multiplied by a power of two.
`static long` | `toLongPow10(double d, int n)` Returns the closest `long` representation of the specified `double` number multiplied by a power of ten.
`static long` | `toLongPow2(double d, int n)` Returns the closest `long` representation of the specified `double` number multiplied by a power of two.
`static double` | `toRadians(double degrees)` Converts an angle in degrees to radians.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### E

    public static final double E

  The natural logarithm.

  See Also:
    Constant Field Values

### PI

    public static final double PI

  The ratio of the circumference of a circle to its diameter.

  See Also:
    Constant Field Values

### HALF_PI

    public static final double HALF_PI

  Half the ratio of the circumference of a circle to its diameter.

  See Also:
    Constant Field Values

### TWO_PI

    public static final double TWO_PI

  Twice the ratio of the circumference of a circle to its diameter.

  See Also:
    Constant Field Values

### FOUR_PI

    public static final double FOUR_PI

  Four time the ratio of the circumference of a circle to its diameter.

  See Also:
    Constant Field Values

### PI_SQUARE

    public static final double PI_SQUARE

  Holds `PI` * `PI`.

  See Also:
    Constant Field Values

### LOG2

    public static final double LOG2

  The natural logarithm of two.

  See Also:
    Constant Field Values

### LOG10

    public static final double LOG10

  The natural logarithm of ten.

  See Also:
    Constant Field Values

### SQRT2

    public static final double SQRT2

  The square root of two.

  See Also:
    Constant Field Values

### NaN

    public static final double NaN

  Not-A-Number.

  See Also:
    Constant Field Values

### Infinity

    public static final double Infinity

  Infinity.

  See Also:
    Constant Field Values

Method Detail

### random

    public static int random(int min,
                             int max)

  Returns a pseudo random `int` value in the range `[min, max]` (fast and thread-safe without synchronization).

  Parameters:
    `min` - the minimum value inclusive.
    `max` - the maximum value exclusive.
  Returns:
    a pseudo random number in the range `[min, max]`.

### random

    public static long random(long min,
                              long max)

  Returns a pseudo random `long` value in the range `[min, max]` (fast and thread-safe without synchronization).

  Parameters:
    `min` - the minimum value inclusive.
    `max` - the maximum value inclusive.
  Returns:
    a pseudo random number in the range `[min, max]`.

### random

    public static float random(float min,
                               float max)

  Returns a pseudo random `float` value in the range `[min, max]` (fast and thread-safe without synchronization).

  Parameters:
    `min` - the minimum value inclusive.
    `max` - the maximum value inclusive.
  Returns:
    a pseudo random number in the range `[min, max]`.

### random

    public static double random(double min,
                                double max)

  Returns a pseudo random `double` value in the range `[min, max]` (fast and thread-safe without synchronization).

  Parameters:
    `min` - the minimum value inclusive.
    `max` - the maximum value inclusive.
  Returns:
    a pseudo random number in the range `[min, max]`.

### bitLength

    public static int bitLength(int i)

  Returns the number of bits in the minimal two's-complement representation of the specified `int`, excluding a sign bit. For positive `int`, this is equivalent to the number of bits in the ordinary binary representation. For negative `int`, it is equivalent to the number of bits of the positive value `-(i + 1)`.

  Parameters:
    `i` - the `int` value for which the bit length is returned.
  Returns:
    the bit length of `i`.

### bitLength

    public static int bitLength(long l)

  Returns the number of bits in the minimal two's-complement representation of the specified `long`, excluding a sign bit. For positive `long`, this is equivalent to the number of bits in the ordinary binary representation. For negative `long`, it is equivalent to the number of bits of the positive value `-(l + 1)`.

  Parameters:
    `l` - the `long` value for which the bit length is returned.
  Returns:
    the bit length of `l`.

### digitLength

    public static int digitLength(int i)

  Returns the number of digits in the minimal ten's-complement representation of the specified `int`, excluding a sign bit. For positive `int`, this is equivalent to the number of digit in the ordinary decimal representation. For negative `int`, it is equivalent to the number of digit of the positive value `-(i + 1)`.

  Parameters:
    `i` - the `int` value for which the digit length is returned.
  Returns:
    the digit length of `i`.

### digitLength

    public static int digitLength(long l)

  Returns the number of digits in the minimal ten's-complement representation of the specified `long`, excluding a sign bit. For positive `long`, this is equivalent to the number of digit in the ordinary decimal representation. For negative `long`, it is equivalent to the number of digit of the positive value `-(value + 1)`.

  Parameters:
    `l` - the `long` value for which the digit length is returned.
  Returns:
    the digit length of `l`.

### toDoublePow2

    public static double toDoublePow2(long m,
                                      int n)

  Returns the closest `double` representation of the specified `long` number multiplied by a power of two.

  Parameters:
    `m` - the `long` multiplier.
    `n` - the power of two exponent.
  Returns:
    `m * 2n`.

### toDoublePow10

    public static double toDoublePow10(long m,
                                       int n)

  Returns the closest `double` representation of the specified `long` number multiplied by a power of ten.

  Parameters:
    `m` - the `long` multiplier.
    `n` - the power of ten exponent.
  Returns:
    `multiplier * 10n`.

### toLongPow2

    public static long toLongPow2(double d,
                                  int n)

  Returns the closest `long` representation of the specified `double` number multiplied by a power of two.

  Parameters:
    `d` - the `double` multiplier.
    `n` - the power of two exponent.
  Returns:
    `d * 2n`
  Throws:
    `java.lang.ArithmeticException` - if the conversion cannot be performed (NaN, Infinity or overflow).

### toLongPow10

    public static long toLongPow10(double d,
                                   int n)

  Returns the closest `long` representation of the specified `double` number multiplied by a power of ten.

  Parameters:
    `d` - the `double` multiplier.
    `n` - the power of two exponent.
  Returns:
    `d * 10n`.

### floorLog2

    public static int floorLog2(double d)

  Returns the largest power of 2 that is less than or equal to the the specified positive value.

  Parameters:
    `d` - the `double` number.
  Returns:
    `floor(Log2(abs(d)))`
  Throws:
    `java.lang.ArithmeticException` - if `d <= 0`or `d` is `NaN` or `Infinity`.``

### floorLog10

    public static int floorLog10(double d)

  Returns the largest power of 10 that is less than or equal to the the specified positive value.

  Parameters:
    `d` - the `double` number.
  Returns:
    `floor(Log10(abs(d)))`
  Throws:
    `java.lang.ArithmeticException` - if `d <= 0`or `d` is `NaN` or `Infinity`.``

### toRadians

    public static double toRadians(double degrees)

  Converts an angle in degrees to radians.

  Parameters:
    `degrees` - the angle in degrees.
  Returns:
    the specified angle in radians.

### toDegrees

    public static double toDegrees(double radians)

  Converts an angle in radians to degrees.

  Parameters:
    `radians` - the angle in radians.
  Returns:
    the specified angle in degrees.

### sqrt

    public static double sqrt(double x)

  Returns the positive square root of the specified value.

  Parameters:
    `x` - the value.
  Returns:
    `java.lang.Math.sqrt(x)`

### rem

    public static double rem(double x,
                             double y)

  Returns the remainder of the division of the specified two arguments.

  Parameters:
    `x` - the dividend.
    `y` - the divisor.
  Returns:
    `x - round(x / y) * y`

### ceil

    public static double ceil(double x)

  Returns the smallest (closest to negative infinity) `double` value that is not less than the argument and is equal to a mathematical integer.

  Parameters:
    `x` - the value.
  Returns:
    `java.lang.Math.ceil(x)`

### floor

    public static double floor(double x)

  Returns the largest (closest to positive infinity) `double` value that is not greater than the argument and is equal to a mathematical integer.

  Parameters:
    `x` - the value.
  Returns:
    `java.lang.Math.ceil(x)`

### sin

    public static double sin(double radians)

  Returns the trigonometric sine of the specified angle in radians.

  Parameters:
    `radians` - the angle in radians.
  Returns:
    `java.lang.Math.sin(radians)`

### cos

    public static double cos(double radians)

  Returns the trigonometric cosine of the specified angle in radians.

  Parameters:
    `radians` - the angle in radians.
  Returns:
    `java.lang.Math.cos(radians)`

### tan

    public static double tan(double radians)

  Returns the trigonometric tangent of the specified angle in radians.

  Parameters:
    `radians` - the angle in radians.
  Returns:
    `java.lang.Math.tan(radians)`

### asin

    public static double asin(double x)

  Returns the arc sine of the specified value, in the range of -pi/2 through pi/2.

  Parameters:
    `x` - the value whose arc sine is to be returned.
  Returns:
    the arc sine in radians for the specified value.

### acos

    public static double acos(double x)

  Returns the arc cosine of the specified value, in the range of 0.0 through pi.

  Parameters:
    `x` - the value whose arc cosine is to be returned.
  Returns:
    the arc cosine in radians for the specified value.

### atan

    public static double atan(double x)

  Returns the arc tangent of the specified value, in the range of -pi/2 through pi/2.

  Parameters:
    `x` - the value whose arc tangent is to be returned.
  Returns:
    the arc tangent in radians for the specified value.
  See Also:
    Inverse Tangent -- from MathWorld

### atan2

    public static double atan2(double y,
                               double x)

  Returns the angle theta such that `(x == cos(theta)) && (y == sin(theta))`.

  Parameters:
    `y` - the y value.
    `x` - the x value.
  Returns:
    the angle theta in radians.

### sinh

    public static double sinh(double x)

  Returns the hyperbolic sine of x.

  Parameters:
    `x` - the value for which the hyperbolic sine is calculated.
  Returns:
    `(exp(x) - exp(-x)) / 2`

### cosh

    public static double cosh(double x)

  Returns the hyperbolic cosine of x.

  Parameters:
    `x` - the value for which the hyperbolic cosine is calculated.
  Returns:
    `(exp(x) + exp(-x)) / 2`

### tanh

    public static double tanh(double x)

  Returns the hyperbolic tangent of x.

  Parameters:
    `x` - the value for which the hyperbolic tangent is calculated.
  Returns:
    `(exp(2 * x) - 1) / (exp(2 * x) + 1)`

### exp

    public static double exp(double x)

  Returns `e` raised to the specified power.

  Parameters:
    `x` - the exponent.
  Returns:
    `ex`
  See Also:
    Exponential Function -- from MathWorld

### log

    public static double log(double x)

  Returns the natural logarithm (base `e`) of the specified value.

  Parameters:
    `x` - the value greater than `0.0`.
  Returns:
    the value y such as `ey == x`

### log10

    public static double log10(double x)

  Returns the decimal logarithm of the specified value.

  Parameters:
    `x` - the value greater than `0.0`.
  Returns:
    the value y such as `10y == x`

### pow

    public static double pow(double x,
                             double y)

  Returns the value of the first argument raised to the power of the second argument.

  Parameters:
    `x` - the base.
    `y` - the exponent.
  Returns:
    `xy`

### round

    public static int round(float f)

  Returns the closest `int` to the specified argument.

  Parameters:
    `f` - the `float` value to be rounded to a `int`
  Returns:
    the nearest `int` value.

### round

    public static long round(double d)

  Returns the closest `long` to the specified argument.

  Parameters:
    `d` - the `double` value to be rounded to a `long`
  Returns:
    the nearest `long` value.

### random

    public static double random()

  Returns a random number between zero and one.

  Returns:
    a `double` greater than or equal to `0.0` and less than `1.0`.

### abs

    public static int abs(int i)

  Returns the absolute value of the specified `int` argument.

  Parameters:
    `i` - the `int` value.
  Returns:
    `i` or `-i`

### abs

    public static long abs(long l)

  Returns the absolute value of the specified `long` argument.

  Parameters:
    `l` - the `long` value.
  Returns:
    `l` or `-l`

### abs

    public static float abs(float f)

  Returns the absolute value of the specified `float` argument.

  Parameters:
    `f` - the `float` value.
  Returns:
    `f` or `-f`

### abs

    public static double abs(double d)

  Returns the absolute value of the specified `double` argument.

  Parameters:
    `d` - the `double` value.
  Returns:
    `d` or `-d`

### max

    public static int max(int x,
                          int y)

  Returns the greater of two `int` values.

  Parameters:
    `x` - the first value.
    `y` - the second value.
  Returns:
    the larger of `x` and `y`.

### max

    public static long max(long x,
                           long y)

  Returns the greater of two `long` values.

  Parameters:
    `x` - the first value.
    `y` - the second value.
  Returns:
    the larger of `x` and `y`.

### max

    public static float max(float x,
                            float y)

  Returns the greater of two `float` values.

  Parameters:
    `x` - the first value.
    `y` - the second value.
  Returns:
    the larger of `x` and `y`.

### max

    public static double max(double x,
                             double y)

  Returns the greater of two `double` values.

  Parameters:
    `x` - the first value.
    `y` - the second value.
  Returns:
    the larger of `x` and `y`.

### min

    public static int min(int x,
                          int y)

  Returns the smaller of two `int` values.

  Parameters:
    `x` - the first value.
    `y` - the second value.
  Returns:
    the smaller of `x` and `y`.

### min

    public static long min(long x,
                           long y)

  Returns the smaller of two `long` values.

  Parameters:
    `x` - the first value.
    `y` - the second value.
  Returns:
    the smaller of `x` and `y`.

### min

    public static float min(float x,
                            float y)

  Returns the smaller of two `float` values.

  Parameters:
    `x` - the first value.
    `y` - the second value.
  Returns:
    the smaller of `x` and `y`.

### min

    public static double min(double x,
                             double y)

  Returns the smaller of two `double` values.

  Parameters:
    `x` - the first value.
    `y` - the second value.
  Returns:
    the smaller of `x` and `y`.

Overview | Package | Class | Tree | Deprecated | Index | Help
| J avolution v5.2 (J2SE 1.5+)
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2005 - 2007 Javolution.