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)
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)
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)