@Override
    public Boolean value(final Double a, final Double b) {
        if (a == null || b == null ||
                Double.isInfinite(a) || Double.isNaN(a) ||
                Double.isInfinite(b) || Double.isNaN(b))
            return false;
        /*
         * In an attempt to not destroy a large number of significant
         * digits the code does not subtract a from b, but considers
         * if b is within the precision of a.
         * See [1].
         */
        return a - this.getPrecision() <= b && b <= a + this.getPrecision();
    }