|
Qrack
10.0
General classical-emulating-quantum development framework
|
#include "pinvoke_api.hpp"#include "qcircuit.hpp"#include "qneuron.hpp"#include "qfactory.hpp"#include <fstream>#include <iomanip>#include <iostream>#include <map>#include <mutex>#include <numeric>#include <sstream>#include <string>
Classes | |
| struct | MapArithmeticResult2 |
Functions | |
| bitLenInt | GetSimShardId (QInterfacePtr simulator, bitLenInt i) |
| void | FillSimShards (QInterfacePtr simulator) |
| void | TransformPauliBasis (QInterfacePtr simulator, uintq len, int *bases, uintq *qubitIds) |
| void | RevertPauliBasis (QInterfacePtr simulator, uintq len, int *bases, uintq *qubitIds) |
| void | removeIdentities (std::vector< int > *b, std::vector< bitLenInt > *qs) |
| void | RHelper (uintq sid, uintq b, double phi, uintq q) |
| void | MCRHelper (uintq sid, uintq b, double phi, uintq n, uintq *c, uintq q) |
| std::size_t | make_mask (std::vector< bitLenInt > const &qs) |
| std::map< uintq, bitLenInt >::iterator | FindShardValue (bitLenInt v, std::map< uintq, bitLenInt > &simMap) |
| void | SwapShardValues (bitLenInt v1, bitLenInt v2, std::map< uintq, bitLenInt > &simMap) |
| uintq | MapArithmetic (QInterfacePtr simulator, uintq n, uintq *q) |
| MapArithmeticResult2 | MapArithmetic2 (QInterfacePtr simulator, uintq n, uintq *q1, uintq *q2) |
| MapArithmeticResult2 | MapArithmetic3 (QInterfacePtr simulator, uintq n1, uintq *q1, uintq n2, uintq *q2) |
| void | _darray_to_creal1_array (double *params, bitCapIntOcl componentCount, complex *amps) |
| bitCapInt | _combineA (uintq na, const uintq *a) |
| MICROSOFT_QUANTUM_DECL int | get_error (_In_ uintq sid) |
| (External API) Poll after each operation to check whether error occurred. More... | |
| 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 More... | |
| 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. More... | |
| 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. More... | |
| MICROSOFT_QUANTUM_DECL uintq | init_count_stabilizer (_In_ uintq q) |
| (External API) Initialize a simulator ID with "q" qubits as purely a stabilizer simulator. More... | |
| MICROSOFT_QUANTUM_DECL uintq | init_clone (_In_ uintq sid) |
| (External API) Initialize a simulator ID that clones simulator ID "sid" More... | |
| uintq | init_clone_size (uintq sid, uintq n) |
| MICROSOFT_QUANTUM_DECL void | destroy (_In_ uintq sid) |
| (External API) Destroy a simulator (ID will not be reused) More... | |
| MICROSOFT_QUANTUM_DECL void | seed (_In_ uintq sid, _In_ uintq s) |
| (External API) Set RNG seed for simulator ID More... | |
| MICROSOFT_QUANTUM_DECL void | set_concurrency (_In_ uintq sid, _In_ uintq p) |
| (External API) Set concurrency level per QEngine shard More... | |
| MICROSOFT_QUANTUM_DECL void | set_device (_In_ uintq sid, _In_ intq did) |
| (External API) Set GPU device ID on the simulator. More... | |
| 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. More... | |
| MICROSOFT_QUANTUM_DECL void | qstabilizer_out_to_file (_In_ uintq sid, _In_ char *f) |
| MICROSOFT_QUANTUM_DECL void | qstabilizer_in_from_file (_In_ uintq sid, _In_ char *f) |
| MICROSOFT_QUANTUM_DECL void | DumpIds (_In_ uintq sid, _In_ IdCallback callback) |
| (External API) "Dump" all IDs from the selected simulator ID into the callback More... | |
| MICROSOFT_QUANTUM_DECL void | Dump (_In_ uintq sid, _In_ ProbAmpCallback callback) |
| (External API) "Dump" state vector from the selected simulator ID into the callback More... | |
| MICROSOFT_QUANTUM_DECL void | InKet (_In_ uintq sid, _In_ real1_s *ket) |
| (External API) Set state vector for the selected simulator ID. More... | |
| MICROSOFT_QUANTUM_DECL void | OutKet (_In_ uintq sid, _In_ real1_s *ket) |
| (External API) Get state vector for the selected simulator ID. More... | |
| 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. More... | |
| MICROSOFT_QUANTUM_DECL void | OutProbs (_In_ uintq sid, _In_ real1_s *probs) |
| (External API) Get basis dimension probabilities for the selected simulator ID. More... | |
| MICROSOFT_QUANTUM_DECL std::size_t | random_choice (_In_ uintq sid, _In_ std::size_t n, _In_reads_(n) double *p) |
| (External API) Select from a distribution of "n" elements according the discrete probabilities in "d." More... | |
| void | _PhaseMask (uintq sid, double lambda, uintq p, uintq n, uintq *q, bool isParity) |
| MICROSOFT_QUANTUM_DECL void | PhaseParity (_In_ uintq sid, _In_ double lambda, _In_ uintq n, _In_reads_(n) uintq *q) |
| MICROSOFT_QUANTUM_DECL void | PhaseRootN (_In_ uintq sid, _In_ uintq p, _In_ uintq n, _In_reads_(n) uintq *q) |
| double | _JointEnsembleProbabilityHelper (QInterfacePtr simulator, uintq n, int *b, uintq *q, bool doMeasure) |
| 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 transformations. More... | |
| MICROSOFT_QUANTUM_DECL void | ResetAll (_In_ uintq sid) |
| (External API) Set the simulator to a computational basis permutation. More... | |
| 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 More... | |
| 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 More... | |
| MICROSOFT_QUANTUM_DECL uintq | num_qubits (_In_ uintq sid) |
| MICROSOFT_QUANTUM_DECL void | X (_In_ uintq sid, _In_ uintq q) |
| (External API) "X" Gate More... | |
| MICROSOFT_QUANTUM_DECL void | Y (_In_ uintq sid, _In_ uintq q) |
| (External API) "Y" Gate More... | |
| MICROSOFT_QUANTUM_DECL void | Z (_In_ uintq sid, _In_ uintq q) |
| (External API) "Z" Gate More... | |
| MICROSOFT_QUANTUM_DECL void | H (_In_ uintq sid, _In_ uintq q) |
| (External API) Walsh-Hadamard transform applied for simulator ID and qubit ID More... | |
| MICROSOFT_QUANTUM_DECL void | S (_In_ uintq sid, _In_ uintq q) |
| (External API) "S" Gate More... | |
| MICROSOFT_QUANTUM_DECL void | SX (_In_ uintq sid, _In_ uintq q) |
| (External API) Square root of X gate More... | |
| MICROSOFT_QUANTUM_DECL void | SY (_In_ uintq sid, _In_ uintq q) |
| (External API) Square root of Y gate More... | |
| MICROSOFT_QUANTUM_DECL void | T (_In_ uintq sid, _In_ uintq q) |
| (External API) "T" Gate More... | |
| MICROSOFT_QUANTUM_DECL void | AdjS (_In_ uintq sid, _In_ uintq q) |
| (External API) Inverse "S" Gate More... | |
| MICROSOFT_QUANTUM_DECL void | AdjSX (_In_ uintq sid, _In_ uintq q) |
| (External API) Inverse square root of X gate More... | |
| MICROSOFT_QUANTUM_DECL void | AdjSY (_In_ uintq sid, _In_ uintq q) |
| (External API) Inverse square root of Y gate More... | |
| MICROSOFT_QUANTUM_DECL void | AdjT (_In_ uintq sid, _In_ uintq q) |
| (External API) Inverse "T" Gate More... | |
| 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 More... | |
| MICROSOFT_QUANTUM_DECL void | Mtrx (_In_ uintq sid, _In_reads_(8) double *m, _In_ uintq q) |
| (External API) 2x2 complex matrix unitary gate More... | |
| MICROSOFT_QUANTUM_DECL void | MCX (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q) |
| (External API) Controlled "X" Gate More... | |
| MICROSOFT_QUANTUM_DECL void | MCY (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q) |
| (External API) Controlled "Y" Gate More... | |
| MICROSOFT_QUANTUM_DECL void | MCZ (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q) |
| (External API) Controlled "Z" Gate More... | |
| MICROSOFT_QUANTUM_DECL void | MCH (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q) |
| (External API) Controlled "H" Gate More... | |
| MICROSOFT_QUANTUM_DECL void | MCS (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q) |
| (External API) Controlled "S" Gate More... | |
| MICROSOFT_QUANTUM_DECL void | MCT (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q) |
| (External API) Controlled "T" Gate More... | |
| 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 More... | |
| 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 More... | |
| 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) |
| (External API) Controlled 3-parameter unitary gate More... | |
| 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 More... | |
| 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 More... | |
| 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 More... | |
| 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 More... | |
| 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 More... | |
| 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 More... | |
| 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 More... | |
| 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 More... | |
| 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 More... | |
| 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) |
| (External API) Controlled 3-parameter unitary gate More... | |
| 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 More... | |
| 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 More... | |
| MICROSOFT_QUANTUM_DECL void | Multiplex1Mtrx (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q, double *m) |
| MICROSOFT_QUANTUM_DECL void | MX (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q) |
| (External API) Multiple "X" Gate More... | |
| MICROSOFT_QUANTUM_DECL void | MY (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q) |
| (External API) Multiple "Y" Gate More... | |
| MICROSOFT_QUANTUM_DECL void | MZ (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q) |
| (External API) Multiple "Z" Gate More... | |
| MICROSOFT_QUANTUM_DECL void | R (_In_ uintq sid, _In_ uintq b, _In_ double phi, _In_ uintq q) |
| (External API) Rotation around Pauli axes More... | |
| 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 More... | |
| 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 More... | |
| 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 More... | |
| MICROSOFT_QUANTUM_DECL uintq | M (_In_ uintq sid, _In_ uintq q) |
| (External API) Measure bit in |0>/|1> basis More... | |
| 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 More... | |
| 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-to-high order corresponding with first-to-last in original order of allocation. More... | |
| 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 order corresponding with first-to-last in original order of allocation. More... | |
| 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 More... | |
| MICROSOFT_QUANTUM_DECL void | MeasureShots (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_ uintq s, _In_reads_(s) uintq *m) |
| MICROSOFT_QUANTUM_DECL void | SWAP (_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2) |
| MICROSOFT_QUANTUM_DECL void | ISWAP (_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2) |
| MICROSOFT_QUANTUM_DECL void | AdjISWAP (_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2) |
| MICROSOFT_QUANTUM_DECL void | FSim (_In_ uintq sid, _In_ double theta, _In_ double phi, _In_ uintq qi1, _In_ uintq qi2) |
| MICROSOFT_QUANTUM_DECL void | CSWAP (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq qi1, _In_ uintq qi2) |
| MICROSOFT_QUANTUM_DECL void | ACSWAP (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq qi1, _In_ uintq qi2) |
| MICROSOFT_QUANTUM_DECL void | Compose (_In_ uintq sid1, _In_ uintq sid2, uintq *q) |
| MICROSOFT_QUANTUM_DECL uintq | Decompose (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q) |
| MICROSOFT_QUANTUM_DECL void | Dispose (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q) |
| MICROSOFT_QUANTUM_DECL void | AND (_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2, _In_ uintq qo) |
| MICROSOFT_QUANTUM_DECL void | OR (_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2, _In_ uintq qo) |
| MICROSOFT_QUANTUM_DECL void | XOR (_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2, _In_ uintq qo) |
| MICROSOFT_QUANTUM_DECL void | NAND (_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2, _In_ uintq qo) |
| MICROSOFT_QUANTUM_DECL void | NOR (_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2, _In_ uintq qo) |
| MICROSOFT_QUANTUM_DECL void | XNOR (_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2, _In_ uintq qo) |
| MICROSOFT_QUANTUM_DECL void | CLAND (_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo) |
| MICROSOFT_QUANTUM_DECL void | CLOR (_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo) |
| MICROSOFT_QUANTUM_DECL void | CLXOR (_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo) |
| MICROSOFT_QUANTUM_DECL void | CLNAND (_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo) |
| MICROSOFT_QUANTUM_DECL void | CLNOR (_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo) |
| MICROSOFT_QUANTUM_DECL void | CLXNOR (_In_ uintq sid, _In_ bool ci, _In_ uintq qi, _In_ uintq qo) |
| MICROSOFT_QUANTUM_DECL void | HighestProbAll (_In_ uintq sid, uintq *r) |
| (External API) Get the permutation with the highest probability More... | |
| MICROSOFT_QUANTUM_DECL void | HighestProbAllN (_In_ uintq sid, _In_ uintq n, uintq *r) |
| (External API) Get the top n permutations with the highest probability More... | |
| double | _Prob (_In_ uintq sid, _In_ uintq q, bool isRdm) |
| 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. More... | |
| MICROSOFT_QUANTUM_DECL double | Prob (_In_ uintq sid, _In_ uintq q) |
| (External API) Get the probability that a qubit is in the |1> state. More... | |
| 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 post-selected T gate gadgets. More... | |
| double | _PermutationProb (uintq sid, uintq n, uintq *q, bool *c, bool isRdm, bool r) |
| 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. More... | |
| 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, treating all ancillary qubits as post-selected T gate gadgets. More... | |
| double | _PermutationExpVar (uintq sid, uintq n, uintq *q, bool r, bool isRdm, bool isExp) |
| 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. More... | |
| MICROSOFT_QUANTUM_DECL double | PermutationExpectationRdm (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, bool r) |
| (External API) Get the permutation expectation value, based upon the order of input qubits, treating all ancillary qubits as post-selected T gate gadgets. More... | |
| 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. More... | |
| MICROSOFT_QUANTUM_DECL double | VarianceRdm (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, bool r) |
| (External API) Get the permutation variance based upon the order of input qubits, treating all ancillary qubits as post-selected T gate gadgets. More... | |
| double | _FactorizedExpVar (uintq sid, uintq n, uintq *q, uintq m, uintq *c, real1_s *f, bool r, bool isRdm, bool isExp) |
| 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. More... | |
| 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, treating all ancillary qubits as post-selected T gate gadgets. More... | |
| 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. More... | |
| 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, treating all ancillary qubits as post-selected T gate gadgets. More... | |
| 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. More... | |
| 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, treating all ancillary qubits as post-selected T gate gadgets. More... | |
| 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. More... | |
| 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, treating all ancillary qubits as post-selected T gate gadgets. More... | |
| double | UnitaryExpVar (bool isExp, uintq sid, uintq n, uintq *q, real1_s *b) |
| 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 and bases. More... | |
| 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. More... | |
| double | MatrixExpVar (bool isExp, uintq sid, uintq n, uintq *q, real1_s *b) |
| 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 bases. More... | |
| 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. More... | |
| double | UnitaryExpVarEigenVal (bool isExp, uintq sid, uintq n, uintq *q, real1_s *b, real1_s *e) |
| 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 and bases. More... | |
| 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. More... | |
| double | MatrixExpVarEigenVal (bool isExp, uintq sid, uintq n, uintq *q, real1_s *b, real1_s *e) |
| 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 bases. More... | |
| 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. More... | |
| double | PauliExpVar (bool isExp, uintq sid, uintq n, uintq *q, uintq *b) |
| 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. More... | |
| 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. More... | |
| MICROSOFT_QUANTUM_DECL void | QFT (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c) |
| MICROSOFT_QUANTUM_DECL void | IQFT (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c) |
| MICROSOFT_QUANTUM_DECL void | ADD (_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, _In_ uintq n, _In_reads_(n) uintq *q) |
| MICROSOFT_QUANTUM_DECL void | SUB (_In_ uintq sid, _In_ uintq na, _In_reads_(na) uintq *a, _In_ uintq n, _In_reads_(n) uintq *q) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| MICROSOFT_QUANTUM_DECL void | Hash (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, unsigned char *t) |
| MICROSOFT_QUANTUM_DECL bool | TrySeparate1Qb (_In_ uintq sid, _In_ uintq qi1) |
| MICROSOFT_QUANTUM_DECL bool | TrySeparate2Qb (_In_ uintq sid, _In_ uintq qi1, _In_ uintq qi2) |
| MICROSOFT_QUANTUM_DECL bool | TrySeparateTol (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q, _In_ double tol) |
| MICROSOFT_QUANTUM_DECL void | Separate (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *q) |
| MICROSOFT_QUANTUM_DECL double | GetUnitaryFidelity (_In_ uintq sid) |
| MICROSOFT_QUANTUM_DECL void | ResetUnitaryFidelity (_In_ uintq sid) |
| MICROSOFT_QUANTUM_DECL void | SetSdrp (_In_ uintq sid, _In_ double sdrp) |
| MICROSOFT_QUANTUM_DECL void | SetNcrp (_In_ uintq sid, _In_ double ncrp) |
| MICROSOFT_QUANTUM_DECL void | SetReactiveSeparate (_In_ uintq sid, _In_ bool irs) |
| MICROSOFT_QUANTUM_DECL void | SetTInjection (_In_ uintq sid, _In_ bool irs) |
| MICROSOFT_QUANTUM_DECL void | SetNoiseParameter (_In_ uintq sid, _In_ double np) |
| MICROSOFT_QUANTUM_DECL void | SetAceMaxQb (_In_ uintq sid, _In_ uintq qb) |
| MICROSOFT_QUANTUM_DECL void | SetSparseAceMaxMb (_In_ uintq sid, _In_ size_t mb) |
| MICROSOFT_QUANTUM_DECL void | Normalize (_In_ uintq sid) |
| MICROSOFT_QUANTUM_DECL uintq | init_qneuron (_In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q) |
| MICROSOFT_QUANTUM_DECL uintq | clone_qneuron (_In_ uintq nid) |
| MICROSOFT_QUANTUM_DECL void | destroy_qneuron (_In_ uintq nid) |
| MICROSOFT_QUANTUM_DECL void | set_qneuron_sim (_In_ uintq nid, _In_ uintq sid, _In_ uintq n, _In_reads_(n) uintq *c, _In_ uintq q) |
| 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) |
| MICROSOFT_QUANTUM_DECL double | qneuron_unpredict (_In_ uintq nid, _In_ real1_s *angles, _In_ bool e, _In_ uintq f, _In_ double a) |
| MICROSOFT_QUANTUM_DECL double | qneuron_learn_cycle (_In_ uintq nid, _In_ real1_s *angles, _In_ bool e, _In_ uintq f, _In_ double a) |
| 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) |
| 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) |
| MICROSOFT_QUANTUM_DECL uintq | init_qcircuit (_In_ bool collapse, _In_ bool clifford) |
| uintq | _init_qcircuit_copy (uintq cid, bool isInverse, std::set< bitLenInt > q) |
| MICROSOFT_QUANTUM_DECL uintq | init_qcircuit_clone (_In_ uintq cid) |
| MICROSOFT_QUANTUM_DECL uintq | qcircuit_inverse (_In_ uintq cid) |
| MICROSOFT_QUANTUM_DECL uintq | qcircuit_past_light_cone (_In_ uintq cid, _In_ uintq n, _In_reads_(n) uintq *q) |
| MICROSOFT_QUANTUM_DECL void | destroy_qcircuit (_In_ uintq cid) |
| MICROSOFT_QUANTUM_DECL uintq | get_qcircuit_qubit_count (_In_ uintq cid) |
| MICROSOFT_QUANTUM_DECL void | qcircuit_swap (_In_ uintq cid, _In_ uintq q1, _In_ uintq q2) |
| MICROSOFT_QUANTUM_DECL void | qcircuit_append_1qb (_In_ uintq cid, _In_reads_(8) double *m, _In_ uintq q) |
| 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) |
| MICROSOFT_QUANTUM_DECL void | qcircuit_run (_In_ uintq cid, _In_ uintq sid) |
| MICROSOFT_QUANTUM_DECL void | qcircuit_out_to_file (_In_ uintq cid, _In_ char *f) |
| MICROSOFT_QUANTUM_DECL void | qcircuit_in_from_file (_In_ uintq cid, _In_ char *f) |
| MICROSOFT_QUANTUM_DECL size_t | qcircuit_out_to_string_length (_In_ uintq cid) |
| MICROSOFT_QUANTUM_DECL void | qcircuit_out_to_string (_In_ uintq cid, _In_ char *f) |
Variables | |
| qrack_rand_gen_ptr | randNumGen = std::make_shared<qrack_rand_gen>(time(0)) |
| std::mutex | metaOperationMutex |
| int | metaError = 0 |
| std::vector< int > | simulatorErrors |
| std::vector< QInterfacePtr > | simulators |
| std::vector< std::vector< QInterfaceEngine > > | simulatorTypes |
| std::vector< bool > | simulatorHostPointer |
| std::vector< bool > | simulatorSparse |
| std::map< QInterface *, std::mutex > | simulatorMutexes |
| std::vector< bool > | simulatorReservations |
| std::map< QInterface *, std::map< uintq, bitLenInt > > | shards |
| std::vector< int > | neuronErrors |
| std::vector< QNeuronPtr > | neurons |
| std::map< QNeuronPtr, QInterface * > | neuronSimulators |
| std::map< QNeuron *, std::mutex > | neuronMutexes |
| std::vector< bool > | neuronReservations |
| std::vector< QCircuitPtr > | circuits |
| std::map< QCircuit *, std::mutex > | circuitMutexes |
| std::vector< bool > | circuitReservations |
| std::map< QCircuit *, std::string > | circuitStrings |
| #define CIRCUIT_AND_SIMULATOR_LOCK_GUARD_VOID | ( | cid, | |
| sid | |||
| ) |
| #define CIRCUIT_LOCK_GUARD | ( | circuit | ) |
| #define CIRCUIT_LOCK_GUARD_INT | ( | cid | ) | CIRCUIT_LOCK_GUARD_TYPED(cid, 0U) |
| #define CIRCUIT_LOCK_GUARD_TYPED | ( | cid, | |
| def | |||
| ) |
| #define CIRCUIT_LOCK_GUARD_VOID | ( | cid | ) |
| #define MAP_CONTROLS_AND_LOCK | ( | sid, | |
| numC | |||
| ) |
| #define MAP_MASK_AND_LOCK | ( | sid, | |
| numQ | |||
| ) |
| #define META_LOCK_GUARD | ( | ) | const std::lock_guard<std::mutex> metaLock(metaOperationMutex); |
| #define NEURON_LOCK_GUARD | ( | neuron | ) |
| #define NEURON_LOCK_GUARD_DOUBLE | ( | nid | ) | NEURON_LOCK_GUARD_TYPED(nid, 0.0) |
| #define NEURON_LOCK_GUARD_INT | ( | nid | ) | NEURON_LOCK_GUARD_TYPED(nid, 0U) |
| #define NEURON_LOCK_GUARD_TYPED | ( | nid, | |
| def | |||
| ) |
| #define NEURON_LOCK_GUARD_VOID | ( | nid | ) |
| #define NEURON_ONLY_LOCK_GUARD | ( | neuron | ) |
| #define NEURON_ONLY_LOCK_GUARD_VOID | ( | nid | ) |
| #define QALU | ( | qReg | ) | std::dynamic_pointer_cast<QAlu>(qReg) |
| #define QPARITY | ( | qReg | ) | std::dynamic_pointer_cast<QParity>(qReg) |
| #define SIMULATOR_LOCK_GUARD | ( | simulator | ) |
| #define SIMULATOR_LOCK_GUARD_BOOL | ( | sid | ) | SIMULATOR_LOCK_GUARD_TYPED(sid, false) |
| #define SIMULATOR_LOCK_GUARD_DOUBLE | ( | sid | ) | SIMULATOR_LOCK_GUARD_TYPED(sid, 0.0) |
| #define SIMULATOR_LOCK_GUARD_INT | ( | sid | ) | SIMULATOR_LOCK_GUARD_TYPED(sid, 0U) |
| #define SIMULATOR_LOCK_GUARD_TYPED | ( | sid, | |
| def | |||
| ) |
| #define SIMULATOR_LOCK_GUARD_VOID | ( | sid | ) |
| void _darray_to_creal1_array | ( | double * | params, |
| bitCapIntOcl | componentCount, | ||
| complex * | amps | ||
| ) |
| double _FactorizedExpVar | ( | uintq | sid, |
| uintq | n, | ||
| uintq * | q, | ||
| uintq | m, | ||
| uintq * | c, | ||
| real1_s * | f, | ||
| bool | r, | ||
| bool | isRdm, | ||
| bool | isExp | ||
| ) |
| double _JointEnsembleProbabilityHelper | ( | QInterfacePtr | simulator, |
| uintq | n, | ||
| int * | b, | ||
| uintq * | q, | ||
| bool | doMeasure | ||
| ) |
| MICROSOFT_QUANTUM_DECL void ACSWAP | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | c, | ||
| _In_ uintq | qi1, | ||
| _In_ uintq | qi2 | ||
| ) |
| 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 | ||
| ) |
| MICROSOFT_QUANTUM_DECL void ADD | ( | _In_ uintq | sid, |
| _In_ uintq | na, | ||
| _In_reads_(na) uintq * | a, | ||
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | q | ||
| ) |
| 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 | ||
| ) |
| MICROSOFT_QUANTUM_DECL void AdjS | ( | _In_ uintq | sid, |
| _In_ uintq | q | ||
| ) |
(External API) Inverse "S" Gate
| MICROSOFT_QUANTUM_DECL void AdjSX | ( | _In_ uintq | sid, |
| _In_ uintq | q | ||
| ) |
(External API) Inverse square root of X gate
| MICROSOFT_QUANTUM_DECL void AdjSY | ( | _In_ uintq | sid, |
| _In_ uintq | q | ||
| ) |
(External API) Inverse square root of Y gate
| MICROSOFT_QUANTUM_DECL void AdjT | ( | _In_ uintq | sid, |
| _In_ uintq | q | ||
| ) |
(External API) Inverse "T" Gate
| 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
| MICROSOFT_QUANTUM_DECL uintq clone_qneuron | ( | _In_ uintq | nid | ) |
| MICROSOFT_QUANTUM_DECL void CSWAP | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | c, | ||
| _In_ uintq | qi1, | ||
| _In_ uintq | qi2 | ||
| ) |
| MICROSOFT_QUANTUM_DECL uintq Decompose | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | q | ||
| ) |
| MICROSOFT_QUANTUM_DECL void destroy | ( | _In_ uintq | sid | ) |
(External API) Destroy a simulator (ID will not be reused)
| MICROSOFT_QUANTUM_DECL void destroy_qcircuit | ( | _In_ uintq | cid | ) |
| MICROSOFT_QUANTUM_DECL void destroy_qneuron | ( | _In_ uintq | nid | ) |
| MICROSOFT_QUANTUM_DECL void Dispose | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | q | ||
| ) |
| 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 | ||
| ) |
| 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 | ||
| ) |
| MICROSOFT_QUANTUM_DECL void Dump | ( | _In_ uintq | sid, |
| _In_ ProbAmpCallback | callback | ||
| ) |
(External API) "Dump" state vector from the selected simulator ID into the callback
| MICROSOFT_QUANTUM_DECL void DumpIds | ( | _In_ uintq | sid, |
| _In_ IdCallback | callback | ||
| ) |
(External API) "Dump" all IDs from the selected simulator ID into the callback
| 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
| 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.
| 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.
| 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, treating all ancillary qubits as post-selected T gate gadgets.
| 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, treating all ancillary qubits as post-selected T gate gadgets.
| 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.
| 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.
| 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, treating all ancillary qubits as post-selected T gate gadgets.
| 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, treating all ancillary qubits as post-selected T gate gadgets.
| void FillSimShards | ( | QInterfacePtr | simulator | ) |
| std::map<uintq, bitLenInt>::iterator FindShardValue | ( | bitLenInt | v, |
| std::map< uintq, bitLenInt > & | simMap | ||
| ) |
(External API) PSEUDO-QUANTUM: Post-select bit in |0>/|1> basis
| MICROSOFT_QUANTUM_DECL void FSim | ( | _In_ uintq | sid, |
| _In_ double | theta, | ||
| _In_ double | phi, | ||
| _In_ uintq | qi1, | ||
| _In_ uintq | qi2 | ||
| ) |
| MICROSOFT_QUANTUM_DECL int get_error | ( | _In_ uintq | sid | ) |
(External API) Poll after each operation to check whether error occurred.
| MICROSOFT_QUANTUM_DECL uintq get_qcircuit_qubit_count | ( | _In_ uintq | cid | ) |
| bitLenInt GetSimShardId | ( | QInterfacePtr | simulator, |
| bitLenInt | i | ||
| ) |
| MICROSOFT_QUANTUM_DECL double GetUnitaryFidelity | ( | _In_ uintq | sid | ) |
| MICROSOFT_QUANTUM_DECL void H | ( | _In_ uintq | sid, |
| _In_ uintq | q | ||
| ) |
(External API) Walsh-Hadamard transform applied for simulator ID and qubit ID
| MICROSOFT_QUANTUM_DECL void Hash | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | q, | ||
| unsigned char * | t | ||
| ) |
| MICROSOFT_QUANTUM_DECL void HighestProbAll | ( | _In_ uintq | sid, |
| uintq * | r | ||
| ) |
(External API) Get the permutation with the highest probability
(External API) Get the top n permutations with the highest probability
| MICROSOFT_QUANTUM_DECL uintq init_clone | ( | _In_ uintq | sid | ) |
(External API) Initialize a simulator ID that clones simulator ID "sid"
(External API) Initialize a simulator ID with "q" qubits and implicit default layer options.
(External API) Initialize a simulator ID with "q" qubits and implicit default layer options.
| MICROSOFT_QUANTUM_DECL uintq init_count_stabilizer | ( | _In_ uintq | q | ) |
(External API) Initialize a simulator ID with "q" qubits as purely a stabilizer simulator.
| 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
| MICROSOFT_QUANTUM_DECL uintq init_qcircuit | ( | _In_ bool | collapse, |
| _In_ bool | clifford | ||
| ) |
| MICROSOFT_QUANTUM_DECL uintq init_qcircuit_clone | ( | _In_ uintq | cid | ) |
| MICROSOFT_QUANTUM_DECL uintq init_qneuron | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | c, | ||
| _In_ uintq | q | ||
| ) |
| MICROSOFT_QUANTUM_DECL void InKet | ( | _In_ uintq | sid, |
| _In_ real1_s * | ket | ||
| ) |
(External API) Set state vector for the selected simulator ID.
| MICROSOFT_QUANTUM_DECL void IQFT | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | c | ||
| ) |
| 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 transformations.
| 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 | ||
| ) |
(External API) Measure bit in |0>/|1> basis
| 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
| 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
| 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
| 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
| 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
| 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
| 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 | ||
| ) |
(External API) Controlled 3-parameter unitary gate
| 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
| 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
| 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
|
inline |
| 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-to-high order corresponding with first-to-last in original order of allocation.
| 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 order corresponding with first-to-last in original order of allocation.
| uintq MapArithmetic | ( | QInterfacePtr | simulator, |
| uintq | n, | ||
| uintq * | q | ||
| ) |
| MapArithmeticResult2 MapArithmetic2 | ( | QInterfacePtr | simulator, |
| uintq | n, | ||
| uintq * | q1, | ||
| uintq * | q2 | ||
| ) |
| MapArithmeticResult2 MapArithmetic3 | ( | QInterfacePtr | simulator, |
| uintq | n1, | ||
| uintq * | q1, | ||
| uintq | n2, | ||
| uintq * | q2 | ||
| ) |
| 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 bases.
| 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 bases.
| 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.
| 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.
| 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 | ||
| ) |
| 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
| 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
| 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 | ||
| ) |
| 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 | ||
| ) |
| 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
| MICROSOFT_QUANTUM_DECL void MCH | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | c, | ||
| _In_ uintq | q | ||
| ) |
(External API) Controlled "H" Gate
| 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
| 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 | ||
| ) |
| 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 | ||
| ) |
| 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 | ||
| ) |
| 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
| MICROSOFT_QUANTUM_DECL void MCS | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | c, | ||
| _In_ uintq | q | ||
| ) |
(External API) Controlled "S" Gate
| 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 | ||
| ) |
| MICROSOFT_QUANTUM_DECL void MCT | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | c, | ||
| _In_ uintq | q | ||
| ) |
(External API) Controlled "T" Gate
| 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 | ||
| ) |
(External API) Controlled 3-parameter unitary gate
| MICROSOFT_QUANTUM_DECL void MCX | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | c, | ||
| _In_ uintq | q | ||
| ) |
(External API) Controlled "X" Gate
| MICROSOFT_QUANTUM_DECL void MCY | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | c, | ||
| _In_ uintq | q | ||
| ) |
(External API) Controlled "Y" Gate
| MICROSOFT_QUANTUM_DECL void MCZ | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | c, | ||
| _In_ uintq | q | ||
| ) |
(External API) Controlled "Z" Gate
| 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
| MICROSOFT_QUANTUM_DECL void MeasureShots | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | q, | ||
| _In_ uintq | s, | ||
| _In_reads_(s) uintq * | m | ||
| ) |
| MICROSOFT_QUANTUM_DECL void Mtrx | ( | _In_ uintq | sid, |
| _In_reads_(8) double * | m, | ||
| _In_ uintq | q | ||
| ) |
(External API) 2x2 complex matrix unitary gate
| 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 | ||
| ) |
| 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 | ||
| ) |
| MICROSOFT_QUANTUM_DECL void Multiplex1Mtrx | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | c, | ||
| _In_ uintq | q, | ||
| double * | m | ||
| ) |
| MICROSOFT_QUANTUM_DECL void MX | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | q | ||
| ) |
(External API) Multiple "X" Gate
| MICROSOFT_QUANTUM_DECL void MY | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | q | ||
| ) |
(External API) Multiple "Y" Gate
| MICROSOFT_QUANTUM_DECL void MZ | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | q | ||
| ) |
(External API) Multiple "Z" Gate
| MICROSOFT_QUANTUM_DECL void Normalize | ( | _In_ uintq | sid | ) |
| MICROSOFT_QUANTUM_DECL uintq num_qubits | ( | _In_ uintq | sid | ) |
| MICROSOFT_QUANTUM_DECL void OutKet | ( | _In_ uintq | sid, |
| _In_ real1_s * | ket | ||
| ) |
(External API) Get state vector for the selected simulator ID.
| MICROSOFT_QUANTUM_DECL void OutProbs | ( | _In_ uintq | sid, |
| _In_ real1_s * | probs | ||
| ) |
(External API) Get basis dimension probabilities for the selected simulator ID.
| 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.
| 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.
| 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.
| 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.
| MICROSOFT_QUANTUM_DECL double PermutationExpectationRdm | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | q, | ||
| bool | r | ||
| ) |
(External API) Get the permutation expectation value, based upon the order of input qubits, treating all ancillary qubits as post-selected T gate gadgets.
| 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.
| 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, treating all ancillary qubits as post-selected T gate gadgets.
| MICROSOFT_QUANTUM_DECL void PhaseParity | ( | _In_ uintq | sid, |
| _In_ double | lambda, | ||
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | q | ||
| ) |
| MICROSOFT_QUANTUM_DECL void PhaseRootN | ( | _In_ uintq | sid, |
| _In_ uintq | p, | ||
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | q | ||
| ) |
| 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 | ||
| ) |
| MICROSOFT_QUANTUM_DECL double Prob | ( | _In_ uintq | sid, |
| _In_ uintq | q | ||
| ) |
(External API) Get the probability that a qubit is in the |1> state.
| 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.
| 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 post-selected T gate gadgets.
| MICROSOFT_QUANTUM_DECL void qcircuit_append_1qb | ( | _In_ uintq | cid, |
| _In_reads_(8) double * | m, | ||
| _In_ uintq | q | ||
| ) |
| 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 | ||
| ) |
| MICROSOFT_QUANTUM_DECL void qcircuit_in_from_file | ( | _In_ uintq | cid, |
| _In_ char * | f | ||
| ) |
| MICROSOFT_QUANTUM_DECL uintq qcircuit_inverse | ( | _In_ uintq | cid | ) |
| MICROSOFT_QUANTUM_DECL void qcircuit_out_to_file | ( | _In_ uintq | cid, |
| _In_ char * | f | ||
| ) |
| MICROSOFT_QUANTUM_DECL void qcircuit_out_to_string | ( | _In_ uintq | cid, |
| _In_ char * | f | ||
| ) |
| MICROSOFT_QUANTUM_DECL size_t qcircuit_out_to_string_length | ( | _In_ uintq | cid | ) |
| MICROSOFT_QUANTUM_DECL uintq qcircuit_past_light_cone | ( | _In_ uintq | cid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | q | ||
| ) |
| MICROSOFT_QUANTUM_DECL void qcircuit_run | ( | _In_ uintq | cid, |
| _In_ uintq | sid | ||
| ) |
| MICROSOFT_QUANTUM_DECL void QFT | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | c | ||
| ) |
| 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 | ||
| ) |
| MICROSOFT_QUANTUM_DECL double qneuron_learn_cycle | ( | _In_ uintq | nid, |
| _In_ real1_s * | angles, | ||
| _In_ bool | e, | ||
| _In_ uintq | f, | ||
| _In_ double | a | ||
| ) |
| 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 | ||
| ) |
| 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 | ||
| ) |
| MICROSOFT_QUANTUM_DECL double qneuron_unpredict | ( | _In_ uintq | nid, |
| _In_ real1_s * | angles, | ||
| _In_ bool | e, | ||
| _In_ uintq | f, | ||
| _In_ double | a | ||
| ) |
| MICROSOFT_QUANTUM_DECL void qstabilizer_in_from_file | ( | _In_ uintq | sid, |
| _In_ char * | f | ||
| ) |
| MICROSOFT_QUANTUM_DECL void qstabilizer_out_to_file | ( | _In_ uintq | sid, |
| _In_ char * | f | ||
| ) |
(External API) Rotation around Pauli axes
| MICROSOFT_QUANTUM_DECL std::size_t random_choice | ( | _In_ uintq | sid, |
| _In_ std::size_t | n, | ||
| _In_reads_(n) double * | p | ||
| ) |
(External API) Select from a distribution of "n" elements according the discrete probabilities in "d."
| 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
| void removeIdentities | ( | std::vector< int > * | b, |
| std::vector< bitLenInt > * | qs | ||
| ) |
| MICROSOFT_QUANTUM_DECL void ResetAll | ( | _In_ uintq | sid | ) |
(External API) Set the simulator to a computational basis permutation.
| MICROSOFT_QUANTUM_DECL void ResetUnitaryFidelity | ( | _In_ uintq | sid | ) |
| void RevertPauliBasis | ( | QInterfacePtr | simulator, |
| uintq | len, | ||
| int * | bases, | ||
| uintq * | qubitIds | ||
| ) |
| MICROSOFT_QUANTUM_DECL void S | ( | _In_ uintq | sid, |
| _In_ uintq | q | ||
| ) |
(External API) "S" Gate
| 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 | ||
| ) |
| MICROSOFT_QUANTUM_DECL void seed | ( | _In_ uintq | sid, |
| _In_ uintq | s | ||
| ) |
(External API) Set RNG seed for simulator ID
| MICROSOFT_QUANTUM_DECL void Separate | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | q | ||
| ) |
| MICROSOFT_QUANTUM_DECL void set_concurrency | ( | _In_ uintq | sid, |
| _In_ uintq | p | ||
| ) |
(External API) Set concurrency level per QEngine shard
| MICROSOFT_QUANTUM_DECL void set_device | ( | _In_ uintq | sid, |
| _In_ intq | did | ||
| ) |
(External API) Set GPU device ID on the simulator.
| 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.
| MICROSOFT_QUANTUM_DECL void set_qneuron_sim | ( | _In_ uintq | nid, |
| _In_ uintq | sid, | ||
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | c, | ||
| _In_ uintq | q | ||
| ) |
| MICROSOFT_QUANTUM_DECL void SetAceMaxQb | ( | _In_ uintq | sid, |
| _In_ uintq | qb | ||
| ) |
| MICROSOFT_QUANTUM_DECL void SetNcrp | ( | _In_ uintq | sid, |
| _In_ double | ncrp | ||
| ) |
| MICROSOFT_QUANTUM_DECL void SetNoiseParameter | ( | _In_ uintq | sid, |
| _In_ double | np | ||
| ) |
| MICROSOFT_QUANTUM_DECL void SetReactiveSeparate | ( | _In_ uintq | sid, |
| _In_ bool | irs | ||
| ) |
| MICROSOFT_QUANTUM_DECL void SetSdrp | ( | _In_ uintq | sid, |
| _In_ double | sdrp | ||
| ) |
| MICROSOFT_QUANTUM_DECL void SetSparseAceMaxMb | ( | _In_ uintq | sid, |
| _In_ size_t | mb | ||
| ) |
| MICROSOFT_QUANTUM_DECL void SetTInjection | ( | _In_ uintq | sid, |
| _In_ bool | irs | ||
| ) |
| MICROSOFT_QUANTUM_DECL void SUB | ( | _In_ uintq | sid, |
| _In_ uintq | na, | ||
| _In_reads_(na) uintq * | a, | ||
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | q | ||
| ) |
| 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 | ||
| ) |
| MICROSOFT_QUANTUM_DECL void SX | ( | _In_ uintq | sid, |
| _In_ uintq | q | ||
| ) |
(External API) Square root of X gate
| MICROSOFT_QUANTUM_DECL void SY | ( | _In_ uintq | sid, |
| _In_ uintq | q | ||
| ) |
(External API) Square root of Y gate
| MICROSOFT_QUANTUM_DECL void T | ( | _In_ uintq | sid, |
| _In_ uintq | q | ||
| ) |
(External API) "T" Gate
| void TransformPauliBasis | ( | QInterfacePtr | simulator, |
| uintq | len, | ||
| int * | bases, | ||
| uintq * | qubitIds | ||
| ) |
| MICROSOFT_QUANTUM_DECL bool TrySeparate1Qb | ( | _In_ uintq | sid, |
| _In_ uintq | qi1 | ||
| ) |
| MICROSOFT_QUANTUM_DECL bool TrySeparateTol | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | q, | ||
| _In_ double | tol | ||
| ) |
| 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
| 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
| 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 and bases.
| 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 and bases.
| double UnitaryExpVarEigenVal | ( | bool | isExp, |
| uintq | sid, | ||
| uintq | n, | ||
| uintq * | q, | ||
| real1_s * | b, | ||
| real1_s * | e | ||
| ) |
| 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.
| 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.
| 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.
| MICROSOFT_QUANTUM_DECL double VarianceRdm | ( | _In_ uintq | sid, |
| _In_ uintq | n, | ||
| _In_reads_(n) uintq * | q, | ||
| bool | r | ||
| ) |
(External API) Get the permutation variance based upon the order of input qubits, treating all ancillary qubits as post-selected T gate gadgets.
| MICROSOFT_QUANTUM_DECL void X | ( | _In_ uintq | sid, |
| _In_ uintq | q | ||
| ) |
(External API) "X" Gate
| MICROSOFT_QUANTUM_DECL void Y | ( | _In_ uintq | sid, |
| _In_ uintq | q | ||
| ) |
(External API) "Y" Gate
| MICROSOFT_QUANTUM_DECL void Z | ( | _In_ uintq | sid, |
| _In_ uintq | q | ||
| ) |
(External API) "Z" Gate
| std::map<QCircuit*, std::mutex> circuitMutexes |
| std::vector<bool> circuitReservations |
| std::vector<QCircuitPtr> circuits |
| std::map<QCircuit*, std::string> circuitStrings |
| int metaError = 0 |
| std::mutex metaOperationMutex |
| std::vector<int> neuronErrors |
| std::map<QNeuron*, std::mutex> neuronMutexes |
| std::vector<bool> neuronReservations |
| std::vector<QNeuronPtr> neurons |
| std::map<QNeuronPtr, QInterface*> neuronSimulators |
| qrack_rand_gen_ptr randNumGen = std::make_shared<qrack_rand_gen>(time(0)) |
| std::map<QInterface*, std::map<uintq, bitLenInt> > shards |
| std::vector<int> simulatorErrors |
| std::vector<bool> simulatorHostPointer |
| std::map<QInterface*, std::mutex> simulatorMutexes |
| std::vector<bool> simulatorReservations |
| std::vector<QInterfacePtr> simulators |
| std::vector<bool> simulatorSparse |
| std::vector<std::vector<QInterfaceEngine> > simulatorTypes |