Example #1
0
 def t(m, n):
     x = Integer(m) / n
     r = polygamma(0, x)
     if r.has(polygamma):
         return False
     return abs(polygamma(0, x.evalf()).evalf(strict=False) -
                r.evalf()).evalf(strict=False) < 1e-10
Example #2
0
def sampling_P(condition, given_condition=None, numsamples=1,
               evalf=True, **kwargs):
    """
    Sampling version of P

    See Also
    ========
    diofant.stats.P
    diofant.stats.rv.sampling_E
    diofant.stats.rv.sampling_density
    """

    count_true = 0
    count_false = 0

    samples = sample_iter(condition, given_condition,
                          numsamples=numsamples, **kwargs)

    for x in samples:
        if x not in (True, False):
            raise ValueError("Conditions must not contain free symbols")

        if x:
            count_true += 1
        else:
            count_false += 1

    result = Integer(count_true) / numsamples
    if evalf:
        return result.evalf()
    else:
        return result