pyqrack-cpu 1.44.33__py3-none-macosx_13_0_x86_64.whl → 1.44.35__py3-none-macosx_13_0_x86_64.whl

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.

Potentially problematic release.


This version of pyqrack-cpu might be problematic. Click here for more details.

@@ -434,33 +434,33 @@ class QrackAceBackend:
434
434
  bits = []
435
435
  for q in other_bits:
436
436
  bits.append(self.sim.m(hq[q]))
437
- if bits[-1]:
438
- syndrome += 1
439
- # single_bit never shares entanglement with other_bits.
440
- # In the ideal, it should simply duplicate other_bits.
441
- # So get more precision by using it analytically.
442
- analytical = self.sim.prob(hq[single_bit])
443
- syndrome += analytical
444
- result = True if (syndrome >= 1.5) else False
437
+ syndrome += bits[-1]
445
438
  # The two separable parts of the code are correlated,
446
439
  # but not non-locally, via entanglement.
447
440
  # Prefer to collapse the analytical part toward agreement.
448
- bits.append(self.sim.m(hq[single_bit]) if math.isclose(analytical, 0 if result else 1) else self.sim.force_m(hq[single_bit], result))
441
+ if syndrome == 0:
442
+ self.sim.force_m(hq[single_bit], False)
443
+ elif syndrome == 2:
444
+ syndrome += self.sim.force_m(hq[single_bit], True)
445
+ else:
446
+ syndrome += self.sim.m(hq[single_bit])
447
+ result = True if (syndrome > 1) else False
449
448
  for i in range(2):
450
449
  if bits[i] != result:
451
450
  self.sim.x(hq[other_bits[i]])
452
- if bits[2] != result:
453
- self.sim.x(hq[single_bit])
454
451
  self._is_init[lq] = False
455
452
 
456
453
  return result
457
454
 
458
455
  def m_all(self):
459
456
  result = 0
460
- for lq in range(self.sim.num_qubits() // 3):
461
- result <<= 1
457
+ # Whenever a nonzero syndrome occurs (so the code has an error),
458
+ # we insert the more-probable results and collapse towards it.
459
+ # Randomize the order of post-selection to amortize error.
460
+ lqubits = random.shuffle(list(range(self.sim.num_qubits() // 3)))
461
+ for lq in lqubits:
462
462
  if self.m(lq):
463
- result |= 1
463
+ result |= 1 << lq
464
464
 
465
465
  return result
466
466
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyqrack-cpu
3
- Version: 1.44.33
3
+ Version: 1.44.35
4
4
  Summary: pyqrack - Pure Python vm6502q/qrack Wrapper
5
5
  Home-page: https://github.com/vm6502q/pyqrack
6
6
  Author: Daniel Strano
@@ -1,7 +1,7 @@
1
1
  pyqrack/__init__.py,sha256=3tBwfCCD-zQjQ2g1EUZdggKdn-3b2uSFTbT7LS0YLaU,785
2
2
  pyqrack/neuron_activation_fn.py,sha256=fQTTFfsvwcot_43Vopacot47IV2Rxk8pelUyuzwpXPs,593
3
3
  pyqrack/pauli.py,sha256=wg500wDOwdIU4lEVJoMmjtbAdmtakZYzLPjdzC2rwUQ,654
4
- pyqrack/qrack_ace_backend.py,sha256=re4vovUF12Uj1YbhaejStmKWOXQ2dqK5CVdLnZTbp5Q,27629
4
+ pyqrack/qrack_ace_backend.py,sha256=-GvqKxBniE3PYDegSl4i5ssSiQ_LZqTwY2eVPGJ9GPI,27600
5
5
  pyqrack/qrack_circuit.py,sha256=vDCKGbcEHJDFUKprjCpWgit8lXFnMrPimKHURD2_Hj4,19538
6
6
  pyqrack/qrack_neuron.py,sha256=UiJdjAGB6usjAGHWSosSFCUUeIkhh3MtZbsaxfsIsNw,9043
7
7
  pyqrack/qrack_neuron_torch_layer.py,sha256=Bs5BLC2GFevfSpo_jSJ2AZl-hfDRJmzlGN9pFw1CtoQ,6160
@@ -15,8 +15,8 @@ pyqrack/qrack_system/qrack_lib/libqrack_pinvoke.dylib,sha256=NLHKAGCm7kTcBYwymd1
15
15
  pyqrack/stats/__init__.py,sha256=Hla85my2fY_roR9lIjGBVpEG7ySOTMwjWa8D6-kgCnY,276
16
16
  pyqrack/stats/load_quantized_data.py,sha256=z12u9F7Nt3P-i44nY1xxvso_klS6WIHS3iqq7R2_lqE,1184
17
17
  pyqrack/stats/quantize_by_range.py,sha256=UM0_7jJDdQ7g30cR3UQAxkbzkqrmsy1oUfqg0h11FUY,2270
18
- pyqrack_cpu-1.44.33.dist-info/LICENSE,sha256=HxB-7SaWTuewAk1nz-3_3FUD6QhgX73kNT_taKVUTq8,1069
19
- pyqrack_cpu-1.44.33.dist-info/METADATA,sha256=vtPX7nfAPykX34aTmL53GmQfgAkFjJqYAZvXjN5ofpc,6473
20
- pyqrack_cpu-1.44.33.dist-info/WHEEL,sha256=nZx8s83OrgdDmpcWX-8FgI0sEAjdQimt4SdYsdcCaC8,107
21
- pyqrack_cpu-1.44.33.dist-info/top_level.txt,sha256=YE_3q9JTGRLMilNg2tGP1y7uU-Dx8PDao2OhwoIbv8E,8
22
- pyqrack_cpu-1.44.33.dist-info/RECORD,,
18
+ pyqrack_cpu-1.44.35.dist-info/LICENSE,sha256=HxB-7SaWTuewAk1nz-3_3FUD6QhgX73kNT_taKVUTq8,1069
19
+ pyqrack_cpu-1.44.35.dist-info/METADATA,sha256=W4JFn2GNW8ffKfpgK5co7dqWrmNYLIKWPqvBbu9ljlU,6473
20
+ pyqrack_cpu-1.44.35.dist-info/WHEEL,sha256=nZx8s83OrgdDmpcWX-8FgI0sEAjdQimt4SdYsdcCaC8,107
21
+ pyqrack_cpu-1.44.35.dist-info/top_level.txt,sha256=YE_3q9JTGRLMilNg2tGP1y7uU-Dx8PDao2OhwoIbv8E,8
22
+ pyqrack_cpu-1.44.35.dist-info/RECORD,,