Beispiel #1
0
def erf_(a0):
    if not a0.IsFloat:
        raise Exception("erf(): requires floating point operands!")
    ar, sr = _check1(a0)
    if not a0.IsSpecial:
        for i in range(sr):
            ar[i] = _ek.erf(a0[i])
    else:
        raise Exception("erf(): unsupported array type!")
    return ar
Beispiel #2
0
def test13_cont_func(variant_packet_rgb):
    # Test continuous 1D distribution integral against analytic result
    from mitsuba.core import ContinuousDistribution, Float

    x = ek.linspace(Float, -2, 2, 513)
    y = ek.exp(-ek.sqr(x))

    d = ContinuousDistribution([-2, 2], y)
    assert ek.allclose(d.integral(), ek.sqrt(ek.pi) * ek.erf(2.0))
    assert ek.allclose(d.eval_pdf([1]), [ek.exp(-1)])
    assert ek.allclose(d.sample([0, 0.5, 1]), [-2, 0, 2])
Beispiel #3
0
 def stdnormal_cdf(x):
     shape = x.shape
     cdf = (1.0 - ek.erf(-x.flatten() / ek.sqrt(2.0))) * 0.5
     return np.array(cdf).reshape(shape)