pyqrack-cuda 1.48.1__tar.gz → 1.48.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.
Files changed (29) hide show
  1. {pyqrack_cuda-1.48.1/pyqrack_cuda.egg-info → pyqrack_cuda-1.48.3}/PKG-INFO +1 -1
  2. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack/qrack_ace_backend.py +28 -1
  3. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3/pyqrack_cuda.egg-info}/PKG-INFO +1 -1
  4. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/setup.py +1 -1
  5. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/LICENSE +0 -0
  6. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/MANIFEST.in +0 -0
  7. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/Makefile +0 -0
  8. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/README.md +0 -0
  9. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyproject.toml +0 -0
  10. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack/__init__.py +0 -0
  11. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack/neuron_activation_fn.py +0 -0
  12. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack/pauli.py +0 -0
  13. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack/qrack_circuit.py +0 -0
  14. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack/qrack_neuron.py +0 -0
  15. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack/qrack_neuron_torch_layer.py +0 -0
  16. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack/qrack_simulator.py +0 -0
  17. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack/qrack_stabilizer.py +0 -0
  18. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack/qrack_system/__init__.py +0 -0
  19. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack/qrack_system/qrack_system.py +0 -0
  20. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack/quimb_circuit_type.py +0 -0
  21. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack/stats/__init__.py +0 -0
  22. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack/stats/load_quantized_data.py +0 -0
  23. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack/stats/quantize_by_range.py +0 -0
  24. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack_cuda.egg-info/SOURCES.txt +0 -0
  25. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack_cuda.egg-info/dependency_links.txt +0 -0
  26. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack_cuda.egg-info/not-zip-safe +0 -0
  27. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack_cuda.egg-info/requires.txt +0 -0
  28. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/pyqrack_cuda.egg-info/top_level.txt +0 -0
  29. {pyqrack_cuda-1.48.1 → pyqrack_cuda-1.48.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyqrack-cuda
3
- Version: 1.48.1
3
+ Version: 1.48.3
4
4
  Summary: pyqrack - Pure Python vm6502q/qrack Wrapper
5
5
  Home-page: https://github.com/vm6502q/pyqrack
6
6
  Author: Daniel Strano
@@ -142,6 +142,26 @@ class QrackAceBackend:
142
142
  self._cy_shadow(c, t)
143
143
  self.sim.x(t)
144
144
 
145
+ def _ccz_shadow(self, c1, q2, q3):
146
+ self.sim.mcx([q2], q3)
147
+ self.sim.adjt(q3)
148
+ self._cx_shadow(c1, q3)
149
+ self.sim.t(q3)
150
+ self.sim.mcx([q2], q3)
151
+ self.sim.adjt(q3)
152
+ self._cx_shadow(c1, q3)
153
+ self.sim.t(q3)
154
+ self.sim.t(q2)
155
+ self._cx_shadow(c1, q2)
156
+ self.sim.adjt(q2)
157
+ self.sim.t(c1)
158
+ self._cx_shadow(c1, q2)
159
+
160
+ def _ccx_shadow(self, c1, q2, q3):
161
+ self.sim.h(q3)
162
+ self._ccz_shadow(c1, q2, q3)
163
+ self.sim.h(q3)
164
+
145
165
  def _unpack(self, lq, reverse=False):
146
166
  offset = self._hardware_offset[lq]
147
167
 
@@ -198,6 +218,13 @@ class QrackAceBackend:
198
218
 
199
219
  single_bit_value = self.sim.prob(hq[single_bit])
200
220
  single_bit_polarization = max(single_bit_value, 1 - single_bit_value)
221
+
222
+ # Suggestion from Elara (the custom OpenAI GPT):
223
+ # Create phase parity tie before measurement.
224
+ self._ccx_shadow(hq[single_bit], hq[other_bits[0]], self._ancilla)
225
+ self.sim.mcx([hq[other_bits[1]]], self._ancilla)
226
+ self.sim.force_m(self._ancilla, False)
227
+
201
228
  samples = self.sim.measure_shots([hq[other_bits[0]], hq[other_bits[1]]], shots)
202
229
 
203
230
  syndrome_indices = (
@@ -439,7 +466,7 @@ class QrackAceBackend:
439
466
  self._decode(lq2, hq2)
440
467
  gate(hq1, hq2[0])
441
468
  self._encode(lq2, hq2)
442
- elif lq1_lr:
469
+ elif lq2_lr:
443
470
  self._decode(lq1, hq1)
444
471
  gate([hq1[0]], hq2[0])
445
472
  self._encode(lq1, hq1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyqrack-cuda
3
- Version: 1.48.1
3
+ Version: 1.48.3
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.48.1"
10
+ VERSION = "1.48.3"
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