Example #1
0
 def test_reuse_precomp(self):
     cfn = qu.correlation(None,
                          qu.pauli('z'),
                          qu.pauli('z'),
                          0,
                          1,
                          dims=[2, 2],
                          precomp_func=True)
     assert_allclose(cfn(qu.bell_state('psi-')), -1.0)
     assert_allclose(cfn(qu.bell_state('phi+')), 1.0)
Example #2
0
 def test_classically_no_correlated(self, s, qtype, pre_c):
     p = qu.up(qtype=qtype) & qu.up(qtype=qtype)
     c = qu.correlation(p,
                        qu.pauli(s),
                        qu.pauli(s),
                        0,
                        1,
                        precomp_func=pre_c)
     c = c(p) if pre_c else c
     assert_allclose(c, 0.0)
Example #3
0
 def test_entangled(self, s, ct, pre_c):
     p = qu.bell_state('psi-')
     c = qu.correlation(p,
                        qu.pauli(s),
                        qu.pauli(s),
                        0,
                        1,
                        precomp_func=pre_c)
     c = c(p) if pre_c else c
     assert_allclose(c, ct)
Example #4
0
 def test_classically_correlated(self, s, ct, pre_c):
     p = 0.5 * ((qu.up(qtype='dop') & qu.up(qtype='dop')) +
                (qu.down(qtype='dop') & qu.down(qtype='dop')))
     c = qu.correlation(p,
                        qu.pauli(s),
                        qu.pauli(s),
                        0,
                        1,
                        precomp_func=pre_c)
     c = c(p) if pre_c else c
     assert_allclose(c, ct)
Example #5
0
 def test_types(self, dims, op_sps, p_sps, pre_c):
     p = qu.rand_rho(4, sparse=p_sps)
     c = qu.correlation(p,
                        qu.pauli('x', sparse=op_sps),
                        qu.pauli('z', sparse=op_sps),
                        0,
                        1,
                        dims=dims,
                        precomp_func=pre_c)
     c = c(p) if pre_c else c
     assert c >= -1.0
     assert c <= 1.0
Example #6
0
 def test_entangled(self, dir, ct, pre_c):
     p = bell_state('psi-')
     c = correlation(p, pauli(dir), pauli(dir), 0, 1, precomp_func=pre_c)
     c = c(p) if pre_c else c
     assert_allclose(c, ct)
Example #7
0
 def test_classically_correlated(self, dir, ct, pre_c):
     p = 0.5 * ((up(qtype='dop') & up(qtype='dop')) +
                (down(qtype='dop') & down(qtype='dop')))
     c = correlation(p, pauli(dir), pauli(dir), 0, 1, precomp_func=pre_c)
     c = c(p) if pre_c else c
     assert_allclose(c, ct)
Example #8
0
 def test_classically_no_correlated(self, dir, qtype, pre_c):
     p = up(qtype=qtype) & up(qtype=qtype)
     c = correlation(p, pauli(dir), pauli(dir), 0, 1, precomp_func=pre_c)
     c = c(p) if pre_c else c
     assert_allclose(c, 0.0)