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.

Files changed (28) hide show
  1. {pyqrackising-9.5.2/pyqrackising.egg-info → pyqrackising-9.5.3}/PKG-INFO +1 -1
  2. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyproject.toml +1 -1
  3. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/otoc.py +15 -1
  4. {pyqrackising-9.5.2 → pyqrackising-9.5.3/pyqrackising.egg-info}/PKG-INFO +1 -1
  5. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/setup.py +1 -1
  6. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/LICENSE.md +0 -0
  7. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/MANIFEST.in +0 -0
  8. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/README.md +0 -0
  9. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/__init__.py +0 -0
  10. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/convert_tensor_network_to_tsp.py +0 -0
  11. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/generate_tfim_samples.py +0 -0
  12. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/kernels.cl +0 -0
  13. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/maxcut_tfim.py +0 -0
  14. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/maxcut_tfim_sparse.py +0 -0
  15. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/maxcut_tfim_streaming.py +0 -0
  16. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/maxcut_tfim_util.py +0 -0
  17. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/spin_glass_solver.py +0 -0
  18. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/spin_glass_solver_sparse.py +0 -0
  19. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/spin_glass_solver_streaming.py +0 -0
  20. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/tfim_magnetization.py +0 -0
  21. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/tfim_square_magnetization.py +0 -0
  22. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/tsp.py +0 -0
  23. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising/tsp_maxcut.py +0 -0
  24. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising.egg-info/SOURCES.txt +0 -0
  25. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising.egg-info/dependency_links.txt +0 -0
  26. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising.egg-info/not-zip-safe +0 -0
  27. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/pyqrackising.egg-info/top_level.txt +0 -0
  28. {pyqrackising-9.5.2 → pyqrackising-9.5.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyqrackising
3
- Version: 9.5.2
3
+ Version: 9.5.3
4
4
  Summary: Fast MAXCUT, TSP, and sampling heuristics from near-ideal transverse field Ising model (TFIM)
5
5
  Home-page: https://github.com/vm6502q/PyQrackIsing
6
6
  Author: Dan Strano
@@ -10,7 +10,7 @@ build-backend = "setuptools.build_meta"
10
10
 
11
11
  [project]
12
12
  name = "pyqrackising"
13
- version = "9.5.2"
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
- samples.append(take_sample(n_qubits, 0, m, inv_dist))
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyqrackising
3
- Version: 9.5.2
3
+ Version: 9.5.3
4
4
  Summary: Fast MAXCUT, TSP, and sampling heuristics from near-ideal transverse field Ising model (TFIM)
5
5
  Home-page: https://github.com/vm6502q/PyQrackIsing
6
6
  Author: Dan Strano
@@ -7,7 +7,7 @@ with open(README_PATH) as readme_file:
7
7
 
8
8
  setup(
9
9
  name='pyqrackising',
10
- version='9.5.2',
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