pyqrack-cuda 1.54.0__tar.gz → 1.54.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_cuda-1.54.0/pyqrack_cuda.egg-info → pyqrack_cuda-1.54.2}/PKG-INFO +1 -1
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack/qrack_ace_backend.py +26 -16
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2/pyqrack_cuda.egg-info}/PKG-INFO +1 -1
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/setup.py +1 -1
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/LICENSE +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/MANIFEST.in +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/Makefile +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/README.md +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyproject.toml +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack/__init__.py +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack/neuron_activation_fn.py +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack/pauli.py +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack/qrack_circuit.py +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack/qrack_neuron.py +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack/qrack_neuron_torch_layer.py +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack/qrack_simulator.py +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack/qrack_stabilizer.py +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack/qrack_system/__init__.py +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack/qrack_system/qrack_system.py +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack/quimb_circuit_type.py +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack/stats/__init__.py +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack/stats/load_quantized_data.py +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack/stats/quantize_by_range.py +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack_cuda.egg-info/SOURCES.txt +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack_cuda.egg-info/dependency_links.txt +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack_cuda.egg-info/not-zip-safe +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack_cuda.egg-info/requires.txt +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/pyqrack_cuda.egg-info/top_level.txt +0 -0
- {pyqrack_cuda-1.54.0 → pyqrack_cuda-1.54.2}/setup.cfg +0 -0
@@ -268,9 +268,9 @@ class QrackAceBackend:
|
|
268
268
|
|
269
269
|
# Suggestion from Elara (the custom OpenAI GPT):
|
270
270
|
# Create phase parity tie before measurement.
|
271
|
-
self._ccx_shadow(hq[single_bit], hq[other_bits[0]], [ancilla_sim, ancilla])
|
272
|
-
self.sim[ancilla_sim].mcx([hq[other_bits[1]][1]], ancilla)
|
273
|
-
self.sim[ancilla_sim].force_m(ancilla, False)
|
271
|
+
# self._ccx_shadow(hq[single_bit], hq[other_bits[0]], [ancilla_sim, ancilla])
|
272
|
+
# self.sim[ancilla_sim].mcx([hq[other_bits[1]][1]], ancilla)
|
273
|
+
# self.sim[ancilla_sim].force_m(ancilla, False)
|
274
274
|
|
275
275
|
samples = self.sim[ancilla_sim].measure_shots(
|
276
276
|
[hq[other_bits[0]][1], hq[other_bits[1]][1]], shots
|
@@ -518,6 +518,29 @@ class QrackAceBackend:
|
|
518
518
|
lq2_row = lq2 // self._row_length
|
519
519
|
lq2_col = lq2 % self._row_length
|
520
520
|
|
521
|
+
hq1 = self._unpack(lq1)
|
522
|
+
hq2 = self._unpack(lq2)
|
523
|
+
|
524
|
+
if lq1_lr and lq2_lr:
|
525
|
+
connected = (lq1_col == lq2_col) or ((self.long_range_columns + 1) >= self._row_length)
|
526
|
+
c = (lq1_col - 1) % self._row_length
|
527
|
+
while not connected and self._is_col_long_range[c]:
|
528
|
+
connected = (lq2_col == c)
|
529
|
+
c = (c - 1) % self._row_length
|
530
|
+
c = (lq1_col + 1) % self._row_length
|
531
|
+
while not connected and self._is_col_long_range[c]:
|
532
|
+
connected = (lq2_col == c)
|
533
|
+
c = (c + 1) % self._row_length
|
534
|
+
|
535
|
+
b1 = hq1[0]
|
536
|
+
b2 = hq2[0]
|
537
|
+
gate, shadow = self._get_gate(pauli, anti, b1[0])
|
538
|
+
if connected:
|
539
|
+
gate([b1[1]], b2[1])
|
540
|
+
else:
|
541
|
+
shadow(b1, b2)
|
542
|
+
return
|
543
|
+
|
521
544
|
connected_cols = []
|
522
545
|
c = (lq1_col - 1) % self._row_length
|
523
546
|
while self._is_col_long_range[c] and (
|
@@ -537,19 +560,6 @@ class QrackAceBackend:
|
|
537
560
|
if len(connected_cols) < (self._row_length - 1):
|
538
561
|
connected_cols.append(c)
|
539
562
|
|
540
|
-
hq1 = self._unpack(lq1)
|
541
|
-
hq2 = self._unpack(lq2)
|
542
|
-
|
543
|
-
if lq1_lr and lq2_lr:
|
544
|
-
b1 = hq1[0]
|
545
|
-
b2 = hq2[0]
|
546
|
-
gate, shadow = self._get_gate(pauli, anti, b1[0])
|
547
|
-
if lq2_col in connected_cols:
|
548
|
-
gate([b1[1]], b2[1])
|
549
|
-
else:
|
550
|
-
shadow(b1, b2)
|
551
|
-
return
|
552
|
-
|
553
563
|
self._correct(lq1)
|
554
564
|
|
555
565
|
if (lq2_col in connected_cols) and (connected_cols.index(lq2_col) < boundary):
|
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
|