Example #1
0
 def test_rand_mps_right_canonize(self):
     n = 10
     k = MPS_rand_state(n,
                        10,
                        site_tag_id="foo{}",
                        tags='bar',
                        normalize=False)
     k.right_canonize(normalize=True)
     assert_allclose(k.H @ k, 1)
     p_tn = (k.H & k) ^ slice(..., 0, -1)
     assert_allclose(p_tn['foo1'].data, np.eye(10), atol=1e-13)
Example #2
0
 def test_rand_mps_right_canonize_with_bra(self):
     n = 10
     k = MPS_rand_state(n,
                        10,
                        site_tag_id="foo{}",
                        tags='bar',
                        normalize=False)
     b = k.H
     k.right_canonize(normalize=True, bra=b)
     assert_allclose(b @ k, 1)
     p_tn = (b & k) ^ slice(..., 0)
     assert_allclose(p_tn['foo1'].data, np.eye(10), atol=1e-13)
Example #3
0
    def test_schmidt_values_entropy_gap_simple(self):
        n = 12
        p = MPS_rand_state(n, 16)
        p.right_canonize()
        svns = []
        sgs = []
        for i in range(1, n):
            sgs.append(p.schmidt_gap(i, current_orthog_centre=i - 1))
            svns.append(p.entropy(i, current_orthog_centre=i))

        pd = p.to_dense()
        ex_svns = [entropy_subsys(pd, [2] * n, range(i)) for i in range(1, n)]
        ex_sgs = [schmidt_gap(pd, [2] * n, range(i)) for i in range(1, n)]
        assert_allclose(ex_svns, svns)
        assert_allclose(ex_sgs, sgs)