pennylane-qrack 0.10.0__py3-none-manylinux_2_31_x86_64.whl → 0.10.2__py3-none-manylinux_2_31_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 pennylane-qrack might be problematic. Click here for more details.
- pennylane_qrack/CMakeCache.txt +1 -1
- pennylane_qrack/_version.py +1 -1
- pennylane_qrack/libqrack_device.so +0 -0
- pennylane_qrack/qrack_device.py +53 -25
- {pennylane_qrack-0.10.0.dist-info → pennylane_qrack-0.10.2.dist-info}/METADATA +1 -1
- pennylane_qrack-0.10.2.dist-info/RECORD +15 -0
- pennylane_qrack-0.10.0.dist-info/RECORD +0 -15
- {pennylane_qrack-0.10.0.dist-info → pennylane_qrack-0.10.2.dist-info}/LICENSE +0 -0
- {pennylane_qrack-0.10.0.dist-info → pennylane_qrack-0.10.2.dist-info}/WHEEL +0 -0
- {pennylane_qrack-0.10.0.dist-info → pennylane_qrack-0.10.2.dist-info}/entry_points.txt +0 -0
- {pennylane_qrack-0.10.0.dist-info → pennylane_qrack-0.10.2.dist-info}/top_level.txt +0 -0
pennylane_qrack/CMakeCache.txt
CHANGED
|
@@ -249,7 +249,7 @@ CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
|
|
|
249
249
|
//Minor version of cmake used to create the current loaded cache
|
|
250
250
|
CMAKE_CACHE_MINOR_VERSION:INTERNAL=30
|
|
251
251
|
//Patch version of cmake used to create the current loaded cache
|
|
252
|
-
CMAKE_CACHE_PATCH_VERSION:INTERNAL=
|
|
252
|
+
CMAKE_CACHE_PATCH_VERSION:INTERNAL=4
|
|
253
253
|
//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
|
|
254
254
|
CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
|
|
255
255
|
//Path to CMake executable.
|
pennylane_qrack/_version.py
CHANGED
|
Binary file
|
pennylane_qrack/qrack_device.py
CHANGED
|
@@ -24,7 +24,7 @@ import itertools as it
|
|
|
24
24
|
|
|
25
25
|
import numpy as np
|
|
26
26
|
|
|
27
|
-
from pennylane import QubitDevice, DeviceError
|
|
27
|
+
from pennylane import QubitDevice, DeviceError, QuantumFunctionError
|
|
28
28
|
from pennylane.ops import (
|
|
29
29
|
QubitStateVector,
|
|
30
30
|
BasisState,
|
|
@@ -175,31 +175,34 @@ class QrackDevice(QubitDevice):
|
|
|
175
175
|
|
|
176
176
|
def __init__(self, wires=0, shots=None, **kwargs):
|
|
177
177
|
options = dict(kwargs)
|
|
178
|
-
if
|
|
179
|
-
self.isStabilizerHybrid = options[
|
|
180
|
-
if
|
|
181
|
-
self.isTensorNetwork = options[
|
|
182
|
-
if
|
|
183
|
-
self.isSchmidtDecompose = options[
|
|
184
|
-
if
|
|
185
|
-
self.isBinaryDecisionTree = options[
|
|
186
|
-
if
|
|
187
|
-
self.isOpenCL = options[
|
|
188
|
-
if
|
|
189
|
-
self.isHostPointer = options[
|
|
190
|
-
if
|
|
191
|
-
self.noise = options[
|
|
178
|
+
if "isStabilizerHybrid" in options:
|
|
179
|
+
self.isStabilizerHybrid = options["isStabilizerHybrid"]
|
|
180
|
+
if "isTensorNetwork" in options:
|
|
181
|
+
self.isTensorNetwork = options["isTensorNetwork"]
|
|
182
|
+
if "isSchmidtDecompose" in options:
|
|
183
|
+
self.isSchmidtDecompose = options["isSchmidtDecompose"]
|
|
184
|
+
if "isBinaryDecisionTree" in options:
|
|
185
|
+
self.isBinaryDecisionTree = options["isBinaryDecisionTree"]
|
|
186
|
+
if "isOpenCL" in options:
|
|
187
|
+
self.isOpenCL = options["isOpenCL"]
|
|
188
|
+
if "isHostPointer" in options:
|
|
189
|
+
self.isHostPointer = options["isHostPointer"]
|
|
190
|
+
if "noise" in options:
|
|
191
|
+
self.noise = options["noise"]
|
|
192
|
+
if (self.noise != 0) and (shots is None):
|
|
193
|
+
raise ValueError("Shots must be finite for noisy simulation (not analytical mode).")
|
|
192
194
|
super().__init__(wires=wires, shots=shots)
|
|
193
195
|
self._state = QrackSimulator(
|
|
194
196
|
self.num_wires,
|
|
195
|
-
isStabilizerHybrid
|
|
197
|
+
isStabilizerHybrid=self.isStabilizerHybrid,
|
|
196
198
|
isTensorNetwork=self.isTensorNetwork,
|
|
197
199
|
isSchmidtDecompose=self.isSchmidtDecompose,
|
|
198
200
|
isBinaryDecisionTree=self.isBinaryDecisionTree,
|
|
199
201
|
isOpenCL=self.isOpenCL,
|
|
200
202
|
isHostPointer=self.isHostPointer,
|
|
201
|
-
noise
|
|
203
|
+
noise=self.noise,
|
|
202
204
|
)
|
|
205
|
+
self._circuit = []
|
|
203
206
|
|
|
204
207
|
def _reverse_state(self):
|
|
205
208
|
end = self.num_wires - 1
|
|
@@ -216,7 +219,14 @@ class QrackDevice(QubitDevice):
|
|
|
216
219
|
operations (List[pennylane.Operation]): operations to be applied
|
|
217
220
|
"""
|
|
218
221
|
|
|
219
|
-
|
|
222
|
+
self._circuit = self._circuit + operations
|
|
223
|
+
if self.noise == 0:
|
|
224
|
+
self._apply()
|
|
225
|
+
self._circuit = []
|
|
226
|
+
# else: Defer application until shots or expectation values are requested
|
|
227
|
+
|
|
228
|
+
def _apply(self):
|
|
229
|
+
for op in self._circuit:
|
|
220
230
|
if isinstance(op, QubitStateVector):
|
|
221
231
|
self._apply_qubit_state_vector(op)
|
|
222
232
|
elif isinstance(op, BasisState):
|
|
@@ -647,20 +657,38 @@ class QrackDevice(QubitDevice):
|
|
|
647
657
|
# estimate the ev
|
|
648
658
|
return np.mean(self.sample(observable))
|
|
649
659
|
|
|
660
|
+
def _generate_sample(self):
|
|
661
|
+
rev_sample = self._state.m_all()
|
|
662
|
+
sample = 0
|
|
663
|
+
for i in range(self.num_wires):
|
|
664
|
+
if (rev_sample & (1 << i)) > 0:
|
|
665
|
+
sample |= 1 << (self.num_wires - (i + 1))
|
|
666
|
+
return sample
|
|
667
|
+
|
|
650
668
|
def generate_samples(self):
|
|
651
669
|
if self.shots is None:
|
|
652
|
-
raise
|
|
670
|
+
raise QuantumFunctionError(
|
|
653
671
|
"The number of shots has to be explicitly set on the device "
|
|
654
672
|
"when using sample-based measurements."
|
|
655
673
|
)
|
|
656
674
|
|
|
675
|
+
if self.noise != 0:
|
|
676
|
+
self._samples = []
|
|
677
|
+
for _ in range(self.shots):
|
|
678
|
+
self._state.reset_all()
|
|
679
|
+
self._apply()
|
|
680
|
+
self._samples.append(self._generate_sample())
|
|
681
|
+
self._samples = QubitDevice.states_to_binary(
|
|
682
|
+
np.array([self._generate_sample()]), self.num_wires
|
|
683
|
+
)
|
|
684
|
+
self._circuit = []
|
|
685
|
+
|
|
686
|
+
return self._samples
|
|
687
|
+
|
|
657
688
|
if self.shots == 1:
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
if (rev_sample & (1 << i)) > 0:
|
|
662
|
-
sample |= 1 << (self.num_wires - (i + 1))
|
|
663
|
-
self._samples = QubitDevice.states_to_binary(np.array([sample]), self.num_wires)
|
|
689
|
+
self._samples = QubitDevice.states_to_binary(
|
|
690
|
+
np.array([self._generate_sample()]), self.num_wires
|
|
691
|
+
)
|
|
664
692
|
|
|
665
693
|
return self._samples
|
|
666
694
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
pennylane_qrack/CMakeCache.txt,sha256=UwcfEk5uCE5VsfbDrfam1HOek_DqR3sZY1x18PdFz7M,15054
|
|
2
|
+
pennylane_qrack/Makefile,sha256=S9Y76wF2BB8oc3vDHA8v5RY-cuUM9L1AYRtC0Uu8r60,7584
|
|
3
|
+
pennylane_qrack/QrackDeviceConfig.toml,sha256=t_IQVSFR-GJ3VuqpQqm4M5gA3TVL4-y0qPq-f0FJwac,6219
|
|
4
|
+
pennylane_qrack/__init__.py,sha256=_g4NKu07_pXqxvQaxjdAPe769S5tWwYjqyHi3z7YKHc,673
|
|
5
|
+
pennylane_qrack/_version.py,sha256=YL61LFzCM_V-BsclpB2jHSN9t5GG3al6nqVVC3JGW7A,692
|
|
6
|
+
pennylane_qrack/cmake_install.cmake,sha256=kW9d9vjuxI8PW08r6P09h7d6vmG74xsRzq1AuqYchh8,3336
|
|
7
|
+
pennylane_qrack/libqrack_device.so,sha256=OvLIyr3W8K0hVTgAU4II4c-ae3-9pwWROzpo0fPIExI,5519272
|
|
8
|
+
pennylane_qrack/qrack_device.cpp,sha256=eRoowI7n9XV63aoZEaDjWmK1NC4JQ1GBeL2uggDttG0,36846
|
|
9
|
+
pennylane_qrack/qrack_device.py,sha256=VFwbhAKvIKwpO9_fZ_sGv__DvYzTqRW77Hd8k0-DByk,26947
|
|
10
|
+
pennylane_qrack-0.10.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
11
|
+
pennylane_qrack-0.10.2.dist-info/METADATA,sha256=L9OiqwRP5f5EB4FRcVTBXKRnMGqfQGwY7xRuVdb4FQE,5525
|
|
12
|
+
pennylane_qrack-0.10.2.dist-info/WHEEL,sha256=vhkxkeQo6qYm0IR8SRPDozzBUxC5K_7HGPrR2uA3AC8,110
|
|
13
|
+
pennylane_qrack-0.10.2.dist-info/entry_points.txt,sha256=V6f1sN6IZZZaEvxrI47A3K_kksp8fDUWjLWD0Met7Ww,79
|
|
14
|
+
pennylane_qrack-0.10.2.dist-info/top_level.txt,sha256=5NFMNHqCHtVLwNkLg66xz846uUJAlnOJ5VGa6ulW1ow,16
|
|
15
|
+
pennylane_qrack-0.10.2.dist-info/RECORD,,
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
pennylane_qrack/CMakeCache.txt,sha256=R25Vd0Ah5_5xzIGQM_TjT1B570RIOqLnuhQMbNw7NNM,15054
|
|
2
|
-
pennylane_qrack/Makefile,sha256=S9Y76wF2BB8oc3vDHA8v5RY-cuUM9L1AYRtC0Uu8r60,7584
|
|
3
|
-
pennylane_qrack/QrackDeviceConfig.toml,sha256=t_IQVSFR-GJ3VuqpQqm4M5gA3TVL4-y0qPq-f0FJwac,6219
|
|
4
|
-
pennylane_qrack/__init__.py,sha256=_g4NKu07_pXqxvQaxjdAPe769S5tWwYjqyHi3z7YKHc,673
|
|
5
|
-
pennylane_qrack/_version.py,sha256=B5LmSBtWlr0xzCDb5hXyIgjkJdD6PC22Nfx39DaN2mU,692
|
|
6
|
-
pennylane_qrack/cmake_install.cmake,sha256=kW9d9vjuxI8PW08r6P09h7d6vmG74xsRzq1AuqYchh8,3336
|
|
7
|
-
pennylane_qrack/libqrack_device.so,sha256=N4vdYgXGgtyVYV9OLEMGaop-NrV5UDaWMbtetX_Zy0Y,5602552
|
|
8
|
-
pennylane_qrack/qrack_device.cpp,sha256=eRoowI7n9XV63aoZEaDjWmK1NC4JQ1GBeL2uggDttG0,36846
|
|
9
|
-
pennylane_qrack/qrack_device.py,sha256=tN_RPJU8m4yr7AMfJQb6apRNxCKyX1XCIxpVwFo-2jw,26001
|
|
10
|
-
pennylane_qrack-0.10.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
11
|
-
pennylane_qrack-0.10.0.dist-info/METADATA,sha256=0fJmGOxFKpzxY0-57BPftqFEORQfqYWKCXZsSy19dAE,5525
|
|
12
|
-
pennylane_qrack-0.10.0.dist-info/WHEEL,sha256=vhkxkeQo6qYm0IR8SRPDozzBUxC5K_7HGPrR2uA3AC8,110
|
|
13
|
-
pennylane_qrack-0.10.0.dist-info/entry_points.txt,sha256=V6f1sN6IZZZaEvxrI47A3K_kksp8fDUWjLWD0Met7Ww,79
|
|
14
|
-
pennylane_qrack-0.10.0.dist-info/top_level.txt,sha256=5NFMNHqCHtVLwNkLg66xz846uUJAlnOJ5VGa6ulW1ow,16
|
|
15
|
-
pennylane_qrack-0.10.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|