79 if (basis.size() != 3U) {
80 throw std::invalid_argument(
"QubitU3Basis must have 3 basis angles!");
82 for (
int i = 0; i < 3; ++i) {
94 if (basis.size() != 4U) {
95 throw std::invalid_argument(
"QubitMatrixBasis must have 4 matrix components for basis!");
97 for (
int i = 0; i < 4; ++i) {
110 if (basis.size() != 3U) {
111 throw std::invalid_argument(
"QubitU3BasisEigenVal must have 3 basis angles!");
113 if (ex.size() != 2U) {
114 throw std::invalid_argument(
"QubitU3BasisEigenVal must have 2 eigenvalues!");
116 for (
int i = 0; i < 3; ++i) {
131 if (basis.size() != 4U) {
132 throw std::invalid_argument(
"QubitMatrixBasisEigenVal must have 4 matrix components for basis!");
134 if (ex.size() != 2U) {
135 throw std::invalid_argument(
"QubitMatrixBasisEigenVal must have 2 eigenvalues!");
137 for (
int i = 0; i < 4; ++i) {
159 bitLenInt q,
bool tn,
bool md,
bool sd,
bool sh,
bool bdt,
bool pg,
bool nw,
bool hy,
bool oc,
bool hp);
243 std::vector<real1>
ProbAll(
quid sid, std::vector<bitLenInt> q);
386 bool Measure(
quid sid, std::vector<QubitPauliBasis> q);
394 std::vector<long long unsigned int>
MeasureShots(
quid sid, std::vector<bitLenInt> q,
unsigned s);
449 void MX(
quid sid, std::vector<bitLenInt> q);
450 void MY(
quid sid, std::vector<bitLenInt> q);
451 void MZ(
quid sid, std::vector<bitLenInt> q);
456 void MCR(
quid sid,
real1_f phi, std::vector<bitLenInt> c, QubitPauliBasis q);
461 void MCExp(
quid sid,
real1_f phi, std::vector<bitLenInt> c, std::vector<QubitPauliBasis> q);
495 void QFT(
quid sid, std::vector<bitLenInt> q);
499 void IQFT(
quid sid, std::vector<bitLenInt> q);
510 void MCADD(
quid sid,
bitCapInt a, std::vector<bitLenInt> c, std::vector<bitLenInt> q);
511 void MCSUB(
quid sid,
bitCapInt a, std::vector<bitLenInt> c, std::vector<bitLenInt> q);
513 void MUL(
quid sid,
bitCapInt a, std::vector<bitLenInt> q, std::vector<bitLenInt> o);
514 void DIV(
quid sid,
bitCapInt a, std::vector<bitLenInt> q, std::vector<bitLenInt> o);
520 void MCMUL(
quid sid,
bitCapInt a, std::vector<bitLenInt> c, std::vector<bitLenInt> q, std::vector<bitLenInt> o);
521 void MCDIV(
quid sid,
bitCapInt a, std::vector<bitLenInt> c, std::vector<bitLenInt> q, std::vector<bitLenInt> o);
524 quid sid,
bitCapInt a, std::vector<bitLenInt> c,
bitCapInt m, std::vector<bitLenInt> q, std::vector<bitLenInt> o);
526 quid sid,
bitCapInt a, std::vector<bitLenInt> c,
bitCapInt m, std::vector<bitLenInt> q, std::vector<bitLenInt> o);
528 quid sid,
bitCapInt a, std::vector<bitLenInt> c,
bitCapInt m, std::vector<bitLenInt> q, std::vector<bitLenInt> o);
532 void LDA(
quid sid, std::vector<bitLenInt> qi, std::vector<bitLenInt> qv, std::vector<unsigned char> t);
533 void ADC(
quid sid,
bitLenInt s, std::vector<bitLenInt> qi, std::vector<bitLenInt> qv, std::vector<unsigned char> t);
534 void SBC(
quid sid,
bitLenInt s, std::vector<bitLenInt> qi, std::vector<bitLenInt> qv, std::vector<unsigned char> t);
535 void Hash(
quid sid, std::vector<bitLenInt> q, std::vector<unsigned char> t);
GLOSSARY: bitLenInt - "bit-length integer" - unsigned integer ID of qubit position in register bitCap...
Definition: complex16x2simd.hpp:25
real1_f qneuron_learn_cycle(quid nid, bool e)
Train a quantum neuron for one epoch, and also uncompute the intermediate side-effects.
Definition: wasm_api.cpp:2674
bool TrySeparate1Qb(quid sid, bitLenInt qi1)
Try to factorize a single-qubit subsystem out of "bulk" simulator state.
Definition: wasm_api.cpp:2415
real1_f ProbRdm(quid sid, bitLenInt q)
"Reduced density matrix" Z-basis expectation value of qubit
Definition: wasm_api.cpp:1856
void set_qneuron_alpha(quid nid, real1_f alpha)
Set the "leakage" parameter for "leaky" quantum neuron activation functions.
Definition: wasm_api.cpp:2626
void MCT(quid sid, std::vector< bitLenInt > c, bitLenInt q)
(External API) Controlled "T" Gate
Definition: wasm_api.cpp:1277
void CLNOR(quid sid, bool ci, bitLenInt qi, bitLenInt qo)
Definition: wasm_api.cpp:1792
void X(quid sid, bitLenInt q)
(External API) "X" Gate
Definition: wasm_api.cpp:1091
quid qcircuit_past_light_cone(quid cid, std::set< bitLenInt > q)
Definition: wasm_api.cpp:2772
void MACS(quid sid, std::vector< bitLenInt > c, bitLenInt q)
(External API) "Anti-"Controlled "S" Gate
Definition: wasm_api.cpp:1367
void Y(quid sid, bitLenInt q)
(External API) "Y" Gate
Definition: wasm_api.cpp:1100
void ADD(quid sid, bitCapInt a, std::vector< bitLenInt > q)
Definition: wasm_api.cpp:2230
void MCMULN(quid sid, bitCapInt a, std::vector< bitLenInt > c, bitCapInt m, std::vector< bitLenInt > q, std::vector< bitLenInt > o)
Definition: wasm_api.cpp:2345
void MY(quid sid, std::vector< bitLenInt > q)
(External API) Multiple "Y" Gate
Definition: wasm_api.cpp:1467
void XOR(quid sid, bitLenInt qi1, bitLenInt qi2, bitLenInt qo)
Definition: wasm_api.cpp:1744
void SetPermutation(quid sid, bitCapInt p)
Set bit string permutation eigenstate of simulator instance.
Definition: wasm_api.cpp:1082
void MCADD(quid sid, bitCapInt a, std::vector< bitLenInt > c, std::vector< bitLenInt > q)
Definition: wasm_api.cpp:2251
real1_f JointEnsembleProbability(quid sid, std::vector< QubitPauliBasis > q)
Overall probability of any odd permutation of the masked set of bits.
Definition: wasm_api.cpp:989
void ISWAP(quid sid, bitLenInt qi1, bitLenInt qi2)
Definition: wasm_api.cpp:1626
quid init()
"Quasi-default constructor" (for an empty simulator)
Definition: wasm_api.cpp:634
void Compose(quid sid1, quid sid2, std::vector< bitLenInt > q)
Definition: wasm_api.cpp:1656
void allocateQubit(quid sid, bitLenInt qid)
Allocate new qubit with ID.
Definition: wasm_api.cpp:1014
void POWN(quid sid, bitCapInt a, bitCapInt m, std::vector< bitLenInt > q, std::vector< bitLenInt > o)
Definition: wasm_api.cpp:2308
void MCPOWN(quid sid, bitCapInt a, std::vector< bitLenInt > c, bitCapInt m, std::vector< bitLenInt > q, std::vector< bitLenInt > o)
Definition: wasm_api.cpp:2373
real1_f MatrixVariance(quid sid, std::vector< QubitMatrixBasis > q)
Get the single-qubit (2x2) operator variance for the array of qubits and bases.
Definition: wasm_api.cpp:2097
void set_qneuron_angles(quid nid, std::vector< real1 > angles)
Set the (RY-rotation) angle parameters for each permutation of quantum neuron input qubits.
Definition: wasm_api.cpp:2594
void qcircuit_append_1qb(quid cid, std::vector< complex > m, bitLenInt q)
void SetNoiseParameter(quid sid, double np)
Set noise parameter (for QInterfaceNoisy)
Definition: wasm_api.cpp:2491
quid init_qcircuit_clone(quid cid)
Definition: wasm_api.cpp:2768
void SetReactiveSeparate(quid sid, bool irs)
Turn off/on "reactive separation" feature (for less/more aggressive automatic state factorization)
Definition: wasm_api.cpp:2479
bitLenInt get_qcircuit_qubit_count(quid cid)
Definition: wasm_api.cpp:2783
void MCH(quid sid, std::vector< bitLenInt > c, bitLenInt q)
(External API) Controlled "H" Gate
Definition: wasm_api.cpp:1256
void SetSdrp(quid sid, double sdrp)
Set "Schmidt decomposition rounding parameter" (SDRP) value (see https://arxiv.org/abs/2304....
Definition: wasm_api.cpp:2467
void qcircuit_out_to_file(quid cid, std::string f)
Definition: wasm_api.cpp:2837
void qstabilizer_out_to_file(quid sid, std::string f)
Output stabilizer simulation tableau to file (or raise exception for "get_error()" if incompatible si...
Definition: wasm_api.cpp:906
void SY(quid sid, bitLenInt q)
(External API) Square root of Y gate
Definition: wasm_api.cpp:1145
void MUL(quid sid, bitCapInt a, std::vector< bitLenInt > q, std::vector< bitLenInt > o)
Definition: wasm_api.cpp:2268
bool TrySeparateTol(quid sid, std::vector< bitLenInt > q, real1_f tol)
Try to factorize a qubit subsystem out of "bulk" simulator state.
Definition: wasm_api.cpp:2427
void MCX(quid sid, std::vector< bitLenInt > c, bitLenInt q)
(External API) Controlled "X" Gate
Definition: wasm_api.cpp:1229
void XNOR(quid sid, bitLenInt qi1, bitLenInt qi2, bitLenInt qo)
Definition: wasm_api.cpp:1762
void MCY(quid sid, std::vector< bitLenInt > c, bitLenInt q)
(External API) Controlled "Y" Gate
Definition: wasm_api.cpp:1238
void T(quid sid, bitLenInt q)
(External API) "T" Gate
Definition: wasm_api.cpp:1154
void IQFT(quid sid, std::vector< bitLenInt > q)
(Inverse) Quantum Fourier Transform
Definition: wasm_api.cpp:2218
void MACT(quid sid, std::vector< bitLenInt > c, bitLenInt q)
(External API) "Anti-"Controlled "T" Gate
Definition: wasm_api.cpp:1376
void MACU(quid sid, std::vector< bitLenInt > c, bitLenInt q, real1_f theta, real1_f phi, real1_f lambda)
(External API) Controlled 3-parameter unitary gate
Definition: wasm_api.cpp:1403
void MCAdjS(quid sid, std::vector< bitLenInt > c, bitLenInt q)
(External API) Controlled Inverse "S" Gate
Definition: wasm_api.cpp:1286
void Mtrx(quid sid, std::vector< complex > m, bitLenInt q)
(External API) 2x2 complex matrix unitary gate
Definition: wasm_api.cpp:1208
void MCDIV(quid sid, bitCapInt a, std::vector< bitLenInt > c, std::vector< bitLenInt > q, std::vector< bitLenInt > o)
Definition: wasm_api.cpp:2332
void CSWAP(quid sid, std::vector< bitLenInt > c, bitLenInt qi1, bitLenInt qi2)
Definition: wasm_api.cpp:1644
bool Measure(quid sid, std::vector< QubitPauliBasis > q)
Each in its specified Pauli basis, collapse an ensemble of qubits jointly via measurement.
Definition: wasm_api.cpp:1583
real1_f UnitaryVariance(quid sid, std::vector< QubitU3Basis > q)
Get the single-qubit (3-parameter) operator variance for the array of qubits and bases.
Definition: wasm_api.cpp:2065
quid clone_qneuron(quid nid)
"Clone" a quantum neuron (which is a classical state)
Definition: wasm_api.cpp:2547
void AdjISWAP(quid sid, bitLenInt qi1, bitLenInt qi2)
Definition: wasm_api.cpp:1632
void UCMtrx(quid sid, std::vector< bitLenInt > c, std::vector< complex > m, bitLenInt q, bitCapIntOcl p)
Multi-controlled gate that activates only for the specified permutation of controls,...
Definition: wasm_api.cpp:1427
real1_f FactorizedExpectation(quid sid, std::vector< QubitIntegerExpVar > q)
Expectation value for bit-string integer from group of qubits with per-qubit integer expectation valu...
Definition: wasm_api.cpp:1952
real1_f UnitaryExpectationEigenVal(quid sid, std::vector< QubitU3BasisEigenVal > q)
Get the single-qubit (3-parameter) operator expectation value for the array of qubits and bases.
Definition: wasm_api.cpp:2127
void MCMUL(quid sid, bitCapInt a, std::vector< bitLenInt > c, std::vector< bitLenInt > q, std::vector< bitLenInt > o)
Definition: wasm_api.cpp:2319
void seed(quid sid, unsigned s)
"Seed" random number generator (if pseudo-random Mersenne twister is in use)
Definition: wasm_api.cpp:873
real1_f FactorizedVariance(quid sid, std::vector< QubitIntegerExpVar > q)
Variance for bit-string integer from group of qubits with per-qubit integer variance.
Definition: wasm_api.cpp:1960
void ACSWAP(quid sid, std::vector< bitLenInt > c, bitLenInt qi1, bitLenInt qi2)
Definition: wasm_api.cpp:1650
void MACZ(quid sid, std::vector< bitLenInt > c, bitLenInt q)
(External API) "Anti-"Controlled "Z" Gate
Definition: wasm_api.cpp:1346
void MCAdjT(quid sid, std::vector< bitLenInt > c, bitLenInt q)
(External API) Controlled Inverse "T" Gate
Definition: wasm_api.cpp:1295
void U(quid sid, bitLenInt q, real1_f theta, real1_f phi, real1_f lambda)
(External API) 3-parameter unitary gate
Definition: wasm_api.cpp:1199
bool M(quid sid, bitLenInt q)
Measure single qubit (according to Born rules) and return the result.
Definition: wasm_api.cpp:1555
size_t random_choice(quid sid, std::vector< real1 > p)
Select from a distribution of "p.size()" count of elements according to the discrete probabilities in...
Definition: wasm_api.cpp:940
void AdjSY(quid sid, bitLenInt q)
(External API) Inverse square root of Y gate
Definition: wasm_api.cpp:1181
void CLNAND(quid sid, bool ci, bitLenInt qi, bitLenInt qo)
Definition: wasm_api.cpp:1786
std::complex< real1 > complex
Definition: qrack_types.hpp:136
void FSim(quid sid, real1_f theta, real1_f phi, bitLenInt qi1, bitLenInt qi2)
Definition: wasm_api.cpp:1638
real1_f VarianceRdm(quid sid, std::vector< bitLenInt > q, bool r)
"Reduced density matrix" variance for bit-string integer equivalent of specified arbitrary group of q...
Definition: wasm_api.cpp:1928
void MCMtrx(quid sid, std::vector< bitLenInt > c, std::vector< complex > m, bitLenInt q)
(External API) Controlled 2x2 complex matrix unitary gate
Definition: wasm_api.cpp:1313
void PhaseParity(quid sid, real1_f lambda, std::vector< bitLenInt > q)
Applies e^(i*angle) phase factor to all combinations of bits with odd parity, based upon permutations...
Definition: wasm_api.cpp:960
real1_f FactorizedVarianceFp(quid sid, std::vector< QubitRealExpVar > q)
Variance for bit-string integer from group of qubits with per-qubit real1 variance.
Definition: wasm_api.cpp:2013
real1_f FactorizedExpectationFp(quid sid, std::vector< QubitRealExpVar > q)
Expectation value for bit-string integer from group of qubits with per-qubit real1 expectation value.
Definition: wasm_api.cpp:2005
real1_f Variance(quid sid, std::vector< bitLenInt > q)
Variance for bit-string integer equivalent of specified arbitrary group of qubits.
Definition: wasm_api.cpp:1922
void qneuron_learn_permutation(quid nid, real1_f eta, bool e, bool r)
Train a quantum neuron for one epoch, assuming that the input state is a Z-basis eigenstate.
Definition: wasm_api.cpp:2697
void AdjT(quid sid, bitLenInt q)
(External API) Inverse "T" Gate
Definition: wasm_api.cpp:1190
bitCapInt MAll(quid sid)
Measure all qubits (according to Born rules) and return the result as a bit string (integer).
Definition: wasm_api.cpp:1574
void Exp(quid sid, real1_f phi, std::vector< QubitPauliBasis > q)
(External API) Exponentiation of Pauli operators
Definition: wasm_api.cpp:1503
real1_f PermutationProb(quid sid, std::vector< QubitIndexState > q)
Probability of specified (single) permutation of any arbitrary group of qubits.
Definition: wasm_api.cpp:1878
void S(quid sid, bitLenInt q)
(External API) "S" Gate
Definition: wasm_api.cpp:1127
void MACX(quid sid, std::vector< bitLenInt > c, bitLenInt q)
(External API) "Anti-"Controlled "X" Gate
Definition: wasm_api.cpp:1328
void destroy(quid sid)
"Destroy" or release simulator allocation
Definition: wasm_api.cpp:860
QNeuronActivationFn get_qneuron_activation_fn(quid nid)
Get the activation function for a quantum neuron.
Definition: wasm_api.cpp:2644
quid init_qneuron(quid sid, std::vector< bitLenInt > c, bitLenInt q, QNeuronActivationFn f, real1_f a, real1_f tol)
Initialize a "quantum neuron" that takes a list of qubit "controls" for input and acts on a single "t...
Definition: wasm_api.cpp:2504
void destroy_qcircuit(quid cid)
Definition: wasm_api.cpp:2774
void MACH(quid sid, std::vector< bitLenInt > c, bitLenInt q)
(External API) "Anti-"Controlled "H" Gate
Definition: wasm_api.cpp:1355
void set_qneuron_activation_fn(quid nid, QNeuronActivationFn f)
Set the activation function for a quantum neuron.
Definition: wasm_api.cpp:2638
real1_f MatrixExpectation(quid sid, std::vector< QubitMatrixBasis > q)
Get the single-qubit (2x2) operator expectation value for the array of qubits and bases.
Definition: wasm_api.cpp:2092
uint64_t quid
Definition: wasm_api.hpp:27
void ADDS(quid sid, bitCapInt a, bitLenInt s, std::vector< bitLenInt > q)
Definition: wasm_api.cpp:2240
void Separate(quid sid, std::vector< bitLenInt > q)
Force (inexact) factorization of qubit subsystem out of "bulk" simulator state.
Definition: wasm_api.cpp:2433
void H(quid sid, bitLenInt q)
(External API) Walsh-Hadamard transform applied for simulator ID and qubit ID
Definition: wasm_api.cpp:1118
void QFT(quid sid, std::vector< bitLenInt > q)
Quantum Fourier Transform.
Definition: wasm_api.cpp:2208
void qcircuit_in_from_file(quid cid, std::string f)
Definition: wasm_api.cpp:2847
void PhaseRootN(quid sid, bitLenInt p, std::vector< bitLenInt > q)
Applies a -2 * PI_R1 / (2^N) phase rotation to each qubit.
Definition: wasm_api.cpp:962
void OR(quid sid, bitLenInt qi1, bitLenInt qi2, bitLenInt qo)
Definition: wasm_api.cpp:1738
real1_f PauliExpectation(quid sid, std::vector< QubitPauliBasis > q)
Pauli operator expectation value for the array of qubits and bases.
Definition: wasm_api.cpp:2201
bool ForceM(quid sid, bitLenInt q, bool r)
(PSEUDO-QUANTUM:) Force measurement result of single qubit (and return the result)
Definition: wasm_api.cpp:1564
void SX(quid sid, bitLenInt q)
(External API) Square root of X gate
Definition: wasm_api.cpp:1136
void R(quid sid, real1_f phi, QubitPauliBasis q)
(External API) Rotation around Pauli axes
Definition: wasm_api.cpp:1485
void DIV(quid sid, bitCapInt a, std::vector< bitLenInt > q, std::vector< bitLenInt > o)
Definition: wasm_api.cpp:2278
void MACAdjT(quid sid, std::vector< bitLenInt > c, bitLenInt q)
(External API) "Anti-"Controlled Inverse "T" Gate
Definition: wasm_api.cpp:1394
void MCDIVN(quid sid, bitCapInt a, std::vector< bitLenInt > c, bitCapInt m, std::vector< bitLenInt > q, std::vector< bitLenInt > o)
Definition: wasm_api.cpp:2359
void qcircuit_swap(quid cid, bitLenInt q1, bitLenInt q2)
Definition: wasm_api.cpp:2788
real1_f UnitaryVarianceEigenVal(quid sid, std::vector< QubitU3BasisEigenVal > q)
Get the single-qubit (3-parameter) operator variance for the array of qubits and bases.
Definition: wasm_api.cpp:2135
void CLOR(quid sid, bool ci, bitLenInt qi, bitLenInt qo)
Definition: wasm_api.cpp:1774
real1_f PermutationExpectationRdm(quid sid, std::vector< bitLenInt > q, bool r)
"Reduced density matrix" expectation value for bit-string integer equivalent of specified arbitrary g...
Definition: wasm_api.cpp:1914
bitLenInt num_qubits(quid sid)
Total count of qubits in simulator instance.
Definition: wasm_api.cpp:1076
quid init_count_stabilizer(bitLenInt q)
Initialize a simulator ID with "q" qubits as purely a stabilizer simulator.
Definition: wasm_api.cpp:684
void CLXOR(quid sid, bool ci, bitLenInt qi, bitLenInt qo)
Definition: wasm_api.cpp:1780
real1_f PermutationProbRdm(quid sid, std::vector< QubitIndexState > q, bool r)
"Reduced density matrix" probability of specified (single) permutation of any arbitrary group of qubi...
Definition: wasm_api.cpp:1884
void MCSUB(quid sid, bitCapInt a, std::vector< bitLenInt > c, std::vector< bitLenInt > q)
Definition: wasm_api.cpp:2259
void qstabilizer_in_from_file(quid sid, std::string f)
Initialize stabilizer simulation from a tableau file (or raise exception for "get_error()" if incompa...
Definition: wasm_api.cpp:920
void AdjSX(quid sid, bitLenInt q)
(External API) Inverse square root of X gate
Definition: wasm_api.cpp:1172
void MZ(quid sid, std::vector< bitLenInt > q)
(External API) Multiple "Z" Gate
Definition: wasm_api.cpp:1476
void MULN(quid sid, bitCapInt a, bitCapInt m, std::vector< bitLenInt > q, std::vector< bitLenInt > o)
Definition: wasm_api.cpp:2288
real1_f Prob(quid sid, bitLenInt q)
Z-basis expectation value of qubit.
Definition: wasm_api.cpp:1850
void destroy_qneuron(quid nid)
"Destroy" or release simulator allocation
Definition: wasm_api.cpp:2584
real1_f FactorizedExpectationRdm(quid sid, std::vector< QubitIntegerExpVar > q, bool r)
"Reduced density matrix" Expectation value for bit-string integer from group of qubits with per-qubit...
Definition: wasm_api.cpp:1969
real1_f get_qneuron_alpha(quid nid)
Get the "leakage" parameter for "leaky" quantum neuron activation functions.
Definition: wasm_api.cpp:2632
void SetTInjection(quid sid, bool iti)
Turn off/on "T-injection" feature (for "near-Clifford" simulation with RZ gates)
Definition: wasm_api.cpp:2485
float real1_f
Definition: qrack_types.hpp:103
void qneuron_learn(quid nid, real1_f eta, bool e, bool r)
Train a quantum neuron for one epoh (without uncomputing any intermediate side-effects)
Definition: wasm_api.cpp:2686
quid Decompose(quid sid, std::vector< bitLenInt > q)
Definition: wasm_api.cpp:1686
void Dispose(quid sid, std::vector< bitLenInt > q)
Definition: wasm_api.cpp:1712
void CLAND(quid sid, bool ci, bitLenInt qi, bitLenInt qo)
Definition: wasm_api.cpp:1768
std::string qcircuit_out_to_string(quid cid)
Definition: wasm_api.cpp:2857
quid init_qcircuit(bool collapse, bool clifford)
Definition: wasm_api.cpp:2708
quid qcircuit_inverse(quid cid)
Definition: wasm_api.cpp:2770
void qcircuit_append_mc(quid cid, std::vector< complex > m, std::vector< bitLenInt > c, bitLenInt q, bitCapInt p)
void NAND(quid sid, bitLenInt qi1, bitLenInt qi2, bitLenInt qo)
Definition: wasm_api.cpp:1750
real1_f qneuron_unpredict(quid nid, bool e)
Perform the inverse of quantum neuron inference (for "uncomputation")
Definition: wasm_api.cpp:2662
void SetNcrp(quid sid, double sdrp)
Set "Near-Clifford rounding parameter".
Definition: wasm_api.cpp:2473
void set_concurrency(quid sid, unsigned p)
Set CPU concurrency (if build isn't serial)
Definition: wasm_api.cpp:882
void set_device_list(quid sid, std::vector< int64_t > dids)
Set GPU device IDs on the simulator (if the simulator is GPU-accelerated)
Definition: wasm_api.cpp:900
bool TrySeparate2Qb(quid sid, bitLenInt qi1, bitLenInt qi2)
Try to factorize a two-qubit subsystem out of "bulk" simulator state.
Definition: wasm_api.cpp:2421
double GetUnitaryFidelity(quid sid)
Report fidelity for "Schmidt decomposition rounding parameter" (SDRP) and "near-Clifford rounding".
Definition: wasm_api.cpp:2455
void ResetUnitaryFidelity(quid sid)
Reset fidelity to 1 for "Schmidt decomposition rounding parameter" (SDRP) and "near-Clifford rounding...
Definition: wasm_api.cpp:2461
void ResetAll(quid sid)
Set simulator to |0> permutation state.
Definition: wasm_api.cpp:1005
void MACAdjS(quid sid, std::vector< bitLenInt > c, bitLenInt q)
(External API) "Anti-"Controlled Inverse "S" Gate
Definition: wasm_api.cpp:1385
void DIVN(quid sid, bitCapInt a, bitCapInt m, std::vector< bitLenInt > q, std::vector< bitLenInt > o)
Definition: wasm_api.cpp:2298
std::vector< real1 > get_qneuron_angles(quid nid)
Get the (RY-rotation) angle parameters for each permutation of quantum neuron input qubits.
Definition: wasm_api.cpp:2606
real1_f qneuron_predict(quid nid, bool e, bool r)
Infer quantum neuron output from inputs (after training)
Definition: wasm_api.cpp:2650
void CLXNOR(quid sid, bool ci, bitLenInt qi, bitLenInt qo)
Definition: wasm_api.cpp:1798
void SWAP(quid sid, bitLenInt qi1, bitLenInt qi2)
Definition: wasm_api.cpp:1620
void NOR(quid sid, bitLenInt qi1, bitLenInt qi2, bitLenInt qo)
Definition: wasm_api.cpp:1756
void SUBS(quid sid, bitCapInt a, bitLenInt s, std::vector< bitLenInt > q)
Definition: wasm_api.cpp:2245
std::vector< long long unsigned int > MeasureShots(quid sid, std::vector< bitLenInt > q, unsigned s)
Repeat (Z-basis) measurement of a set of qubits for a count of "shots" (without collapsing the simula...
Definition: wasm_api.cpp:1594
quid init_count(bitLenInt q, bool dm)
"Default optimal" (BQP-complete-targeted) simulator type initialization (with "direct memory" option)
Definition: wasm_api.cpp:639
void AND(quid sid, bitLenInt qi1, bitLenInt qi2, bitLenInt qo)
Definition: wasm_api.cpp:1732
real1_f PauliVariance(quid sid, std::vector< QubitPauliBasis > q)
Pauli operator variance for the array of qubits and bases.
Definition: wasm_api.cpp:2206
real1_f PermutationExpectation(quid sid, std::vector< bitLenInt > q)
Expectation value for bit-string integer equivalent of specified arbitrary group of qubits.
Definition: wasm_api.cpp:1905
void MCU(quid sid, std::vector< bitLenInt > c, bitLenInt q, real1_f theta, real1_f phi, real1_f lambda)
(External API) Controlled 3-parameter unitary gate
Definition: wasm_api.cpp:1304
void Normalize(quid sid)
Normalize the state (which should never be necessary unless Decompose() is "abused")
Definition: wasm_api.cpp:2497
void AdjS(quid sid, bitLenInt q)
(External API) Inverse "S" Gate
Definition: wasm_api.cpp:1163
void MACY(quid sid, std::vector< bitLenInt > c, bitLenInt q)
(External API) "Anti-"Controlled "Y" Gate
Definition: wasm_api.cpp:1337
Pauli
Enumerated list of Pauli bases.
Definition: pauli.hpp:19
std::vector< real1 > ProbAll(quid sid, std::vector< bitLenInt > q)
Get the probabilities of all permutations of the requested subset of qubits.
Definition: wasm_api.cpp:1804
real1_f FactorizedVarianceFpRdm(quid sid, std::vector< QubitRealExpVar > q, bool r)
"Reduced density matrix" variance for bit-string integer from group of qubits with per-qubit real1 va...
Definition: wasm_api.cpp:2031
void SUB(quid sid, bitCapInt a, std::vector< bitLenInt > q)
Definition: wasm_api.cpp:2235
real1_f FactorizedExpectationFpRdm(quid sid, std::vector< QubitRealExpVar > q, bool r)
"Reduced density matrix" Expectation value for bit-string integer from group of qubits with per-qubit...
Definition: wasm_api.cpp:2022
void qcircuit_run(quid cid, quid sid)
Definition: wasm_api.cpp:2831
void MCR(quid sid, real1_f phi, std::vector< bitLenInt > c, QubitPauliBasis q)
(External API) Controlled rotation around Pauli axes
Definition: wasm_api.cpp:1494
void MCExp(quid sid, real1_f phi, std::vector< bitLenInt > c, std::vector< QubitPauliBasis > q)
(External API) Controlled exponentiation of Pauli operators
Definition: wasm_api.cpp:1529
void Z(quid sid, bitLenInt q)
(External API) "Z" Gate
Definition: wasm_api.cpp:1109
real1_f UnitaryExpectation(quid sid, std::vector< QubitU3Basis > q)
Get the single-qubit (3-parameter) operator expectation value for the array of qubits and bases.
Definition: wasm_api.cpp:2060
QNeuronActivationFn
Enumerated list of activation functions.
Definition: qneuron_activation_function.hpp:19
real1_f FactorizedVarianceRdm(quid sid, std::vector< QubitIntegerExpVar > q, bool r)
"Reduced density matrix" variance for bit-string integer from group of qubits with per-qubit integer ...
Definition: wasm_api.cpp:1978
void Multiplex1Mtrx(quid sid, std::vector< bitLenInt > c, bitLenInt q, std::vector< complex > m)
Multi-controlled, single-target multiplexer gate.
Definition: wasm_api.cpp:1439
quid init_count_type(bitLenInt q, bool tn, bool md, bool sd, bool sh, bool bdt, bool pg, bool nw, bool hy, bool oc, bool hp)
Options for simulator type in initialization (any set of options theoretically functions together): t...
Definition: wasm_api.cpp:549
quid init_qbdd_count(bitLenInt q)
"Default optimal" (BQP-complete-targeted) simulator type initialization (with "direct memory" option)
Definition: wasm_api.cpp:814
void MX(quid sid, std::vector< bitLenInt > q)
(External API) Multiple "X" Gate
Definition: wasm_api.cpp:1458
void set_device(quid sid, int64_t did)
Set GPU device ID on the simulator (if the simulator is GPU-accelerated)
Definition: wasm_api.cpp:891
void MACMtrx(quid sid, std::vector< bitLenInt > c, std::vector< complex > m, bitLenInt q)
(External API) Controlled 2x2 complex matrix unitary gate
Definition: wasm_api.cpp:1412
quid init_clone(quid sid)
"Clone" simulator (no-clone theorem does not apply to classical simulation)
Definition: wasm_api.cpp:730
void MCS(quid sid, std::vector< bitLenInt > c, bitLenInt q)
(External API) Controlled "S" Gate
Definition: wasm_api.cpp:1268
real1_f MatrixExpectationEigenVal(quid sid, std::vector< QubitMatrixBasisEigenVal > q)
Get the single-qubit (2x2) operator expectation value for the array of qubits and bases.
Definition: wasm_api.cpp:2169
void MCZ(quid sid, std::vector< bitLenInt > c, bitLenInt q)
(External API) Controlled "Z" Gate
Definition: wasm_api.cpp:1247
real1_f MatrixVarianceEigenVal(quid sid, std::vector< QubitMatrixBasisEigenVal > q)
Get the single-qubit (2x2) operator variance for the array of qubits and bases.
Definition: wasm_api.cpp:2177
bool release(quid sid, bitLenInt q)
Release qubit ID.
Definition: wasm_api.cpp:1044
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:3502
MICROSOFT_QUANTUM_DECL void Hash(_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, unsigned char *t)
Definition: pinvoke_api.cpp:3514
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:3490
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:3478
#define bitLenInt
Definition: qrack_types.hpp:42
#define bitCapInt
Definition: qrack_types.hpp:66
#define bitCapIntOcl
Definition: qrack_types.hpp:54
Definition: wasm_api.hpp:29
QubitIndexState(bitLenInt q, bool v)
Definition: wasm_api.hpp:32
bool val
Definition: wasm_api.hpp:31
bitLenInt qid
Definition: wasm_api.hpp:30
Definition: wasm_api.hpp:40
QubitIntegerExpVar(bitLenInt q, bitCapInt v)
Definition: wasm_api.hpp:43
bitLenInt qid
Definition: wasm_api.hpp:41
bitCapInt val
Definition: wasm_api.hpp:42
Definition: wasm_api.hpp:124
complex b[4U]
Definition: wasm_api.hpp:126
real1_f e[2U]
Definition: wasm_api.hpp:127
bitLenInt qid
Definition: wasm_api.hpp:125
QubitMatrixBasisEigenVal(bitLenInt q, std::vector< complex > basis, std::vector< real1_f > ex)
Definition: wasm_api.hpp:128
Definition: wasm_api.hpp:88
complex b[4U]
Definition: wasm_api.hpp:90
QubitMatrixBasis(bitLenInt q, std::vector< complex > basis)
Definition: wasm_api.hpp:91
bitLenInt qid
Definition: wasm_api.hpp:89
Definition: wasm_api.hpp:62
Pauli b
Definition: wasm_api.hpp:64
QubitPauliBasis(bitLenInt q, Pauli basis)
Definition: wasm_api.hpp:65
bitLenInt qid
Definition: wasm_api.hpp:63
Definition: wasm_api.hpp:51
QubitRealExpVar(bitLenInt q, real1_f v)
Definition: wasm_api.hpp:54
bitLenInt qid
Definition: wasm_api.hpp:52
real1_f val
Definition: wasm_api.hpp:53
Definition: wasm_api.hpp:103
bitLenInt qid
Definition: wasm_api.hpp:104
QubitU3BasisEigenVal(bitLenInt q, std::vector< real1_f > basis, std::vector< real1_f > ex)
Definition: wasm_api.hpp:107
real1_f e[2U]
Definition: wasm_api.hpp:106
real1_f b[3U]
Definition: wasm_api.hpp:105
Definition: wasm_api.hpp:73
bitLenInt qid
Definition: wasm_api.hpp:74
real1_f b[3U]
Definition: wasm_api.hpp:75
QubitU3Basis(bitLenInt q, std::vector< real1_f > basis)
Definition: wasm_api.hpp:76