pyqrack-cuda 1.44.25__tar.gz → 1.44.27__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.25/pyqrack_cuda.egg-info → pyqrack_cuda-1.44.27}/PKG-INFO +1 -1
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack/qrack_ace_backend.py +8 -4
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27/pyqrack_cuda.egg-info}/PKG-INFO +1 -1
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/setup.py +1 -1
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/LICENSE +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/MANIFEST.in +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/Makefile +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/README.md +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyproject.toml +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack/__init__.py +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack/neuron_activation_fn.py +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack/pauli.py +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack/qrack_circuit.py +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack/qrack_neuron.py +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack/qrack_neuron_torch_layer.py +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack/qrack_simulator.py +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack/qrack_stabilizer.py +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack/qrack_system/__init__.py +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack/qrack_system/qrack_system.py +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack/quimb_circuit_type.py +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack/stats/__init__.py +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack/stats/load_quantized_data.py +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack/stats/quantize_by_range.py +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack_cuda.egg-info/SOURCES.txt +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack_cuda.egg-info/dependency_links.txt +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack_cuda.egg-info/not-zip-safe +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack_cuda.egg-info/requires.txt +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/pyqrack_cuda.egg-info/top_level.txt +0 -0
- {pyqrack_cuda-1.44.25 → pyqrack_cuda-1.44.27}/setup.cfg +0 -0
@@ -116,14 +116,16 @@ class QrackAceBackend:
|
|
116
116
|
even_row = not (row & 1)
|
117
117
|
if ((not self.alternating_codes) and reverse) or (even_row == reverse):
|
118
118
|
if self._is_init[lq]:
|
119
|
+
# Encode shadow-first
|
119
120
|
self._cx_shadow(hq[0], hq[1])
|
120
121
|
self.sim.mcx([hq[1]], hq[2])
|
121
122
|
else:
|
122
123
|
self.sim.mcx([hq[2]], hq[1])
|
123
124
|
else:
|
124
|
-
self.sim.mcx([hq[0]], hq[1])
|
125
125
|
if self._is_init[lq]:
|
126
|
-
|
126
|
+
# Encode shadow-first
|
127
|
+
self._cx_shadow(hq[0], hq[2])
|
128
|
+
self.sim.mcx([hq[0]], hq[1])
|
127
129
|
self._is_init[lq] = True
|
128
130
|
|
129
131
|
def _decode(self, hq, reverse=False):
|
@@ -133,11 +135,13 @@ class QrackAceBackend:
|
|
133
135
|
row = lq // self.row_length
|
134
136
|
even_row = not (row & 1)
|
135
137
|
if ((not self.alternating_codes) and reverse) or (even_row == reverse):
|
138
|
+
# Decode entangled-first
|
136
139
|
self.sim.mcx([hq[1]], hq[2])
|
137
140
|
self._cx_shadow(hq[0], hq[1])
|
138
141
|
else:
|
139
|
-
|
142
|
+
# Decode entangled-first
|
140
143
|
self.sim.mcx([hq[0]], hq[1])
|
144
|
+
self._cx_shadow(hq[0], hq[2])
|
141
145
|
|
142
146
|
def _correct(self, lq):
|
143
147
|
if not self._is_init[lq]:
|
@@ -160,7 +164,7 @@ class QrackAceBackend:
|
|
160
164
|
single_bit_value = self.sim.prob(hq[single_bit])
|
161
165
|
samples = self.sim.measure_shots([hq[other_bits[0]], hq[other_bits[1]]], shots)
|
162
166
|
syndrome = [0, 0, 0]
|
163
|
-
syndrome_indices = [other_bits[1], other_bits[0]] if single_bit_value else [other_bits[0], other_bits[1]]
|
167
|
+
syndrome_indices = [other_bits[1], other_bits[0]] if (single_bit_value >= 0.5) else [other_bits[0], other_bits[1]]
|
164
168
|
for sample in samples:
|
165
169
|
match sample:
|
166
170
|
case 0:
|
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
|