示例#1
0
def test_walkers_dependent_subtle():
    nwalkers, ndim = 30, 10
    w = np.random.randn(nwalkers, ndim)
    assert walkers_independent(w)
    # random unit vector
    p = np.random.randn(ndim)
    p /= np.sqrt(np.dot(p, p))
    # project away the direction of p
    w -= np.sum(p[None, :] * w, axis=1)[:, None] * p[None, :]
    assert not walkers_independent(w)
    # shift away from the origin
    w += p[None, :]
    assert not walkers_independent(w)
示例#2
0
def test_walkers_almost_dependent():
    nwalkers, ndim = 30, 10
    squash = 1e-8
    w = np.random.randn(nwalkers, ndim)
    assert walkers_independent(w)
    # random unit vector
    p = np.random.randn(ndim)
    p /= np.sqrt(np.dot(p, p))
    # project away the direction of p
    proj = np.sum(p[None, :] * w, axis=1)[:, None] * p[None, :]
    w -= proj
    w += squash * proj
    assert not walkers_independent(w)
示例#3
0
def test_walkers_independent_scaled():
    # Some of these scales will overflow if squared, hee hee
    scales = np.array([1, 1e10, 1e100, 1e200, 1e-10, 1e-100, 1e-200])
    ndim = len(scales)
    nwalkers = 5 * ndim
    w = np.random.randn(nwalkers, ndim) * scales[None, :]
    assert walkers_independent(w)
示例#4
0
def test_walkers_independent_randn_offset_longdouble(nwalkers, ndim, offset):
    assert walkers_independent(
        np.random.randn(nwalkers, ndim) +
        np.ones((nwalkers, ndim), dtype=np.longdouble) * offset)
示例#5
0
def test_walkers_dependent_big_offset():
    nwalkers, ndim = 30, 10
    offset = 10 / np.finfo(float).eps
    assert not walkers_independent(
        np.random.randn(nwalkers, ndim) + np.ones((nwalkers, ndim)) * offset)
示例#6
0
def test_walkers_independent_randn_offset(nwalkers, ndim, offset):
    assert walkers_independent(
        np.random.randn(nwalkers, ndim) + np.ones((nwalkers, ndim)) * offset)
示例#7
0
def test_walkers_independent_randn(nwalkers, ndim):
    assert walkers_independent(np.random.randn(nwalkers, ndim))
示例#8
0
def test_walkers_dependent_toofew(nwalkers, ndim):
    assert not walkers_independent(np.random.randn(nwalkers, ndim))
示例#9
0
def test_walkers_dependent_ones(nwalkers, ndim):
    assert not walkers_independent(np.ones((nwalkers, ndim)))