Qrack  10.0
General classical-emulating-quantum development framework
pinvoke_api.hpp
Go to the documentation of this file.
1 // Copyright (c) Microsoft Corporation. All rights reserved.
2 // Licensed under the MIT License.
3 //
4 // (Extensively modified and adapted by Daniel Strano in unitaryfund/qrack)
5 
6 #pragma once
7 
8 #include "config.h"
9 #include "stddef.h"
10 
11 #if defined(_WIN32) && !defined(__CYGWIN__)
12 #define MICROSOFT_QUANTUM_DECL __declspec(dllexport)
13 #define MICROSOFT_QUANTUM_DECL_IMPORT __declspec(dllimport)
14 #else
15 #define MICROSOFT_QUANTUM_DECL
16 #define MICROSOFT_QUANTUM_DECL_IMPORT
17 #endif
18 
19 // SAL only defined in windows.
20 #ifndef _In_
21 #define _In_
22 #define _In_reads_(n)
23 #endif
24 
25 typedef unsigned long long uintq;
26 typedef long long intq;
27 typedef void (*IdCallback)(uintq);
28 typedef bool (*ProbAmpCallback)(size_t, double, double);
29 
30 #if !(FPPOW < 6 && !defined(ENABLE_COMPLEX_X2))
32 #endif
33 
34 #if FPPOW < 6
35 typedef float real1_s;
36 #else
37 typedef double real1_s;
38 #endif
39 
40 extern "C" {
41 // non-quantum
43 MICROSOFT_QUANTUM_DECL uintq init_count_type(_In_ uintq q, _In_ bool tn, _In_ bool md, _In_ bool sd, _In_ bool sh,
44  _In_ bool bdt, _In_ bool pg, _In_ bool nw, _In_ bool hy, _In_ bool oc, _In_ bool hp, _In_ bool sp);
48 MICROSOFT_QUANTUM_DECL uintq init() { return init_count(0, false, false); }
57 MICROSOFT_QUANTUM_DECL void lossy_out_to_file(_In_ uintq sid, _In_ char* f, _In_ int p, _In_ int b);
59 
60 // pseudo-quantum
67  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(n) bool* c);
69  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(n) bool* c, _In_ bool r);
72  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_ bool r);
74  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_ uintq m, uintq* c);
76  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_ uintq m, uintq* c, _In_ bool r);
80  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_ uintq m, uintq* c);
82  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_ uintq m, uintq* c, _In_ bool r);
85  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, real1_s* c, _In_ bool r);
87  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(3 * n) real1_s* b);
89  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(8 * n) real1_s* b);
91  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(3 * n) real1_s* b, _In_reads_(2 * n) real1_s* e);
93  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(8 * n) real1_s* b, _In_reads_(2 * n) real1_s* e);
96  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, real1_s* c, _In_ bool r);
98  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(3 * n) real1_s* b);
100  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(8 * n) real1_s* b);
102  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(3 * n) real1_s* b, _In_reads_(2 * n) real1_s* e);
104  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(8 * n) real1_s* b, _In_reads_(2 * n) real1_s* e);
106  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(n) uintq* b);
108  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(n) uintq* b);
109 
112 
117 
118 MICROSOFT_QUANTUM_DECL size_t random_choice(_In_ uintq sid, _In_ size_t n, _In_reads_(n) double* p);
119 
120 MICROSOFT_QUANTUM_DECL void PhaseParity(_In_ uintq sid, _In_ double lambda, _In_ uintq n, _In_reads_(n) uintq* q);
123  _In_ uintq sid, _In_ uintq n, _In_reads_(n) int* b, _In_reads_(n) uintq* q);
124 
126 
127 // allocate and release
131 
132 // single-qubit gates
145 MICROSOFT_QUANTUM_DECL void U(_In_ uintq sid, _In_ uintq q, _In_ double theta, _In_ double phi, _In_ double lambda);
146 MICROSOFT_QUANTUM_DECL void Mtrx(_In_ uintq sid, _In_reads_(8) double* m, _In_ uintq q);
147 
148 // multi-controlled single-qubit gates
149 
158 MICROSOFT_QUANTUM_DECL void MCU(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* c, _In_ uintq q, _In_ double theta,
159  _In_ double phi, _In_ double lambda, _In_ double gamma);
161  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* c, _In_reads_(8) double* m, _In_ uintq q);
162 
171 MICROSOFT_QUANTUM_DECL void MACU(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* c, _In_ uintq q, _In_ double theta,
172  _In_ double phi, _In_ double lambda, _In_ double gamma);
174  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* c, _In_reads_(8) double* m, _In_ uintq q);
175 
177  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* c, _In_reads_(8) double* m, _In_ uintq q, _In_ uintq p);
178 
180  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* c, _In_ uintq q, double* m);
181 
182 // coalesced single qubit gates
183 
187 
188 // rotations
189 MICROSOFT_QUANTUM_DECL void R(_In_ uintq sid, _In_ uintq b, _In_ double phi, _In_ uintq q);
190 
191 // multi-controlled rotations
193  _In_ uintq sid, _In_ uintq b, _In_ double phi, _In_ uintq n, _In_reads_(n) uintq* c, _In_ uintq q);
194 
195 // Exponential of Pauli operators
197  _In_ uintq sid, _In_ uintq n, _In_reads_(n) int* b, _In_ double phi, _In_reads_(n) uintq* q);
198 MICROSOFT_QUANTUM_DECL void MCExp(_In_ uintq sid, _In_ uintq n, _In_reads_(n) int* b, _In_ double phi, _In_ uintq nc,
199  _In_reads_(nc) uintq* cs, _In_reads_(n) uintq* q);
200 
201 // measurements
204 MICROSOFT_QUANTUM_DECL uintq MAll(_In_ uintq sid); // DEPRECATED
208  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, _In_ uintq s, _In_reads_(s) uintq* m);
209 
213 MICROSOFT_QUANTUM_DECL void FSim(_In_ uintq sid, _In_ double theta, _In_ double phi, _In_ uintq qi1, _In_ uintq qi2);
216  _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* c, _In_ uintq qi1, _In_ uintq qi2);
217 
218 // Schmidt decomposition
222 
224 MICROSOFT_QUANTUM_DECL void OR(_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2, _In_ uintq qo);
229 MICROSOFT_QUANTUM_DECL void CLAND(_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo);
230 MICROSOFT_QUANTUM_DECL void CLOR(_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo);
231 MICROSOFT_QUANTUM_DECL void CLXOR(_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo);
232 MICROSOFT_QUANTUM_DECL void CLNAND(_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo);
233 MICROSOFT_QUANTUM_DECL void CLNOR(_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo);
234 MICROSOFT_QUANTUM_DECL void CLXNOR(_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo);
235 
238 
239 #if ENABLE_ALU
241  _In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq* a, _In_ uintq n, _In_reads_(n) uintq* q);
243  _In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq* a, _In_ uintq n, _In_reads_(n) uintq* q);
245  _In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq* a, uintq s, _In_ uintq n, _In_reads_(n) uintq* q);
247  _In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq* a, uintq s, _In_ uintq n, _In_reads_(n) uintq* q);
248 
250  _In_reads_(nc) uintq* c, _In_ uintq nq, _In_reads_(nq) uintq* q);
252  _In_reads_(nc) uintq* c, _In_ uintq nq, _In_reads_(nq) uintq* q);
253 
255  _In_reads_(n) uintq* q, _In_reads_(n) uintq* o);
257  _In_reads_(n) uintq* q, _In_reads_(n) uintq* o);
259  _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(n) uintq* o);
261  _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(n) uintq* o);
263  _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(n) uintq* o);
264 
266  _In_reads_(nc) uintq* c, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(n) uintq* o);
268  _In_reads_(nc) uintq* c, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(n) uintq* o);
270  _In_reads_(nc) uintq* c, _In_reads_(na) uintq* m, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(n) uintq* o);
272  _In_reads_(nc) uintq* c, _In_reads_(na) uintq* m, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(n) uintq* o);
274  _In_reads_(nc) uintq* c, _In_reads_(na) uintq* m, _In_ uintq n, _In_reads_(n) uintq* q, _In_reads_(n) uintq* o);
275 
277  _In_ uintq sid, _In_ uintq ni, _In_reads_(ni) uintq* qi, _In_ uintq nv, _In_reads_(nv) uintq* qv, unsigned char* t);
279  _In_reads_(nv) uintq* qv, unsigned char* t);
281  _In_reads_(nv) uintq* qv, unsigned char* t);
282 MICROSOFT_QUANTUM_DECL void Hash(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* q, unsigned char* t);
283 #endif
284 
290  _In_ uintq sid, _In_ uintq n1, _In_reads_(n1) uintq* a, _In_ uintq n2, _In_reads_(n2) uintq* b, _In_ bool fc);
293 MICROSOFT_QUANTUM_DECL void SetSdrp(_In_ uintq sid, _In_ double sdrp);
294 MICROSOFT_QUANTUM_DECL void SetNcrp(_In_ uintq sid, _In_ double ncrp);
295 MICROSOFT_QUANTUM_DECL void SetSprp(_In_ uintq sid, _In_ double sprp);
307 
308 #if !(FPPOW < 6 && !defined(ENABLE_COMPLEX_X2))
309 MICROSOFT_QUANTUM_DECL void TimeEvolve(_In_ uintq sid, _In_ double t, _In_ uintq n,
310  _In_reads_(n) _QrackTimeEvolveOpHeader* teos, uintq mn, _In_reads_(mn) double* mtrx);
311 #endif
312 
316 
319 
321  _In_ uintq nid, _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq* c, _In_ uintq q);
322 
324  _In_ uintq nid, _In_ real1_s* angles, _In_ bool e, _In_ bool r, _In_ uintq f, _In_ double a);
326  _In_ uintq nid, _In_ real1_s* angles, _In_ bool e, _In_ uintq f, _In_ double a);
328  _In_ uintq nid, _In_ real1_s* angles, _In_ bool e, _In_ uintq f, _In_ double a);
330  _In_ uintq nid, _In_ real1_s* angles, _In_ double eta, _In_ bool e, _In_ bool r, _In_ uintq f, _In_ double a);
332  _In_ uintq nid, _In_ real1_s* angles, _In_ double eta, _In_ bool e, _In_ bool r, _In_ uintq f, _In_ double a);
333 
334 MICROSOFT_QUANTUM_DECL uintq init_qcircuit(_In_ bool collapse, _In_ bool clifford);
343  _In_ uintq cid, _In_reads_(8) double* m, _In_ uintq n, _In_reads_(n) uintq* c, _In_ uintq q, _In_ uintq p);
349 }
unsigned int gamma(unsigned int arg)
Gamma function and postprocessing.
Definition: half.hpp:2101
MICROSOFT_QUANTUM_DECL void POWN(_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, _In_reads_(na) uintq *m, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(n) uintq *o)
Definition: pinvoke_api.cpp:3421
MICROSOFT_QUANTUM_DECL bool TrySeparate2Qb(_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2)
Definition: pinvoke_api.cpp:3588
float real1_s
Definition: pinvoke_api.hpp:35
MICROSOFT_QUANTUM_DECL void Exp(_In_ uintq sid, _In_ uintq n, _In_reads_(n) int *b, _In_ double phi, _In_reads_(n) uintq *q)
(External API) Exponentiation of Pauli operators
Definition: pinvoke_api.cpp:2175
#define _In_reads_(n)
Definition: pinvoke_api.hpp:22
MICROSOFT_QUANTUM_DECL void Dispose(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q)
Definition: pinvoke_api.cpp:2543
MICROSOFT_QUANTUM_DECL double FactorizedExpectation(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_ uintq m, uintq *c)
(External API) Get the permutation expectation value, based upon the order of input qubits.
Definition: pinvoke_api.cpp:2987
MICROSOFT_QUANTUM_DECL void Normalize(_In_ uintq sid)
Definition: pinvoke_api.cpp:3836
MICROSOFT_QUANTUM_DECL void OutProbs(_In_ uintq sid, _In_ real1_s *ket)
(External API) Get basis dimension probabilities for the selected simulator ID.
Definition: pinvoke_api.cpp:1333
MICROSOFT_QUANTUM_DECL double UnitaryVariance(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(3 *n) real1_s *b)
(External API) Get the single-qubit (3-parameter) operator variance for the array of qubits and bases...
Definition: pinvoke_api.cpp:3087
MICROSOFT_QUANTUM_DECL void MCMUL(_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, _In_ uintq nc, _In_reads_(nc) uintq *c, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(n) uintq *o)
Definition: pinvoke_api.cpp:3436
MICROSOFT_QUANTUM_DECL void MZ(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q)
(External API) Multiple "Z" Gate
Definition: pinvoke_api.cpp:2132
MICROSOFT_QUANTUM_DECL void Dump(_In_ uintq sid, _In_ ProbAmpCallback callback)
(External API) "Dump" state vector from the selected simulator ID into the callback
Definition: pinvoke_api.cpp:1213
MICROSOFT_QUANTUM_DECL void SBC(_In_ uintq sid, uintq s, _In_ uintq ni, _In_reads_(ni) uintq *qi, _In_ uintq nv, _In_reads_(nv) uintq *qv, unsigned char *t)
Definition: pinvoke_api.cpp:3549
MICROSOFT_QUANTUM_DECL void AdjSY(_In_ uintq sid, _In_ uintq q)
(External API) Inverse square root of Y gate
Definition: pinvoke_api.cpp:1700
MICROSOFT_QUANTUM_DECL double qneuron_unpredict(_In_ uintq nid, _In_ real1_s *angles, _In_ bool e, _In_ uintq f, _In_ double a)
Definition: pinvoke_api.cpp:4014
MICROSOFT_QUANTUM_DECL void qcircuit_swap(_In_ uintq cid, _In_ uintq q1, _In_ uintq q2)
Definition: pinvoke_api.cpp:4184
#define MICROSOFT_QUANTUM_DECL
Definition: pinvoke_api.hpp:15
MICROSOFT_QUANTUM_DECL void XNOR(_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2, _In_ uintq qo)
Definition: pinvoke_api.cpp:2624
MICROSOFT_QUANTUM_DECL void MCDIV(_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, _In_ uintq nc, _In_reads_(nc) uintq *c, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(n) uintq *o)
Definition: pinvoke_api.cpp:3453
MICROSOFT_QUANTUM_DECL void set_concurrency(_In_ uintq sid, _In_ uintq p)
(External API) Set concurrency level per QEngine shard
Definition: pinvoke_api.cpp:1077
MICROSOFT_QUANTUM_DECL void CLAND(_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo)
Definition: pinvoke_api.cpp:2635
MICROSOFT_QUANTUM_DECL double Variance(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q)
(External API) Get the permutation variance, based upon the order of input qubits.
Definition: pinvoke_api.cpp:2914
MICROSOFT_QUANTUM_DECL uintq init_qneuron(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
Definition: pinvoke_api.cpp:3873
MICROSOFT_QUANTUM_DECL void FlipQuadrant(_In_ uintq sid, _In_ uintq t)
Definition: pinvoke_api.cpp:3825
MICROSOFT_QUANTUM_DECL void ResetUnitaryFidelity(_In_ uintq sid)
Definition: pinvoke_api.cpp:3686
MICROSOFT_QUANTUM_DECL void Hash(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, unsigned char *t)
Definition: pinvoke_api.cpp:3561
MICROSOFT_QUANTUM_DECL bool AreFactorized(_In_ uintq sid, _In_ uintq n1, _In_reads_(n1) uintq *a, _In_ uintq n2, _In_reads_(n2) uintq *b, _In_ bool fc)
Definition: pinvoke_api.cpp:3648
MICROSOFT_QUANTUM_DECL bool TrySeparate1Qb(_In_ uintq sid, _In_ uintq qi1)
Definition: pinvoke_api.cpp:3574
MICROSOFT_QUANTUM_DECL void set_device_list(_In_ uintq sid, _In_ uintq n, _In_reads_(n) intq *dids)
(External API) Set GPU device IDs on the simulator.
Definition: pinvoke_api.cpp:1105
MICROSOFT_QUANTUM_DECL double FactorizedExpectationFp(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, real1_s *c)
(External API) Get the permutation expectation value, based upon the order of input qubits.
Definition: pinvoke_api.cpp:3025
MICROSOFT_QUANTUM_DECL void SetNoiseParameter(_In_ uintq sid, _In_ double np)
Definition: pinvoke_api.cpp:3763
MICROSOFT_QUANTUM_DECL void MCS(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) Controlled "S" Gate
Definition: pinvoke_api.cpp:1824
MICROSOFT_QUANTUM_DECL void MX(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q)
(External API) Multiple "X" Gate
Definition: pinvoke_api.cpp:2104
MICROSOFT_QUANTUM_DECL void MCDIVN(_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, _In_ uintq nc, _In_reads_(nc) uintq *c, _In_reads_(na) uintq *m, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(n) uintq *o)
Definition: pinvoke_api.cpp:3488
MICROSOFT_QUANTUM_DECL void DIVN(_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, _In_reads_(na) uintq *m, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(n) uintq *o)
Definition: pinvoke_api.cpp:3407
MICROSOFT_QUANTUM_DECL double FactorizedVarianceFp(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, real1_s *c)
(External API) Get the permutation variance, based upon the order of input qubits.
Definition: pinvoke_api.cpp:3043
MICROSOFT_QUANTUM_DECL void T(_In_ uintq sid, _In_ uintq q)
(External API) "T" Gate
Definition: pinvoke_api.cpp:1658
MICROSOFT_QUANTUM_DECL void ACSWAP(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq qi1, _In_ uintq qi2)
Definition: pinvoke_api.cpp:2452
MICROSOFT_QUANTUM_DECL void MULN(_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, _In_reads_(na) uintq *m, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(n) uintq *o)
Definition: pinvoke_api.cpp:3393
MICROSOFT_QUANTUM_DECL void qcircuit_append_mc(_In_ uintq cid, _In_reads_(8) double *m, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q, _In_ uintq p)
Definition: pinvoke_api.cpp:4197
MICROSOFT_QUANTUM_DECL void MCAdjS(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) Controlled Inverse "S" Gate
Definition: pinvoke_api.cpp:1852
MICROSOFT_QUANTUM_DECL uintq get_qcircuit_qubit_count(_In_ uintq cid)
Definition: pinvoke_api.cpp:4179
MICROSOFT_QUANTUM_DECL void MUL(_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(n) uintq *o)
Definition: pinvoke_api.cpp:3367
MICROSOFT_QUANTUM_DECL uintq Decompose(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q)
Definition: pinvoke_api.cpp:2507
MICROSOFT_QUANTUM_DECL void MeasureShots(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_ uintq s, _In_reads_(s) uintq *m)
Definition: pinvoke_api.cpp:2351
MICROSOFT_QUANTUM_DECL double UnitaryExpectation(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(3 *n) real1_s *b)
(External API) Get the single-qubit (3-parameter) operator expectation value for the array of qubits ...
Definition: pinvoke_api.cpp:3078
MICROSOFT_QUANTUM_DECL void QFT(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c)
Definition: pinvoke_api.cpp:3248
MICROSOFT_QUANTUM_DECL void SetStochastic(_In_ uintq sid, _In_ bool s)
Definition: pinvoke_api.cpp:3795
MICROSOFT_QUANTUM_DECL bool TrySeparateTol(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_ double tol)
Definition: pinvoke_api.cpp:3602
MICROSOFT_QUANTUM_DECL void R(_In_ uintq sid, _In_ uintq b, _In_ double phi, _In_ uintq q)
(External API) Rotation around Pauli axes
Definition: pinvoke_api.cpp:2146
MICROSOFT_QUANTUM_DECL double MatrixExpectationEigenVal(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(8 *n) real1_s *b, _In_reads_(2 *n) real1_s *e)
(External API) Get the single-qubit (2x2) operator expectation value for the array of qubits and base...
Definition: pinvoke_api.cpp:3201
MICROSOFT_QUANTUM_DECL void SetUseExactNearClifford(_In_ uintq sid, _In_ bool enc)
Definition: pinvoke_api.cpp:3741
MICROSOFT_QUANTUM_DECL double PauliVariance(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(n) uintq *b)
(External API) Get the Pauli operator variance for the array of qubits and bases.
Definition: pinvoke_api.cpp:3242
MICROSOFT_QUANTUM_DECL void MACU(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q, _In_ double theta, _In_ double phi, _In_ double lambda, _In_ double gamma)
(External API) Controlled 3-parameter unitary gate
Definition: pinvoke_api.cpp:2029
MICROSOFT_QUANTUM_DECL void destroy_qneuron(_In_ uintq nid)
Definition: pinvoke_api.cpp:3967
MICROSOFT_QUANTUM_DECL double PermutationExpectationRdm(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_ bool r)
MICROSOFT_QUANTUM_DECL void NOR(_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2, _In_ uintq qo)
Definition: pinvoke_api.cpp:2613
MICROSOFT_QUANTUM_DECL void HighestProbAll(_In_ uintq sid, uintq *r)
(External API) Get the permutation with the highest probability
Definition: pinvoke_api.cpp:2704
MICROSOFT_QUANTUM_DECL void SetTInjection(_In_ uintq sid, _In_ bool iti)
Definition: pinvoke_api.cpp:3752
MICROSOFT_QUANTUM_DECL void DumpIds(_In_ uintq sid, _In_ IdCallback callback)
(External API) "Dump" all IDs from the selected simulator ID into the callback
Definition: pinvoke_api.cpp:1193
MICROSOFT_QUANTUM_DECL void MAllLong(_In_ uintq sid, uintq *r)
(External API) Measure all bits separately in |0>/|1> basis, and return the result in low-to-high ord...
Definition: pinvoke_api.cpp:2305
MICROSOFT_QUANTUM_DECL void OR(_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2, _In_ uintq qo)
Definition: pinvoke_api.cpp:2580
MICROSOFT_QUANTUM_DECL void MACZ(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) "Anti-"Controlled "Z" Gate
Definition: pinvoke_api.cpp:1942
long long intq
Definition: pinvoke_api.hpp:26
MICROSOFT_QUANTUM_DECL void Y(_In_ uintq sid, _In_ uintq q)
(External API) "Y" Gate
Definition: pinvoke_api.cpp:1574
MICROSOFT_QUANTUM_DECL void MCU(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q, _In_ double theta, _In_ double phi, _In_ double lambda, _In_ double gamma)
(External API) Controlled 3-parameter unitary gate
Definition: pinvoke_api.cpp:1880
MICROSOFT_QUANTUM_DECL double PermutationProbRdm(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(n) bool *c, _In_ bool r)
(External API) Get the permutation expectation value, based upon the order of input qubits,...
Definition: pinvoke_api.cpp:2865
MICROSOFT_QUANTUM_DECL void Compose(_In_ uintq sid1, _In_ uintq sid2, uintq *q)
Definition: pinvoke_api.cpp:2463
MICROSOFT_QUANTUM_DECL void MCX(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) Controlled "X" Gate
Definition: pinvoke_api.cpp:1765
MICROSOFT_QUANTUM_DECL double qneuron_predict(_In_ uintq nid, _In_ real1_s *angles, _In_ bool e, _In_ bool r, _In_ uintq f, _In_ double a)
Definition: pinvoke_api.cpp:3992
MICROSOFT_QUANTUM_DECL double Prob(_In_ uintq sid, _In_ uintq q)
(External API) Get the probability that a qubit is in the |1> state.
Definition: pinvoke_api.cpp:2820
MICROSOFT_QUANTUM_DECL void AdjSX(_In_ uintq sid, _In_ uintq q)
(External API) Inverse square root of X gate
Definition: pinvoke_api.cpp:1686
MICROSOFT_QUANTUM_DECL void InKet(_In_ uintq sid, _In_ real1_s *ket)
(External API) Set state vector for the selected simulator ID.
Definition: pinvoke_api.cpp:1235
MICROSOFT_QUANTUM_DECL void SX(_In_ uintq sid, _In_ uintq q)
(External API) Square root of X gate
Definition: pinvoke_api.cpp:1630
MICROSOFT_QUANTUM_DECL uintq qcircuit_past_light_cone(_In_ uintq cid, _In_ uintq n, _In_reads_(n) uintq *q)
Definition: pinvoke_api.cpp:4162
MICROSOFT_QUANTUM_DECL void OutReducedDensityMatrix(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, real1_s *rdm)
(External API) Get reduced density matrix for the selected simulator ID and qubits.
Definition: pinvoke_api.cpp:1294
MICROSOFT_QUANTUM_DECL void SetNcrp(_In_ uintq sid, _In_ double ncrp)
Definition: pinvoke_api.cpp:3708
MICROSOFT_QUANTUM_DECL void qcircuit_out_to_string(_In_ uintq cid, _In_ char *f)
Definition: pinvoke_api.cpp:4253
MICROSOFT_QUANTUM_DECL uintq Measure(_In_ uintq sid, _In_ uintq n, _In_reads_(n) int *b, _In_reads_(n) uintq *q)
(External API) Measure bits in specified Pauli bases
Definition: pinvoke_api.cpp:2330
MICROSOFT_QUANTUM_DECL void MACH(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) "Anti-"Controlled "H" Gate
Definition: pinvoke_api.cpp:1956
MICROSOFT_QUANTUM_DECL uintq init_clone(_In_ uintq sid)
(External API) Initialize a simulator ID that clones simulator ID "sid"
Definition: pinvoke_api.cpp:937
MICROSOFT_QUANTUM_DECL bool release(_In_ uintq sid, _In_ uintq q)
(External API) Release 1 qubit with the given qubit ID, under the simulator ID
Definition: pinvoke_api.cpp:1507
MICROSOFT_QUANTUM_DECL double FactorizedVarianceFpRdm(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, real1_s *c, _In_ bool r)
(External API) Get the permutation variance, based upon the order of input qubits,...
Definition: pinvoke_api.cpp:3052
MICROSOFT_QUANTUM_DECL void qstabilizer_in_from_file(_In_ uintq sid, _In_ char *f)
Definition: pinvoke_api.cpp:1141
MICROSOFT_QUANTUM_DECL uintq M(_In_ uintq sid, _In_ uintq q)
(External API) Measure bit in |0>/|1> basis
Definition: pinvoke_api.cpp:2253
MICROSOFT_QUANTUM_DECL void MCH(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) Controlled "H" Gate
Definition: pinvoke_api.cpp:1807
MICROSOFT_QUANTUM_DECL void IQFT(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c)
Definition: pinvoke_api.cpp:3263
MICROSOFT_QUANTUM_DECL void MCMULN(_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, _In_ uintq nc, _In_reads_(nc) uintq *c, _In_reads_(na) uintq *m, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(n) uintq *o)
Definition: pinvoke_api.cpp:3470
MICROSOFT_QUANTUM_DECL void S(_In_ uintq sid, _In_ uintq q)
(External API) "S" Gate
Definition: pinvoke_api.cpp:1616
MICROSOFT_QUANTUM_DECL uintq clone_qneuron(_In_ uintq nid)
Definition: pinvoke_api.cpp:3926
MICROSOFT_QUANTUM_DECL double UnitaryExpectationEigenVal(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(3 *n) real1_s *b, _In_reads_(2 *n) real1_s *e)
(External API) Get the single-qubit (3-parameter) operator expectation value for the array of qubits ...
Definition: pinvoke_api.cpp:3157
MICROSOFT_QUANTUM_DECL void MACY(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) "Anti-"Controlled "Y" Gate
Definition: pinvoke_api.cpp:1928
MICROSOFT_QUANTUM_DECL double FactorizedVarianceRdm(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_ uintq m, uintq *c, _In_ bool r)
(External API) Get the permutation variance, based upon the order of input qubits,...
Definition: pinvoke_api.cpp:3016
MICROSOFT_QUANTUM_DECL void Mtrx(_In_ uintq sid, _In_reads_(8) double *m, _In_ uintq q)
(External API) 2x2 complex matrix unitary gate
Definition: pinvoke_api.cpp:1742
MICROSOFT_QUANTUM_DECL void SetSdrp(_In_ uintq sid, _In_ double sdrp)
Definition: pinvoke_api.cpp:3697
MICROSOFT_QUANTUM_DECL double VarianceRdm(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_ bool r)
MICROSOFT_QUANTUM_DECL double MatrixExpectation(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(8 *n) real1_s *b)
(External API) Get the single-qubit (2x2) operator expectation value for the array of qubits and base...
Definition: pinvoke_api.cpp:3115
MICROSOFT_QUANTUM_DECL uintq init_qcircuit_clone(_In_ uintq cid)
Definition: pinvoke_api.cpp:4158
MICROSOFT_QUANTUM_DECL void MACAdjS(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) "Anti-"Controlled Inverse "S" Gate
Definition: pinvoke_api.cpp:2001
MICROSOFT_QUANTUM_DECL double qneuron_learn_cycle(_In_ uintq nid, _In_ real1_s *angles, _In_ bool e, _In_ uintq f, _In_ double a)
Definition: pinvoke_api.cpp:4036
MICROSOFT_QUANTUM_DECL void PhaseRootN(_In_ uintq sid, _In_ uintq p, _In_ uintq n, _In_reads_(n) uintq *q)
Definition: pinvoke_api.cpp:1394
MICROSOFT_QUANTUM_DECL void qneuron_learn_permutation(_In_ uintq nid, _In_ real1_s *angles, _In_ double eta, _In_ bool e, _In_ bool r, _In_ uintq f, _In_ double a)
Definition: pinvoke_api.cpp:4078
MICROSOFT_QUANTUM_DECL void Multiplex1Mtrx(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q, double *m)
Definition: pinvoke_api.cpp:2078
MICROSOFT_QUANTUM_DECL void ADC(_In_ uintq sid, uintq s, _In_ uintq ni, _In_reads_(ni) uintq *qi, _In_ uintq nv, _In_reads_(nv) uintq *qv, unsigned char *t)
Definition: pinvoke_api.cpp:3537
MICROSOFT_QUANTUM_DECL size_t qcircuit_out_to_string_length(_In_ uintq cid)
Definition: pinvoke_api.cpp:4243
MICROSOFT_QUANTUM_DECL void ADDS(_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, uintq s, _In_ uintq n, _In_reads_(n) uintq *q)
Definition: pinvoke_api.cpp:3305
MICROSOFT_QUANTUM_DECL void NAND(_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2, _In_ uintq qo)
Definition: pinvoke_api.cpp:2602
MICROSOFT_QUANTUM_DECL size_t random_choice(_In_ uintq sid, _In_ size_t n, _In_reads_(n) double *p)
MICROSOFT_QUANTUM_DECL void qcircuit_in_from_file(_In_ uintq cid, _In_ char *f)
Definition: pinvoke_api.cpp:4233
MICROSOFT_QUANTUM_DECL void MACX(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) "Anti-"Controlled "X" Gate
Definition: pinvoke_api.cpp:1914
MICROSOFT_QUANTUM_DECL void U(_In_ uintq sid, _In_ uintq q, _In_ double theta, _In_ double phi, _In_ double lambda)
(External API) 3-parameter unitary gate
Definition: pinvoke_api.cpp:1728
MICROSOFT_QUANTUM_DECL void ISWAP(_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2)
Definition: pinvoke_api.cpp:2408
MICROSOFT_QUANTUM_DECL uintq MAll(_In_ uintq sid)
(External API, DEPRECATED) Measure all bits separately in |0>/|1> basis, and return the result in low...
Definition: pinvoke_api.cpp:2288
MICROSOFT_QUANTUM_DECL uintq init()
Definition: pinvoke_api.hpp:48
MICROSOFT_QUANTUM_DECL void MCADD(_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, _In_ uintq nc, _In_reads_(nc) uintq *c, _In_ uintq nq, _In_reads_(nq) uintq *q)
Definition: pinvoke_api.cpp:3332
MICROSOFT_QUANTUM_DECL void CLNAND(_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo)
Definition: pinvoke_api.cpp:2668
MICROSOFT_QUANTUM_DECL void SetSparseAceMaxMb(_In_ uintq sid, _In_ size_t mb)
Definition: pinvoke_api.cpp:3784
MICROSOFT_QUANTUM_DECL uintq num_qubits(_In_ uintq sid)
Definition: pinvoke_api.cpp:1543
MICROSOFT_QUANTUM_DECL void MACS(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) "Anti-"Controlled "S" Gate
Definition: pinvoke_api.cpp:1973
MICROSOFT_QUANTUM_DECL void MACAdjT(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) "Anti-"Controlled Inverse "T" Gate
Definition: pinvoke_api.cpp:2015
MICROSOFT_QUANTUM_DECL void MACT(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) "Anti-"Controlled "T" Gate
Definition: pinvoke_api.cpp:1987
MICROSOFT_QUANTUM_DECL void MCMtrx(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_reads_(8) double *m, _In_ uintq q)
(External API) Controlled 2x2 complex matrix unitary gate
Definition: pinvoke_api.cpp:1896
MICROSOFT_QUANTUM_DECL void OutKet(_In_ uintq sid, _In_ real1_s *ket)
(External API) Get state vector for the selected simulator ID.
Definition: pinvoke_api.cpp:1261
MICROSOFT_QUANTUM_DECL void SetSprp(_In_ uintq sid, _In_ double sprp)
Definition: pinvoke_api.cpp:3719
MICROSOFT_QUANTUM_DECL void MCZ(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) Controlled "Z" Gate
Definition: pinvoke_api.cpp:1793
bool(* ProbAmpCallback)(size_t, double, double)
Definition: pinvoke_api.hpp:28
MICROSOFT_QUANTUM_DECL double FactorizedExpectationFpRdm(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, real1_s *c, _In_ bool r)
(External API) Get the permutation expectation value, based upon the order of input qubits,...
Definition: pinvoke_api.cpp:3034
MICROSOFT_QUANTUM_DECL void ResetAll(_In_ uintq sid)
(External API) Set the simulator to a computational basis permutation.
Definition: pinvoke_api.cpp:1452
MICROSOFT_QUANTUM_DECL void LDA(_In_ uintq sid, _In_ uintq ni, _In_reads_(ni) uintq *qi, _In_ uintq nv, _In_reads_(nv) uintq *qv, unsigned char *t)
Definition: pinvoke_api.cpp:3525
MICROSOFT_QUANTUM_DECL void ADD(_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, _In_ uintq n, _In_reads_(n) uintq *q)
Definition: pinvoke_api.cpp:3279
MICROSOFT_QUANTUM_DECL uintq init_count_stabilizer(_In_ uintq q)
(External API) Initialize a simulator ID with "q" qubits as purely a stabilizer simulator.
Definition: pinvoke_api.cpp:883
#define _In_
Definition: pinvoke_api.hpp:21
MICROSOFT_QUANTUM_DECL void SetReactiveSeparate(_In_ uintq sid, _In_ bool irs)
Definition: pinvoke_api.cpp:3730
void(* IdCallback)(uintq)
Definition: pinvoke_api.hpp:27
MICROSOFT_QUANTUM_DECL double MatrixVarianceEigenVal(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(8 *n) real1_s *b, _In_reads_(2 *n) real1_s *e)
(External API) Get the single-qubit (2x2) operator variance for the array of qubits and bases.
Definition: pinvoke_api.cpp:3210
MICROSOFT_QUANTUM_DECL void seed(_In_ uintq sid, _In_ uintq s)
(External API) Set RNG seed for simulator ID
Definition: pinvoke_api.cpp:1063
MICROSOFT_QUANTUM_DECL void MCT(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) Controlled "T" Gate
Definition: pinvoke_api.cpp:1838
MICROSOFT_QUANTUM_DECL void UCMtrx(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_reads_(8) double *m, _In_ uintq q, _In_ uintq p)
(External API) Controlled 2x2 complex matrix unitary gate with arbitrary control permutation
Definition: pinvoke_api.cpp:2063
MICROSOFT_QUANTUM_DECL void SUBS(_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, uintq s, _In_ uintq n, _In_reads_(n) uintq *q)
Definition: pinvoke_api.cpp:3318
MICROSOFT_QUANTUM_DECL void AND(_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2, _In_ uintq qo)
Definition: pinvoke_api.cpp:2569
MICROSOFT_QUANTUM_DECL double GetUnitaryFidelity(_In_ uintq sid)
Definition: pinvoke_api.cpp:3672
MICROSOFT_QUANTUM_DECL void lossy_out_to_file(_In_ uintq sid, _In_ char *f, _In_ int p, _In_ int b)
Definition: pinvoke_api.cpp:1167
MICROSOFT_QUANTUM_DECL void MCSUB(_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, _In_ uintq nc, _In_reads_(nc) uintq *c, _In_ uintq nq, _In_reads_(nq) uintq *q)
Definition: pinvoke_api.cpp:3349
MICROSOFT_QUANTUM_DECL void set_qneuron_angles(_In_ uintq nid, _In_ real1_s *angles)
MICROSOFT_QUANTUM_DECL double FactorizedExpectationRdm(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_ uintq m, uintq *c, _In_ bool r)
(External API) Get the permutation expectation value, based upon the order of input qubits,...
Definition: pinvoke_api.cpp:2997
MICROSOFT_QUANTUM_DECL void AdjISWAP(_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2)
Definition: pinvoke_api.cpp:2419
MICROSOFT_QUANTUM_DECL void get_qneuron_angles(_In_ uintq nid, _In_ real1_s *angles)
MICROSOFT_QUANTUM_DECL double PauliExpectation(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(n) uintq *b)
(External API) Get the Pauli operator expectation value for the array of qubits and bases.
Definition: pinvoke_api.cpp:3233
MICROSOFT_QUANTUM_DECL void qcircuit_out_to_file(_In_ uintq cid, _In_ char *f)
Definition: pinvoke_api.cpp:4224
MICROSOFT_QUANTUM_DECL uintq init_count(_In_ uintq q, _In_ bool hp, _In_ bool sp)
(External API) Initialize a simulator ID with "q" qubits and implicit default layer options.
Definition: pinvoke_api.cpp:758
MICROSOFT_QUANTUM_DECL double PermutationProb(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(n) bool *c)
(External API) Get the permutation expectation value, based upon the order of input qubits.
Definition: pinvoke_api.cpp:2855
MICROSOFT_QUANTUM_DECL void qcircuit_run(_In_ uintq cid, _In_ uintq sid)
Definition: pinvoke_api.cpp:4218
MICROSOFT_QUANTUM_DECL int get_error(_In_ uintq sid)
(External API) Poll after each operation to check whether error occurred.
Definition: pinvoke_api.cpp:642
MICROSOFT_QUANTUM_DECL void SUB(_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, _In_ uintq n, _In_reads_(n) uintq *q)
Definition: pinvoke_api.cpp:3292
MICROSOFT_QUANTUM_DECL void CSWAP(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq qi1, _In_ uintq qi2)
Definition: pinvoke_api.cpp:2441
MICROSOFT_QUANTUM_DECL void AdjS(_In_ uintq sid, _In_ uintq q)
(External API) Inverse "S" Gate
Definition: pinvoke_api.cpp:1672
MICROSOFT_QUANTUM_DECL void XOR(_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2, _In_ uintq qo)
Definition: pinvoke_api.cpp:2591
MICROSOFT_QUANTUM_DECL void lossy_in_from_file(_In_ uintq sid, _In_ char *f)
Definition: pinvoke_api.cpp:1178
MICROSOFT_QUANTUM_DECL void qcircuit_append_1qb(_In_ uintq cid, _In_reads_(8) double *m, _In_ uintq q)
Definition: pinvoke_api.cpp:4189
unsigned long long uintq
Definition: pinvoke_api.hpp:25
MICROSOFT_QUANTUM_DECL void DIV(_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(n) uintq *o)
Definition: pinvoke_api.cpp:3380
MICROSOFT_QUANTUM_DECL void X(_In_ uintq sid, _In_ uintq q)
(External API) "X" Gate
Definition: pinvoke_api.cpp:1560
MICROSOFT_QUANTUM_DECL void MACMtrx(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_reads_(8) double *m, _In_ uintq q)
(External API) Controlled 2x2 complex matrix unitary gate
Definition: pinvoke_api.cpp:2045
MICROSOFT_QUANTUM_DECL void SetAceMaxQb(_In_ uintq sid, _In_ uintq qb)
Definition: pinvoke_api.cpp:3774
MICROSOFT_QUANTUM_DECL double JointEnsembleProbability(_In_ uintq sid, _In_ uintq n, _In_reads_(n) int *b, _In_reads_(n) uintq *q)
(External API) Find the joint probability for all specified qubits under the respective Pauli basis t...
Definition: pinvoke_api.cpp:1428
MICROSOFT_QUANTUM_DECL void CLOR(_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo)
Definition: pinvoke_api.cpp:2646
MICROSOFT_QUANTUM_DECL void AdjT(_In_ uintq sid, _In_ uintq q)
(External API) Inverse "T" Gate
Definition: pinvoke_api.cpp:1714
MICROSOFT_QUANTUM_DECL void SWAP(_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2)
Definition: pinvoke_api.cpp:2397
MICROSOFT_QUANTUM_DECL void PhaseParity(_In_ uintq sid, _In_ double lambda, _In_ uintq n, _In_reads_(n) uintq *q)
Definition: pinvoke_api.cpp:1389
MICROSOFT_QUANTUM_DECL void ProbAll(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, real1_s *p)
(External API) Get the probabilities of all permutations of the requested subset of qubits.
Definition: pinvoke_api.cpp:2774
MICROSOFT_QUANTUM_DECL void MCY(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) Controlled "Y" Gate
Definition: pinvoke_api.cpp:1779
MICROSOFT_QUANTUM_DECL void destroy(_In_ uintq sid)
(External API) Destroy a simulator (ID will not be reused)
Definition: pinvoke_api.cpp:1050
MICROSOFT_QUANTUM_DECL uintq init_count_type(_In_ uintq q, _In_ bool tn, _In_ bool md, _In_ bool sd, _In_ bool sh, _In_ bool bdt, _In_ bool pg, _In_ bool nw, _In_ bool hy, _In_ bool oc, _In_ bool hp, _In_ bool sp)
(External API) Initialize a simulator ID with "q" qubits and explicit layer options on/off
Definition: pinvoke_api.cpp:661
MICROSOFT_QUANTUM_DECL void set_qneuron_sim(_In_ uintq nid, _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
Definition: pinvoke_api.cpp:3976
MICROSOFT_QUANTUM_DECL void MCPOWN(_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, _In_ uintq nc, _In_reads_(nc) uintq *c, _In_reads_(na) uintq *m, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(n) uintq *o)
Definition: pinvoke_api.cpp:3506
MICROSOFT_QUANTUM_DECL void MCR(_In_ uintq sid, _In_ uintq b, _In_ double phi, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) Controlled rotation around Pauli axes
Definition: pinvoke_api.cpp:2160
MICROSOFT_QUANTUM_DECL void MCAdjT(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q)
(External API) Controlled Inverse "T" Gate
Definition: pinvoke_api.cpp:1866
MICROSOFT_QUANTUM_DECL void Separate(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q)
Definition: pinvoke_api.cpp:3621
MICROSOFT_QUANTUM_DECL double PermutationExpectation(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q)
(External API) Get the permutation expectation value, based upon the order of input qubits.
Definition: pinvoke_api.cpp:2897
MICROSOFT_QUANTUM_DECL void qneuron_learn(_In_ uintq nid, _In_ real1_s *angles, _In_ double eta, _In_ bool e, _In_ bool r, _In_ uintq f, _In_ double a)
Definition: pinvoke_api.cpp:4058
MICROSOFT_QUANTUM_DECL void CLNOR(_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo)
Definition: pinvoke_api.cpp:2679
MICROSOFT_QUANTUM_DECL void CLXNOR(_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo)
Definition: pinvoke_api.cpp:2690
MICROSOFT_QUANTUM_DECL void H(_In_ uintq sid, _In_ uintq q)
(External API) Walsh-Hadamard transform applied for simulator ID and qubit ID
Definition: pinvoke_api.cpp:1602
MICROSOFT_QUANTUM_DECL void allocateQubit(_In_ uintq sid, _In_ uintq qid)
(External API) Allocate 1 new qubit with the given qubit ID, under the simulator ID
Definition: pinvoke_api.cpp:1466
MICROSOFT_QUANTUM_DECL uintq qcircuit_inverse(_In_ uintq cid)
Definition: pinvoke_api.cpp:4160
MICROSOFT_QUANTUM_DECL void HighestProbAllN(_In_ uintq sid, _In_ uintq n, uintq *r)
(External API) Get the top n permutations with the highest probability
Definition: pinvoke_api.cpp:2729
MICROSOFT_QUANTUM_DECL uintq init_count_pager(_In_ uintq q, _In_ bool hp, _In_ bool sp)
(External API) Initialize a simulator ID with "q" qubits and implicit default layer options.
Definition: pinvoke_api.cpp:812
MICROSOFT_QUANTUM_DECL void set_device(_In_ uintq sid, _In_ intq did)
(External API) Set GPU device ID on the simulator.
Definition: pinvoke_api.cpp:1091
MICROSOFT_QUANTUM_DECL uintq init_qcircuit(_In_ bool collapse, _In_ bool clifford)
Definition: pinvoke_api.cpp:4098
MICROSOFT_QUANTUM_DECL double UnitaryVarianceEigenVal(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(3 *n) real1_s *b, _In_reads_(2 *n) real1_s *e)
(External API) Get the single-qubit (3-parameter) operator variance for the array of qubits and bases...
Definition: pinvoke_api.cpp:3166
MICROSOFT_QUANTUM_DECL void FSim(_In_ uintq sid, _In_ double theta, _In_ double phi, _In_ uintq qi1, _In_ uintq qi2)
Definition: pinvoke_api.cpp:2430
MICROSOFT_QUANTUM_DECL void qstabilizer_out_to_file(_In_ uintq sid, _In_ char *f)
Definition: pinvoke_api.cpp:1117
MICROSOFT_QUANTUM_DECL void MCExp(_In_ uintq sid, _In_ uintq n, _In_reads_(n) int *b, _In_ double phi, _In_ uintq nc, _In_reads_(nc) uintq *cs, _In_reads_(n) uintq *q)
(External API) Controlled exponentiation of Pauli operators
Definition: pinvoke_api.cpp:2213
MICROSOFT_QUANTUM_DECL void destroy_qcircuit(_In_ uintq cid)
Definition: pinvoke_api.cpp:4171
MICROSOFT_QUANTUM_DECL uintq ForceM(_In_ uintq sid, _In_ uintq q, _In_ bool r)
(External API) PSEUDO-QUANTUM: Post-select bit in |0>/|1> basis
Definition: pinvoke_api.cpp:2270
MICROSOFT_QUANTUM_DECL double ProbRdm(_In_ uintq sid, _In_ uintq q)
(External API) Get the probability that a qubit is in the |1> state, treating all ancillary qubits as...
Definition: pinvoke_api.cpp:2826
MICROSOFT_QUANTUM_DECL void Z(_In_ uintq sid, _In_ uintq q)
(External API) "Z" Gate
Definition: pinvoke_api.cpp:1588
MICROSOFT_QUANTUM_DECL double MatrixVariance(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_reads_(8 *n) real1_s *b)
(External API) Get the single-qubit (2x2) operator variance for the array of qubits and bases.
Definition: pinvoke_api.cpp:3124
MICROSOFT_QUANTUM_DECL void SY(_In_ uintq sid, _In_ uintq q)
(External API) Square root of Y gate
Definition: pinvoke_api.cpp:1644
MICROSOFT_QUANTUM_DECL double FactorizedVariance(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_ uintq m, uintq *c)
(External API) Get the permutation variance, based upon the order of input qubits.
Definition: pinvoke_api.cpp:3006
MICROSOFT_QUANTUM_DECL void MY(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q)
(External API) Multiple "Y" Gate
Definition: pinvoke_api.cpp:2118
MICROSOFT_QUANTUM_DECL void CLXOR(_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo)
Definition: pinvoke_api.cpp:2657
MICROSOFT_QUANTUM_DECL void SetMajorQuadrant(_In_ uintq sid, _In_ bool q)
Definition: pinvoke_api.cpp:3805
MICROSOFT_QUANTUM_DECL void SetQuadrant(_In_ uintq sid, _In_ uintq t, _In_ bool b)
Definition: pinvoke_api.cpp:3815
Definition: hamiltonian.hpp:16