@@ -18,21 +18,24 @@ def data_collapse(
18
18
xL : List [List [float ]] = [] # x=(p-pc)L^(1/\nv)
19
19
yL : List [List [float ]] = [] # y=S(p,L)-S(pc,L) or S(p,L)
20
20
pc_list = []
21
+ if not isinstance (p [0 ], list ):
22
+ p = [p for _ in n ] # type: ignore
21
23
for n0 in range (len (n )):
22
24
xL .append ([])
23
25
yL .append ([])
24
- for p0 in range (len (p )):
25
- xL [n0 ].append ((p [p0 ] - pc ) * (n [n0 ] ** (1 / nu )))
26
- pc_L = pc_linear_interpolation (p , obs [n0 ], pc )
26
+ for p0 in range (len (p [ n0 ] )): # type: ignore
27
+ xL [n0 ].append ((p [n0 ][ p0 ] - pc ) * (n [n0 ] ** (1 / nu ))) # type: ignore
28
+ pc_L = pc_linear_interpolation (p [ n0 ] , obs [n0 ], pc ) # type: ignore
27
29
if obs_type == 0 :
28
- yL [n0 ].append ((obs [n0 ][p0 ] - pc_L ) * n [n0 ] ** ( beta / nu ) )
30
+ yL [n0 ].append ((obs [n0 ][p0 ] - pc_L ) * n [n0 ] ** beta )
29
31
# entanglement with only collapse and no crossing
30
32
else :
31
- yL [n0 ].append (obs [n0 ][p0 ] * n [n0 ] ** ( beta / nu ) )
33
+ yL [n0 ].append (obs [n0 ][p0 ] * n [n0 ] ** beta )
32
34
# tripartite mutual information
33
35
pc_list .append (pc_L )
34
-
35
- xL_all = np .reshape (xL , - 1 )
36
+ xL_all = []
37
+ for i in range (len (xL )):
38
+ xL_all .extend (xL [i ])
36
39
yL_ave = []
37
40
loss = []
38
41
for x0 in range (len (xL_all )):
@@ -48,7 +51,7 @@ def data_collapse(
48
51
yL_ave .append (ybar )
49
52
loss = np .sum (loss )
50
53
51
- return pc_list , xL , np . array ( yL ) , loss # type: ignore
54
+ return pc_list , xL , yL , loss # type: ignore
52
55
53
56
54
57
def pc_linear_interpolation (p : List [float ], SA : List [float ], pc_input : float ) -> float :
0 commit comments