# Class MathUtil

java.lang.Object
com.codename1.util.MathUtil

public abstract class MathUtil extends Object
MathUtil for Java ME. This fills the gap in Java ME Math with a port of Sun's public FDLIBM C-library for IEEE-754.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MathUtil()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static final double`
  `acos(double a)`
  Return the arccosine of a.
  `static final double`
  `asin(double a)`
  Return the arcsine of a.
  `static final double`
  `atan(double a)`
  Return the arctangent of a, call it b, where a = tan(b).
  `static final double`
  `atan2(double b, double a)`
  For any real arguments x and y not both equal to zero, atan2(y, x) is the angle in radians between the positive x-axis of a plane and the point given by the coordinates (x, y) on it.
  `static int`
  `compare(double d1, double d2)`
  Compares the two specified `double` values.
  `static int`
  `compare(float f1, float f2)`
  Compares the two specified `float` values.
  `static double`
  `copysign(double x, double y)`
  Please update your code to use copySign
  `static double`
  `copySign(double x, double y)`
  `static final double`
  `exp(double a)`
  Return Math.E to the exponent a.
  `static long`
  `floor(double a)`
  Rounds the number down
  `static int`
  `floor(float a)`
  Rounds the number down
  `static final double`
  `log(double a)`
  Return the natural logarithm, ln(a), as it relates to Math.E.
  `static final double`
  `log10(double a)`
  Return the common base-10 logarithm, log10(a).
  `static double`
  `nextAfter(double start, double direction)`
  Returns the next representable floating point number after the first argument in the direction of the second argument.
  `static final double`
  `pow(double a, double b)`
  Return a to the power of b, sometimes written as a ** b but not to be confused with the bitwise ^ operator.
  `static long`
  `round(double a)`
  Rounds the number to the closest integer
  `static int`
  `round(float a)`
  Rounds the number to the closest integer
  `static double`
  `scalb(double x, int n)`
  scalbn (double x, int n) scalbn(x,n) returns x* 2**n computed by exponent manipulation rather than by actually performing an exponentiation or a multiplication.
  `static double`
  `scalbn(double x, int n)`
  Please update your code to use scalb
  `static double`
  `ulp(double d)`
  Returns the size of an ulp (units in the last place) of the argument.

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### MathUtil

    public MathUtil()

- ## Method Details

  - ### exp

    public static final double exp(double a)
    Return Math.E to the exponent a. This in turn uses ieee7854_exp(double).

  - ### log

    public static final double log(double a)
    Return the natural logarithm, ln(a), as it relates to Math.E. This in turn uses ieee7854_log(double).

  - ### log10

    public static final double log10(double a)
    Return the common base-10 logarithm, log10(a). This in turn uses ieee7854_log(double)/ieee7854_log(10.0).

  - ### pow

    public static final double pow(double a, double b)
    Return a to the power of b, sometimes written as a ** b but not to be confused with the bitwise ^ operator. This in turn uses ieee7854_log(double).

  - ### asin

    public static final double asin(double a)
    Return the arcsine of a.

  - ### acos

    public static final double acos(double a)
    Return the arccosine of a.

  - ### atan

    public static final double atan(double a)
    Return the arctangent of a, call it b, where a = tan(b).

  - ### atan2

    public static final double atan2(double b, double a)
    For any real arguments x and y not both equal to zero, atan2(y, x) is the angle in radians between the positive x-axis of a plane and the point given by the coordinates (x, y) on it. The angle is positive for counter-clockwise angles (upper half-plane, y > 0), and negative for clockwise angles (lower half-plane, y < 0). This in turn uses ieee7854_arctan2(double).

  - ### scalb

    public static double scalb(double x, int n)
    scalbn (double x, int n) scalbn(x,n) returns x* 2**n computed by exponent manipulation rather than by actually performing an exponentiation or a multiplication.

  - ### scalbn

    public static double scalbn(double x, int n)

    Please update your code to use scalb

    ###### Parameters

    - `x`

    - `n`

    ###### Returns

    scalb(x, n)

    ###### Deprecated

    Please update your code to use scalb

  - ### copySign

    public static double copySign(double x, double y)

  - ### copysign

    public static double copysign(double x, double y)

    Please update your code to use copySign

    ###### Parameters

    - `x`

    - `y`

    ###### Returns

    copySign(x, y)

    ###### Deprecated

    Please update your code to use copySign

  - ### ulp

    public static double ulp(double d)

    Returns the size of an ulp (units in the last place) of the argument.

    ###### Parameters

    - `d`: value whose ulp is to be returned

    ###### Returns

    size of an ulp for the argument

  - ### nextAfter

    public static double nextAfter(double start, double direction)

    Returns the next representable floating point number after the first argument in the direction of the second argument.

    ###### Parameters

    - `start`: starting value

    - `direction`: value indicating which of the neighboring representable floating point number to return.

    ###### Returns

    The floating-point number next to `start` in the direction of `direction`.

  - ### round

    public static int round(float a)

    Rounds the number to the closest integer

    ###### Parameters

    - `a`: the number

    ###### Returns

    the closest integer

  - ### round

    public static long round(double a)

    Rounds the number to the closest integer

    ###### Parameters

    - `a`: the number

    ###### Returns

    the closest integer

  - ### floor

    public static int floor(float a)

    Rounds the number down

    ###### Parameters

    - `a`: the number

    ###### Returns

    a rounded down number

  - ### floor

    public static long floor(double a)

    Rounds the number down

    ###### Parameters

    - `a`: the number

    ###### Returns

    a rounded down number

  - ### compare

    public static int compare(float f1, float f2)

    Compares the two specified `float` values. The sign of the integer value returned is the same as that of the integer that would be returned by the call:

        float f1 = 1.5f;
        float f2 = 2.5f;
        int result = new Float(f1).compareTo(new Float(f2));
        Form hi = new Form("MathUtil.compare(float)", BoxLayout.y());
        hi.add(new Label("Float.compareTo result: " + result));
        hi.show();

    ###### Parameters

    - `f1`: the first `float` to compare.

    - `f2`: the second `float` to compare.

    ###### Returns

    Returns:

      the value `0` if `f1` is numerically equal to `f2`; a value less than `0` if `f1` is numerically less than `f2`; and a value greater than `0` if `f1` is numerically greater than `f2`.

      ###### Since

      1.4

  - ### compare

    public static int compare(double d1, double d2)

    Compares the two specified `double` values. The sign of the integer value returned is the same as that of the integer that would be returned by the call:

        double d1 = 1.5;
        double d2 = 2.5;
        int result = new Double(d1).compareTo(new Double(d2));
        Form hi = new Form("MathUtil.compare(double)", BoxLayout.y());
        hi.add(new Label("Double.compareTo result: " + result));
        hi.show();

    ###### Parameters

    - `d1`: the first `double` to compare

    - `d2`: the second `double` to compare

    ###### Returns

    Returns:

      the value `0` if `d1` is numerically equal to `d2`; a value less than `0` if `d1` is numerically less than `d2`; and a value greater than `0` if `d1` is numerically greater than `d2`.

      ###### Since

      1.4