def p_data_given_gross(Q,R_hi,R_lo):
    """
    Calculate the probability of the data given a gross error
    assuming gross errors are uniformly distributed between
    R_low and R_high and that the quantization, rounding level is Q
    
    :param Q: quantization of x, i.e. x is an integer multiple of Q
    :param R_hi: the upper limit on x imposed by previous QC choices.
    :param R_lo: the lower limit on x imposed by previous QC choices.
    :type Q: float
    :type R_hi: float
    :type R_lo: float
    :return: probability of the observed value given that its a gross error.
    :rtpye: float
    """
    assert R_hi > R_lo, "Limits not ascending R_lo "+str(R_lo)+" > R_hi "+str(R_hi)
    assert Q > 0.0, "Q <= 0" + str(Q)
    
    R = R_hi-R_lo
    return 1./(1.+(R/Q))