pyqrack-cuda 1.44.24__tar.gz → 1.44.26__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.24 → pyqrack_cuda-1.44.26}/Makefile +1 -1
- {pyqrack_cuda-1.44.24/pyqrack_cuda.egg-info → pyqrack_cuda-1.44.26}/PKG-INFO +1 -1
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack/qrack_ace_backend.py +16 -19
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26/pyqrack_cuda.egg-info}/PKG-INFO +1 -1
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/setup.py +1 -1
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/LICENSE +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/MANIFEST.in +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/README.md +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyproject.toml +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack/__init__.py +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack/neuron_activation_fn.py +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack/pauli.py +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack/qrack_circuit.py +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack/qrack_neuron.py +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack/qrack_neuron_torch_layer.py +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack/qrack_simulator.py +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack/qrack_stabilizer.py +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack/qrack_system/__init__.py +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack/qrack_system/qrack_system.py +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack/quimb_circuit_type.py +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack/stats/__init__.py +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack/stats/load_quantized_data.py +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack/stats/quantize_by_range.py +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack_cuda.egg-info/SOURCES.txt +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack_cuda.egg-info/dependency_links.txt +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack_cuda.egg-info/not-zip-safe +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack_cuda.egg-info/requires.txt +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/pyqrack_cuda.egg-info/top_level.txt +0 -0
- {pyqrack_cuda-1.44.24 → pyqrack_cuda-1.44.26}/setup.cfg +0 -0
@@ -18,7 +18,7 @@ help:
|
|
18
18
|
build-deps:
|
19
19
|
ifneq ($(OS),Windows_NT)
|
20
20
|
ifeq ($(QRACK_PRESENT),)
|
21
|
-
git clone https://github.com/unitaryfund/qrack.git; cd qrack; git checkout
|
21
|
+
git clone https://github.com/unitaryfund/qrack.git; cd qrack; git checkout 065d4575ca82be0398ed726de59899c16500581f; cd ..
|
22
22
|
endif
|
23
23
|
mkdir -p qrack/build
|
24
24
|
ifeq ($(UNAME_S),Linux)
|
@@ -40,7 +40,7 @@ class QrackAceBackend:
|
|
40
40
|
|
41
41
|
def __init__(
|
42
42
|
self,
|
43
|
-
qubit_count
|
43
|
+
qubit_count=1,
|
44
44
|
alternating_codes=True,
|
45
45
|
isTensorNetwork=False,
|
46
46
|
toClone=None,
|
@@ -145,25 +145,7 @@ class QrackAceBackend:
|
|
145
145
|
# We can't use true syndrome-based error correction,
|
146
146
|
# because one of the qubits in the code is separated.
|
147
147
|
# However, we can get pretty close!
|
148
|
-
hq = self._unpack(lq)
|
149
148
|
shots = 1024
|
150
|
-
samples = self.sim.measure_shots(hq, shots)
|
151
|
-
syndrome = [0, 0, 0]
|
152
|
-
for sample in samples:
|
153
|
-
match sample:
|
154
|
-
case 1:
|
155
|
-
syndrome[0] += 1
|
156
|
-
case 2:
|
157
|
-
syndrome[1] += 1
|
158
|
-
case 4:
|
159
|
-
syndrome[2] += 1
|
160
|
-
case 6:
|
161
|
-
syndrome[0] += 1
|
162
|
-
case 5:
|
163
|
-
syndrome[1] += 1
|
164
|
-
case 3:
|
165
|
-
syndrome[2] += 1
|
166
|
-
|
167
149
|
row = lq // self.row_length
|
168
150
|
even_row = not (row & 1)
|
169
151
|
single_bit = 0
|
@@ -174,6 +156,21 @@ class QrackAceBackend:
|
|
174
156
|
else:
|
175
157
|
single_bit = 0
|
176
158
|
other_bits = [1, 2]
|
159
|
+
hq = self._unpack(lq)
|
160
|
+
single_bit_value = self.sim.prob(hq[single_bit])
|
161
|
+
samples = self.sim.measure_shots([hq[other_bits[0]], hq[other_bits[1]]], shots)
|
162
|
+
syndrome = [0, 0, 0]
|
163
|
+
syndrome_indices = [other_bits[1], other_bits[0]] if (single_bit_value >= 0.5) else [other_bits[0], other_bits[1]]
|
164
|
+
for sample in samples:
|
165
|
+
match sample:
|
166
|
+
case 0:
|
167
|
+
syndrome[single_bit] += single_bit_value
|
168
|
+
case 1:
|
169
|
+
syndrome[syndrome_indices[0]] += 1
|
170
|
+
case 2:
|
171
|
+
syndrome[syndrome_indices[1]] += 1
|
172
|
+
case 3:
|
173
|
+
syndrome[single_bit] += 1 - single_bit_value
|
177
174
|
|
178
175
|
max_syndrome = max(syndrome)
|
179
176
|
force_syndrome = True
|
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
|