Class AbsoluteErrorBound

  • All Implemented Interfaces:
    FloatingPointTolerance

    public class AbsoluteErrorBound
    extends Object
    implements FloatingPointTolerance
    Checks equivalence based on the absolute error between two floating point numbers. Two values are considered equal if this error is less than a fixed bound.

    Specifically, for two values v1 and v2 and a non-negative bound e, it is checked whether Math.abs(v1 - v2) <= e

    See Also:
    RelativeErrorBound, UlpDistanceBound
    • Constructor Detail

      • AbsoluteErrorBound

        public AbsoluteErrorBound​(double epsilon)
        Define a fixed bound on the absolute error of two floating point numbers.
        Parameters:
        epsilon - the fixed bound on the error
        Throws:
        com.pervasive.datarush.graphs.physical.InvalidPropertyValueException - if epsilon is negative.
    • Method Detail

      • isWithinTolerance

        public boolean isWithinTolerance​(float value1,
                                         float value2)
        Description copied from interface: FloatingPointTolerance
        Indicates whether the specified values are equal under the tolerance.
        Specified by:
        isWithinTolerance in interface FloatingPointTolerance
        Parameters:
        value1 - the first value to compare
        value2 - the second value to compare
        Returns:
        true if the two values lie with the error bounds, otherwise false
      • isWithinTolerance

        public boolean isWithinTolerance​(double value1,
                                         double value2)
        Description copied from interface: FloatingPointTolerance
        Indicates whether the specified values are equal under the tolerance.
        Specified by:
        isWithinTolerance in interface FloatingPointTolerance
        Parameters:
        value1 - the first value to compare
        value2 - the second value to compare
        Returns:
        true if the two values lie with the error bounds, otherwise false
      • isWithinTolerance

        public boolean isWithinTolerance​(BigDecimal value1,
                                         BigDecimal value2)
        Description copied from interface: FloatingPointTolerance
        Indicates whether the specified values are equal under the tolerance.
        Specified by:
        isWithinTolerance in interface FloatingPointTolerance
        Parameters:
        value1 - the first value to compare
        value2 - the second value to compare
        Returns:
        true if the two values lie with the error bounds, otherwise false
      • getEpsilon

        public double getEpsilon()
        Gets the maximum absolute difference allowed between values.
        Returns:
        the absolute error bound