Class IntervalSize


  • public class IntervalSize
    extends java.lang.Object
    Provides a test for whether an interval is so small it should be considered as zero for the purposes of inserting it into a binary tree. The reason this check is necessary is that round-off error can cause the algorithm used to subdivide an interval to fail, by computing a midpoint value which does not lie strictly between the endpoints.
    Version:
    1.7
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int MIN_BINARY_EXPONENT
      This value is chosen to be a few powers of 2 less than the number of bits available in the double representation (i.e.
    • Constructor Summary

      Constructors 
      Constructor Description
      IntervalSize()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean isZeroWidth​(double min, double max)
      Computes whether the interval [min, max] is effectively zero width.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • MIN_BINARY_EXPONENT

        public static final int MIN_BINARY_EXPONENT
        This value is chosen to be a few powers of 2 less than the number of bits available in the double representation (i.e. 53). This should allow enough extra precision for simple computations to be correct, at least for comparison purposes.
        See Also:
        Constant Field Values
    • Constructor Detail

      • IntervalSize

        public IntervalSize()
    • Method Detail

      • isZeroWidth

        public static boolean isZeroWidth​(double min,
                                          double max)
        Computes whether the interval [min, max] is effectively zero width. I.e. the width of the interval is so much less than the location of the interval that the midpoint of the interval cannot be represented precisely.