pyqrack-complex128 2.26.1__tar.gz → 2.26.2__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_complex128-2.26.1/pyqrack_complex128.egg-info → pyqrack_complex128-2.26.2}/PKG-INFO +1 -1
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/qrack_ace_backend.py +14 -5
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2/pyqrack_complex128.egg-info}/PKG-INFO +1 -1
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack_complex128.egg-info/SOURCES.txt +0 -3
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/setup.py +1 -1
- pyqrack_complex128-2.26.1/pyqrack/qrack_system/qrack_cl_precompile/qrack_cl_precompile +0 -0
- pyqrack_complex128-2.26.1/pyqrack/qrack_system/qrack_lib/libqrack_pinvoke.so +0 -0
- pyqrack_complex128-2.26.1/pyqrack/qrack_system/qrack_lib/libqrack_pinvoke.so.10.13.1 +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/LICENSE +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/MANIFEST.in +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/Makefile +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/README.md +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyproject.toml +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/__init__.py +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/neuron_activation_fn.py +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/pauli.py +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/qrack_circuit.py +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/qrack_near_clifford_qec_backend.py +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/qrack_neuron.py +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/qrack_neuron_torch_layer.py +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/qrack_simulator.py +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/qrack_stabilizer.py +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/qrack_system/__init__.py +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/qrack_system/qrack_system.py +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/quimb_circuit_type.py +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/stats/__init__.py +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/stats/load_quantized_data.py +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/stats/quantize_by_range.py +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack_complex128.egg-info/dependency_links.txt +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack_complex128.egg-info/not-zip-safe +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack_complex128.egg-info/requires.txt +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack_complex128.egg-info/top_level.txt +0 -0
- {pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/setup.cfg +0 -0
|
@@ -1384,6 +1384,15 @@ class QrackAceBackend:
|
|
|
1384
1384
|
def _apply_coupling(self, pauli, anti, qb1, hq1, qb2, hq2, lq1_lr, lq1=None, lq2=None):
|
|
1385
1385
|
shadow_targets = []
|
|
1386
1386
|
|
|
1387
|
+
if len(hq1) == len(hq2) and all(hq1[i][0] == hq2[i][0] for i in range(len(hq1))):
|
|
1388
|
+
for i in range(len(hq1)):
|
|
1389
|
+
sim_id, idx1 = hq1[i]
|
|
1390
|
+
gate_fn, shadow_fn = self._get_gate(pauli, anti, sim_id)
|
|
1391
|
+
_, idx2 = hq2[i]
|
|
1392
|
+
self.sim[sim_id].swap(idx1, idx2)
|
|
1393
|
+
gate_fn([idx1], idx2)
|
|
1394
|
+
return
|
|
1395
|
+
|
|
1387
1396
|
# Logical-level error-detection gadget: an earlier version of this
|
|
1388
1397
|
# also captured lq1's own logical value into a dedicated ancilla
|
|
1389
1398
|
# (via a nested cx()), on the theory that the shadow-coupling
|
|
@@ -1410,7 +1419,7 @@ class QrackAceBackend:
|
|
|
1410
1419
|
# a lq2-invariant check for that gate family, same reasoning as
|
|
1411
1420
|
# the single-replica CZ dual-check elsewhere.
|
|
1412
1421
|
anc2 = None
|
|
1413
|
-
if self.is_error_detection and not self._in_gadget_capture and (len(
|
|
1422
|
+
if self.is_error_detection and (not self._in_gadget_capture) and (len(hq2) > 1):
|
|
1414
1423
|
anc_sim = hq1[0][0]
|
|
1415
1424
|
t_sims = {y[0] for y in hq2 if y[0] >= 0}
|
|
1416
1425
|
for x in hq1:
|
|
@@ -1810,9 +1819,6 @@ class QrackAceBackend:
|
|
|
1810
1819
|
hq1 = self._unpack(lq1)
|
|
1811
1820
|
hq2 = self._unpack(lq2)
|
|
1812
1821
|
|
|
1813
|
-
sims1 = {r[0] for r in hq1}
|
|
1814
|
-
sims2 = {r[0] for r in hq2}
|
|
1815
|
-
|
|
1816
1822
|
# Fast/exact path: every replica of lq1 lines up, position-for-
|
|
1817
1823
|
# position, with the corresponding replica of lq2 on the SAME
|
|
1818
1824
|
# underlying simulator. A native swap() there is pure index
|
|
@@ -1852,6 +1858,9 @@ class QrackAceBackend:
|
|
|
1852
1858
|
# with or without this call).
|
|
1853
1859
|
return
|
|
1854
1860
|
|
|
1861
|
+
sims1 = {r[0] for r in hq1}
|
|
1862
|
+
sims2 = {r[0] for r in hq2}
|
|
1863
|
+
|
|
1855
1864
|
if sims1.isdisjoint(sims2):
|
|
1856
1865
|
# Once fully resolved, the swap itself is nothing but a
|
|
1857
1866
|
# reference exchange: self._qubits[lq] is a reference to the
|
|
@@ -2022,7 +2031,7 @@ class QrackAceBackend:
|
|
|
2022
2031
|
# bulk on this path (the len(hqt) > 1 case returns earlier,
|
|
2023
2032
|
# above) and nothing else in this method uses that array anymore.
|
|
2024
2033
|
anc_and = None
|
|
2025
|
-
if self.is_error_detection and not self._in_gadget_capture and (
|
|
2034
|
+
if self.is_error_detection and not self._in_gadget_capture and (len(hqt) > 1):
|
|
2026
2035
|
found = False
|
|
2027
2036
|
anc_sim = hq1[0][0]
|
|
2028
2037
|
t_sims = {y[0] for y in hqt if y[0] >= 0}
|
{pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack_complex128.egg-info/SOURCES.txt
RENAMED
|
@@ -17,9 +17,6 @@ pyqrack/qrack_stabilizer.py
|
|
|
17
17
|
pyqrack/quimb_circuit_type.py
|
|
18
18
|
pyqrack/qrack_system/__init__.py
|
|
19
19
|
pyqrack/qrack_system/qrack_system.py
|
|
20
|
-
pyqrack/qrack_system/qrack_cl_precompile/qrack_cl_precompile
|
|
21
|
-
pyqrack/qrack_system/qrack_lib/libqrack_pinvoke.so
|
|
22
|
-
pyqrack/qrack_system/qrack_lib/libqrack_pinvoke.so.10.13.1
|
|
23
20
|
pyqrack/stats/__init__.py
|
|
24
21
|
pyqrack/stats/load_quantized_data.py
|
|
25
22
|
pyqrack/stats/quantize_by_range.py
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
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
|
{pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/qrack_near_clifford_qec_backend.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/qrack_system/qrack_system.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack/stats/load_quantized_data.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack_complex128.egg-info/not-zip-safe
RENAMED
|
File without changes
|
{pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack_complex128.egg-info/requires.txt
RENAMED
|
File without changes
|
{pyqrack_complex128-2.26.1 → pyqrack_complex128-2.26.2}/pyqrack_complex128.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|