pyqrack-cuda 1.49.6__tar.gz → 1.49.8__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.49.6/pyqrack_cuda.egg-info → pyqrack_cuda-1.49.8}/PKG-INFO +1 -1
  2. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack/qrack_ace_backend.py +26 -16
  3. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8/pyqrack_cuda.egg-info}/PKG-INFO +1 -1
  4. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/setup.py +1 -1
  5. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/LICENSE +0 -0
  6. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/MANIFEST.in +0 -0
  7. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/Makefile +0 -0
  8. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/README.md +0 -0
  9. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyproject.toml +0 -0
  10. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack/__init__.py +0 -0
  11. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack/neuron_activation_fn.py +0 -0
  12. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack/pauli.py +0 -0
  13. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack/qrack_circuit.py +0 -0
  14. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack/qrack_neuron.py +0 -0
  15. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack/qrack_neuron_torch_layer.py +0 -0
  16. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack/qrack_simulator.py +0 -0
  17. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack/qrack_stabilizer.py +0 -0
  18. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack/qrack_system/__init__.py +0 -0
  19. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack/qrack_system/qrack_system.py +0 -0
  20. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack/quimb_circuit_type.py +0 -0
  21. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack/stats/__init__.py +0 -0
  22. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack/stats/load_quantized_data.py +0 -0
  23. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack/stats/quantize_by_range.py +0 -0
  24. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack_cuda.egg-info/SOURCES.txt +0 -0
  25. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack_cuda.egg-info/dependency_links.txt +0 -0
  26. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack_cuda.egg-info/not-zip-safe +0 -0
  27. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack_cuda.egg-info/requires.txt +0 -0
  28. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/pyqrack_cuda.egg-info/top_level.txt +0 -0
  29. {pyqrack_cuda-1.49.6 → pyqrack_cuda-1.49.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyqrack-cuda
3
- Version: 1.49.6
3
+ Version: 1.49.8
4
4
  Summary: pyqrack - Pure Python vm6502q/qrack Wrapper
5
5
  Home-page: https://github.com/vm6502q/pyqrack
6
6
  Author: Daniel Strano
@@ -340,12 +340,15 @@ class QrackAceBackend:
340
340
 
341
341
  if not math.isclose(ph, -lm) and not math.isclose(abs(ph), math.pi / 2):
342
342
  # Produces/destroys superposition
343
- self._correct_if_like_h(th, lq)
344
- self._decode(lq, hq)
343
+ if self._is_init[lq]:
344
+ self._correct_if_like_h(th, lq)
345
+ self.sim.mcx([hq[0]], hq[1])
345
346
  self.sim.u(hq[0], th, ph, lm)
346
- if not self._is_init[lq]:
347
- self.sim.u(hq[2], th, ph, lm)
348
- self._encode(lq, hq)
347
+ self.sim.u(hq[2], th, ph, lm)
348
+ if self._is_init[lq]:
349
+ self.sim.mcx([hq[0]], hq[1])
350
+ else:
351
+ self._encode(lq, hq)
349
352
  else:
350
353
  # Shouldn't produce/destroy superposition
351
354
  for b in hq:
@@ -361,7 +364,7 @@ class QrackAceBackend:
361
364
  th -= 2 * math.pi
362
365
  while th <= -math.pi:
363
366
  th += 2 * math.pi
364
- if p == Pauli.PauliY:
367
+ if self._is_init[lq] and (p == Pauli.PauliY):
365
368
  self._correct_if_like_h(th, lq)
366
369
 
367
370
  if (p == Pauli.PauliZ) or math.isclose(abs(th), math.pi):
@@ -370,11 +373,14 @@ class QrackAceBackend:
370
373
  self.sim.r(p, th, b)
371
374
  else:
372
375
  # Produces/destroys superposition
373
- self._decode(lq, hq)
376
+ if self._is_init[lq]:
377
+ self.sim.mcx([hq[0]], hq[1])
374
378
  self.sim.r(p, th, hq[0])
375
- if not self._is_init[lq]:
376
- self.sim.r(p, th, hq[2])
377
- self._encode(lq, hq)
379
+ self.sim.r(p, th, hq[2])
380
+ if self._is_init[lq]:
381
+ self.sim.mcx([hq[0]], hq[1])
382
+ else:
383
+ self._encode(lq, hq)
378
384
 
379
385
  def h(self, lq):
380
386
  hq = self._unpack(lq)
@@ -382,11 +388,15 @@ class QrackAceBackend:
382
388
  self.sim.h(hq[0])
383
389
  return
384
390
 
385
- self._decode(lq, hq)
391
+ self._correct(lq)
392
+ if self._is_init[lq]:
393
+ self.sim.mcx([hq[0]], hq[1])
386
394
  self.sim.h(hq[0])
387
- if not self._is_init[lq]:
388
- self.sim.h(hq[2])
389
- self._encode(lq, hq)
395
+ self.sim.h(hq[2])
396
+ if self._is_init[lq]:
397
+ self.sim.mcx([hq[0]], hq[1])
398
+ else:
399
+ self._encode(lq, hq)
390
400
 
391
401
  def s(self, lq):
392
402
  hq = self._unpack(lq)
@@ -1103,7 +1113,7 @@ class QrackAceBackend:
1103
1113
  if self._coupling_map:
1104
1114
  return self._coupling_map
1105
1115
 
1106
- coupling_map = []
1116
+ coupling_map = set()
1107
1117
  rows, cols = self.row_length, self.col_length
1108
1118
 
1109
1119
  # Map each column index to its full list of logical qubit indices
@@ -1131,7 +1141,7 @@ class QrackAceBackend:
1131
1141
  for r in range(0, rows):
1132
1142
  b = logical_index(r, c)
1133
1143
  if a != b:
1134
- coupling_map.append((a, b))
1144
+ coupling_map.add((a, b))
1135
1145
 
1136
1146
  self._coupling_map = sorted(coupling_map)
1137
1147
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyqrack-cuda
3
- Version: 1.49.6
3
+ Version: 1.49.8
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.49.6"
10
+ VERSION = "1.49.8"
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