pyqrackising 9.5.2__tar.gz → 9.5.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pyqrackising might be problematic. Click here for more details.
- {pyqrackising-9.5.2/pyqrackising.egg-info → pyqrackising-9.5.3}/PKG-INFO +1 -1
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyproject.toml +1 -1
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/otoc.py +15 -1
- {pyqrackising-9.5.2 → pyqrackising-9.5.3/pyqrackising.egg-info}/PKG-INFO +1 -1
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/setup.py +1 -1
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/LICENSE.md +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/MANIFEST.in +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/README.md +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/__init__.py +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/convert_tensor_network_to_tsp.py +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/generate_tfim_samples.py +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/kernels.cl +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/maxcut_tfim.py +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/maxcut_tfim_sparse.py +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/maxcut_tfim_streaming.py +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/maxcut_tfim_util.py +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/spin_glass_solver.py +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/spin_glass_solver_sparse.py +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/spin_glass_solver_streaming.py +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/tfim_magnetization.py +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/tfim_square_magnetization.py +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/tsp.py +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/tsp_maxcut.py +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising.egg-info/SOURCES.txt +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising.egg-info/dependency_links.txt +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising.egg-info/not-zip-safe +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising.egg-info/top_level.txt +0 -0
- {pyqrackising-9.5.2 → pyqrackising-9.5.3}/setup.cfg +0 -0
|
@@ -10,7 +10,7 @@ build-backend = "setuptools.build_meta"
|
|
|
10
10
|
|
|
11
11
|
[project]
|
|
12
12
|
name = "pyqrackising"
|
|
13
|
-
version = "9.5.
|
|
13
|
+
version = "9.5.3"
|
|
14
14
|
requires-python = ">=3.8"
|
|
15
15
|
description = "Fast MAXCUT, TSP, and sampling heuristics from near-ideal transverse field Ising model (TFIM)"
|
|
16
16
|
readme = {file = "README.txt", content-type = "text/markdown"}
|
|
@@ -184,6 +184,12 @@ def get_inv_dist(butterfly_idx_x, butterfly_idx_z, n_qubits, row_len, col_len):
|
|
|
184
184
|
def generate_otoc_samples(J=-1.0, h=2.0, z=4, theta=0.0, t=5, n_qubits=65, pauli_strings = ['X' + 'I' * 64], shots=100, is_orbifold=True):
|
|
185
185
|
thresholds = fix_cdf(get_otoc_hamming_distribution(J, h, z, theta, t, n_qubits, pauli_strings))
|
|
186
186
|
|
|
187
|
+
entropy_frac = 0.0
|
|
188
|
+
for pauli_string in pauli_strings:
|
|
189
|
+
pauli_string = list(pauli_string)
|
|
190
|
+
entropy_frac += pauli_string.count('X') + pauli_string.count('Y') + pauli_string.count('Z')
|
|
191
|
+
entropy_frac /= n_qubits * len(pauli_strings)
|
|
192
|
+
|
|
187
193
|
row_len, col_len = factor_width(n_qubits)
|
|
188
194
|
inv_dist = np.zeros(n_qubits, dtype=np.float64)
|
|
189
195
|
for pauli_string in pauli_strings:
|
|
@@ -195,6 +201,7 @@ def generate_otoc_samples(J=-1.0, h=2.0, z=4, theta=0.0, t=5, n_qubits=65, pauli
|
|
|
195
201
|
inv_dist += get_willow_inv_dist(butterfly_idx_x, butterfly_idx_z, n_qubits, row_len, col_len)
|
|
196
202
|
inv_dist /= 2.0
|
|
197
203
|
|
|
204
|
+
qubit_pows = [1 << q for q in range(n_qubits)]
|
|
198
205
|
samples = []
|
|
199
206
|
for _ in range(shots):
|
|
200
207
|
# First dimension: Hamming weight
|
|
@@ -207,6 +214,13 @@ def generate_otoc_samples(J=-1.0, h=2.0, z=4, theta=0.0, t=5, n_qubits=65, pauli
|
|
|
207
214
|
continue
|
|
208
215
|
|
|
209
216
|
# Second dimension: permutation within Hamming weight
|
|
210
|
-
|
|
217
|
+
if np.random.random() < entropy_frac:
|
|
218
|
+
bit_pows = np.random.choice(qubit_pows, size=m, replace=False)
|
|
219
|
+
sample = 0
|
|
220
|
+
for bit_pow in bit_pows:
|
|
221
|
+
sample |= bit_pow
|
|
222
|
+
samples.append(sample)
|
|
223
|
+
else:
|
|
224
|
+
samples.append(take_sample(n_qubits, 0, m, inv_dist))
|
|
211
225
|
|
|
212
226
|
return samples
|
|
@@ -7,7 +7,7 @@ with open(README_PATH) as readme_file:
|
|
|
7
7
|
|
|
8
8
|
setup(
|
|
9
9
|
name='pyqrackising',
|
|
10
|
-
version='9.5.
|
|
10
|
+
version='9.5.3',
|
|
11
11
|
author='Dan Strano',
|
|
12
12
|
author_email='stranoj@gmail.com',
|
|
13
13
|
description='Fast MAXCUT, TSP, and sampling heuristics from near-ideal transverse field Ising model (TFIM)',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|