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.
    static double
    sumUpperBound(double sum, int numValues)
    Return the maximum possible sum across numValues non-negative doubles, assuming one sum yielded sum.
    static int
    unsignedMin(int a, int b)
    Return the min of the two given unsigned integers.

    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.
    • sumUpperBound

      public static double sumUpperBound(double sum, int numValues)
      Return the maximum possible sum across numValues non-negative doubles, assuming one sum yielded sum.
      See Also:
    • unsignedMin

      public static int unsignedMin(int a, int b)
      Return the min of the two given unsigned integers.