Beispiel #1
0
    def testSolveSymPos(self):
        import scipy.linalg
        np.random.seed(1)

        data = np.random.randint(1, 10, (20, 20))
        data_l = np.tril(data)
        data1 = data_l.dot(data_l.T)
        data2 = np.random.randint(1, 10, (20, ))

        A = tensor(data1, chunk_size=5)
        b = tensor(data2, chunk_size=5)

        x = solve(A, b, sym_pos=True)

        res = self.executor.execute_tensor(x, concat=True)[0]
        np.testing.assert_allclose(res, scipy.linalg.solve(data1, data2))
        res = self.executor.execute_tensor(A.dot(x), concat=True)[0]
        np.testing.assert_allclose(res, data2)
Beispiel #2
0
def test_solve_sym_pos(setup):
    import scipy.linalg
    rs = np.random.RandomState(0)

    data = rs.randint(1, 10, (20, 20))
    data_l = np.tril(data)
    data1 = data_l.dot(data_l.T)
    data2 = rs.randint(1, 10, (20, ))

    A = tensor(data1, chunk_size=10)
    b = tensor(data2, chunk_size=10)

    x = solve(A, b, sym_pos=True)

    res = x.execute().fetch()
    np.testing.assert_allclose(res, scipy.linalg.solve(data1, data2))
    res = A.dot(x).execute().fetch()
    np.testing.assert_allclose(res, data2)
Beispiel #3
0
    def testSolve(self):
        import scipy.linalg
        np.random.seed(1)

        data1 = np.random.randint(1, 10, (20, 20))
        data2 = np.random.randint(1, 10, (20, ))

        A = tensor(data1, chunk_size=5)
        b = tensor(data2, chunk_size=5)

        x = solve(A, b)

        res = self.executor.execute_tensor(x, concat=True)[0]
        np.testing.assert_allclose(res, scipy.linalg.solve(data1, data2))
        res = self.executor.execute_tensor(A.dot(x), concat=True)[0]
        np.testing.assert_allclose(res, data2)

        data2 = np.random.randint(1, 10, (20, 5))

        A = tensor(data1, chunk_size=5)
        b = tensor(data2, chunk_size=5)

        x = solve(A, b)

        res = self.executor.execute_tensor(x, concat=True)[0]
        np.testing.assert_allclose(res, scipy.linalg.solve(data1, data2))
        res = self.executor.execute_tensor(A.dot(x), concat=True)[0]
        np.testing.assert_allclose(res, data2)

        data2 = np.random.randint(1, 10, (20, 20))

        A = tensor(data1, chunk_size=5)
        b = tensor(data2, chunk_size=5)

        x = solve(A, b)

        res = self.executor.execute_tensor(x, concat=True)[0]
        np.testing.assert_allclose(res, scipy.linalg.solve(data1, data2))
        res = self.executor.execute_tensor(A.dot(x), concat=True)[0]
        np.testing.assert_allclose(res, data2)

        # test for not all chunks are square in matrix A
        data2 = np.random.randint(1, 10, (20, ))

        A = tensor(data1, chunk_size=6)
        b = tensor(data2, chunk_size=6)

        x = solve(A, b)

        res = self.executor.execute_tensor(x, concat=True)[0]
        np.testing.assert_allclose(res, scipy.linalg.solve(data1, data2))
        res = self.executor.execute_tensor(A.dot(x), concat=True)[0]
        np.testing.assert_allclose(res, data2)

        A = tensor(data1, chunk_size=(7, 6))
        b = tensor(data2, chunk_size=6)

        x = solve(A, b)

        res = self.executor.execute_tensor(x, concat=True)[0]
        np.testing.assert_allclose(res, scipy.linalg.solve(data1, data2))
        res = self.executor.execute_tensor(A.dot(x), concat=True)[0]
        np.testing.assert_allclose(res, data2)

        # test sparse
        data1 = sps.csr_matrix(np.random.randint(1, 10, (20, 20)))
        data2 = np.random.randint(1, 10, (20, ))

        A = tensor(data1, chunk_size=5)
        b = tensor(data2, chunk_size=5)

        x = solve(A, b)

        res = self.executor.execute_tensor(x, concat=True)[0]
        self.assertIsInstance(res, SparseNDArray)
        np.testing.assert_allclose(data1.dot(res), data2)

        data2 = np.random.randint(1, 10, (20, 5))

        A = tensor(data1, chunk_size=5)
        b = tensor(data2, chunk_size=5)

        x = solve(A, b)

        res = self.executor.execute_tensor(A.dot(x), concat=True)[0]
        self.assertIsInstance(res, SparseNDArray)
        np.testing.assert_allclose(res, data2)

        data2 = np.random.randint(1, 10, (20, 20))

        A = tensor(data1, chunk_size=5)
        b = tensor(data2, chunk_size=5)

        x = solve(A, b)

        res = self.executor.execute_tensor(A.dot(x), concat=True)[0]
        self.assertIsInstance(res, SparseNDArray)
        np.testing.assert_allclose(res, data2)

        # test for not all chunks are square in matrix A
        data2 = np.random.randint(1, 10, (20, ))

        A = tensor(data1, chunk_size=6)
        b = tensor(data2, chunk_size=6)

        x = solve(A, b)

        res = self.executor.execute_tensor(A.dot(x), concat=True)[0]
        np.testing.assert_allclose(res, data2)
