edu.harvard.econcs.util
Class FloatingUtil

java.lang.Object
  extended by edu.harvard.econcs.util.FloatingUtil

public class FloatingUtil
extends java.lang.Object

Mipinator.MaxValue is 29 bits. Java double representation is 52 bits for the mantissa. This leaves 23 bits for the floating point part, at worst. So at worst, this means that values this huge have a (2^-23)/2 = 0.000000059604644775390625 representation error. With an epsilon of .001f, this means that we can have ~16,000 operations with max error and still be ok. This seems like a lot and probably fine for the exchange.

Since:
Dec 2, 2004
Version:
$Revision: 1.9 $ on $Date: 2006/08/23 20:17:58 $

Field Summary
static double EPSILON
          0.001953125 == (1/512) == 1/(2^-9) -> power of two representable cleanly in floating point.
 
Constructor Summary
FloatingUtil()
           
 
Method Summary
static boolean equal(double a, double b)
           
static boolean equal(double a, double b, double eps)
           
static boolean greater(double a, double b)
           
static boolean greater(double a, double b, double eps)
           
static boolean greaterEqual(double a, double b)
           
static boolean greaterEqual(double a, double b, double eps)
           
static boolean less(double a, double b)
           
static boolean less(double a, double b, double eps)
           
static boolean lessEqual(double a, double b)
           
static boolean lessEqual(double a, double b, double eps)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EPSILON

public static double EPSILON
0.001953125 == (1/512) == 1/(2^-9) -> power of two representable cleanly in floating point.

Constructor Detail

FloatingUtil

public FloatingUtil()
Method Detail

equal

public static boolean equal(double a,
                            double b)

equal

public static boolean equal(double a,
                            double b,
                            double eps)

greater

public static boolean greater(double a,
                              double b)

greater

public static boolean greater(double a,
                              double b,
                              double eps)

less

public static boolean less(double a,
                           double b)

less

public static boolean less(double a,
                           double b,
                           double eps)

greaterEqual

public static boolean greaterEqual(double a,
                                   double b)

greaterEqual

public static boolean greaterEqual(double a,
                                   double b,
                                   double eps)

lessEqual

public static boolean lessEqual(double a,
                                double b)

lessEqual

public static boolean lessEqual(double a,
                                double b,
                                double eps)