JMSLTM Numerical Library 4.0

com.imsl.math
Class IEEE

java.lang.Object
  extended bycom.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.


Method Summary
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 2n 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 Detail

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

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:
Integer.MAX_VALUE

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

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 2n 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 x2^n.

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

JMSLTM Numerical Library 4.0

Copyright 1970-2006 Visual Numerics, Inc.
Built June 1 2006.