Beispiel #4
0
def test_solve(setup):
    import scipy.linalg
    rs = np.random.RandomState(0)

    data1 = rs.randint(1, 10, (20, 20))
    data2 = rs.randint(1, 10, (20, ))

    A = tensor(data1, chunk_size=10)
    b = tensor(data2, chunk_size=10)

    x = solve(A, b)

    res = x.execute().fetch()
    np.testing.assert_allclose(res, scipy.linalg.solve(data1, data2))
    res = A.dot(x).execute().fetch()
    np.testing.assert_allclose(res, data2)

    data2 = rs.randint(1, 10, (20, 5))

    A = tensor(data1, chunk_size=10)
    b = tensor(data2, chunk_size=10)

    x = solve(A, b)

    res = x.execute().fetch()
    np.testing.assert_allclose(res, scipy.linalg.solve(data1, data2))
    res = A.dot(x).execute().fetch()
    np.testing.assert_allclose(res, data2)

    # test for not all chunks are square in matrix A
    data2 = rs.randint(1, 10, (20, ))

    A = tensor(data1, chunk_size=10)
    b = tensor(data2, chunk_size=10)

    x = solve(A, b)

    res = x.execute().fetch()
    np.testing.assert_allclose(res, scipy.linalg.solve(data1, data2))
    res = A.dot(x).execute().fetch()
    np.testing.assert_allclose(res, data2)

    A = tensor(data1, chunk_size=(10, 15))
    b = tensor(data2, chunk_size=10)

    x = solve(A, b)

    res = x.execute().fetch()
    np.testing.assert_allclose(res, scipy.linalg.solve(data1, data2))
    res = A.dot(x).execute().fetch()
    np.testing.assert_allclose(res, data2)

    # test sparse
    data1 = sps.csr_matrix(rs.randint(1, 10, (20, 20)))
    data2 = rs.randint(1, 10, (20, ))

    A = tensor(data1, chunk_size=10)
    b = tensor(data2, chunk_size=10)

    x = solve(A, b)

    res = x.execute().fetch()
    assert isinstance(res, SparseNDArray)
    np.testing.assert_allclose(data1.dot(res), data2)

    data2 = rs.randint(1, 10, (20, 5))

    A = tensor(data1, chunk_size=10)
    b = tensor(data2, chunk_size=10)

    x = solve(A, b)

    res = A.dot(x).execute().fetch()
    assert isinstance(res, SparseNDArray)
    np.testing.assert_allclose(res, data2)

    # test for not all chunks are square in matrix A
    data2 = rs.randint(1, 10, (20, ))

    A = tensor(data1, chunk_size=10)
    b = tensor(data2, chunk_size=10)

    x = solve(A, b)

    res = A.dot(x).execute().fetch()
    np.testing.assert_allclose(res, data2)