Class XMath


  • public final class XMath
    extends Object
    Simple mathematical functions.
    Since:
    2.0
    Author:
    Martin Desruisseaux (IRD)
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static double next​(double f)
      Finds the least double greater than f.
      static float next​(float f)
      Finds the least float greater than f.
      static double previous​(double f)
      Finds the greatest double less than f.
      static float previous​(float f)
      Finds the greatest float less than f.
      static double rool​(Class type, double value, int amount)
      Returns the next or previous representable number.
      • Methods inherited from class Object

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

      • next

        public static float next​(float f)
        Finds the least float greater than f. If NaN, returns same value.
      • previous

        public static float previous​(float f)
        Finds the greatest float less than f. If NaN, returns same value.
      • next

        public static double next​(double f)
        Finds the least double greater than f. If NaN, returns same value.
        See Also:
        ChoiceFormat.nextDouble(double)
      • previous

        public static double previous​(double f)
        Finds the greatest double less than f. If NaN, returns same value.
        See Also:
        ChoiceFormat.previousDouble(double)
      • rool

        public static double rool​(Class type,
                                  double value,
                                  int amount)
                           throws IllegalArgumentException
        Returns the next or previous representable number. If amount is equals to 0, then this method returns the value unchanged. Otherwise, The operation performed depends on the specified type:
        • If the type is Double, then this method is equivalent to invoking previous(double) if amount is equals to -1, or invoking next(double) if amount is equals to +1. If amount is smaller than -1 or greater than +1, then this method invokes previous(double) or next(double) in a loop for abs(amount) times.

        • If the type is Float, then this method is equivalent to invoking previous(float) if amount is equals to -1, or invoking next(float) if amount is equals to +1. If amount is smaller than -1 or greater than +1, then this method invokes previous(float) or next(float) in a loop for abs(amount) times.

        • If the type is an integer, then invoking this method is equivalent to computing value + amount.

        Parameters:
        type - The type. Should be the class of Double, Float, Long, Integer, Short or Byte.
        value - The number to rool.
        amount - -1 to return the previous representable number, +1 to return the next representable number, or 0 to return the number with no change.
        Returns:
        One of previous or next representable number as a double.
        Throws:
        IllegalArgumentException - if type is not one of supported types.