def rand_mniw(p, n): S = rand_psd(p) + p * np.eye(p) K = rand_psd(n) + n * np.eye(n) M = npr.randn(p, n) nu = p + npr.uniform(1, 3) return standard_to_natural(nu, S, M, K)
def rand_model(n): J, h = rand_psd(n), npr.randn(n) bigJ = rand_psd(2 * n) J11, J12, J22 = bigJ[:n, :n], bigJ[:n, n:], bigJ[n:, n:] logZ = npr.randn() return -1. / 2 * J, h, -1. / 2 * J11, -J12, -1. / 2 * J22, logZ
def rand_niw(n): S = rand_psd(n) + n * np.eye(n) m = npr.randn(n) kappa = n + npr.uniform(1, 3) nu = n + npr.uniform(1, 3) return standard_to_natural(S, m, kappa, nu)
def rand_gaussian(n): J = rand_psd(n) + n * np.eye(n) h = npr.randn(n) return pack_dense(-1./2*J, h)
def rand_model(p, n): return npr.randn(n), rand_psd(n), npr.randn( p, n), npr.randn(p), rand_psd(p)
def rand_model(n): J, h = rand_psd(n), npr.randn(n) bigJ = rand_psd(2*n) J11, J12, J22 = bigJ[:n,:n], bigJ[:n,n:], bigJ[n:,n:] logZ = npr.randn() return -1./2*J, h, -1./2*J11, -J12, -1./2*J22, logZ
def rand_model(p, n): return npr.randn(n), rand_psd(n), npr.randn(p, n), npr.randn(p), rand_psd(p)
def rand_gaussian(n): J = rand_psd(n) + n * np.eye(n) h = npr.randn(n) return pack_dense(-1. / 2 * J, h)
def rand_mniw(p, n): S = rand_psd(p) + p*np.eye(p) K = rand_psd(n) + n*np.eye(n) M = npr.randn(p, n) nu = p + npr.uniform(1,3) return standard_to_natural(nu, S, M, K)