pyqrack-cuda 1.44.23__tar.gz → 1.44.24__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.23/pyqrack_cuda.egg-info → pyqrack_cuda-1.44.24}/PKG-INFO +1 -1
  2. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack/qrack_ace_backend.py +19 -6
  3. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24/pyqrack_cuda.egg-info}/PKG-INFO +1 -1
  4. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/setup.py +1 -1
  5. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/LICENSE +0 -0
  6. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/MANIFEST.in +0 -0
  7. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/Makefile +0 -0
  8. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/README.md +0 -0
  9. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyproject.toml +0 -0
  10. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack/__init__.py +0 -0
  11. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack/neuron_activation_fn.py +0 -0
  12. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack/pauli.py +0 -0
  13. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack/qrack_circuit.py +0 -0
  14. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack/qrack_neuron.py +0 -0
  15. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack/qrack_neuron_torch_layer.py +0 -0
  16. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack/qrack_simulator.py +0 -0
  17. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack/qrack_stabilizer.py +0 -0
  18. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack/qrack_system/__init__.py +0 -0
  19. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack/qrack_system/qrack_system.py +0 -0
  20. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack/quimb_circuit_type.py +0 -0
  21. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack/stats/__init__.py +0 -0
  22. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack/stats/load_quantized_data.py +0 -0
  23. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack/stats/quantize_by_range.py +0 -0
  24. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack_cuda.egg-info/SOURCES.txt +0 -0
  25. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack_cuda.egg-info/dependency_links.txt +0 -0
  26. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack_cuda.egg-info/not-zip-safe +0 -0
  27. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack_cuda.egg-info/requires.txt +0 -0
  28. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/pyqrack_cuda.egg-info/top_level.txt +0 -0
  29. {pyqrack_cuda-1.44.23 → pyqrack_cuda-1.44.24}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyqrack-cuda
3
- Version: 1.44.23
3
+ Version: 1.44.24
4
4
  Summary: pyqrack - Pure Python vm6502q/qrack Wrapper
5
5
  Home-page: https://github.com/vm6502q/pyqrack
6
6
  Author: Daniel Strano
@@ -38,8 +38,18 @@ class QrackAceBackend:
38
38
  col_length(int): Qubits per column.
39
39
  """
40
40
 
41
- def __init__(self, qubit_count=-1, alternating_codes=True, isTensorNetwork=False, toClone=None):
42
- self.sim = toClone.sim.clone() if toClone else QrackSimulator(3 * qubit_count + 1, isTensorNetwork=isTensorNetwork)
41
+ def __init__(
42
+ self,
43
+ qubit_count=-1,
44
+ alternating_codes=True,
45
+ isTensorNetwork=False,
46
+ toClone=None,
47
+ ):
48
+ self.sim = (
49
+ toClone.sim.clone()
50
+ if toClone
51
+ else QrackSimulator(3 * qubit_count + 1, isTensorNetwork=isTensorNetwork)
52
+ )
43
53
  self._ancilla = 3 * qubit_count
44
54
  self._factor_width(qubit_count)
45
55
  self.alternating_codes = alternating_codes
@@ -130,6 +140,8 @@ class QrackAceBackend:
130
140
  self.sim.mcx([hq[0]], hq[1])
131
141
 
132
142
  def _correct(self, lq):
143
+ if not self._is_init[lq]:
144
+ return
133
145
  # We can't use true syndrome-based error correction,
134
146
  # because one of the qubits in the code is separated.
135
147
  # However, we can get pretty close!
@@ -156,7 +168,7 @@ class QrackAceBackend:
156
168
  even_row = not (row & 1)
157
169
  single_bit = 0
158
170
  other_bits = []
159
- if (not self.alternating_codes or even_row):
171
+ if not self.alternating_codes or even_row:
160
172
  single_bit = 2
161
173
  other_bits = [0, 1]
162
174
  else:
@@ -193,6 +205,8 @@ class QrackAceBackend:
193
205
  self.sim.force_m(self._ancilla, False)
194
206
 
195
207
  def _correct_if_like_h(self, th, lq):
208
+ if not self._is_init[lq]:
209
+ return
196
210
  while th > math.pi:
197
211
  th -= 2 * math.pi
198
212
  while th <= -math.pi:
@@ -201,7 +215,6 @@ class QrackAceBackend:
201
215
  if not math.isclose(th, 0):
202
216
  self._correct(lq)
203
217
 
204
-
205
218
  def u(self, th, ph, lm, lq):
206
219
  while ph > math.pi:
207
220
  ph -= 2 * math.pi
@@ -242,7 +255,6 @@ class QrackAceBackend:
242
255
  self._encode(hq)
243
256
 
244
257
  def h(self, lq):
245
- self._correct(lq)
246
258
  hq = self._unpack(lq)
247
259
  self._decode(hq)
248
260
  self.sim.h(hq[0])
@@ -302,6 +314,8 @@ class QrackAceBackend:
302
314
  return
303
315
 
304
316
  if not self._is_init[lq1]:
317
+ hq1 = self._unpack(lq1)
318
+ hq2 = self._unpack(lq2)
305
319
  gate([hq1[0]], hq2[0])
306
320
  gate([hq1[1]], hq2[1])
307
321
  gate([hq1[2]], hq2[2])
@@ -343,7 +357,6 @@ class QrackAceBackend:
343
357
  gate([hq1[1]], hq2[1])
344
358
  gate([hq1[2]], hq2[2])
345
359
 
346
-
347
360
  def cx(self, lq1, lq2):
348
361
  self._cpauli(lq1, lq2, False, Pauli.PauliX)
349
362
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyqrack-cuda
3
- Version: 1.44.23
3
+ Version: 1.44.24
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.23"
10
+ VERSION = "1.44.24"
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