pyqrack-cuda 1.52.2__tar.gz → 1.52.4__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.52.2/pyqrack_cuda.egg-info → pyqrack_cuda-1.52.4}/PKG-INFO +1 -1
  2. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack/qrack_ace_backend.py +22 -7
  3. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4/pyqrack_cuda.egg-info}/PKG-INFO +1 -1
  4. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/setup.py +1 -1
  5. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/LICENSE +0 -0
  6. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/MANIFEST.in +0 -0
  7. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/Makefile +0 -0
  8. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/README.md +0 -0
  9. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyproject.toml +0 -0
  10. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack/__init__.py +0 -0
  11. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack/neuron_activation_fn.py +0 -0
  12. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack/pauli.py +0 -0
  13. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack/qrack_circuit.py +0 -0
  14. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack/qrack_neuron.py +0 -0
  15. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack/qrack_neuron_torch_layer.py +0 -0
  16. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack/qrack_simulator.py +0 -0
  17. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack/qrack_stabilizer.py +0 -0
  18. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack/qrack_system/__init__.py +0 -0
  19. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack/qrack_system/qrack_system.py +0 -0
  20. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack/quimb_circuit_type.py +0 -0
  21. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack/stats/__init__.py +0 -0
  22. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack/stats/load_quantized_data.py +0 -0
  23. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack/stats/quantize_by_range.py +0 -0
  24. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack_cuda.egg-info/SOURCES.txt +0 -0
  25. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack_cuda.egg-info/dependency_links.txt +0 -0
  26. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack_cuda.egg-info/not-zip-safe +0 -0
  27. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack_cuda.egg-info/requires.txt +0 -0
  28. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/pyqrack_cuda.egg-info/top_level.txt +0 -0
  29. {pyqrack_cuda-1.52.2 → pyqrack_cuda-1.52.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyqrack-cuda
3
- Version: 1.52.2
3
+ Version: 1.52.4
4
4
  Summary: pyqrack - Pure Python vm6502q/qrack Wrapper
5
5
  Home-page: https://github.com/vm6502q/pyqrack
6
6
  Author: Daniel Strano
@@ -132,7 +132,7 @@ class QrackAceBackend:
132
132
 
133
133
  # You can still "monkey-patch" this, after the constructor.
134
134
  if "QRACK_QUNIT_SEPARABILITY_THRESHOLD" not in os.environ:
135
- self.sim[i].set_sdrp(0.03)
135
+ self.sim[i].set_sdrp(0.04)
136
136
 
137
137
  def clone(self):
138
138
  return QrackAceBackend(toClone=self)
@@ -240,7 +240,7 @@ class QrackAceBackend:
240
240
  b2 = hq[2]
241
241
  self.sim[b2[0]].mcx([b2[1]], hq[1][1])
242
242
 
243
- def _correct(self, lq):
243
+ def _correct(self, lq, phase=False):
244
244
  if self._is_col_long_range[lq % self.row_length]:
245
245
  return
246
246
  # We can't use true syndrome-based error correction,
@@ -251,6 +251,11 @@ class QrackAceBackend:
251
251
  single_bit = 0
252
252
  other_bits = []
253
253
  hq = self._unpack(lq)
254
+
255
+ if phase:
256
+ for b in hq:
257
+ self.sim[b[0]].h(b[1])
258
+
254
259
  if hq[0][0] == hq[1][0]:
255
260
  single_bit = 2
256
261
  other_bits = [0, 1]
@@ -346,6 +351,10 @@ class QrackAceBackend:
346
351
  # Force the syndrome non-pathological.
347
352
  self.sim[ancilla_sim].force_m(ancilla, False)
348
353
 
354
+ if phase:
355
+ for b in hq:
356
+ self.sim[b[0]].h(b[1])
357
+
349
358
  def u(self, lq, th, ph, lm):
350
359
  hq = self._unpack(lq)
351
360
  if len(hq) < 2:
@@ -577,9 +586,12 @@ class QrackAceBackend:
577
586
  b = hq1[0]
578
587
  gate, shadow = self._get_gate(pauli, anti, b[0])
579
588
  gate([b[1]], hq2[0][1])
580
-
581
- shadow(hq1[1], hq2[1])
582
-
589
+ if (lq1_row & 1) == (lq2_row & 1):
590
+ b = hq1[1]
591
+ gate, shadow = self._get_gate(pauli, anti, b[0])
592
+ gate([b[1]], hq2[1][1])
593
+ else:
594
+ shadow(hq1[1], hq2[1])
583
595
  b = hq1[2]
584
596
  gate, shadow = self._get_gate(pauli, anti, b[0])
585
597
  gate([b[1]], hq2[2][1])
@@ -604,8 +616,11 @@ class QrackAceBackend:
604
616
  self._encode_decode(lq2, hq2)
605
617
  self._encode_decode(lq1, hq1)
606
618
 
607
- self._correct(lq1)
608
- self._correct(lq2)
619
+ self._correct(lq1, True)
620
+ if pauli != Pauli.PauliZ:
621
+ self._correct(lq2, False)
622
+ if pauli != Pauli.PauliX:
623
+ self._correct(lq2, True)
609
624
 
610
625
  def cx(self, lq1, lq2):
611
626
  self._cpauli(lq1, lq2, False, Pauli.PauliX)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyqrack-cuda
3
- Version: 1.52.2
3
+ Version: 1.52.4
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.52.2"
10
+ VERSION = "1.52.4"
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
File without changes