def test_cov_nearest_factor_homog_sparse(self, dm): # Check that dense and sparse inputs give the same result d = 100 # Construct a test matrix with exact factor structure X = np.zeros((d, dm), dtype=np.float64) x = np.linspace(0, 2 * np.pi, d) for j in range(dm): X[:, j] = np.sin(x * (j + 1)) mat = np.dot(X, X.T) np.fill_diagonal(mat, np.diag(mat) + 3.1) # Fit to dense rslt = cov_nearest_factor_homog(mat, dm) mat1 = rslt.to_matrix() # Fit to sparse smat = sparse.csr_matrix(mat) rslt = cov_nearest_factor_homog(smat, dm) mat2 = rslt.to_matrix() assert_allclose(mat1, mat2, rtol=0.25, atol=1e-3)
def test_cov_nearest_factor_homog_sparse(self, dm): # Check that dense and sparse inputs give the same result d = 100 # Construct a test matrix with exact factor structure X = np.zeros((d, dm), dtype=np.float64) x = np.linspace(0, 2*np.pi, d) for j in range(dm): X[:, j] = np.sin(x*(j+1)) mat = np.dot(X, X.T) np.fill_diagonal(mat, np.diag(mat) + 3.1) # Fit to dense rslt = cov_nearest_factor_homog(mat, dm) mat1 = rslt.to_matrix() # Fit to sparse smat = sparse.csr_matrix(mat) rslt = cov_nearest_factor_homog(smat, dm) mat2 = rslt.to_matrix() assert_allclose(mat1, mat2, rtol=0.25, atol=1e-3)
def test_cov_nearest_factor_homog(self, dm): d = 100 # Construct a test matrix with exact factor structure X = np.zeros((d, dm), dtype=np.float64) x = np.linspace(0, 2 * np.pi, d) for j in range(dm): X[:, j] = np.sin(x * (j + 1)) mat = np.dot(X, X.T) np.fill_diagonal(mat, np.diag(mat) + 3.1) # Try to recover the structure rslt = cov_nearest_factor_homog(mat, dm) mat1 = rslt.to_matrix() assert_allclose(mat, mat1, rtol=0.25, atol=1e-3)
def test_cov_nearest_factor_homog(self, dm): d = 100 # Construct a test matrix with exact factor structure X = np.zeros((d, dm), dtype=np.float64) x = np.linspace(0, 2*np.pi, d) for j in range(dm): X[:, j] = np.sin(x*(j+1)) mat = np.dot(X, X.T) np.fill_diagonal(mat, np.diag(mat) + 3.1) # Try to recover the structure rslt = cov_nearest_factor_homog(mat, dm) mat1 = rslt.to_matrix() assert_allclose(mat, mat1, rtol=0.25, atol=1e-3)
def test_cov_nearest_factor_homog(self): d = 100 for dm in 1,2: # Construct a test matrix with exact factor structure X = np.zeros((d,dm), dtype=np.float64) x = np.linspace(0, 2*np.pi, d) for j in range(dm): X[:,j] = np.sin(x*(j+1)) mat = np.dot(X, X.T) np.fill_diagonal(mat, np.diag(mat) + 3.1) # Try to recover the structure rslt = cov_nearest_factor_homog(mat, dm) mat1 = rslt.to_matrix() assert(np.abs(mat - mat1).max() < 1e-4)