Exemple #1
0
 def test_entangled_permute(self):
     dims = [2, 2, 2]
     a = qu.bell_state(0) & qu.up()
     assert_allclose(qu.mutinf_subsys(a, dims, 0, 1), 2.)
     b = qu.permute(a, dims, [1, 2, 0])
     assert_allclose(qu.mutinf_subsys(b, dims, 0, 1), 0., atol=1e-12)
     assert_allclose(qu.mutinf_subsys(b, dims, 0, 2), 2.)
Exemple #2
0
 def test_permute_sparse_op(self):
     dims = [3, 2, 5, 4]
     a = qu.rand_rho(qu.prod(dims), sparse=True, density=0.5)
     b = qu.permute(a, dims, [3, 1, 2, 0])
     c = qu.permute(a.A, dims, [3, 1, 2, 0])
     assert_allclose(b.A, c)
Exemple #3
0
 def test_permute_op(self):
     a = qu.pauli('x') & qu.pauli('y') & qu.pauli('z')
     b = qu.permute(a, [2, 2, 2], [2, 0, 1])
     assert_allclose(b, qu.pauli('z') & qu.pauli('x') & qu.pauli('y'))
Exemple #4
0
 def test_permute_ket(self):
     a = qu.up() & qu.plus() & qu.yplus()
     b = qu.permute(a, [2, 2, 2], [2, 0, 1])
     assert_allclose(b, qu.yplus() & qu.up() & qu.plus())
Exemple #5
0
 def test_interleaving(self):
     p = qu.permute(qu.singlet() & qu.singlet(), [2, 2, 2, 2], [0, 2, 1, 3])
     assert qu.logneg(p, [2] * 4, sysa=[0, 3]) > 2 - 1e-13
Exemple #6
0
 def test_interleaving(self):
     p = permute(singlet() & singlet(), [2, 2, 2, 2], [0, 2, 1, 3])
     assert logneg(p, [2] * 4, sysa=[0, 3]) > 2 - 1e-13
Exemple #7
0
 def test_permute_sparse_ket(self):
     dims = [3, 2, 5, 4]
     a = rand_ket(prod(dims), sparse=True, density=0.5)
     b = permute(a, dims, [3, 1, 2, 0])
     c = permute(a.A, dims, [3, 1, 2, 0])
     assert_allclose(b.A, c)
Exemple #8
0
 def test_permute_ket(self):
     a = up() & plus() & yplus()
     b = permute(a, [2, 2, 2], [2, 0, 1])
     assert_allclose(b, yplus() & up() & plus())