Package com.imsl.math

Class IEEE

java.lang.Object
com.imsl.math.IEEE

public class IEEE extends Object
Pure Java implementation of the IEEE 754 functions as specified in IEEE Standard for Binary Floating-Point Arithmetic, ANSI/IEEE Standard 754-1985 (IEEE, New York).

This Java code is based on C code in the package fdlibm, which can be obtained from www.netlib.org. The original fdlibm C code contains the following notice.

Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
Developed at SunSoft, a Sun Microsystems, Inc. business. Permission to use, copy, modify, and distribute this software is freely granted, provided that this notice is preserved.

Author:
Sun Microsystems (original C code in fdlibm), John F. Brophy (translated from C to Java)
  • Method Summary

    Modifier and Type
    Method
    Description
    static double
    copysign(double x, double y)
    Returns a value with the magnitude of x and with the sign bit of y.
    static boolean
    finite(double x)
    Finite number test on an argument of type double.
    static int
    ilogb(double x)
    Return the binary exponent of non-zero x.
    static boolean
    isNaN(double x)
    NaN test on an argument of type double.
    static double
    nextAfter(double x, double y)
    Returns the next machine floating-point number next to x in the direction toward y.
    static double
    scalbn(double x, int n)
    Returns \(x\,2^n\) computed by exponent manipulation rather than by actually performing an exponentiation or a multiplication.
    static boolean
    unordered(double x, double y)
    Unordered test on a pair of doubles.

    Methods inherited from class java.lang.Object

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

    • copysign

      public static double copysign(double x, double y)
      Returns a value with the magnitude of x and with the sign bit of y. If y is NaN then |x| is returned.
      Parameters:
      x - a double from which the magnitude will be gleaned
      y - a double from which the sign will be gleaned
      Returns:
      a double value with magnitude x and sign of y
    • finite

      public static boolean finite(double x)
      Finite number test on an argument of type double.
      Parameters:
      x - the double which is to be tested
      Returns:
      true if x is a finite number, false if x is a NaN or an infinity
    • isNaN

      public static boolean isNaN(double x)
      NaN test on an argument of type double.
      Parameters:
      x - the double which is to be tested
      Returns:
      true if x is a NaN, false otherwise
    • unordered

      public static boolean unordered(double x, double y)
      Unordered test on a pair of doubles. Tests whether either of a pair of doubles is a NaN.
      Parameters:
      x - a double
      y - a double
      Returns:
      true if either x or y is a NaN, false otherwise
    • nextAfter

      public static double nextAfter(double x, double y)
      Returns the next machine floating-point number next to x in the direction toward y.
      Parameters:
      x - a double
      y - a double
      Returns:
      a double which represents the value which is closest to x in the interval bounded by x and y
    • scalbn

      public static double scalbn(double x, int n)
      Returns \(x\,2^n\) computed by exponent manipulation rather than by actually performing an exponentiation or a multiplication.
      Parameters:
      x - a double
      n - an int representing the power to which 2 is raised
      Returns:
      a double representing \(x\,2^n\).
    • ilogb

      public static int ilogb(double x)
      Return the binary exponent of non-zero x.
      Parameters:
      x - a double
      Returns:
      an int representing the binary exponent of x. Special cases ilogb(0) = -Integer.MAX_VALUE and \({\rm {ilogb}} (\infty) = {\rm {ilogb}} (-\infty) = {\rm {ilogb}} (NaN) = {\rm {Integer.MAX\_VALUE}}\).
      See Also: