pyqrack-cuda 1.44.33__tar.gz → 1.44.35__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.
Files changed (29) hide show
  1. {pyqrack_cuda-1.44.33/pyqrack_cuda.egg-info → pyqrack_cuda-1.44.35}/PKG-INFO +1 -1
  2. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack/qrack_ace_backend.py +14 -14
  3. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35/pyqrack_cuda.egg-info}/PKG-INFO +1 -1
  4. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/setup.py +1 -1
  5. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/LICENSE +0 -0
  6. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/MANIFEST.in +0 -0
  7. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/Makefile +0 -0
  8. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/README.md +0 -0
  9. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyproject.toml +0 -0
  10. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack/__init__.py +0 -0
  11. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack/neuron_activation_fn.py +0 -0
  12. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack/pauli.py +0 -0
  13. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack/qrack_circuit.py +0 -0
  14. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack/qrack_neuron.py +0 -0
  15. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack/qrack_neuron_torch_layer.py +0 -0
  16. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack/qrack_simulator.py +0 -0
  17. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack/qrack_stabilizer.py +0 -0
  18. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack/qrack_system/__init__.py +0 -0
  19. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack/qrack_system/qrack_system.py +0 -0
  20. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack/quimb_circuit_type.py +0 -0
  21. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack/stats/__init__.py +0 -0
  22. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack/stats/load_quantized_data.py +0 -0
  23. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack/stats/quantize_by_range.py +0 -0
  24. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack_cuda.egg-info/SOURCES.txt +0 -0
  25. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack_cuda.egg-info/dependency_links.txt +0 -0
  26. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack_cuda.egg-info/not-zip-safe +0 -0
  27. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack_cuda.egg-info/requires.txt +0 -0
  28. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/pyqrack_cuda.egg-info/top_level.txt +0 -0
  29. {pyqrack_cuda-1.44.33 → pyqrack_cuda-1.44.35}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyqrack-cuda
3
- Version: 1.44.33
3
+ Version: 1.44.35
4
4
  Summary: pyqrack - Pure Python vm6502q/qrack Wrapper
5
5
  Home-page: https://github.com/vm6502q/pyqrack
6
6
  Author: Daniel Strano
@@ -434,33 +434,33 @@ class QrackAceBackend:
434
434
  bits = []
435
435
  for q in other_bits:
436
436
  bits.append(self.sim.m(hq[q]))
437
- if bits[-1]:
438
- syndrome += 1
439
- # single_bit never shares entanglement with other_bits.
440
- # In the ideal, it should simply duplicate other_bits.
441
- # So get more precision by using it analytically.
442
- analytical = self.sim.prob(hq[single_bit])
443
- syndrome += analytical
444
- result = True if (syndrome >= 1.5) else False
437
+ syndrome += bits[-1]
445
438
  # The two separable parts of the code are correlated,
446
439
  # but not non-locally, via entanglement.
447
440
  # Prefer to collapse the analytical part toward agreement.
448
- bits.append(self.sim.m(hq[single_bit]) if math.isclose(analytical, 0 if result else 1) else self.sim.force_m(hq[single_bit], result))
441
+ if syndrome == 0:
442
+ self.sim.force_m(hq[single_bit], False)
443
+ elif syndrome == 2:
444
+ syndrome += self.sim.force_m(hq[single_bit], True)
445
+ else:
446
+ syndrome += self.sim.m(hq[single_bit])
447
+ result = True if (syndrome > 1) else False
449
448
  for i in range(2):
450
449
  if bits[i] != result:
451
450
  self.sim.x(hq[other_bits[i]])
452
- if bits[2] != result:
453
- self.sim.x(hq[single_bit])
454
451
  self._is_init[lq] = False
455
452
 
456
453
  return result
457
454
 
458
455
  def m_all(self):
459
456
  result = 0
460
- for lq in range(self.sim.num_qubits() // 3):
461
- result <<= 1
457
+ # Whenever a nonzero syndrome occurs (so the code has an error),
458
+ # we insert the more-probable results and collapse towards it.
459
+ # Randomize the order of post-selection to amortize error.
460
+ lqubits = random.shuffle(list(range(self.sim.num_qubits() // 3)))
461
+ for lq in lqubits:
462
462
  if self.m(lq):
463
- result |= 1
463
+ result |= 1 << lq
464
464
 
465
465
  return result
466
466
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyqrack-cuda
3
- Version: 1.44.33
3
+ Version: 1.44.35
4
4
  Summary: pyqrack - Pure Python vm6502q/qrack Wrapper
5
5
  Home-page: https://github.com/vm6502q/pyqrack
6
6
  Author: Daniel Strano
@@ -7,7 +7,7 @@ from setuptools import setup
7
7
  from setuptools.command.build_py import build_py
8
8
 
9
9
 
10
- VERSION = "1.44.33"
10
+ VERSION = "1.44.35"
11
11
 
12
12
  # Read long description from README.
13
13
  README_PATH = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'README.md')
File without changes
File without changes
File without changes
File without changes