@@ -141,7 +141,7 @@ def take_sample(n_qubits, sample, m, inv_dist):
141141 return sample
142142
143143
144- def get_willow_inv_dist (butterfly_idx_x , butterfly_idx_z , n_qubits , row_len , col_len ):
144+ def get_willow_inv_dist (butterfly_idx_x , butterfly_idx_z , n_qubits , row_len , col_len , t ):
145145 inv_dist = np .zeros (n_qubits , dtype = np .float64 )
146146 for idx in butterfly_idx_x :
147147 b_row , b_col = divmod (idx , row_len )
@@ -153,12 +153,12 @@ def get_willow_inv_dist(butterfly_idx_x, butterfly_idx_z, n_qubits, row_len, col
153153 for q in range (n_qubits ):
154154 q_row , q_col = divmod (q , row_len )
155155 inv_dist [q ] -= abs (q_row - b_row ) + abs (q_col - b_col )
156- inv_dist = 2 ** inv_dist
156+ inv_dist = 2 ** ( inv_dist / t )
157157
158158 return inv_dist
159159
160160
161- def get_inv_dist (butterfly_idx_x , butterfly_idx_z , n_qubits , row_len , col_len ):
161+ def get_inv_dist (butterfly_idx_x , butterfly_idx_z , n_qubits , row_len , col_len , t ):
162162 inv_dist = np .zeros (n_qubits , dtype = np .float64 )
163163 half_row = row_len >> 1
164164 half_col = col_len >> 1
@@ -184,7 +184,7 @@ def get_inv_dist(butterfly_idx_x, butterfly_idx_z, n_qubits, row_len, col_len):
184184 if col_d > half_col :
185185 col_d = col_len - col_d
186186 inv_dist [q ] -= row_d + col_d
187- inv_dist = 2 ** inv_dist
187+ inv_dist = 2 ** ( inv_dist / t )
188188
189189 return inv_dist
190190
@@ -200,9 +200,9 @@ def generate_otoc_samples(J=-1.0, h=2.0, z=4, theta=0.0, t=5, n_qubits=65, pauli
200200 butterfly_idx_x = find_all_str_occurrences (pauli_string , 'X' )
201201 butterfly_idx_z = find_all_str_occurrences (pauli_string , 'Z' )
202202 if is_orbifold :
203- inv_dist += get_inv_dist (butterfly_idx_x , butterfly_idx_z , n_qubits , row_len , col_len )
203+ inv_dist += get_inv_dist (butterfly_idx_x , butterfly_idx_z , n_qubits , row_len , col_len , t )
204204 else :
205- inv_dist += get_willow_inv_dist (butterfly_idx_x , butterfly_idx_z , n_qubits , row_len , col_len )
205+ inv_dist += get_willow_inv_dist (butterfly_idx_x , butterfly_idx_z , n_qubits , row_len , col_len , t )
206206 inv_dist /= 2.0
207207
208208 qubit_pows = [1 << q for q in range (n_qubits )]
0 commit comments