pyqrack-cpu 1.44.8__py3-none-win_amd64.whl → 1.44.10__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/__init__.py +5 -1
- pyqrack/neuron_activation_fn.py +1 -1
- pyqrack/qrack_ace_backend.py +78 -101
- pyqrack/qrack_circuit.py +67 -39
- pyqrack/qrack_neuron.py +25 -8
- pyqrack/qrack_neuron_torch_layer.py +46 -19
- pyqrack/qrack_simulator.py +547 -211
- pyqrack/qrack_stabilizer.py +1 -2
- pyqrack/qrack_system/qrack_lib/qrack_pinvoke.dll +0 -0
- pyqrack/qrack_system/qrack_system.py +161 -119
- pyqrack/stats/load_quantized_data.py +3 -1
- pyqrack/stats/quantize_by_range.py +9 -4
- {pyqrack_cpu-1.44.8.dist-info → pyqrack_cpu-1.44.10.dist-info}/METADATA +1 -1
- pyqrack_cpu-1.44.10.dist-info/RECORD +21 -0
- pyqrack_cpu-1.44.8.dist-info/RECORD +0 -21
- {pyqrack_cpu-1.44.8.dist-info → pyqrack_cpu-1.44.10.dist-info}/LICENSE +0 -0
- {pyqrack_cpu-1.44.8.dist-info → pyqrack_cpu-1.44.10.dist-info}/WHEEL +0 -0
- {pyqrack_cpu-1.44.8.dist-info → pyqrack_cpu-1.44.10.dist-info}/top_level.txt +0 -0
|
@@ -23,14 +23,18 @@ from sys import platform as _platform
|
|
|
23
23
|
class QrackSystem:
|
|
24
24
|
def __init__(self):
|
|
25
25
|
shared_lib_path = ""
|
|
26
|
-
if os.environ.get(
|
|
27
|
-
shared_lib_path = os.environ.get(
|
|
26
|
+
if os.environ.get("PYQRACK_SHARED_LIB_PATH") != None:
|
|
27
|
+
shared_lib_path = os.environ.get("PYQRACK_SHARED_LIB_PATH")
|
|
28
28
|
elif _platform == "win32":
|
|
29
29
|
shared_lib_path = os.path.dirname(__file__) + "/qrack_lib/qrack_pinvoke.dll"
|
|
30
30
|
elif _platform == "darwin":
|
|
31
|
-
shared_lib_path =
|
|
31
|
+
shared_lib_path = (
|
|
32
|
+
os.path.dirname(__file__) + "/qrack_lib/libqrack_pinvoke.dylib"
|
|
33
|
+
)
|
|
32
34
|
else:
|
|
33
|
-
shared_lib_path =
|
|
35
|
+
shared_lib_path = (
|
|
36
|
+
os.path.dirname(__file__) + "/qrack_lib/libqrack_pinvoke.so"
|
|
37
|
+
)
|
|
34
38
|
|
|
35
39
|
try:
|
|
36
40
|
self.qrack_lib = CDLL(shared_lib_path)
|
|
@@ -46,7 +50,9 @@ class QrackSystem:
|
|
|
46
50
|
self.qrack_lib = CDLL(shared_lib_path)
|
|
47
51
|
except Exception as e:
|
|
48
52
|
if _platform == "win32":
|
|
49
|
-
shared_lib_path =
|
|
53
|
+
shared_lib_path = (
|
|
54
|
+
"C:/Program Files (x86)/Qrack/bin/qrack_pinvoke.dll"
|
|
55
|
+
)
|
|
50
56
|
elif _platform == "darwin":
|
|
51
57
|
shared_lib_path = "/usr/lib/qrack/libqrack_pinvoke.dylib"
|
|
52
58
|
else:
|
|
@@ -55,12 +61,14 @@ class QrackSystem:
|
|
|
55
61
|
try:
|
|
56
62
|
self.qrack_lib = CDLL(shared_lib_path)
|
|
57
63
|
except Exception as e:
|
|
58
|
-
print(
|
|
64
|
+
print(
|
|
65
|
+
"IMPORTANT: Did you remember to install OpenCL, if your Qrack version was built with OpenCL?"
|
|
66
|
+
)
|
|
59
67
|
raise e
|
|
60
68
|
|
|
61
69
|
self.fppow = 5
|
|
62
70
|
if "QRACK_FPPOW" in os.environ:
|
|
63
|
-
self.fppow = int(os.environ.get(
|
|
71
|
+
self.fppow = int(os.environ.get("QRACK_FPPOW"))
|
|
64
72
|
if self.fppow < 4 or self.fppow > 7:
|
|
65
73
|
raise ValueError(
|
|
66
74
|
"QRACK_FPPOW environment variable must be an integer >3 and <8. (Qrack builds from 4 for fp16/half, up to 7 for fp128/quad."
|
|
@@ -76,7 +84,7 @@ class QrackSystem:
|
|
|
76
84
|
self.qrack_lib.Dump.restype = None
|
|
77
85
|
self.qrack_lib.Dump.argtypes = [
|
|
78
86
|
c_ulonglong,
|
|
79
|
-
CFUNCTYPE(c_ulonglong, c_double, c_double)
|
|
87
|
+
CFUNCTYPE(c_ulonglong, c_double, c_double),
|
|
80
88
|
]
|
|
81
89
|
|
|
82
90
|
# These next two methods need to have c_double pointers, if PyQrack is built with fp64.
|
|
@@ -117,7 +125,7 @@ class QrackSystem:
|
|
|
117
125
|
c_bool,
|
|
118
126
|
c_bool,
|
|
119
127
|
c_bool,
|
|
120
|
-
c_bool
|
|
128
|
+
c_bool,
|
|
121
129
|
]
|
|
122
130
|
|
|
123
131
|
self.qrack_lib.init_count_stabilizer.restype = c_ulonglong
|
|
@@ -143,14 +151,14 @@ class QrackSystem:
|
|
|
143
151
|
c_ulonglong,
|
|
144
152
|
c_ulonglong,
|
|
145
153
|
POINTER(c_ulonglong),
|
|
146
|
-
POINTER(c_float)
|
|
154
|
+
POINTER(c_float),
|
|
147
155
|
]
|
|
148
156
|
elif self.fppow == 6:
|
|
149
157
|
self.qrack_lib.ProbAll.argtypes = [
|
|
150
158
|
c_ulonglong,
|
|
151
159
|
c_ulonglong,
|
|
152
160
|
POINTER(c_ulonglong),
|
|
153
|
-
POINTER(c_double)
|
|
161
|
+
POINTER(c_double),
|
|
154
162
|
]
|
|
155
163
|
|
|
156
164
|
self.qrack_lib.Prob.restype = c_double
|
|
@@ -164,7 +172,7 @@ class QrackSystem:
|
|
|
164
172
|
c_ulonglong,
|
|
165
173
|
c_ulonglong,
|
|
166
174
|
POINTER(c_ulonglong),
|
|
167
|
-
POINTER(c_bool)
|
|
175
|
+
POINTER(c_bool),
|
|
168
176
|
]
|
|
169
177
|
|
|
170
178
|
self.qrack_lib.PermutationProbRdm.restype = c_double
|
|
@@ -173,14 +181,14 @@ class QrackSystem:
|
|
|
173
181
|
c_ulonglong,
|
|
174
182
|
POINTER(c_ulonglong),
|
|
175
183
|
POINTER(c_bool),
|
|
176
|
-
c_bool
|
|
184
|
+
c_bool,
|
|
177
185
|
]
|
|
178
186
|
|
|
179
187
|
self.qrack_lib.PermutationExpectation.restype = c_double
|
|
180
188
|
self.qrack_lib.PermutationExpectation.argtypes = [
|
|
181
189
|
c_ulonglong,
|
|
182
190
|
c_ulonglong,
|
|
183
|
-
POINTER(c_ulonglong)
|
|
191
|
+
POINTER(c_ulonglong),
|
|
184
192
|
]
|
|
185
193
|
|
|
186
194
|
self.qrack_lib.PermutationExpectationRdm.restype = c_double
|
|
@@ -188,7 +196,7 @@ class QrackSystem:
|
|
|
188
196
|
c_ulonglong,
|
|
189
197
|
c_ulonglong,
|
|
190
198
|
POINTER(c_ulonglong),
|
|
191
|
-
c_bool
|
|
199
|
+
c_bool,
|
|
192
200
|
]
|
|
193
201
|
|
|
194
202
|
self.qrack_lib.FactorizedExpectation.restype = c_double
|
|
@@ -197,7 +205,7 @@ class QrackSystem:
|
|
|
197
205
|
c_ulonglong,
|
|
198
206
|
POINTER(c_ulonglong),
|
|
199
207
|
c_ulonglong,
|
|
200
|
-
POINTER(c_ulonglong)
|
|
208
|
+
POINTER(c_ulonglong),
|
|
201
209
|
]
|
|
202
210
|
|
|
203
211
|
self.qrack_lib.FactorizedExpectationRdm.restype = c_double
|
|
@@ -207,7 +215,7 @@ class QrackSystem:
|
|
|
207
215
|
POINTER(c_ulonglong),
|
|
208
216
|
c_ulonglong,
|
|
209
217
|
POINTER(c_ulonglong),
|
|
210
|
-
c_bool
|
|
218
|
+
c_bool,
|
|
211
219
|
]
|
|
212
220
|
|
|
213
221
|
if self.fppow == 5:
|
|
@@ -216,7 +224,7 @@ class QrackSystem:
|
|
|
216
224
|
c_ulonglong,
|
|
217
225
|
c_ulonglong,
|
|
218
226
|
POINTER(c_ulonglong),
|
|
219
|
-
POINTER(c_float)
|
|
227
|
+
POINTER(c_float),
|
|
220
228
|
]
|
|
221
229
|
self.qrack_lib.FactorizedExpectationFpRdm.restype = c_double
|
|
222
230
|
self.qrack_lib.FactorizedExpectationFpRdm.argtypes = [
|
|
@@ -224,21 +232,21 @@ class QrackSystem:
|
|
|
224
232
|
c_ulonglong,
|
|
225
233
|
POINTER(c_ulonglong),
|
|
226
234
|
POINTER(c_float),
|
|
227
|
-
c_bool
|
|
235
|
+
c_bool,
|
|
228
236
|
]
|
|
229
237
|
self.qrack_lib.UnitaryExpectation.restype = c_double
|
|
230
238
|
self.qrack_lib.UnitaryExpectation.argtypes = [
|
|
231
239
|
c_ulonglong,
|
|
232
240
|
c_ulonglong,
|
|
233
241
|
POINTER(c_ulonglong),
|
|
234
|
-
POINTER(c_float)
|
|
242
|
+
POINTER(c_float),
|
|
235
243
|
]
|
|
236
244
|
self.qrack_lib.MatrixExpectation.restype = c_double
|
|
237
245
|
self.qrack_lib.MatrixExpectation.argtypes = [
|
|
238
246
|
c_ulonglong,
|
|
239
247
|
c_ulonglong,
|
|
240
248
|
POINTER(c_ulonglong),
|
|
241
|
-
POINTER(c_float)
|
|
249
|
+
POINTER(c_float),
|
|
242
250
|
]
|
|
243
251
|
self.qrack_lib.UnitaryExpectationEigenVal.restype = c_double
|
|
244
252
|
self.qrack_lib.UnitaryExpectationEigenVal.argtypes = [
|
|
@@ -246,7 +254,7 @@ class QrackSystem:
|
|
|
246
254
|
c_ulonglong,
|
|
247
255
|
POINTER(c_ulonglong),
|
|
248
256
|
POINTER(c_float),
|
|
249
|
-
POINTER(c_float)
|
|
257
|
+
POINTER(c_float),
|
|
250
258
|
]
|
|
251
259
|
self.qrack_lib.MatrixExpectationEigenVal.restype = c_double
|
|
252
260
|
self.qrack_lib.MatrixExpectationEigenVal.argtypes = [
|
|
@@ -254,7 +262,7 @@ class QrackSystem:
|
|
|
254
262
|
c_ulonglong,
|
|
255
263
|
POINTER(c_ulonglong),
|
|
256
264
|
POINTER(c_float),
|
|
257
|
-
POINTER(c_float)
|
|
265
|
+
POINTER(c_float),
|
|
258
266
|
]
|
|
259
267
|
elif self.fppow == 6:
|
|
260
268
|
self.qrack_lib.FactorizedExpectationFp.restype = c_double
|
|
@@ -262,7 +270,7 @@ class QrackSystem:
|
|
|
262
270
|
c_ulonglong,
|
|
263
271
|
c_ulonglong,
|
|
264
272
|
POINTER(c_ulonglong),
|
|
265
|
-
POINTER(c_double)
|
|
273
|
+
POINTER(c_double),
|
|
266
274
|
]
|
|
267
275
|
self.qrack_lib.FactorizedExpectationFpRdm.restype = c_double
|
|
268
276
|
self.qrack_lib.FactorizedExpectationFpRdm.argtypes = [
|
|
@@ -270,21 +278,21 @@ class QrackSystem:
|
|
|
270
278
|
c_ulonglong,
|
|
271
279
|
POINTER(c_ulonglong),
|
|
272
280
|
POINTER(c_double),
|
|
273
|
-
c_bool
|
|
281
|
+
c_bool,
|
|
274
282
|
]
|
|
275
283
|
self.qrack_lib.UnitaryExpectation.restype = c_double
|
|
276
284
|
self.qrack_lib.UnitaryExpectation.argtypes = [
|
|
277
285
|
c_ulonglong,
|
|
278
286
|
c_ulonglong,
|
|
279
287
|
POINTER(c_ulonglong),
|
|
280
|
-
POINTER(c_double)
|
|
288
|
+
POINTER(c_double),
|
|
281
289
|
]
|
|
282
290
|
self.qrack_lib.MatrixExpectation.restype = c_double
|
|
283
291
|
self.qrack_lib.MatrixExpectation.argtypes = [
|
|
284
292
|
c_ulonglong,
|
|
285
293
|
c_ulonglong,
|
|
286
294
|
POINTER(c_ulonglong),
|
|
287
|
-
POINTER(c_double)
|
|
295
|
+
POINTER(c_double),
|
|
288
296
|
]
|
|
289
297
|
self.qrack_lib.UnitaryExpectationEigenVal.restype = c_double
|
|
290
298
|
self.qrack_lib.UnitaryExpectationEigenVal.argtypes = [
|
|
@@ -292,7 +300,7 @@ class QrackSystem:
|
|
|
292
300
|
c_ulonglong,
|
|
293
301
|
POINTER(c_ulonglong),
|
|
294
302
|
POINTER(c_double),
|
|
295
|
-
POINTER(c_double)
|
|
303
|
+
POINTER(c_double),
|
|
296
304
|
]
|
|
297
305
|
self.qrack_lib.MatrixExpectationEigenVal.restype = c_double
|
|
298
306
|
self.qrack_lib.MatrixExpectationEigenVal.argtypes = [
|
|
@@ -300,7 +308,7 @@ class QrackSystem:
|
|
|
300
308
|
c_ulonglong,
|
|
301
309
|
POINTER(c_ulonglong),
|
|
302
310
|
POINTER(c_double),
|
|
303
|
-
POINTER(c_double)
|
|
311
|
+
POINTER(c_double),
|
|
304
312
|
]
|
|
305
313
|
|
|
306
314
|
self.qrack_lib.PauliExpectation.restype = c_double
|
|
@@ -308,14 +316,14 @@ class QrackSystem:
|
|
|
308
316
|
c_ulonglong,
|
|
309
317
|
c_ulonglong,
|
|
310
318
|
POINTER(c_ulonglong),
|
|
311
|
-
POINTER(c_ulonglong)
|
|
319
|
+
POINTER(c_ulonglong),
|
|
312
320
|
]
|
|
313
321
|
|
|
314
322
|
self.qrack_lib.Variance.restype = c_double
|
|
315
323
|
self.qrack_lib.Variance.argtypes = [
|
|
316
324
|
c_ulonglong,
|
|
317
325
|
c_ulonglong,
|
|
318
|
-
POINTER(c_ulonglong)
|
|
326
|
+
POINTER(c_ulonglong),
|
|
319
327
|
]
|
|
320
328
|
|
|
321
329
|
self.qrack_lib.VarianceRdm.restype = c_double
|
|
@@ -323,7 +331,7 @@ class QrackSystem:
|
|
|
323
331
|
c_ulonglong,
|
|
324
332
|
c_ulonglong,
|
|
325
333
|
POINTER(c_ulonglong),
|
|
326
|
-
c_bool
|
|
334
|
+
c_bool,
|
|
327
335
|
]
|
|
328
336
|
|
|
329
337
|
self.qrack_lib.FactorizedVariance.restype = c_double
|
|
@@ -332,7 +340,7 @@ class QrackSystem:
|
|
|
332
340
|
c_ulonglong,
|
|
333
341
|
POINTER(c_ulonglong),
|
|
334
342
|
c_ulonglong,
|
|
335
|
-
POINTER(c_ulonglong)
|
|
343
|
+
POINTER(c_ulonglong),
|
|
336
344
|
]
|
|
337
345
|
|
|
338
346
|
self.qrack_lib.FactorizedVarianceRdm.restype = c_double
|
|
@@ -342,7 +350,7 @@ class QrackSystem:
|
|
|
342
350
|
POINTER(c_ulonglong),
|
|
343
351
|
c_ulonglong,
|
|
344
352
|
POINTER(c_ulonglong),
|
|
345
|
-
c_bool
|
|
353
|
+
c_bool,
|
|
346
354
|
]
|
|
347
355
|
|
|
348
356
|
if self.fppow == 5:
|
|
@@ -351,7 +359,7 @@ class QrackSystem:
|
|
|
351
359
|
c_ulonglong,
|
|
352
360
|
c_ulonglong,
|
|
353
361
|
POINTER(c_ulonglong),
|
|
354
|
-
POINTER(c_float)
|
|
362
|
+
POINTER(c_float),
|
|
355
363
|
]
|
|
356
364
|
self.qrack_lib.FactorizedVarianceFpRdm.restype = c_double
|
|
357
365
|
self.qrack_lib.FactorizedVarianceFpRdm.argtypes = [
|
|
@@ -359,21 +367,21 @@ class QrackSystem:
|
|
|
359
367
|
c_ulonglong,
|
|
360
368
|
POINTER(c_ulonglong),
|
|
361
369
|
POINTER(c_float),
|
|
362
|
-
c_bool
|
|
370
|
+
c_bool,
|
|
363
371
|
]
|
|
364
372
|
self.qrack_lib.UnitaryVariance.restype = c_double
|
|
365
373
|
self.qrack_lib.UnitaryVariance.argtypes = [
|
|
366
374
|
c_ulonglong,
|
|
367
375
|
c_ulonglong,
|
|
368
376
|
POINTER(c_ulonglong),
|
|
369
|
-
POINTER(c_float)
|
|
377
|
+
POINTER(c_float),
|
|
370
378
|
]
|
|
371
379
|
self.qrack_lib.MatrixVariance.restype = c_double
|
|
372
380
|
self.qrack_lib.MatrixVariance.argtypes = [
|
|
373
381
|
c_ulonglong,
|
|
374
382
|
c_ulonglong,
|
|
375
383
|
POINTER(c_ulonglong),
|
|
376
|
-
POINTER(c_float)
|
|
384
|
+
POINTER(c_float),
|
|
377
385
|
]
|
|
378
386
|
self.qrack_lib.UnitaryVarianceEigenVal.restype = c_double
|
|
379
387
|
self.qrack_lib.UnitaryVarianceEigenVal.argtypes = [
|
|
@@ -381,7 +389,7 @@ class QrackSystem:
|
|
|
381
389
|
c_ulonglong,
|
|
382
390
|
POINTER(c_ulonglong),
|
|
383
391
|
POINTER(c_float),
|
|
384
|
-
POINTER(c_float)
|
|
392
|
+
POINTER(c_float),
|
|
385
393
|
]
|
|
386
394
|
self.qrack_lib.MatrixVarianceEigenVal.restype = c_double
|
|
387
395
|
self.qrack_lib.MatrixVarianceEigenVal.argtypes = [
|
|
@@ -389,7 +397,7 @@ class QrackSystem:
|
|
|
389
397
|
c_ulonglong,
|
|
390
398
|
POINTER(c_ulonglong),
|
|
391
399
|
POINTER(c_float),
|
|
392
|
-
POINTER(c_float)
|
|
400
|
+
POINTER(c_float),
|
|
393
401
|
]
|
|
394
402
|
elif self.fppow == 6:
|
|
395
403
|
self.qrack_lib.FactorizedVarianceFp.restype = c_double
|
|
@@ -397,7 +405,7 @@ class QrackSystem:
|
|
|
397
405
|
c_ulonglong,
|
|
398
406
|
c_ulonglong,
|
|
399
407
|
POINTER(c_ulonglong),
|
|
400
|
-
POINTER(c_double)
|
|
408
|
+
POINTER(c_double),
|
|
401
409
|
]
|
|
402
410
|
self.qrack_lib.FactorizedVarianceFpRdm.restype = c_double
|
|
403
411
|
self.qrack_lib.FactorizedVarianceFpRdm.argtypes = [
|
|
@@ -405,21 +413,21 @@ class QrackSystem:
|
|
|
405
413
|
c_ulonglong,
|
|
406
414
|
POINTER(c_ulonglong),
|
|
407
415
|
POINTER(c_double),
|
|
408
|
-
c_bool
|
|
416
|
+
c_bool,
|
|
409
417
|
]
|
|
410
418
|
self.qrack_lib.UnitaryVariance.restype = c_double
|
|
411
419
|
self.qrack_lib.UnitaryVariance.argtypes = [
|
|
412
420
|
c_ulonglong,
|
|
413
421
|
c_ulonglong,
|
|
414
422
|
POINTER(c_ulonglong),
|
|
415
|
-
POINTER(c_double)
|
|
423
|
+
POINTER(c_double),
|
|
416
424
|
]
|
|
417
425
|
self.qrack_lib.MatrixVariance.restype = c_double
|
|
418
426
|
self.qrack_lib.MatrixVariance.argtypes = [
|
|
419
427
|
c_ulonglong,
|
|
420
428
|
c_ulonglong,
|
|
421
429
|
POINTER(c_ulonglong),
|
|
422
|
-
POINTER(c_double)
|
|
430
|
+
POINTER(c_double),
|
|
423
431
|
]
|
|
424
432
|
self.qrack_lib.UnitaryVarianceEigenVal.restype = c_double
|
|
425
433
|
self.qrack_lib.UnitaryVarianceEigenVal.argtypes = [
|
|
@@ -427,7 +435,7 @@ class QrackSystem:
|
|
|
427
435
|
c_ulonglong,
|
|
428
436
|
POINTER(c_ulonglong),
|
|
429
437
|
POINTER(c_double),
|
|
430
|
-
POINTER(c_double)
|
|
438
|
+
POINTER(c_double),
|
|
431
439
|
]
|
|
432
440
|
self.qrack_lib.MatrixVarianceEigenVal.restype = c_double
|
|
433
441
|
self.qrack_lib.MatrixVarianceEigenVal.argtypes = [
|
|
@@ -435,7 +443,7 @@ class QrackSystem:
|
|
|
435
443
|
c_ulonglong,
|
|
436
444
|
POINTER(c_ulonglong),
|
|
437
445
|
POINTER(c_double),
|
|
438
|
-
POINTER(c_double)
|
|
446
|
+
POINTER(c_double),
|
|
439
447
|
]
|
|
440
448
|
|
|
441
449
|
self.qrack_lib.PauliVariance.restype = c_double
|
|
@@ -443,7 +451,7 @@ class QrackSystem:
|
|
|
443
451
|
c_ulonglong,
|
|
444
452
|
c_ulonglong,
|
|
445
453
|
POINTER(c_ulonglong),
|
|
446
|
-
POINTER(c_ulonglong)
|
|
454
|
+
POINTER(c_ulonglong),
|
|
447
455
|
]
|
|
448
456
|
|
|
449
457
|
self.qrack_lib.JointEnsembleProbability.restype = c_double
|
|
@@ -451,7 +459,7 @@ class QrackSystem:
|
|
|
451
459
|
c_ulonglong,
|
|
452
460
|
c_ulonglong,
|
|
453
461
|
POINTER(c_int),
|
|
454
|
-
c_ulonglong
|
|
462
|
+
c_ulonglong,
|
|
455
463
|
]
|
|
456
464
|
|
|
457
465
|
self.qrack_lib.PhaseParity.restype = None
|
|
@@ -459,7 +467,7 @@ class QrackSystem:
|
|
|
459
467
|
c_ulonglong,
|
|
460
468
|
c_double,
|
|
461
469
|
c_ulonglong,
|
|
462
|
-
POINTER(c_ulonglong)
|
|
470
|
+
POINTER(c_ulonglong),
|
|
463
471
|
]
|
|
464
472
|
|
|
465
473
|
self.qrack_lib.PhaseRootN.restype = None
|
|
@@ -467,7 +475,7 @@ class QrackSystem:
|
|
|
467
475
|
c_ulonglong,
|
|
468
476
|
c_ulonglong,
|
|
469
477
|
c_ulonglong,
|
|
470
|
-
POINTER(c_ulonglong)
|
|
478
|
+
POINTER(c_ulonglong),
|
|
471
479
|
]
|
|
472
480
|
|
|
473
481
|
self.qrack_lib.ResetAll.restype = None
|
|
@@ -516,7 +524,7 @@ class QrackSystem:
|
|
|
516
524
|
c_ulonglong,
|
|
517
525
|
c_double,
|
|
518
526
|
c_double,
|
|
519
|
-
c_double
|
|
527
|
+
c_double,
|
|
520
528
|
]
|
|
521
529
|
|
|
522
530
|
self.qrack_lib.Mtrx.restype = None
|
|
@@ -529,7 +537,7 @@ class QrackSystem:
|
|
|
529
537
|
c_ulonglong,
|
|
530
538
|
c_ulonglong,
|
|
531
539
|
POINTER(c_ulonglong),
|
|
532
|
-
c_ulonglong
|
|
540
|
+
c_ulonglong,
|
|
533
541
|
]
|
|
534
542
|
|
|
535
543
|
self.qrack_lib.MCY.restype = None
|
|
@@ -537,7 +545,7 @@ class QrackSystem:
|
|
|
537
545
|
c_ulonglong,
|
|
538
546
|
c_ulonglong,
|
|
539
547
|
POINTER(c_ulonglong),
|
|
540
|
-
c_ulonglong
|
|
548
|
+
c_ulonglong,
|
|
541
549
|
]
|
|
542
550
|
|
|
543
551
|
self.qrack_lib.MCZ.restype = None
|
|
@@ -545,7 +553,7 @@ class QrackSystem:
|
|
|
545
553
|
c_ulonglong,
|
|
546
554
|
c_ulonglong,
|
|
547
555
|
POINTER(c_ulonglong),
|
|
548
|
-
c_ulonglong
|
|
556
|
+
c_ulonglong,
|
|
549
557
|
]
|
|
550
558
|
|
|
551
559
|
self.qrack_lib.MCH.restype = None
|
|
@@ -553,7 +561,7 @@ class QrackSystem:
|
|
|
553
561
|
c_ulonglong,
|
|
554
562
|
c_ulonglong,
|
|
555
563
|
POINTER(c_ulonglong),
|
|
556
|
-
c_ulonglong
|
|
564
|
+
c_ulonglong,
|
|
557
565
|
]
|
|
558
566
|
|
|
559
567
|
self.qrack_lib.MCS.restype = None
|
|
@@ -561,7 +569,7 @@ class QrackSystem:
|
|
|
561
569
|
c_ulonglong,
|
|
562
570
|
c_ulonglong,
|
|
563
571
|
POINTER(c_ulonglong),
|
|
564
|
-
c_ulonglong
|
|
572
|
+
c_ulonglong,
|
|
565
573
|
]
|
|
566
574
|
|
|
567
575
|
self.qrack_lib.MCT.restype = None
|
|
@@ -569,7 +577,7 @@ class QrackSystem:
|
|
|
569
577
|
c_ulonglong,
|
|
570
578
|
c_ulonglong,
|
|
571
579
|
POINTER(c_ulonglong),
|
|
572
|
-
c_ulonglong
|
|
580
|
+
c_ulonglong,
|
|
573
581
|
]
|
|
574
582
|
|
|
575
583
|
self.qrack_lib.MCAdjS.restype = None
|
|
@@ -577,7 +585,7 @@ class QrackSystem:
|
|
|
577
585
|
c_ulonglong,
|
|
578
586
|
c_ulonglong,
|
|
579
587
|
POINTER(c_ulonglong),
|
|
580
|
-
c_ulonglong
|
|
588
|
+
c_ulonglong,
|
|
581
589
|
]
|
|
582
590
|
|
|
583
591
|
self.qrack_lib.MCAdjT.restype = None
|
|
@@ -585,7 +593,7 @@ class QrackSystem:
|
|
|
585
593
|
c_ulonglong,
|
|
586
594
|
c_ulonglong,
|
|
587
595
|
POINTER(c_ulonglong),
|
|
588
|
-
c_ulonglong
|
|
596
|
+
c_ulonglong,
|
|
589
597
|
]
|
|
590
598
|
|
|
591
599
|
self.qrack_lib.MCU.restype = None
|
|
@@ -596,7 +604,7 @@ class QrackSystem:
|
|
|
596
604
|
c_ulonglong,
|
|
597
605
|
c_double,
|
|
598
606
|
c_double,
|
|
599
|
-
c_double
|
|
607
|
+
c_double,
|
|
600
608
|
]
|
|
601
609
|
|
|
602
610
|
self.qrack_lib.MCMtrx.restype = None
|
|
@@ -605,7 +613,7 @@ class QrackSystem:
|
|
|
605
613
|
c_ulonglong,
|
|
606
614
|
POINTER(c_ulonglong),
|
|
607
615
|
POINTER(c_double),
|
|
608
|
-
c_ulonglong
|
|
616
|
+
c_ulonglong,
|
|
609
617
|
]
|
|
610
618
|
|
|
611
619
|
# multi-anti-controlled single-qubit gates
|
|
@@ -615,7 +623,7 @@ class QrackSystem:
|
|
|
615
623
|
c_ulonglong,
|
|
616
624
|
c_ulonglong,
|
|
617
625
|
POINTER(c_ulonglong),
|
|
618
|
-
c_ulonglong
|
|
626
|
+
c_ulonglong,
|
|
619
627
|
]
|
|
620
628
|
|
|
621
629
|
self.qrack_lib.MACY.restype = None
|
|
@@ -623,7 +631,7 @@ class QrackSystem:
|
|
|
623
631
|
c_ulonglong,
|
|
624
632
|
c_ulonglong,
|
|
625
633
|
POINTER(c_ulonglong),
|
|
626
|
-
c_ulonglong
|
|
634
|
+
c_ulonglong,
|
|
627
635
|
]
|
|
628
636
|
|
|
629
637
|
self.qrack_lib.MACZ.restype = None
|
|
@@ -631,7 +639,7 @@ class QrackSystem:
|
|
|
631
639
|
c_ulonglong,
|
|
632
640
|
c_ulonglong,
|
|
633
641
|
POINTER(c_ulonglong),
|
|
634
|
-
c_ulonglong
|
|
642
|
+
c_ulonglong,
|
|
635
643
|
]
|
|
636
644
|
|
|
637
645
|
self.qrack_lib.MACH.restype = None
|
|
@@ -639,7 +647,7 @@ class QrackSystem:
|
|
|
639
647
|
c_ulonglong,
|
|
640
648
|
c_ulonglong,
|
|
641
649
|
POINTER(c_ulonglong),
|
|
642
|
-
c_ulonglong
|
|
650
|
+
c_ulonglong,
|
|
643
651
|
]
|
|
644
652
|
|
|
645
653
|
self.qrack_lib.MACS.restype = None
|
|
@@ -647,7 +655,7 @@ class QrackSystem:
|
|
|
647
655
|
c_ulonglong,
|
|
648
656
|
c_ulonglong,
|
|
649
657
|
POINTER(c_ulonglong),
|
|
650
|
-
c_ulonglong
|
|
658
|
+
c_ulonglong,
|
|
651
659
|
]
|
|
652
660
|
|
|
653
661
|
self.qrack_lib.MACT.restype = None
|
|
@@ -655,7 +663,7 @@ class QrackSystem:
|
|
|
655
663
|
c_ulonglong,
|
|
656
664
|
c_ulonglong,
|
|
657
665
|
POINTER(c_ulonglong),
|
|
658
|
-
c_ulonglong
|
|
666
|
+
c_ulonglong,
|
|
659
667
|
]
|
|
660
668
|
|
|
661
669
|
self.qrack_lib.MACAdjS.restype = None
|
|
@@ -663,7 +671,7 @@ class QrackSystem:
|
|
|
663
671
|
c_ulonglong,
|
|
664
672
|
c_ulonglong,
|
|
665
673
|
POINTER(c_ulonglong),
|
|
666
|
-
c_ulonglong
|
|
674
|
+
c_ulonglong,
|
|
667
675
|
]
|
|
668
676
|
|
|
669
677
|
self.qrack_lib.MACAdjT.restype = None
|
|
@@ -671,7 +679,7 @@ class QrackSystem:
|
|
|
671
679
|
c_ulonglong,
|
|
672
680
|
c_ulonglong,
|
|
673
681
|
POINTER(c_ulonglong),
|
|
674
|
-
c_ulonglong
|
|
682
|
+
c_ulonglong,
|
|
675
683
|
]
|
|
676
684
|
|
|
677
685
|
self.qrack_lib.MACU.restype = None
|
|
@@ -682,7 +690,7 @@ class QrackSystem:
|
|
|
682
690
|
c_ulonglong,
|
|
683
691
|
c_double,
|
|
684
692
|
c_double,
|
|
685
|
-
c_double
|
|
693
|
+
c_double,
|
|
686
694
|
]
|
|
687
695
|
|
|
688
696
|
self.qrack_lib.MACMtrx.restype = None
|
|
@@ -691,7 +699,7 @@ class QrackSystem:
|
|
|
691
699
|
c_ulonglong,
|
|
692
700
|
POINTER(c_ulonglong),
|
|
693
701
|
POINTER(c_double),
|
|
694
|
-
c_ulonglong
|
|
702
|
+
c_ulonglong,
|
|
695
703
|
]
|
|
696
704
|
|
|
697
705
|
self.qrack_lib.UCMtrx.restype = None
|
|
@@ -701,7 +709,7 @@ class QrackSystem:
|
|
|
701
709
|
POINTER(c_ulonglong),
|
|
702
710
|
POINTER(c_double),
|
|
703
711
|
c_ulonglong,
|
|
704
|
-
c_ulonglong
|
|
712
|
+
c_ulonglong,
|
|
705
713
|
]
|
|
706
714
|
|
|
707
715
|
self.qrack_lib.Multiplex1Mtrx.restype = None
|
|
@@ -710,7 +718,7 @@ class QrackSystem:
|
|
|
710
718
|
c_ulonglong,
|
|
711
719
|
POINTER(c_ulonglong),
|
|
712
720
|
c_ulonglong,
|
|
713
|
-
POINTER(c_double)
|
|
721
|
+
POINTER(c_double),
|
|
714
722
|
]
|
|
715
723
|
|
|
716
724
|
# coalesced single qubit gates
|
|
@@ -736,7 +744,7 @@ class QrackSystem:
|
|
|
736
744
|
c_double,
|
|
737
745
|
c_ulonglong,
|
|
738
746
|
POINTER(c_ulonglong),
|
|
739
|
-
c_ulonglong
|
|
747
|
+
c_ulonglong,
|
|
740
748
|
]
|
|
741
749
|
|
|
742
750
|
# exponential of Pauli operators
|
|
@@ -747,7 +755,7 @@ class QrackSystem:
|
|
|
747
755
|
c_ulonglong,
|
|
748
756
|
POINTER(c_int),
|
|
749
757
|
c_double,
|
|
750
|
-
POINTER(c_ulonglong)
|
|
758
|
+
POINTER(c_ulonglong),
|
|
751
759
|
]
|
|
752
760
|
|
|
753
761
|
self.qrack_lib.MCExp.restype = None
|
|
@@ -758,7 +766,7 @@ class QrackSystem:
|
|
|
758
766
|
c_double,
|
|
759
767
|
c_ulonglong,
|
|
760
768
|
POINTER(c_ulonglong),
|
|
761
|
-
POINTER(c_ulonglong)
|
|
769
|
+
POINTER(c_ulonglong),
|
|
762
770
|
]
|
|
763
771
|
|
|
764
772
|
# measurements
|
|
@@ -777,7 +785,7 @@ class QrackSystem:
|
|
|
777
785
|
c_ulonglong,
|
|
778
786
|
c_ulonglong,
|
|
779
787
|
POINTER(c_int),
|
|
780
|
-
POINTER(c_ulonglong)
|
|
788
|
+
POINTER(c_ulonglong),
|
|
781
789
|
]
|
|
782
790
|
|
|
783
791
|
self.qrack_lib.MeasureShots.restype = None
|
|
@@ -786,7 +794,7 @@ class QrackSystem:
|
|
|
786
794
|
c_ulonglong,
|
|
787
795
|
POINTER(c_ulonglong),
|
|
788
796
|
c_ulonglong,
|
|
789
|
-
POINTER(c_ulonglong)
|
|
797
|
+
POINTER(c_ulonglong),
|
|
790
798
|
]
|
|
791
799
|
|
|
792
800
|
# swap
|
|
@@ -806,7 +814,7 @@ class QrackSystem:
|
|
|
806
814
|
c_double,
|
|
807
815
|
c_double,
|
|
808
816
|
c_ulonglong,
|
|
809
|
-
c_ulonglong
|
|
817
|
+
c_ulonglong,
|
|
810
818
|
]
|
|
811
819
|
|
|
812
820
|
self.qrack_lib.CSWAP.restype = None
|
|
@@ -815,7 +823,7 @@ class QrackSystem:
|
|
|
815
823
|
c_ulonglong,
|
|
816
824
|
POINTER(c_ulonglong),
|
|
817
825
|
c_ulonglong,
|
|
818
|
-
c_ulonglong
|
|
826
|
+
c_ulonglong,
|
|
819
827
|
]
|
|
820
828
|
|
|
821
829
|
self.qrack_lib.ACSWAP.restype = None
|
|
@@ -824,7 +832,7 @@ class QrackSystem:
|
|
|
824
832
|
c_ulonglong,
|
|
825
833
|
POINTER(c_ulonglong),
|
|
826
834
|
c_ulonglong,
|
|
827
|
-
c_ulonglong
|
|
835
|
+
c_ulonglong,
|
|
828
836
|
]
|
|
829
837
|
|
|
830
838
|
# Schmidt decomposition
|
|
@@ -833,21 +841,21 @@ class QrackSystem:
|
|
|
833
841
|
self.qrack_lib.Compose.argtypes = [
|
|
834
842
|
c_ulonglong,
|
|
835
843
|
c_ulonglong,
|
|
836
|
-
POINTER(c_ulonglong)
|
|
844
|
+
POINTER(c_ulonglong),
|
|
837
845
|
]
|
|
838
846
|
|
|
839
847
|
self.qrack_lib.Decompose.restype = c_ulonglong
|
|
840
848
|
self.qrack_lib.Decompose.argtypes = [
|
|
841
849
|
c_ulonglong,
|
|
842
850
|
c_ulonglong,
|
|
843
|
-
POINTER(c_ulonglong)
|
|
851
|
+
POINTER(c_ulonglong),
|
|
844
852
|
]
|
|
845
853
|
|
|
846
854
|
self.qrack_lib.Dispose.restype = None
|
|
847
855
|
self.qrack_lib.Dispose.argtypes = [
|
|
848
856
|
c_ulonglong,
|
|
849
857
|
c_ulonglong,
|
|
850
|
-
POINTER(c_ulonglong)
|
|
858
|
+
POINTER(c_ulonglong),
|
|
851
859
|
]
|
|
852
860
|
|
|
853
861
|
# (quasi-)Boolean gates
|
|
@@ -857,7 +865,7 @@ class QrackSystem:
|
|
|
857
865
|
c_ulonglong,
|
|
858
866
|
c_ulonglong,
|
|
859
867
|
c_ulonglong,
|
|
860
|
-
c_ulonglong
|
|
868
|
+
c_ulonglong,
|
|
861
869
|
]
|
|
862
870
|
|
|
863
871
|
self.qrack_lib.OR.restype = None
|
|
@@ -865,7 +873,7 @@ class QrackSystem:
|
|
|
865
873
|
c_ulonglong,
|
|
866
874
|
c_ulonglong,
|
|
867
875
|
c_ulonglong,
|
|
868
|
-
c_ulonglong
|
|
876
|
+
c_ulonglong,
|
|
869
877
|
]
|
|
870
878
|
|
|
871
879
|
self.qrack_lib.XOR.restype = None
|
|
@@ -873,7 +881,7 @@ class QrackSystem:
|
|
|
873
881
|
c_ulonglong,
|
|
874
882
|
c_ulonglong,
|
|
875
883
|
c_ulonglong,
|
|
876
|
-
c_ulonglong
|
|
884
|
+
c_ulonglong,
|
|
877
885
|
]
|
|
878
886
|
|
|
879
887
|
self.qrack_lib.NAND.restype = None
|
|
@@ -881,7 +889,7 @@ class QrackSystem:
|
|
|
881
889
|
c_ulonglong,
|
|
882
890
|
c_ulonglong,
|
|
883
891
|
c_ulonglong,
|
|
884
|
-
c_ulonglong
|
|
892
|
+
c_ulonglong,
|
|
885
893
|
]
|
|
886
894
|
|
|
887
895
|
self.qrack_lib.NOR.restype = None
|
|
@@ -889,7 +897,7 @@ class QrackSystem:
|
|
|
889
897
|
c_ulonglong,
|
|
890
898
|
c_ulonglong,
|
|
891
899
|
c_ulonglong,
|
|
892
|
-
c_ulonglong
|
|
900
|
+
c_ulonglong,
|
|
893
901
|
]
|
|
894
902
|
|
|
895
903
|
self.qrack_lib.XNOR.restype = None
|
|
@@ -897,7 +905,7 @@ class QrackSystem:
|
|
|
897
905
|
c_ulonglong,
|
|
898
906
|
c_ulonglong,
|
|
899
907
|
c_ulonglong,
|
|
900
|
-
c_ulonglong
|
|
908
|
+
c_ulonglong,
|
|
901
909
|
]
|
|
902
910
|
|
|
903
911
|
# half classical (quasi-)Boolean gates
|
|
@@ -936,7 +944,7 @@ class QrackSystem:
|
|
|
936
944
|
c_ulonglong,
|
|
937
945
|
POINTER(c_ulonglong),
|
|
938
946
|
c_ulonglong,
|
|
939
|
-
POINTER(c_ulonglong)
|
|
947
|
+
POINTER(c_ulonglong),
|
|
940
948
|
]
|
|
941
949
|
|
|
942
950
|
self.qrack_lib.SUB.restype = None
|
|
@@ -945,7 +953,7 @@ class QrackSystem:
|
|
|
945
953
|
c_ulonglong,
|
|
946
954
|
POINTER(c_ulonglong),
|
|
947
955
|
c_ulonglong,
|
|
948
|
-
POINTER(c_ulonglong)
|
|
956
|
+
POINTER(c_ulonglong),
|
|
949
957
|
]
|
|
950
958
|
|
|
951
959
|
self.qrack_lib.ADDS.restype = None
|
|
@@ -955,7 +963,7 @@ class QrackSystem:
|
|
|
955
963
|
POINTER(c_ulonglong),
|
|
956
964
|
c_ulonglong,
|
|
957
965
|
c_ulonglong,
|
|
958
|
-
POINTER(c_ulonglong)
|
|
966
|
+
POINTER(c_ulonglong),
|
|
959
967
|
]
|
|
960
968
|
|
|
961
969
|
self.qrack_lib.SUBS.restype = None
|
|
@@ -965,7 +973,7 @@ class QrackSystem:
|
|
|
965
973
|
POINTER(c_ulonglong),
|
|
966
974
|
c_ulonglong,
|
|
967
975
|
c_ulonglong,
|
|
968
|
-
POINTER(c_ulonglong)
|
|
976
|
+
POINTER(c_ulonglong),
|
|
969
977
|
]
|
|
970
978
|
|
|
971
979
|
self.qrack_lib.MUL.restype = None
|
|
@@ -975,7 +983,7 @@ class QrackSystem:
|
|
|
975
983
|
POINTER(c_ulonglong),
|
|
976
984
|
c_ulonglong,
|
|
977
985
|
POINTER(c_ulonglong),
|
|
978
|
-
POINTER(c_ulonglong)
|
|
986
|
+
POINTER(c_ulonglong),
|
|
979
987
|
]
|
|
980
988
|
|
|
981
989
|
self.qrack_lib.DIV.restype = None
|
|
@@ -985,7 +993,7 @@ class QrackSystem:
|
|
|
985
993
|
POINTER(c_ulonglong),
|
|
986
994
|
c_ulonglong,
|
|
987
995
|
POINTER(c_ulonglong),
|
|
988
|
-
POINTER(c_ulonglong)
|
|
996
|
+
POINTER(c_ulonglong),
|
|
989
997
|
]
|
|
990
998
|
|
|
991
999
|
self.qrack_lib.MULN.restype = None
|
|
@@ -996,7 +1004,7 @@ class QrackSystem:
|
|
|
996
1004
|
POINTER(c_ulonglong),
|
|
997
1005
|
c_ulonglong,
|
|
998
1006
|
POINTER(c_ulonglong),
|
|
999
|
-
POINTER(c_ulonglong)
|
|
1007
|
+
POINTER(c_ulonglong),
|
|
1000
1008
|
]
|
|
1001
1009
|
|
|
1002
1010
|
self.qrack_lib.DIVN.restype = None
|
|
@@ -1007,7 +1015,7 @@ class QrackSystem:
|
|
|
1007
1015
|
POINTER(c_ulonglong),
|
|
1008
1016
|
c_ulonglong,
|
|
1009
1017
|
POINTER(c_ulonglong),
|
|
1010
|
-
POINTER(c_ulonglong)
|
|
1018
|
+
POINTER(c_ulonglong),
|
|
1011
1019
|
]
|
|
1012
1020
|
|
|
1013
1021
|
self.qrack_lib.POWN.restype = None
|
|
@@ -1018,7 +1026,7 @@ class QrackSystem:
|
|
|
1018
1026
|
POINTER(c_ulonglong),
|
|
1019
1027
|
c_ulonglong,
|
|
1020
1028
|
POINTER(c_ulonglong),
|
|
1021
|
-
POINTER(c_ulonglong)
|
|
1029
|
+
POINTER(c_ulonglong),
|
|
1022
1030
|
]
|
|
1023
1031
|
|
|
1024
1032
|
self.qrack_lib.MCADD.restype = None
|
|
@@ -1029,7 +1037,7 @@ class QrackSystem:
|
|
|
1029
1037
|
c_ulonglong,
|
|
1030
1038
|
POINTER(c_ulonglong),
|
|
1031
1039
|
c_ulonglong,
|
|
1032
|
-
POINTER(c_ulonglong)
|
|
1040
|
+
POINTER(c_ulonglong),
|
|
1033
1041
|
]
|
|
1034
1042
|
|
|
1035
1043
|
self.qrack_lib.MCSUB.restype = None
|
|
@@ -1040,7 +1048,7 @@ class QrackSystem:
|
|
|
1040
1048
|
c_ulonglong,
|
|
1041
1049
|
POINTER(c_ulonglong),
|
|
1042
1050
|
c_ulonglong,
|
|
1043
|
-
POINTER(c_ulonglong)
|
|
1051
|
+
POINTER(c_ulonglong),
|
|
1044
1052
|
]
|
|
1045
1053
|
|
|
1046
1054
|
self.qrack_lib.MCMUL.restype = None
|
|
@@ -1051,7 +1059,7 @@ class QrackSystem:
|
|
|
1051
1059
|
c_ulonglong,
|
|
1052
1060
|
POINTER(c_ulonglong),
|
|
1053
1061
|
c_ulonglong,
|
|
1054
|
-
POINTER(c_ulonglong)
|
|
1062
|
+
POINTER(c_ulonglong),
|
|
1055
1063
|
]
|
|
1056
1064
|
|
|
1057
1065
|
self.qrack_lib.MCDIV.restype = None
|
|
@@ -1062,7 +1070,7 @@ class QrackSystem:
|
|
|
1062
1070
|
c_ulonglong,
|
|
1063
1071
|
POINTER(c_ulonglong),
|
|
1064
1072
|
c_ulonglong,
|
|
1065
|
-
POINTER(c_ulonglong)
|
|
1073
|
+
POINTER(c_ulonglong),
|
|
1066
1074
|
]
|
|
1067
1075
|
|
|
1068
1076
|
self.qrack_lib.MCMULN.restype = None
|
|
@@ -1075,7 +1083,7 @@ class QrackSystem:
|
|
|
1075
1083
|
POINTER(c_ulonglong),
|
|
1076
1084
|
c_ulonglong,
|
|
1077
1085
|
POINTER(c_ulonglong),
|
|
1078
|
-
POINTER(c_ulonglong)
|
|
1086
|
+
POINTER(c_ulonglong),
|
|
1079
1087
|
]
|
|
1080
1088
|
|
|
1081
1089
|
self.qrack_lib.MCDIVN.restype = None
|
|
@@ -1088,7 +1096,7 @@ class QrackSystem:
|
|
|
1088
1096
|
POINTER(c_ulonglong),
|
|
1089
1097
|
c_ulonglong,
|
|
1090
1098
|
POINTER(c_ulonglong),
|
|
1091
|
-
POINTER(c_ulonglong)
|
|
1099
|
+
POINTER(c_ulonglong),
|
|
1092
1100
|
]
|
|
1093
1101
|
|
|
1094
1102
|
self.qrack_lib.MCPOWN.restype = None
|
|
@@ -1101,7 +1109,7 @@ class QrackSystem:
|
|
|
1101
1109
|
POINTER(c_ulonglong),
|
|
1102
1110
|
c_ulonglong,
|
|
1103
1111
|
POINTER(c_ulonglong),
|
|
1104
|
-
POINTER(c_ulonglong)
|
|
1112
|
+
POINTER(c_ulonglong),
|
|
1105
1113
|
]
|
|
1106
1114
|
|
|
1107
1115
|
self.qrack_lib.LDA.restype = None
|
|
@@ -1111,7 +1119,7 @@ class QrackSystem:
|
|
|
1111
1119
|
POINTER(c_ulonglong),
|
|
1112
1120
|
c_ulonglong,
|
|
1113
1121
|
POINTER(c_ulonglong),
|
|
1114
|
-
POINTER(c_ubyte)
|
|
1122
|
+
POINTER(c_ubyte),
|
|
1115
1123
|
]
|
|
1116
1124
|
|
|
1117
1125
|
self.qrack_lib.ADC.restype = None
|
|
@@ -1122,7 +1130,7 @@ class QrackSystem:
|
|
|
1122
1130
|
POINTER(c_ulonglong),
|
|
1123
1131
|
c_ulonglong,
|
|
1124
1132
|
POINTER(c_ulonglong),
|
|
1125
|
-
POINTER(c_ubyte)
|
|
1133
|
+
POINTER(c_ubyte),
|
|
1126
1134
|
]
|
|
1127
1135
|
|
|
1128
1136
|
self.qrack_lib.SBC.restype = None
|
|
@@ -1133,7 +1141,7 @@ class QrackSystem:
|
|
|
1133
1141
|
POINTER(c_ulonglong),
|
|
1134
1142
|
c_ulonglong,
|
|
1135
1143
|
POINTER(c_ulonglong),
|
|
1136
|
-
POINTER(c_ubyte)
|
|
1144
|
+
POINTER(c_ubyte),
|
|
1137
1145
|
]
|
|
1138
1146
|
|
|
1139
1147
|
self.qrack_lib.Hash.restype = None
|
|
@@ -1141,7 +1149,7 @@ class QrackSystem:
|
|
|
1141
1149
|
c_ulonglong,
|
|
1142
1150
|
c_ulonglong,
|
|
1143
1151
|
POINTER(c_ulonglong),
|
|
1144
|
-
POINTER(c_ubyte)
|
|
1152
|
+
POINTER(c_ubyte),
|
|
1145
1153
|
]
|
|
1146
1154
|
|
|
1147
1155
|
# miscellaneous
|
|
@@ -1157,14 +1165,14 @@ class QrackSystem:
|
|
|
1157
1165
|
c_ulonglong,
|
|
1158
1166
|
c_ulonglong,
|
|
1159
1167
|
POINTER(c_ulonglong),
|
|
1160
|
-
c_double
|
|
1168
|
+
c_double,
|
|
1161
1169
|
]
|
|
1162
1170
|
|
|
1163
1171
|
self.qrack_lib.Separate.restype = None
|
|
1164
1172
|
self.qrack_lib.Separate.argtypes = [
|
|
1165
1173
|
c_ulonglong,
|
|
1166
1174
|
c_ulonglong,
|
|
1167
|
-
POINTER(c_ulonglong)
|
|
1175
|
+
POINTER(c_ulonglong),
|
|
1168
1176
|
]
|
|
1169
1177
|
|
|
1170
1178
|
self.qrack_lib.GetUnitaryFidelity.restype = c_double
|
|
@@ -1198,7 +1206,15 @@ class QrackSystem:
|
|
|
1198
1206
|
self.qrack_lib.qstabilizer_in_from_file.argtypes = [c_ulonglong, c_char_p]
|
|
1199
1207
|
|
|
1200
1208
|
self.qrack_lib.init_qneuron.restype = c_ulonglong
|
|
1201
|
-
self.qrack_lib.init_qneuron.argtypes = [
|
|
1209
|
+
self.qrack_lib.init_qneuron.argtypes = [
|
|
1210
|
+
c_ulonglong,
|
|
1211
|
+
c_ulonglong,
|
|
1212
|
+
POINTER(c_ulonglong),
|
|
1213
|
+
c_ulonglong,
|
|
1214
|
+
c_ulonglong,
|
|
1215
|
+
c_double,
|
|
1216
|
+
c_double,
|
|
1217
|
+
]
|
|
1202
1218
|
|
|
1203
1219
|
self.qrack_lib.clone_qneuron.restype = c_ulonglong
|
|
1204
1220
|
self.qrack_lib.clone_qneuron.argtypes = [c_ulonglong]
|
|
@@ -1213,8 +1229,14 @@ class QrackSystem:
|
|
|
1213
1229
|
self.qrack_lib.set_qneuron_angles.argtypes = [c_ulonglong, POINTER(c_float)]
|
|
1214
1230
|
self.qrack_lib.get_qneuron_angles.argtypes = [c_ulonglong, POINTER(c_float)]
|
|
1215
1231
|
elif self.fppow == 6:
|
|
1216
|
-
self.qrack_lib.set_qneuron_angles.argtypes = [
|
|
1217
|
-
|
|
1232
|
+
self.qrack_lib.set_qneuron_angles.argtypes = [
|
|
1233
|
+
c_ulonglong,
|
|
1234
|
+
POINTER(c_double),
|
|
1235
|
+
]
|
|
1236
|
+
self.qrack_lib.get_qneuron_angles.argtypes = [
|
|
1237
|
+
c_ulonglong,
|
|
1238
|
+
POINTER(c_double),
|
|
1239
|
+
]
|
|
1218
1240
|
|
|
1219
1241
|
self.qrack_lib.set_qneuron_alpha.restype = None
|
|
1220
1242
|
self.qrack_lib.set_qneuron_alpha.argtypes = [c_ulonglong, c_double]
|
|
@@ -1241,7 +1263,12 @@ class QrackSystem:
|
|
|
1241
1263
|
self.qrack_lib.qneuron_learn.argtypes = [c_ulonglong, c_double, c_bool, c_bool]
|
|
1242
1264
|
|
|
1243
1265
|
self.qrack_lib.qneuron_learn_permutation.restype = None
|
|
1244
|
-
self.qrack_lib.qneuron_learn_permutation.argtypes = [
|
|
1266
|
+
self.qrack_lib.qneuron_learn_permutation.argtypes = [
|
|
1267
|
+
c_ulonglong,
|
|
1268
|
+
c_double,
|
|
1269
|
+
c_bool,
|
|
1270
|
+
c_bool,
|
|
1271
|
+
]
|
|
1245
1272
|
|
|
1246
1273
|
self.qrack_lib.init_qcircuit.restype = c_ulonglong
|
|
1247
1274
|
self.qrack_lib.init_qcircuit.argtypes = [c_bool, c_bool]
|
|
@@ -1253,7 +1280,11 @@ class QrackSystem:
|
|
|
1253
1280
|
self.qrack_lib.qcircuit_inverse.argtypes = [c_ulonglong]
|
|
1254
1281
|
|
|
1255
1282
|
self.qrack_lib.qcircuit_past_light_cone.restype = c_ulonglong
|
|
1256
|
-
self.qrack_lib.qcircuit_past_light_cone.argtypes = [
|
|
1283
|
+
self.qrack_lib.qcircuit_past_light_cone.argtypes = [
|
|
1284
|
+
c_ulonglong,
|
|
1285
|
+
c_ulonglong,
|
|
1286
|
+
POINTER(c_ulonglong),
|
|
1287
|
+
]
|
|
1257
1288
|
|
|
1258
1289
|
self.qrack_lib.destroy_qcircuit.restype = None
|
|
1259
1290
|
self.qrack_lib.destroy_qcircuit.argtypes = [c_ulonglong]
|
|
@@ -1265,10 +1296,21 @@ class QrackSystem:
|
|
|
1265
1296
|
self.qrack_lib.qcircuit_swap.argtypes = [c_ulonglong, c_ulonglong, c_ulonglong]
|
|
1266
1297
|
|
|
1267
1298
|
self.qrack_lib.qcircuit_append_1qb.restype = None
|
|
1268
|
-
self.qrack_lib.qcircuit_append_1qb.argtypes = [
|
|
1299
|
+
self.qrack_lib.qcircuit_append_1qb.argtypes = [
|
|
1300
|
+
c_ulonglong,
|
|
1301
|
+
POINTER(c_double),
|
|
1302
|
+
c_ulonglong,
|
|
1303
|
+
]
|
|
1269
1304
|
|
|
1270
1305
|
self.qrack_lib.qcircuit_append_mc.restype = None
|
|
1271
|
-
self.qrack_lib.qcircuit_append_mc.argtypes = [
|
|
1306
|
+
self.qrack_lib.qcircuit_append_mc.argtypes = [
|
|
1307
|
+
c_ulonglong,
|
|
1308
|
+
POINTER(c_double),
|
|
1309
|
+
c_ulonglong,
|
|
1310
|
+
POINTER(c_ulonglong),
|
|
1311
|
+
c_ulonglong,
|
|
1312
|
+
c_ulonglong,
|
|
1313
|
+
]
|
|
1272
1314
|
|
|
1273
1315
|
self.qrack_lib.qcircuit_run.restype = None
|
|
1274
1316
|
self.qrack_lib.qcircuit_run.argtypes = [c_ulonglong, c_ulonglong]
|