pyqrack-cpu 1.58.5__py3-none-win_amd64.whl → 1.58.7__py3-none-win_amd64.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.
- pyqrack/qrack_ace_backend.py +18 -43
- pyqrack/qrack_system/qrack_lib/qrack_pinvoke.dll +0 -0
- {pyqrack_cpu-1.58.5.dist-info → pyqrack_cpu-1.58.7.dist-info}/METADATA +1 -1
- {pyqrack_cpu-1.58.5.dist-info → pyqrack_cpu-1.58.7.dist-info}/RECORD +7 -7
- {pyqrack_cpu-1.58.5.dist-info → pyqrack_cpu-1.58.7.dist-info}/LICENSE +0 -0
- {pyqrack_cpu-1.58.5.dist-info → pyqrack_cpu-1.58.7.dist-info}/WHEEL +0 -0
- {pyqrack_cpu-1.58.5.dist-info → pyqrack_cpu-1.58.7.dist-info}/top_level.txt +0 -0
pyqrack/qrack_ace_backend.py
CHANGED
|
@@ -443,20 +443,6 @@ class QrackAceBackend:
|
|
|
443
443
|
|
|
444
444
|
return qb, lhv
|
|
445
445
|
|
|
446
|
-
def get_lhv_bloch_angles(self, q):
|
|
447
|
-
z = (1 - q.bloch[2]) / 2
|
|
448
|
-
prob = z**2
|
|
449
|
-
x = (1 - q.bloch[0]) / 2
|
|
450
|
-
prob += x**2
|
|
451
|
-
y = (1 - q.bloch[1]) / 2
|
|
452
|
-
prob += y**2
|
|
453
|
-
|
|
454
|
-
prob = math.sqrt(prob)
|
|
455
|
-
inclination = math.atan2(math.sqrt(x**2 + y**2), z)
|
|
456
|
-
azimuth = math.atan2(y, x)
|
|
457
|
-
|
|
458
|
-
return prob, azimuth, inclination
|
|
459
|
-
|
|
460
446
|
def get_bloch_angles(self, hq):
|
|
461
447
|
sim = self.sim[hq[0]]
|
|
462
448
|
q = hq[1]
|
|
@@ -485,24 +471,6 @@ class QrackAceBackend:
|
|
|
485
471
|
|
|
486
472
|
return prob, azimuth, inclination
|
|
487
473
|
|
|
488
|
-
def rotate_lhv_to_bloch(
|
|
489
|
-
self, q, azimuth_curr, inclination_curr, azimuth_target, inclination_target
|
|
490
|
-
):
|
|
491
|
-
delta_azimuth = azimuth_target - azimuth_curr
|
|
492
|
-
delta_inclination = inclination_target - inclination_curr
|
|
493
|
-
|
|
494
|
-
cosA = math.cos(delta_azimuth)
|
|
495
|
-
sinA = math.sin(delta_azimuth)
|
|
496
|
-
cosI = math.cos(delta_inclination / 2)
|
|
497
|
-
sinI = math.sin(delta_inclination / 2)
|
|
498
|
-
|
|
499
|
-
m00 = complex(cosI, 0)
|
|
500
|
-
m01 = complex(-cosA, sinA) * sinI
|
|
501
|
-
m10 = complex(cosA, sinA) * sinI
|
|
502
|
-
m11 = complex(cosI, 0)
|
|
503
|
-
|
|
504
|
-
q.mtrx([m00, m01, m10, m11])
|
|
505
|
-
|
|
506
474
|
def rotate_to_bloch(
|
|
507
475
|
self, hq, azimuth_curr, inclination_curr, azimuth_target, inclination_target
|
|
508
476
|
):
|
|
@@ -525,6 +493,7 @@ class QrackAceBackend:
|
|
|
525
493
|
|
|
526
494
|
sim.mtrx([m00, m01, m10, m11], q)
|
|
527
495
|
|
|
496
|
+
|
|
528
497
|
def _correct(self, lq, phase=False):
|
|
529
498
|
hq = self._unpack(lq)
|
|
530
499
|
|
|
@@ -579,22 +548,25 @@ class QrackAceBackend:
|
|
|
579
548
|
p, a, i = [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]
|
|
580
549
|
p[0], a[0], i[0] = self.get_bloch_angles(hq[0])
|
|
581
550
|
p[1], a[1], i[1] = self.get_bloch_angles(hq[1])
|
|
582
|
-
p[3], a[
|
|
583
|
-
p[4], a[
|
|
551
|
+
p[3], a[3], i[3] = self.get_bloch_angles(hq[3])
|
|
552
|
+
p[4], a[4], i[4] = self.get_bloch_angles(hq[4])
|
|
584
553
|
|
|
585
554
|
indices = []
|
|
586
555
|
a_target = 0
|
|
587
556
|
i_target = 0
|
|
588
|
-
|
|
557
|
+
weight = 0
|
|
558
|
+
for x in range(5):
|
|
589
559
|
if p[x] < 0.5:
|
|
590
560
|
continue
|
|
591
561
|
indices.append(x)
|
|
592
|
-
|
|
593
|
-
|
|
562
|
+
w = (1.5 - p[x])
|
|
563
|
+
a_target += w * a[x]
|
|
564
|
+
i_target += w * i[x]
|
|
565
|
+
weight += w
|
|
594
566
|
|
|
595
567
|
if len(indices) > 1:
|
|
596
|
-
a_target /=
|
|
597
|
-
i_target /=
|
|
568
|
+
a_target /= weight
|
|
569
|
+
i_target /= weight
|
|
598
570
|
for x in indices:
|
|
599
571
|
self.rotate_to_bloch(hq[x], a[x], i[x], a_target, i_target)
|
|
600
572
|
else:
|
|
@@ -623,16 +595,19 @@ class QrackAceBackend:
|
|
|
623
595
|
indices = []
|
|
624
596
|
a_target = 0
|
|
625
597
|
i_target = 0
|
|
598
|
+
weight = 0
|
|
626
599
|
for x in range(2):
|
|
627
600
|
if p[x] < 0.5:
|
|
628
601
|
continue
|
|
629
602
|
indices.append(x)
|
|
630
|
-
|
|
631
|
-
|
|
603
|
+
w = (1.5 - p[x])
|
|
604
|
+
a_target += x * a[x]
|
|
605
|
+
i_target += w * i[x]
|
|
606
|
+
weight += w
|
|
632
607
|
|
|
633
608
|
if len(indices) > 1:
|
|
634
|
-
a_target /=
|
|
635
|
-
i_target /=
|
|
609
|
+
a_target /= weight
|
|
610
|
+
i_target /= weight
|
|
636
611
|
for x in indices:
|
|
637
612
|
self.rotate_to_bloch(hq[x], a[x], i[x], a_target, i_target)
|
|
638
613
|
|
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
pyqrack/__init__.py,sha256=9fGCYdEUg_AsENCDRylbrZvUMVbUajRTn3CyuFGuFyM,805
|
|
2
2
|
pyqrack/neuron_activation_fn.py,sha256=GOqcCkiEB60jCojTrcuHuZMDP5aTOy0adtR8SY_2EZc,614
|
|
3
3
|
pyqrack/pauli.py,sha256=TUm1SN_HLz3eMW9gD_eg-IYXcMCyr36mYSytq_ExZIU,673
|
|
4
|
-
pyqrack/qrack_ace_backend.py,sha256
|
|
4
|
+
pyqrack/qrack_ace_backend.py,sha256=SGIeyrkRLxY7_B2hJdq5ORPfOyqWcOIR2ySu3MMvaP4,49206
|
|
5
5
|
pyqrack/qrack_circuit.py,sha256=QK2dtPYurdXuw-efVq7lYz40_480NxCejXhOVwBGkXs,20122
|
|
6
6
|
pyqrack/qrack_neuron.py,sha256=a3F0hduVvXZi9aXsY0du5hBFXpMq_R5UHHDOv2-YtFM,9305
|
|
7
7
|
pyqrack/qrack_neuron_torch_layer.py,sha256=OhNSldzaqLaMoNBkin68j8QWOOiuZCQJDZPgSDRI2Fk,6330
|
|
@@ -10,12 +10,12 @@ pyqrack/qrack_stabilizer.py,sha256=AJe7dfFcxFKyig3tjWXw0UKhXer5Wl9QNvjNNqlOL5M,2
|
|
|
10
10
|
pyqrack/quimb_circuit_type.py,sha256=iC0CCpZBGhziFC8-uBCH43Mi29uvVUrtBG6W9YBlyps,638
|
|
11
11
|
pyqrack/qrack_system/__init__.py,sha256=PUterej-xpA4BqFmiBrQCMeTQlsRf-K8Dxnwp-iVvUQ,343
|
|
12
12
|
pyqrack/qrack_system/qrack_system.py,sha256=73m6cDyaE-wY0w4uFqdpngDOMoYJWOnzjitF8mD0Vb4,44281
|
|
13
|
-
pyqrack/qrack_system/qrack_lib/qrack_pinvoke.dll,sha256=
|
|
13
|
+
pyqrack/qrack_system/qrack_lib/qrack_pinvoke.dll,sha256=rgO-GdyYtZK2jJjKke_jl_QnHkQUMJH3ep6gaUndKG0,1746432
|
|
14
14
|
pyqrack/stats/__init__.py,sha256=hI715MGW7D4mDYhUFpRI4ZLsynYDO4tN-rjsuuYbG6Q,282
|
|
15
15
|
pyqrack/stats/load_quantized_data.py,sha256=_1w9BPrZNreP0wOAyaAZHdEGKoGiI7tMeFD9P3eyJC0,1219
|
|
16
16
|
pyqrack/stats/quantize_by_range.py,sha256=0eBIqByIxa4vfm4fQGZLAMGR9y8raxde3e5rvUWJ_dQ,2326
|
|
17
|
-
pyqrack_cpu-1.58.
|
|
18
|
-
pyqrack_cpu-1.58.
|
|
19
|
-
pyqrack_cpu-1.58.
|
|
20
|
-
pyqrack_cpu-1.58.
|
|
21
|
-
pyqrack_cpu-1.58.
|
|
17
|
+
pyqrack_cpu-1.58.7.dist-info/LICENSE,sha256=IdAVedmFOPQtHi_XeEI9OhJwUuwlT6tCJwrT55zAn3w,1090
|
|
18
|
+
pyqrack_cpu-1.58.7.dist-info/METADATA,sha256=n-jYMtrSYR9OaiZIhYfFappK_DaDkjpXlousSuSRV3o,5994
|
|
19
|
+
pyqrack_cpu-1.58.7.dist-info/WHEEL,sha256=JMWfR_Dj7ISokcwe0cBhCfK6JKnIi-ZX11L6d_ntt6o,98
|
|
20
|
+
pyqrack_cpu-1.58.7.dist-info/top_level.txt,sha256=YE_3q9JTGRLMilNg2tGP1y7uU-Dx8PDao2OhwoIbv8E,8
|
|
21
|
+
pyqrack_cpu-1.58.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|