示例#1
0
def test_choi_is_completely_positive():
    D = 2
    K = 2
    choi = rand_ops.rand_map_with_BCSZ_dist(D, K)
    assert choi_is_completely_positive(choi)
    D = 3
    K = 2
    choi = rand_ops.rand_map_with_BCSZ_dist(D, K)
    assert choi_is_completely_positive(choi)
def test_BCSZ_dist_is_trace_preserving():
    D = 2
    K = 2
    choi = rand_ops.rand_map_with_BCSZ_dist(D, K)
    choi_tensor = choi.reshape([D, D, D, D])
    choi_red = np.trace(choi_tensor, axis1=0, axis2=2)
    assert np.isclose(choi_red, np.eye(D)).all()
示例#3
0
def test_BCSZ_dist_is_complete_positive():
    # A quantum channel is completely positive, iff the Choi matrix is non-negative.
    D = 2
    K = 2

    for idx in range(0, 10):
        choi = rand_ops.rand_map_with_BCSZ_dist(D, K)
        assert choi_is_completely_positive(choi)
def test_BCSZ_dist_is_complete_positive():
    # A quantum channel is completely positive, iff the Choi matrix is non-negative.
    D = 2
    K = 2
    N_avg = 10

    eigenvallist = []
    for idx in range(0, N_avg):
        choi = rand_ops.rand_map_with_BCSZ_dist(D, K)
        eigenval = la.eig(choi)[0]
        eigenvallist += [eigenval]
    eigenvalues = np.asarray(eigenvallist)
    eigenvalues = eigenvalues.reshape(1, D * D * N_avg)
    assert np.max(np.absolute(np.imag(eigenvalues))) < 1e-10
    assert np.min(np.real(eigenvalues)) >= -1e-10
示例#5
0
def test_choi_is_trace_preserving():
    D = 2
    K = 2
    choi = rand_ops.rand_map_with_BCSZ_dist(D, K)
    assert choi_is_trace_preserving(choi)