pyqrack-cuda 1.55.1__tar.gz → 1.55.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.
- {pyqrack_cuda-1.55.1/pyqrack_cuda.egg-info → pyqrack_cuda-1.55.3}/PKG-INFO +1 -1
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack/qrack_ace_backend.py +9 -9
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3/pyqrack_cuda.egg-info}/PKG-INFO +1 -1
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/setup.py +1 -1
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/LICENSE +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/MANIFEST.in +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/Makefile +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/README.md +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyproject.toml +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack/__init__.py +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack/neuron_activation_fn.py +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack/pauli.py +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack/qrack_circuit.py +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack/qrack_neuron.py +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack/qrack_neuron_torch_layer.py +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack/qrack_simulator.py +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack/qrack_stabilizer.py +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack/qrack_system/__init__.py +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack/qrack_system/qrack_system.py +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack/quimb_circuit_type.py +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack/stats/__init__.py +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack/stats/load_quantized_data.py +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack/stats/quantize_by_range.py +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack_cuda.egg-info/SOURCES.txt +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack_cuda.egg-info/dependency_links.txt +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack_cuda.egg-info/not-zip-safe +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack_cuda.egg-info/requires.txt +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/pyqrack_cuda.egg-info/top_level.txt +0 -0
- {pyqrack_cuda-1.55.1 → pyqrack_cuda-1.55.3}/setup.cfg +0 -0
@@ -192,11 +192,11 @@ class QrackAceBackend:
|
|
192
192
|
if "QRACK_FPPOW" in os.environ:
|
193
193
|
fppow = int(os.environ.get("QRACK_FPPOW"))
|
194
194
|
if fppow < 5:
|
195
|
-
self._epsilon = 2**-
|
195
|
+
self._epsilon = 2**-9
|
196
196
|
elif fppow > 5:
|
197
|
-
self._epsilon = 2**-
|
197
|
+
self._epsilon = 2**-51
|
198
198
|
else:
|
199
|
-
self._epsilon = 2**-
|
199
|
+
self._epsilon = 2**-22
|
200
200
|
|
201
201
|
self._coupling_map = None
|
202
202
|
|
@@ -385,7 +385,7 @@ class QrackAceBackend:
|
|
385
385
|
syndrome = [1 - p[0], 1 - p[1], 1 - p[2]] if result else [p[0], p[1], p[2]]
|
386
386
|
|
387
387
|
for q in range(3):
|
388
|
-
if syndrome[q] > 0.5:
|
388
|
+
if syndrome[q] > (0.5 + self._epsilon):
|
389
389
|
if q == 1:
|
390
390
|
hq[q].x()
|
391
391
|
else:
|
@@ -790,13 +790,13 @@ class QrackAceBackend:
|
|
790
790
|
return self.sim[b[0]].m(b[1])
|
791
791
|
|
792
792
|
p = self.prob(lq)
|
793
|
-
result = (
|
793
|
+
result = ((p + self._epsilon) >= 1) or (random.random() < p)
|
794
794
|
|
795
795
|
b = hq[0]
|
796
796
|
p = self.sim[b[0]].prob(b[1]) if result else (1 - self.sim[b[0]].prob(b[1]))
|
797
797
|
if p < self._epsilon:
|
798
|
-
if self.sim[b[0]].m(b[1]
|
799
|
-
self.sim[b[0]].x(b[1]
|
798
|
+
if self.sim[b[0]].m(b[1]):
|
799
|
+
self.sim[b[0]].x(b[1])
|
800
800
|
else:
|
801
801
|
self.sim[b[0]].force_m(b[1], result)
|
802
802
|
|
@@ -808,8 +808,8 @@ class QrackAceBackend:
|
|
808
808
|
b = hq[2]
|
809
809
|
p = self.sim[b[0]].prob(b[1]) if result else (1 - self.sim[b[0]].prob(b[1]))
|
810
810
|
if p < self._epsilon:
|
811
|
-
if self.sim[b[0]].m(b[1]
|
812
|
-
self.sim[b[0]].x(b[1]
|
811
|
+
if self.sim[b[0]].m(b[1]):
|
812
|
+
self.sim[b[0]].x(b[1])
|
813
813
|
else:
|
814
814
|
self.sim[b[0]].force_m(b[1], result)
|
815
815
|
|
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
|