pyqrack-cuda 1.44.34__tar.gz → 1.45.0__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.
- {pyqrack_cuda-1.44.34/pyqrack_cuda.egg-info → pyqrack_cuda-1.45.0}/PKG-INFO +1 -1
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack/qrack_ace_backend.py +9 -12
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0/pyqrack_cuda.egg-info}/PKG-INFO +1 -1
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/setup.py +1 -1
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/LICENSE +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/MANIFEST.in +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/Makefile +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/README.md +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyproject.toml +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack/__init__.py +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack/neuron_activation_fn.py +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack/pauli.py +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack/qrack_circuit.py +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack/qrack_neuron.py +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack/qrack_neuron_torch_layer.py +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack/qrack_simulator.py +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack/qrack_stabilizer.py +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack/qrack_system/__init__.py +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack/qrack_system/qrack_system.py +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack/quimb_circuit_type.py +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack/stats/__init__.py +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack/stats/load_quantized_data.py +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack/stats/quantize_by_range.py +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack_cuda.egg-info/SOURCES.txt +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack_cuda.egg-info/dependency_links.txt +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack_cuda.egg-info/not-zip-safe +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack_cuda.egg-info/requires.txt +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/pyqrack_cuda.egg-info/top_level.txt +0 -0
- {pyqrack_cuda-1.44.34 → pyqrack_cuda-1.45.0}/setup.cfg +0 -0
@@ -434,23 +434,20 @@ class QrackAceBackend:
|
|
434
434
|
bits = []
|
435
435
|
for q in other_bits:
|
436
436
|
bits.append(self.sim.m(hq[q]))
|
437
|
-
|
438
|
-
syndrome += 1
|
439
|
-
# single_bit never shares entanglement with other_bits.
|
440
|
-
# In the ideal, it should simply duplicate other_bits.
|
441
|
-
# So get more precision by using it analytically.
|
442
|
-
analytical = self.sim.prob(hq[single_bit])
|
443
|
-
syndrome += analytical
|
444
|
-
result = True if (syndrome >= 1.5) else False
|
437
|
+
syndrome += bits[-1]
|
445
438
|
# The two separable parts of the code are correlated,
|
446
439
|
# but not non-locally, via entanglement.
|
447
440
|
# Prefer to collapse the analytical part toward agreement.
|
448
|
-
|
441
|
+
if syndrome == 0:
|
442
|
+
self.sim.force_m(hq[single_bit], False)
|
443
|
+
elif syndrome == 2:
|
444
|
+
syndrome += self.sim.force_m(hq[single_bit], True)
|
445
|
+
else:
|
446
|
+
syndrome += self.sim.m(hq[single_bit])
|
447
|
+
result = True if (syndrome > 1) else False
|
449
448
|
for i in range(2):
|
450
449
|
if bits[i] != result:
|
451
450
|
self.sim.x(hq[other_bits[i]])
|
452
|
-
if bits[2] != result:
|
453
|
-
self.sim.x(hq[single_bit])
|
454
451
|
self._is_init[lq] = False
|
455
452
|
|
456
453
|
return result
|
@@ -467,7 +464,7 @@ class QrackAceBackend:
|
|
467
464
|
|
468
465
|
return result
|
469
466
|
|
470
|
-
def measure_shots(self, q, s, high_accuracy=
|
467
|
+
def measure_shots(self, q, s, high_accuracy=True):
|
471
468
|
if high_accuracy:
|
472
469
|
samples = []
|
473
470
|
for _ in range(s):
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|