Class MathUtil

java.lang.Object
org.apache.lucene.util.MathUtil

public final class MathUtil extends Object
Math static utility methods.
  • Method Summary

    Modifier and Type
    Method
    Description
    static double
    acosh(double a)
    Calculates inverse hyperbolic cosine of a double value.
    static double
    asinh(double a)
    Calculates inverse hyperbolic sine of a double value.
    static double
    atanh(double a)
    Calculates inverse hyperbolic tangent of a double value.
    static long
    gcd(long a, long b)
    Return the greatest common divisor of a and b, consistently with BigInteger.gcd(BigInteger).
    static double
    log(double base, double x)
    Calculates logarithm in a given base with doubles.
    static int
    log(long x, int base)
    Returns x <= 0 ? 0 : Math.floor(Math.log(x) / Math.log(base))
    static double
    sumRelativeErrorBound(int numValues)
    Return a relative error bound for a sum of numValues positive doubles, computed using recursive summation, ie.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • log

      public static int log(long x, int base)
      Returns x <= 0 ? 0 : Math.floor(Math.log(x) / Math.log(base))
      Parameters:
      base - must be > 1
    • log

      public static double log(double base, double x)
      Calculates logarithm in a given base with doubles.
    • gcd

      public static long gcd(long a, long b)
      Return the greatest common divisor of a and b, consistently with BigInteger.gcd(BigInteger).

      NOTE: A greatest common divisor must be positive, but 2^64 cannot be expressed as a long although it is the GCD of Long.MIN_VALUE and 0 and the GCD of Long.MIN_VALUE and Long.MIN_VALUE. So in these 2 cases, and only them, this method will return Long.MIN_VALUE.

    • asinh

      public static double asinh(double a)
      Calculates inverse hyperbolic sine of a double value.

      Special cases:

      • If the argument is NaN, then the result is NaN.
      • If the argument is zero, then the result is a zero with the same sign as the argument.
      • If the argument is infinite, then the result is infinity with the same sign as the argument.
    • acosh

      public static double acosh(double a)
      Calculates inverse hyperbolic cosine of a double value.

      Special cases:

      • If the argument is NaN, then the result is NaN.
      • If the argument is +1, then the result is a zero.
      • If the argument is positive infinity, then the result is positive infinity.
      • If the argument is less than 1, then the result is NaN.
    • atanh

      public static double atanh(double a)
      Calculates inverse hyperbolic tangent of a double value.

      Special cases:

      • If the argument is NaN, then the result is NaN.
      • If the argument is zero, then the result is a zero with the same sign as the argument.
      • If the argument is +1, then the result is positive infinity.
      • If the argument is -1, then the result is negative infinity.
      • If the argument's absolute value is greater than 1, then the result is NaN.
    • sumRelativeErrorBound

      public static double sumRelativeErrorBound(int numValues)
      Return a relative error bound for a sum of numValues positive doubles, computed using recursive summation, ie. sum = x1 + ... + xn. NOTE: This only works if all values are POSITIVE so that Σ |xi| == |Σ xi|. This uses formula 3.5 from Higham, Nicholas J. (1993), "The accuracy of floating point summation", SIAM Journal on Scientific Computing.