pyqrack-cuda 1.44.22__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.22/pyqrack_cuda.egg-info → pyqrack_cuda-1.44.24}/PKG-INFO +1 -1
  2. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack/qrack_ace_backend.py +22 -7
  3. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24/pyqrack_cuda.egg-info}/PKG-INFO +1 -1
  4. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/setup.py +1 -1
  5. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/LICENSE +0 -0
  6. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/MANIFEST.in +0 -0
  7. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/Makefile +0 -0
  8. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/README.md +0 -0
  9. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyproject.toml +0 -0
  10. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack/__init__.py +0 -0
  11. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack/neuron_activation_fn.py +0 -0
  12. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack/pauli.py +0 -0
  13. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack/qrack_circuit.py +0 -0
  14. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack/qrack_neuron.py +0 -0
  15. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack/qrack_neuron_torch_layer.py +0 -0
  16. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack/qrack_simulator.py +0 -0
  17. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack/qrack_stabilizer.py +0 -0
  18. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack/qrack_system/__init__.py +0 -0
  19. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack/qrack_system/qrack_system.py +0 -0
  20. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack/quimb_circuit_type.py +0 -0
  21. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack/stats/__init__.py +0 -0
  22. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack/stats/load_quantized_data.py +0 -0
  23. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack/stats/quantize_by_range.py +0 -0
  24. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack_cuda.egg-info/SOURCES.txt +0 -0
  25. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack_cuda.egg-info/dependency_links.txt +0 -0
  26. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack_cuda.egg-info/not-zip-safe +0 -0
  27. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack_cuda.egg-info/requires.txt +0 -0
  28. {pyqrack_cuda-1.44.22 → pyqrack_cuda-1.44.24}/pyqrack_cuda.egg-info/top_level.txt +0 -0
  29. {pyqrack_cuda-1.44.22 → 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.22
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
@@ -107,7 +117,9 @@ class QrackAceBackend:
107
117
  if ((not self.alternating_codes) and reverse) or (even_row == reverse):
108
118
  if self._is_init[lq]:
109
119
  self._cx_shadow(hq[0], hq[1])
110
- self.sim.mcx([hq[1]], hq[2])
120
+ self.sim.mcx([hq[1]], hq[2])
121
+ else:
122
+ self.sim.mcx([hq[2]], hq[1])
111
123
  else:
112
124
  self.sim.mcx([hq[0]], hq[1])
113
125
  if self._is_init[lq]:
@@ -128,6 +140,8 @@ class QrackAceBackend:
128
140
  self.sim.mcx([hq[0]], hq[1])
129
141
 
130
142
  def _correct(self, lq):
143
+ if not self._is_init[lq]:
144
+ return
131
145
  # We can't use true syndrome-based error correction,
132
146
  # because one of the qubits in the code is separated.
133
147
  # However, we can get pretty close!
@@ -154,7 +168,7 @@ class QrackAceBackend:
154
168
  even_row = not (row & 1)
155
169
  single_bit = 0
156
170
  other_bits = []
157
- if (not self.alternating_codes or even_row):
171
+ if not self.alternating_codes or even_row:
158
172
  single_bit = 2
159
173
  other_bits = [0, 1]
160
174
  else:
@@ -191,6 +205,8 @@ class QrackAceBackend:
191
205
  self.sim.force_m(self._ancilla, False)
192
206
 
193
207
  def _correct_if_like_h(self, th, lq):
208
+ if not self._is_init[lq]:
209
+ return
194
210
  while th > math.pi:
195
211
  th -= 2 * math.pi
196
212
  while th <= -math.pi:
@@ -199,7 +215,6 @@ class QrackAceBackend:
199
215
  if not math.isclose(th, 0):
200
216
  self._correct(lq)
201
217
 
202
-
203
218
  def u(self, th, ph, lm, lq):
204
219
  while ph > math.pi:
205
220
  ph -= 2 * math.pi
@@ -240,7 +255,6 @@ class QrackAceBackend:
240
255
  self._encode(hq)
241
256
 
242
257
  def h(self, lq):
243
- self._correct(lq)
244
258
  hq = self._unpack(lq)
245
259
  self._decode(hq)
246
260
  self.sim.h(hq[0])
@@ -300,6 +314,8 @@ class QrackAceBackend:
300
314
  return
301
315
 
302
316
  if not self._is_init[lq1]:
317
+ hq1 = self._unpack(lq1)
318
+ hq2 = self._unpack(lq2)
303
319
  gate([hq1[0]], hq2[0])
304
320
  gate([hq1[1]], hq2[1])
305
321
  gate([hq1[2]], hq2[2])
@@ -341,7 +357,6 @@ class QrackAceBackend:
341
357
  gate([hq1[1]], hq2[1])
342
358
  gate([hq1[2]], hq2[2])
343
359
 
344
-
345
360
  def cx(self, lq1, lq2):
346
361
  self._cpauli(lq1, lq2, False, Pauli.PauliX)
347
362
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyqrack-cuda
3
- Version: 1.44.22
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.22"
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