|
| QEngineCUDA (bitLenInt qBitCount, const bitCapInt &initState, qrack_rand_gen_ptr rgp=nullptr, const complex &phaseFac=CMPLX_DEFAULT_ARG, bool doNorm=false, bool randomGlobalPhase=true, bool useHostMem=false, int64_t devID=-1, bool useHardwareRNG=true, bool ignored=false, real1_f norm_thresh=REAL1_EPSILON, std::vector< int64_t > ignored2={}, bitLenInt ignored4=0U, real1_f ignored3=_qrack_qunit_sep_thresh) |
| Initialize a Qrack::QEngineCUDA object. More...
|
|
| ~QEngineCUDA () |
|
virtual bool | isOpenCL () |
| Returns "true" if current simulation is OpenCL-based. More...
|
|
bool | IsZeroAmplitude () |
| Returns "true" only if amplitudes are all totally 0. More...
|
|
real1_f | FirstNonzeroPhase () |
| Get phase of lowest permutation nonzero amplitude. More...
|
|
void | ZeroAmplitudes () |
| Set all amplitudes to 0, and optionally temporarily deallocate state vector RAM. More...
|
|
void | CopyStateVec (QEnginePtr src) |
| Exactly copy the state vector of a different QEngine instance. More...
|
|
void | GetAmplitudePage (complex *pagePtr, bitCapIntOcl offset, bitCapIntOcl length) |
| Copy a "page" of amplitudes from this QEngine's internal state, into pagePtr . More...
|
|
void | SetAmplitudePage (const complex *pagePtr, bitCapIntOcl offset, bitCapIntOcl length) |
| Copy a "page" of amplitudes from pagePtr into this QEngine's internal state. More...
|
|
void | SetAmplitudePage (QEnginePtr pageEnginePtr, bitCapIntOcl srcOffset, bitCapIntOcl dstOffset, bitCapIntOcl length) |
| Copy a "page" of amplitudes from another QEngine, pointed to by pageEnginePtr , into this QEngine's internal state. More...
|
|
void | ShuffleBuffers (QEnginePtr engine) |
| Swap the high half of this engine with the low half of another. More...
|
|
QEnginePtr | CloneEmpty () |
| Clone this QEngine's settings, with a zeroed state vector. More...
|
|
bitCapIntOcl | GetMaxSize () |
|
void | SetPermutation (const bitCapInt &perm, const complex &phaseFac=CMPLX_DEFAULT_ARG) |
| Set to a specific permutation of all qubits. More...
|
|
void | UniformlyControlledSingleBit (const std::vector< bitLenInt > &controls, bitLenInt qubitIndex, const complex *mtrxs, const std::vector< bitCapInt > &mtrxSkipPowers, const bitCapInt &mtrxSkipValueMask) |
|
void | UniformParityRZ (const bitCapInt &mask, real1_f angle) |
| If the target qubit set parity is odd, this applies a phase factor of \(e^{i angle}\). More...
|
|
void | CUniformParityRZ (const std::vector< bitLenInt > &controls, const bitCapInt &mask, real1_f angle) |
| If the controls are set and the target qubit set parity is odd, this applies a phase factor of \(e^{i angle}\). More...
|
|
void | X (bitLenInt target) |
|
void | Z (bitLenInt target) |
| Z gate. More...
|
|
void | Invert (const complex &topRight, const complex &bottomLeft, bitLenInt qubitIndex) |
| Apply a single bit transformation that reverses bit probability and might effect phase. More...
|
|
void | Phase (const complex &topLeft, const complex &bottomRight, bitLenInt qubitIndex) |
| Apply a single bit transformation that only effects phase. More...
|
|
void | XMask (const bitCapInt &mask) |
| Masked X gate. More...
|
|
void | PhaseParity (real1_f radians, const bitCapInt &mask) |
| Parity phase gate. More...
|
|
void | PhaseRootNMask (bitLenInt n, const bitCapInt &mask) |
| Masked PhaseRootN gate. More...
|
|
bitLenInt | Compose (QEngineCUDAPtr toCopy) |
|
bitLenInt | Compose (QInterfacePtr toCopy) |
| Combine another QInterface with this one, after the last bit index of this one. More...
|
|
bitLenInt | Compose (QEngineCUDAPtr toCopy, bitLenInt start) |
|
bitLenInt | Compose (QInterfacePtr toCopy, bitLenInt start) |
| Compose() a QInterface peer, inserting its qubit into index order at start index. More...
|
|
void | Decompose (bitLenInt start, QInterfacePtr dest) |
| Minimally decompose a set of contiguous bits from the separably composed unit, into "destination". More...
|
|
void | Dispose (bitLenInt start, bitLenInt length) |
| Minimally decompose a set of contiguous bits from the separably composed unit, and discard the separable bits from index "start" for "length.". More...
|
|
void | Dispose (bitLenInt start, bitLenInt length, const bitCapInt &disposedPerm) |
| Dispose a a contiguous set of qubits that are already in a permutation eigenstate. More...
|
|
bitLenInt | Allocate (bitLenInt start, bitLenInt length) |
| Allocate new "length" count of |0> state qubits at specified qubit index start position. More...
|
|
void | ROL (bitLenInt shift, bitLenInt start, bitLenInt length) |
| Circular shift left - shift bits left, and carry last bits. More...
|
|
void | INC (const bitCapInt &toAdd, bitLenInt start, bitLenInt length) |
| Add integer (without sign) More...
|
|
void | CINC (const bitCapInt &toAdd, bitLenInt inOutStart, bitLenInt length, const std::vector< bitLenInt > &controls) |
| Add integer (without sign, with controls) More...
|
|
void | INCS (const bitCapInt &toAdd, bitLenInt start, bitLenInt length, bitLenInt carryIndex) |
| Add a classical integer to the register, with sign and without carry. More...
|
|
void | INCBCD (const bitCapInt &toAdd, bitLenInt start, bitLenInt length) |
| Add classical BCD integer (without sign) More...
|
|
void | MUL (const bitCapInt &toMul, bitLenInt inOutStart, bitLenInt carryStart, bitLenInt length) |
| Multiply by integer. More...
|
|
void | DIV (const bitCapInt &toDiv, bitLenInt inOutStart, bitLenInt carryStart, bitLenInt length) |
| Divide by integer. More...
|
|
void | MULModNOut (const bitCapInt &toMul, const bitCapInt &modN, bitLenInt inStart, bitLenInt outStart, bitLenInt length) |
| Multiplication modulo N by integer, (out of place) More...
|
|
void | IMULModNOut (const bitCapInt &toMul, const bitCapInt &modN, bitLenInt inStart, bitLenInt outStart, bitLenInt length) |
| Inverse of multiplication modulo N by integer, (out of place) More...
|
|
void | POWModNOut (const bitCapInt &base, const bitCapInt &modN, bitLenInt inStart, bitLenInt outStart, bitLenInt length) |
| Raise a classical base to a quantum power, modulo N, (out of place) More...
|
|
void | CMUL (const bitCapInt &toMul, bitLenInt inOutStart, bitLenInt carryStart, bitLenInt length, const std::vector< bitLenInt > &controls) |
| Controlled multiplication by integer. More...
|
|
void | CDIV (const bitCapInt &toDiv, bitLenInt inOutStart, bitLenInt carryStart, bitLenInt length, const std::vector< bitLenInt > &controls) |
| Controlled division by power of integer. More...
|
|
void | CMULModNOut (const bitCapInt &toMul, const bitCapInt &modN, bitLenInt inStart, bitLenInt outStart, bitLenInt length, const std::vector< bitLenInt > &controls) |
| Controlled multiplication modulo N by integer, (out of place) More...
|
|
void | CIMULModNOut (const bitCapInt &toMul, const bitCapInt &modN, bitLenInt inStart, bitLenInt outStart, bitLenInt length, const std::vector< bitLenInt > &controls) |
| Inverse of controlled multiplication modulo N by integer, (out of place) More...
|
|
void | CPOWModNOut (const bitCapInt &base, const bitCapInt &modN, bitLenInt inStart, bitLenInt outStart, bitLenInt length, const std::vector< bitLenInt > &controls) |
| Controlled, raise a classical base to a quantum power, modulo N, (out of place) More...
|
|
void | FullAdd (bitLenInt inputBit1, bitLenInt inputBit2, bitLenInt carryInSumOut, bitLenInt carryOut) |
| Quantum analog of classical "Full Adder" gate. More...
|
|
void | IFullAdd (bitLenInt inputBit1, bitLenInt inputBit2, bitLenInt carryInSumOut, bitLenInt carryOut) |
| Inverse of FullAdd. More...
|
|
bitCapInt | IndexedLDA (bitLenInt indexStart, bitLenInt indexLength, bitLenInt valueStart, bitLenInt valueLength, const unsigned char *values, bool resetValue=true) |
| Set 8 bit register bits by a superposed index-offset-based read from classical memory. More...
|
|
bitCapInt | IndexedADC (bitLenInt indexStart, bitLenInt indexLength, bitLenInt valueStart, bitLenInt valueLength, bitLenInt carryIndex, const unsigned char *values) |
| Add to entangled 8 bit register state with a superposed index-offset-based read from classical memory. More...
|
|
bitCapInt | IndexedSBC (bitLenInt indexStart, bitLenInt indexLength, bitLenInt valueStart, bitLenInt valueLength, bitLenInt carryIndex, const unsigned char *values) |
| Subtract from an entangled 8 bit register state with a superposed index-offset-based read from classical memory. More...
|
|
void | Hash (bitLenInt start, bitLenInt length, const unsigned char *values) |
| Transform a length of qubit register via lookup through a hash table. More...
|
|
void | CPhaseFlipIfLess (const bitCapInt &greaterPerm, bitLenInt start, bitLenInt length, bitLenInt flagIndex) |
| The 6502 uses its carry flag also as a greater-than/less-than flag, for the CMP operation. More...
|
|
void | PhaseFlipIfLess (const bitCapInt &greaterPerm, bitLenInt start, bitLenInt length) |
| This is an expedient for an adaptive Grover's search for a function's global minimum. More...
|
|
real1_f | Prob (bitLenInt qubit) |
| Direct measure of bit probability to be in |1> state. More...
|
|
real1_f | CtrlOrAntiProb (bool controlState, bitLenInt control, bitLenInt target) |
|
real1_f | ProbReg (bitLenInt start, bitLenInt length, const bitCapInt &permutation) |
| Direct measure of register permutation probability. More...
|
|
void | ProbRegAll (bitLenInt start, bitLenInt length, real1 *probsArray) |
|
real1_f | ProbMask (const bitCapInt &mask, const bitCapInt &permutation) |
| Direct measure of masked permutation probability. More...
|
|
void | ProbMaskAll (const bitCapInt &mask, real1 *probsArray) |
| Direct measure of masked permutation probability. More...
|
|
real1_f | ProbParity (const bitCapInt &mask) |
| Overall probability of any odd permutation of the masked set of bits. More...
|
|
bool | ForceMParity (const bitCapInt &mask, bool result, bool doForce=true) |
| Act as if is a measurement of parity of the masked set of qubits was applied, except force the (usually random) result. More...
|
|
real1_f | ExpectationBitsAll (const std::vector< bitLenInt > &bits, const bitCapInt &offset=ZERO_BCI) |
| Get permutation expectation value of bits. More...
|
|
void | SetDevice (int64_t dID) |
| Set GPU device ID. More...
|
|
int64_t | GetDevice () |
| Get GPU device ID. More...
|
|
void | SetQuantumState (const complex *inputState) |
| Set an arbitrary pure quantum state representation. More...
|
|
void | GetQuantumState (complex *outputState) |
| Get the pure quantum state representation. More...
|
|
void | GetProbs (real1 *outputProbs) |
| Get the pure quantum state representation. More...
|
|
bitCapInt | MAll () |
| Measure permutation state of all coherent bits. More...
|
|
complex | GetAmplitude (const bitCapInt &perm) |
| Get the representational amplitude of a full permutation. More...
|
|
void | SetAmplitude (const bitCapInt &perm, const complex &) |
| Sets the representational amplitude of a full permutation. More...
|
|
real1_f | SumSqrDiff (QInterfacePtr toCompare) |
| Calculates (1 - <\psi_e|\psi_c>) between states |\psi_c> and |\psi_e>. More...
|
|
real1_f | SumSqrDiff (QEngineCUDAPtr toCompare) |
|
void | NormalizeState (real1_f nrm=REAL1_DEFAULT_ARG, real1_f norm_thresh=REAL1_DEFAULT_ARG, real1_f phaseArg=ZERO_R1_F) |
| Apply the normalization factor found by UpdateRunningNorm() or on the fly by a single bit gate. More...
|
|
void | UpdateRunningNorm (real1_f norm_thresh=REAL1_DEFAULT_ARG) |
| Force a calculation of the norm of the state vector, in order to make it unit length before the next probability or measurement operation. More...
|
|
void | Finish () |
| If asynchronous work is still running, block until it finishes. More...
|
|
bool | isFinished () |
| Returns "false" if asynchronous work is still running, and "true" if all previously dispatched asynchronous work is done. More...
|
|
QInterfacePtr | Clone () |
| Clone this QInterface. More...
|
|
QInterfacePtr | Copy () |
| Copy this QInterface. More...
|
|
void | PopQueue () |
|
void | DispatchQueue () |
|
virtual void | X (bitLenInt q) |
|
virtual void | X (bitLenInt qubit) |
| X gate. More...
|
|
virtual void | X (bitLenInt start, bitLenInt length) |
| Bitwise Pauli X (or logical "NOT") operator. More...
|
|
virtual QInterfacePtr | Decompose (bitLenInt start, bitLenInt length) |
|
virtual void | Decompose (bitLenInt start, QInterfacePtr dest)=0 |
| Minimally decompose a set of contiguous bits from the separably composed unit, into "destination". More...
|
|
virtual QInterfacePtr | Decompose (bitLenInt start, bitLenInt length)=0 |
| Schmidt decompose a length of qubits. More...
|
|
| QEngine (bitLenInt qBitCount, qrack_rand_gen_ptr rgp=nullptr, bool doNorm=false, bool randomGlobalPhase=true, bool useHostMem=false, bool useHardwareRNG=true, real1_f norm_thresh=REAL1_EPSILON) |
|
| QEngine () |
| Default constructor, primarily for protected internal use. More...
|
|
virtual | ~QEngine () |
|
virtual void | SetQubitCount (bitLenInt qb) |
|
virtual real1_f | GetRunningNorm () |
| Get in-flight renormalization factor. More...
|
|
virtual void | ResetHostPtr () |
| Reset host/device state vector bufffer usage to default. More...
|
|
virtual void | ZMask (const bitCapInt &mask) |
| Masked Z gate. More...
|
|
virtual bool | ForceM (bitLenInt qubitIndex, bool result, bool doForce=true, bool doApply=true) |
| PSEUDO-QUANTUM - Acts like a measurement gate, except with a specified forced result. More...
|
|
virtual bitCapInt | ForceM (const std::vector< bitLenInt > &bits, const std::vector< bool > &values, bool doApply=true) |
| Measure permutation state of a register. More...
|
|
virtual bitCapInt | ForceMReg (bitLenInt start, bitLenInt length, const bitCapInt &result, bool doForce=true, bool doApply=true) |
| Measure permutation state of a register. More...
|
|
virtual void | Mtrx (const complex *mtrx, bitLenInt qubit) |
| Apply an arbitrary single bit unitary transformation. More...
|
|
virtual void | MCMtrx (const std::vector< bitLenInt > &controls, const complex *mtrx, bitLenInt target) |
| Apply an arbitrary single bit unitary transformation, with arbitrary control bits. More...
|
|
virtual void | MACMtrx (const std::vector< bitLenInt > &controls, const complex *mtrx, bitLenInt target) |
| Apply an arbitrary single bit unitary transformation, with arbitrary (anti-)control bits. More...
|
|
virtual void | UCMtrx (const std::vector< bitLenInt > &controls, const complex *mtrx, bitLenInt target, const bitCapInt &controlPerm) |
| Apply an arbitrary single bit unitary transformation, with arbitrary control bits, with arbitary control permutation. More...
|
|
virtual void | CSwap (const std::vector< bitLenInt > &controls, bitLenInt qubit1, bitLenInt qubit2) |
| Apply a swap with arbitrary control bits. More...
|
|
virtual void | AntiCSwap (const std::vector< bitLenInt > &controls, bitLenInt qubit1, bitLenInt qubit2) |
| Apply a swap with arbitrary (anti) control bits. More...
|
|
virtual void | CSqrtSwap (const std::vector< bitLenInt > &controls, bitLenInt qubit1, bitLenInt qubit2) |
| Apply a square root of swap with arbitrary control bits. More...
|
|
virtual void | AntiCSqrtSwap (const std::vector< bitLenInt > &controls, bitLenInt qubit1, bitLenInt qubit2) |
| Apply a square root of swap with arbitrary (anti) control bits. More...
|
|
virtual void | CISqrtSwap (const std::vector< bitLenInt > &controls, bitLenInt qubit1, bitLenInt qubit2) |
| Apply an inverse square root of swap with arbitrary control bits. More...
|
|
virtual void | AntiCISqrtSwap (const std::vector< bitLenInt > &controls, bitLenInt qubit1, bitLenInt qubit2) |
| Apply an inverse square root of swap with arbitrary (anti) control bits. More...
|
|
virtual bool | M (bitLenInt q) |
|
virtual void | DEC (const bitCapInt &toSub, bitLenInt start, bitLenInt length) |
| Add integer (without sign) More...
|
|
virtual void | INCC (const bitCapInt &toAdd, bitLenInt start, bitLenInt length, bitLenInt carryIndex) |
| Add integer (without sign, with carry) More...
|
|
virtual void | DECC (const bitCapInt &toSub, bitLenInt start, bitLenInt length, bitLenInt carryIndex) |
| Subtract classical integer (without sign, with carry) More...
|
|
virtual void | DECS (const bitCapInt &toSub, bitLenInt start, bitLenInt length, bitLenInt overflowIndex) |
| Add a classical integer to the register, with sign and without carry. More...
|
|
virtual void | CDEC (const bitCapInt &toSub, bitLenInt inOutStart, bitLenInt length, const std::vector< bitLenInt > &controls) |
| Subtract integer (without sign, with controls) More...
|
|
virtual void | Swap (bitLenInt qubit1, bitLenInt qubit2) |
| Swap values of two bits in register. More...
|
|
virtual void | ISwap (bitLenInt qubit1, bitLenInt qubit2) |
| Swap values of two bits in register, and apply phase factor of i if bits are different. More...
|
|
virtual void | IISwap (bitLenInt qubit1, bitLenInt qubit2) |
| Inverse ISwap - Swap values of two bits in register, and apply phase factor of -i if bits are different. More...
|
|
virtual void | SqrtSwap (bitLenInt qubit1, bitLenInt qubit2) |
| Square root of Swap gate. More...
|
|
virtual void | ISqrtSwap (bitLenInt qubit1, bitLenInt qubit2) |
| Inverse square root of Swap gate. More...
|
|
virtual void | FSim (real1_f theta, real1_f phi, bitLenInt qubitIndex1, bitLenInt qubitIndex2) |
| The 2-qubit "fSim" gate, (useful in the simulation of particles with fermionic statistics) More...
|
|
virtual real1_f | ProbAll (const bitCapInt &fullRegister) |
| Direct measure of full permutation probability. More...
|
|
virtual real1_f | CProb (bitLenInt control, bitLenInt target) |
| Direct measure of bit probability to be in |1> state, if control bit is |1>. More...
|
|
virtual real1_f | ACProb (bitLenInt control, bitLenInt target) |
| Direct measure of bit probability to be in |1> state, if control bit is |0>. More...
|
|
virtual void | ApplyControlled2x2 (const std::vector< bitLenInt > &controls, bitLenInt target, const complex *mtrx) |
|
virtual void | ApplyAntiControlled2x2 (const std::vector< bitLenInt > &controls, bitLenInt target, const complex *mtrx) |
|
virtual QInterfacePtr | Decompose (bitLenInt start, bitLenInt length) |
| Schmidt decompose a length of qubits. More...
|
|
virtual std::map< bitCapInt, int > | MultiShotMeasureMask (const std::vector< bitCapInt > &qPowers, unsigned shots) |
| Statistical measure of masked permutation probability. More...
|
|
virtual void | MultiShotMeasureMask (const std::vector< bitCapInt > &qPowers, unsigned shots, unsigned long long *shotsArray) |
| Statistical measure of masked permutation probability (returned as array) More...
|
|
virtual bool | M (bitLenInt qubit) |
| Measurement gate. More...
|
|
virtual bitCapInt | M (const std::vector< bitLenInt > &bits) |
| Measure bits with indices in array, and return a mask of the results. More...
|
|
virtual void | X (bitLenInt qubit) |
| X gate. More...
|
|
virtual void | X (bitLenInt start, bitLenInt length) |
| Bitwise Pauli X (or logical "NOT") operator. More...
|
|
virtual void | Swap (bitLenInt qubit1, bitLenInt qubit2) |
| Swap values of two bits in register. More...
|
|
virtual void | ISwap (bitLenInt qubit1, bitLenInt qubit2) |
| Swap values of two bits in register, and apply phase factor of i if bits are different. More...
|
|
virtual void | IISwap (bitLenInt qubit1, bitLenInt qubit2) |
| Inverse ISwap - Swap values of two bits in register, and apply phase factor of -i if bits are different. More...
|
|
virtual void | SqrtSwap (bitLenInt qubit1, bitLenInt qubit2) |
| Square root of Swap gate. More...
|
|
virtual void | ISqrtSwap (bitLenInt qubit1, bitLenInt qubit2) |
| Inverse square root of Swap gate. More...
|
|
virtual void | FSim (real1_f theta, real1_f phi, bitLenInt qubit1, bitLenInt qubit2)=0 |
| The 2-qubit "fSim" gate, (useful in the simulation of particles with fermionic statistics) More...
|
|
virtual void | Decompose (bitLenInt start, QInterfacePtr dest)=0 |
| Minimally decompose a set of contiguous bits from the separably composed unit, into "destination". More...
|
|
virtual QInterfacePtr | Decompose (bitLenInt start, bitLenInt length)=0 |
| Schmidt decompose a length of qubits. More...
|
|
virtual void | INCSC (const bitCapInt &toAdd, bitLenInt start, bitLenInt length, bitLenInt overflowIndex, bitLenInt carryIndex) |
| Add a classical integer to the register, with sign and with carry. More...
|
|
virtual void | INCSC (const bitCapInt &toAdd, bitLenInt start, bitLenInt length, bitLenInt carryIndex) |
| Add a classical integer to the register, with sign and with (phase-based) carry. More...
|
|
virtual void | DECSC (const bitCapInt &toSub, bitLenInt start, bitLenInt length, bitLenInt overflowIndex, bitLenInt carryIndex) |
| Subtract a classical integer from the register, with sign and with carry. More...
|
|
virtual void | DECSC (const bitCapInt &toSub, bitLenInt start, bitLenInt length, bitLenInt carryIndex) |
| Subtract a classical integer from the register, with sign and with carry. More...
|
|
virtual void | DECBCD (const bitCapInt &toSub, bitLenInt start, bitLenInt length) |
| Subtract classical BCD integer (without sign) More...
|
|
virtual void | INCBCDC (const bitCapInt &toAdd, bitLenInt start, bitLenInt length, bitLenInt carryIndex) |
| Add classical BCD integer (without sign, with carry) More...
|
|
virtual void | DECBCDC (const bitCapInt &toSub, bitLenInt start, bitLenInt length, bitLenInt carryIndex) |
| Subtract BCD integer (without sign, with carry) More...
|
|
virtual bool | MParity (const bitCapInt &mask) |
| Measure (and collapse) parity of the masked set of qubits. More...
|
|
| QInterface (bitLenInt n, qrack_rand_gen_ptr rgp=nullptr, bool doNorm=false, bool useHardwareRNG=true, bool randomGlobalPhase=true, real1_f norm_thresh=REAL1_EPSILON) |
|
| QInterface () |
| Default constructor, primarily for protected internal use. More...
|
|
virtual | ~QInterface () |
|
void | SetRandomSeed (uint32_t seed) |
|
virtual void | SetConcurrency (uint32_t threadsPerEngine) |
| Set the number of threads in parallel for loops, per component QEngine. More...
|
|
virtual bitLenInt | GetQubitCount () |
| Get the count of bits in this register. More...
|
|
virtual bitCapInt | GetMaxQPower () |
| Get the maximum number of basis states, namely \( 2^n \) for \( n \) qubits. More...
|
|
virtual bool | GetIsArbitraryGlobalPhase () |
|
real1_f | Rand () |
| Generate a random real number between 0 and 1. More...
|
|
virtual bitLenInt | ComposeNoClone (QInterfacePtr toCopy) |
| This is a variant of Compose() for a toCopy argument that will definitely not be reused once "Composed," hence more aggressive optimization can be done. More...
|
|
virtual std::map< QInterfacePtr, bitLenInt > | Compose (std::vector< QInterfacePtr > toCopy) |
| Compose() a vector of peer QInterface targets, in sequence. More...
|
|
virtual bitLenInt | Allocate (bitLenInt length) |
| Allocate new "length" count of |0> state qubits at end of qubit index position. More...
|
|
virtual void | MCPhase (const std::vector< bitLenInt > &controls, const complex &topLeft, const complex &bottomRight, bitLenInt target) |
| Apply a single bit transformation that only effects phase, with arbitrary control bits. More...
|
|
virtual void | MCInvert (const std::vector< bitLenInt > &controls, const complex &topRight, const complex &bottomLeft, bitLenInt target) |
| Apply a single bit transformation that reverses bit probability and might effect phase, with arbitrary control bits. More...
|
|
virtual void | MACPhase (const std::vector< bitLenInt > &controls, const complex &topLeft, const complex &bottomRight, bitLenInt target) |
| Apply a single bit transformation that only effects phase, with arbitrary (anti-)control bits. More...
|
|
virtual void | MACInvert (const std::vector< bitLenInt > &controls, const complex &topRight, const complex &bottomLeft, bitLenInt target) |
| Apply a single bit transformation that reverses bit probability and might effect phase, with arbitrary (anti-)control bits. More...
|
|
virtual void | UCPhase (const std::vector< bitLenInt > &controls, const complex &topLeft, const complex &bottomRight, bitLenInt target, const bitCapInt &perm) |
| Apply a single bit transformation that only effects phase, with arbitrary control bits, with arbitrary control permutation. More...
|
|
virtual void | UCInvert (const std::vector< bitLenInt > &controls, const complex &topRight, const complex &bottomLeft, bitLenInt target, const bitCapInt &perm) |
| Apply a single bit transformation that reverses bit probability and might effect phase, with arbitrary control bits, with arbitrary control permutation. More...
|
|
virtual void | UniformlyControlledSingleBit (const std::vector< bitLenInt > &controls, bitLenInt qubit, const complex *mtrxs) |
| Apply a "uniformly controlled" arbitrary single bit unitary transformation. More...
|
|
virtual void | TimeEvolve (Hamiltonian h, real1_f timeDiff) |
| To define a Hamiltonian, give a vector of controlled single bit gates ("HamiltonianOp" instances) that are applied by left-multiplication in low-to-high vector index order on the state vector. More...
|
|
virtual void | CCNOT (bitLenInt control1, bitLenInt control2, bitLenInt target) |
| Doubly-controlled NOT gate. More...
|
|
virtual void | AntiCCNOT (bitLenInt control1, bitLenInt control2, bitLenInt target) |
| Anti doubly-controlled NOT gate. More...
|
|
virtual void | CNOT (bitLenInt control, bitLenInt target) |
| Controlled NOT gate. More...
|
|
virtual void | AntiCNOT (bitLenInt control, bitLenInt target) |
| Anti controlled NOT gate. More...
|
|
virtual void | CY (bitLenInt control, bitLenInt target) |
| Controlled Y gate. More...
|
|
virtual void | AntiCY (bitLenInt control, bitLenInt target) |
| Anti controlled Y gate. More...
|
|
virtual void | CCY (bitLenInt control1, bitLenInt control2, bitLenInt target) |
| Doubly-Controlled Y gate. More...
|
|
virtual void | AntiCCY (bitLenInt control1, bitLenInt control2, bitLenInt target) |
| Anti doubly-controlled Y gate. More...
|
|
virtual void | CZ (bitLenInt control, bitLenInt target) |
| Controlled Z gate. More...
|
|
virtual void | AntiCZ (bitLenInt control, bitLenInt target) |
| Anti controlled Z gate. More...
|
|
virtual void | CCZ (bitLenInt control1, bitLenInt control2, bitLenInt target) |
| Doubly-Controlled Z gate. More...
|
|
virtual void | AntiCCZ (bitLenInt control1, bitLenInt control2, bitLenInt target) |
| Anti doubly-controlled Z gate. More...
|
|
virtual void | U (bitLenInt target, real1_f theta, real1_f phi, real1_f lambda) |
| General unitary gate. More...
|
|
virtual void | U2 (bitLenInt target, real1_f phi, real1_f lambda) |
| 2-parameter unitary gate More...
|
|
virtual void | IU2 (bitLenInt target, real1_f phi, real1_f lambda) |
| Inverse 2-parameter unitary gate. More...
|
|
virtual void | AI (bitLenInt target, real1_f azimuth, real1_f inclination) |
| "Azimuth, Inclination" (RY-RZ) More...
|
|
virtual void | IAI (bitLenInt target, real1_f azimuth, real1_f inclination) |
| Invert "Azimuth, Inclination" (RY-RZ) More...
|
|
virtual void | CAI (bitLenInt control, bitLenInt target, real1_f azimuth, real1_f inclination) |
| Controlled "Azimuth, Inclination" (RY-RZ) More...
|
|
virtual void | AntiCAI (bitLenInt control, bitLenInt target, real1_f azimuth, real1_f inclination) |
| (Anti-)Controlled "Azimuth, Inclination" (RY-RZ) More...
|
|
virtual void | CIAI (bitLenInt control, bitLenInt target, real1_f azimuth, real1_f inclination) |
| Controlled inverse "Azimuth, Inclination" (RY-RZ) More...
|
|
virtual void | AntiCIAI (bitLenInt control, bitLenInt target, real1_f azimuth, real1_f inclination) |
| (Anti-)Controlled inverse "Azimuth, Inclination" (RY-RZ) More...
|
|
virtual void | CU (const std::vector< bitLenInt > &controls, bitLenInt target, real1_f theta, real1_f phi, real1_f lambda) |
| Controlled general unitary gate. More...
|
|
virtual void | AntiCU (const std::vector< bitLenInt > &controls, bitLenInt target, real1_f theta, real1_f phi, real1_f lambda) |
| (Anti-)Controlled general unitary gate More...
|
|
virtual void | H (bitLenInt qubit) |
| Hadamard gate. More...
|
|
virtual void | SqrtH (bitLenInt qubit) |
| Square root of Hadamard gate. More...
|
|
virtual void | SH (bitLenInt qubit) |
| Y-basis transformation gate. More...
|
|
virtual void | HIS (bitLenInt qubit) |
| Y-basis (inverse) transformation gate. More...
|
|
virtual void | S (bitLenInt qubit) |
| S gate. More...
|
|
virtual void | IS (bitLenInt qubit) |
| Inverse S gate. More...
|
|
virtual void | T (bitLenInt qubit) |
| T gate. More...
|
|
virtual void | IT (bitLenInt qubit) |
| Inverse T gate. More...
|
|
virtual void | PhaseRootN (bitLenInt n, bitLenInt qubit) |
| "PhaseRootN" gate More...
|
|
virtual void | Y (bitLenInt qubit) |
| Y gate. More...
|
|
virtual void | YMask (const bitCapInt &mask) |
| Masked Y gate. More...
|
|
virtual void | SqrtX (bitLenInt qubit) |
| Square root of X gate. More...
|
|
virtual void | ISqrtX (bitLenInt qubit) |
| Inverse square root of X gate. More...
|
|
virtual void | SqrtY (bitLenInt qubit) |
| Square root of Y gate. More...
|
|
virtual void | ISqrtY (bitLenInt qubit) |
| Inverse square root of Y gate. More...
|
|
virtual void | SqrtW (bitLenInt qubit) |
| Square root of W gate. More...
|
|
virtual void | ISqrtW (bitLenInt qubit) |
| Inverse square root of W gate. More...
|
|
virtual void | CH (bitLenInt control, bitLenInt target) |
| Controlled H gate. More...
|
|
virtual void | AntiCH (bitLenInt control, bitLenInt target) |
| (Anti-)controlled H gate More...
|
|
virtual void | CS (bitLenInt control, bitLenInt target) |
| Controlled S gate. More...
|
|
virtual void | AntiCS (bitLenInt control, bitLenInt target) |
| (Anti-)controlled S gate More...
|
|
virtual void | CIS (bitLenInt control, bitLenInt target) |
| Controlled inverse S gate. More...
|
|
virtual void | AntiCIS (bitLenInt control, bitLenInt target) |
| (Anti-)controlled inverse S gate More...
|
|
virtual void | CT (bitLenInt control, bitLenInt target) |
| Controlled T gate. More...
|
|
virtual void | CIT (bitLenInt control, bitLenInt target) |
| Controlled inverse T gate. More...
|
|
virtual void | CPhaseRootN (bitLenInt n, bitLenInt control, bitLenInt target) |
| Controlled "PhaseRootN" gate. More...
|
|
virtual void | AntiCPhaseRootN (bitLenInt n, bitLenInt control, bitLenInt target) |
| (Anti-)controlled "PhaseRootN" gate More...
|
|
virtual void | CIPhaseRootN (bitLenInt n, bitLenInt control, bitLenInt target) |
| Controlled inverse "PhaseRootN" gate. More...
|
|
virtual void | AntiCIPhaseRootN (bitLenInt n, bitLenInt control, bitLenInt target) |
| (Anti-)controlled inverse "PhaseRootN" gate More...
|
|
virtual void | AND (bitLenInt inputBit1, bitLenInt inputBit2, bitLenInt outputBit) |
| Quantum analog of classical "AND" gate. More...
|
|
virtual void | OR (bitLenInt inputBit1, bitLenInt inputBit2, bitLenInt outputBit) |
| Quantum analog of classical "OR" gate. More...
|
|
virtual void | XOR (bitLenInt inputBit1, bitLenInt inputBit2, bitLenInt outputBit) |
| Quantum analog of classical "XOR" gate. More...
|
|
virtual void | CLAND (bitLenInt inputQBit, bool inputClassicalBit, bitLenInt outputBit) |
| Quantum analog of classical "AND" gate. More...
|
|
virtual void | CLOR (bitLenInt inputQBit, bool inputClassicalBit, bitLenInt outputBit) |
| Quantum analog of classical "OR" gate. More...
|
|
virtual void | CLXOR (bitLenInt inputQBit, bool inputClassicalBit, bitLenInt outputBit) |
| Quantum analog of classical "XOR" gate. More...
|
|
virtual void | NAND (bitLenInt inputBit1, bitLenInt inputBit2, bitLenInt outputBit) |
| Quantum analog of classical "NAND" gate. More...
|
|
virtual void | NOR (bitLenInt inputBit1, bitLenInt inputBit2, bitLenInt outputBit) |
| Quantum analog of classical "NOR" gate. More...
|
|
virtual void | XNOR (bitLenInt inputBit1, bitLenInt inputBit2, bitLenInt outputBit) |
| Quantum analog of classical "XNOR" gate. More...
|
|
virtual void | CLNAND (bitLenInt inputQBit, bool inputClassicalBit, bitLenInt outputBit) |
| Quantum analog of classical "NAND" gate. More...
|
|
virtual void | CLNOR (bitLenInt inputQBit, bool inputClassicalBit, bitLenInt outputBit) |
| Quantum analog of classical "NOR" gate. More...
|
|
virtual void | CLXNOR (bitLenInt inputQBit, bool inputClassicalBit, bitLenInt outputBit) |
| Quantum analog of classical "XNOR" gate. More...
|
|
virtual void | UniformlyControlledRY (const std::vector< bitLenInt > &controls, bitLenInt qubit, const real1 *angles) |
| Apply a "uniformly controlled" rotation of a bit around the Pauli Y axis. More...
|
|
virtual void | UniformlyControlledRZ (const std::vector< bitLenInt > &controls, bitLenInt qubit, const real1 *angles) |
| Apply a "uniformly controlled" rotation of a bit around the Pauli Z axis. More...
|
|
virtual void | RT (real1_f radians, bitLenInt qubit) |
| Phase shift gate. More...
|
|
virtual void | RX (real1_f radians, bitLenInt qubit) |
| X axis rotation gate. More...
|
|
virtual void | RY (real1_f radians, bitLenInt qubit) |
| Y axis rotation gate. More...
|
|
virtual void | RZ (real1_f radians, bitLenInt qubit) |
| Z axis rotation gate. More...
|
|
virtual void | CRZ (real1_f radians, bitLenInt control, bitLenInt target) |
| Controlled Z axis rotation gate. More...
|
|
virtual void | CRY (real1_f radians, bitLenInt control, bitLenInt target) |
| Controlled Y axis rotation gate. More...
|
|
virtual void | RTDyad (int numerator, int denomPower, bitLenInt qubit) |
| Dyadic fraction phase shift gate. More...
|
|
virtual void | RXDyad (int numerator, int denomPower, bitLenInt qubit) |
| Dyadic fraction X axis rotation gate. More...
|
|
virtual void | Exp (real1_f radians, bitLenInt qubit) |
| (Identity) Exponentiation gate More...
|
|
virtual void | Exp (const std::vector< bitLenInt > &controls, bitLenInt qubit, const complex *matrix2x2, bool antiCtrled=false) |
| Imaginary exponentiation of arbitrary 2x2 gate. More...
|
|
virtual void | ExpDyad (int numerator, int denomPower, bitLenInt qubit) |
| Dyadic fraction (identity) exponentiation gate. More...
|
|
virtual void | ExpX (real1_f radians, bitLenInt qubit) |
| Pauli X exponentiation gate. More...
|
|
virtual void | ExpXDyad (int numerator, int denomPower, bitLenInt qubit) |
| Dyadic fraction Pauli X exponentiation gate. More...
|
|
virtual void | ExpY (real1_f radians, bitLenInt qubit) |
| Pauli Y exponentiation gate. More...
|
|
virtual void | ExpYDyad (int numerator, int denomPower, bitLenInt qubit) |
| Dyadic fraction Pauli Y exponentiation gate. More...
|
|
virtual void | ExpZ (real1_f radians, bitLenInt qubit) |
| Pauli Z exponentiation gate. More...
|
|
virtual void | ExpZDyad (int numerator, int denomPower, bitLenInt qubit) |
| Dyadic fraction Pauli Z exponentiation gate. More...
|
|
virtual void | CRX (real1_f radians, bitLenInt control, bitLenInt target) |
| Controlled X axis rotation gate. More...
|
|
virtual void | CRXDyad (int numerator, int denomPower, bitLenInt control, bitLenInt target) |
| Controlled dyadic fraction X axis rotation gate. More...
|
|
virtual void | RYDyad (int numerator, int denomPower, bitLenInt qubit) |
| Dyadic fraction Y axis rotation gate. More...
|
|
virtual void | CRYDyad (int numerator, int denomPower, bitLenInt control, bitLenInt target) |
| Controlled dyadic fraction y axis rotation gate. More...
|
|
virtual void | RZDyad (int numerator, int denomPower, bitLenInt qubit) |
| Dyadic fraction Z axis rotation gate. More...
|
|
virtual void | CRZDyad (int numerator, int denomPower, bitLenInt control, bitLenInt target) |
| Controlled dyadic fraction Z axis rotation gate. More...
|
|
virtual void | CRT (real1_f radians, bitLenInt control, bitLenInt target) |
| Controlled "phase shift gate". More...
|
|
virtual void | CRTDyad (int numerator, int denomPower, bitLenInt control, bitLenInt target) |
| Controlled dyadic fraction "phase shift gate". More...
|
|
virtual void | H (bitLenInt start, bitLenInt length) |
| Bitwise Hadamard. More...
|
|
virtual void | X (bitLenInt start, bitLenInt length) |
| Bitwise Pauli X (or logical "NOT") operator. More...
|
|
virtual void | ROR (bitLenInt shift, bitLenInt start, bitLenInt length) |
| Circular shift right - shift bits right, and carry first bits. More...
|
|
virtual void | ASL (bitLenInt shift, bitLenInt start, bitLenInt length) |
| Arithmetic shift left, with last 2 bits as sign and carry. More...
|
|
virtual void | ASR (bitLenInt shift, bitLenInt start, bitLenInt length) |
| Arithmetic shift right, with last 2 bits as sign and carry. More...
|
|
virtual void | LSL (bitLenInt shift, bitLenInt start, bitLenInt length) |
| Logical shift left, filling the extra bits with |0> More...
|
|
virtual void | LSR (bitLenInt shift, bitLenInt start, bitLenInt length) |
| Logical shift right, filling the extra bits with |0> More...
|
|
virtual void | CFullAdd (const std::vector< bitLenInt > &controls, bitLenInt inputBit1, bitLenInt inputBit2, bitLenInt carryInSumOut, bitLenInt carryOut) |
| Controlled quantum analog of classical "Full Adder" gate. More...
|
|
virtual void | CIFullAdd (const std::vector< bitLenInt > &controls, bitLenInt inputBit1, bitLenInt inputBit2, bitLenInt carryInSumOut, bitLenInt carryOut) |
| Inverse of CFullAdd. More...
|
|
virtual void | ADC (bitLenInt input1, bitLenInt input2, bitLenInt output, bitLenInt length, bitLenInt carry) |
| Add a quantum integer to a quantum integer, with carry. More...
|
|
virtual void | IADC (bitLenInt input1, bitLenInt input2, bitLenInt output, bitLenInt length, bitLenInt carry) |
| Inverse of ADC. More...
|
|
virtual void | CADC (const std::vector< bitLenInt > &controls, bitLenInt input1, bitLenInt input2, bitLenInt output, bitLenInt length, bitLenInt carry) |
| Add a quantum integer to a quantum integer, with carry and with controls. More...
|
|
virtual void | CIADC (const std::vector< bitLenInt > &controls, bitLenInt input1, bitLenInt input2, bitLenInt output, bitLenInt length, bitLenInt carry) |
| Inverse of CADC. More...
|
|
virtual void | QFT (bitLenInt start, bitLenInt length, bool trySeparate=false) |
| Quantum Fourier Transform - Apply the quantum Fourier transform to the register. More...
|
|
virtual void | QFTR (const std::vector< bitLenInt > &qubits, bool trySeparate=false) |
| Quantum Fourier Transform (random access) - Apply the quantum Fourier transform to the register. More...
|
|
virtual void | IQFT (bitLenInt start, bitLenInt length, bool trySeparate=false) |
| Inverse Quantum Fourier Transform - Apply the inverse quantum Fourier transform to the register. More...
|
|
virtual void | IQFTR (const std::vector< bitLenInt > &qubits, bool trySeparate=false) |
| Inverse Quantum Fourier Transform (random access) - Apply the inverse quantum Fourier transform to the register. More...
|
|
virtual void | ZeroPhaseFlip (bitLenInt start, bitLenInt length) |
| Reverse the phase of the state where the register equals zero. More...
|
|
virtual void | PhaseFlip () |
| Phase flip always - equivalent to Z X Z X on any bit in the QInterface. More...
|
|
virtual void | SetReg (bitLenInt start, bitLenInt length, const bitCapInt &value) |
| Set register bits to given permutation. More...
|
|
virtual bitCapInt | MReg (bitLenInt start, bitLenInt length) |
| Measure permutation state of a register. More...
|
|
virtual bitCapInt | M (const std::vector< bitLenInt > &bits) |
| Measure bits with indices in array, and return a mask of the results. More...
|
|
virtual void | Reverse (bitLenInt first, bitLenInt last) |
| Reverse all of the bits in a sequence. More...
|
|
virtual void | ProbBitsAll (const std::vector< bitLenInt > &bits, real1 *probsArray) |
| Direct measure of listed permutation probability. More...
|
|
virtual real1_f | VarianceBitsAll (const std::vector< bitLenInt > &bits, const bitCapInt &offset=ZERO_BCI) |
| Direct measure of variance of listed permutation probability. More...
|
|
virtual real1_f | VarianceBitsAllRdm (bool roundRz, const std::vector< bitLenInt > &bits, const bitCapInt &offset=ZERO_BCI) |
| Direct measure of (reduced density matrix) variance of listed permutation probability. More...
|
|
virtual real1_f | VariancePauliAll (std::vector< bitLenInt > bits, std::vector< Pauli > paulis) |
| Direct measure of variance of listed Pauli tensor product probability. More...
|
|
virtual real1_f | VarianceUnitaryAll (const std::vector< bitLenInt > &bits, const std::vector< real1_f > &basisOps, std::vector< real1_f > eigenVals={}) |
| Direct measure of variance of listed (3-parameter) single-qubit tensor product probability. More...
|
|
virtual real1_f | VarianceUnitaryAll (const std::vector< bitLenInt > &bits, const std::vector< std::shared_ptr< complex >> &basisOps, std::vector< real1_f > eigenVals={}) |
| Direct measure of variance of listed (2x2 operator) single-qubit tensor product probability. More...
|
|
virtual real1_f | VarianceFloatsFactorized (const std::vector< bitLenInt > &bits, const std::vector< real1_f > &weights) |
| Direct measure of variance of listed bit string probability. More...
|
|
virtual real1_f | VarianceFloatsFactorizedRdm (bool roundRz, const std::vector< bitLenInt > &bits, const std::vector< real1_f > &weights) |
| Direct measure of (reduced density matrix) variance of bits, given an array of qubit weights. More...
|
|
virtual real1_f | VarianceBitsFactorized (const std::vector< bitLenInt > &bits, const std::vector< bitCapInt > &perms, const bitCapInt &offset=ZERO_BCI) |
| Get expectation value of bits, given an array of qubit weights. More...
|
|
virtual real1_f | VarianceBitsFactorizedRdm (bool roundRz, const std::vector< bitLenInt > &bits, const std::vector< bitCapInt > &perms, const bitCapInt &offset=ZERO_BCI) |
| Get (reduced density matrix) expectation value of bits, given an array of qubit weights. More...
|
|
virtual real1_f | ExpectationPauliAll (std::vector< bitLenInt > bits, std::vector< Pauli > paulis) |
| Get Pauli tensor product observable. More...
|
|
virtual real1_f | ExpectationUnitaryAll (const std::vector< bitLenInt > &bits, const std::vector< std::shared_ptr< complex >> &basisOps, std::vector< real1_f > eigenVals={}) |
| Get single-qubit tensor product (arbitrary real) observable. More...
|
|
virtual real1_f | ExpectationUnitaryAll (const std::vector< bitLenInt > &bits, const std::vector< real1_f > &basisOps, std::vector< real1_f > eigenVals={}) |
| Get single-qubit (3-parameter) tensor product (arbitrary real) observable. More...
|
|
virtual real1_f | ExpectationBitsFactorized (const std::vector< bitLenInt > &bits, const std::vector< bitCapInt > &perms, const bitCapInt &offset=ZERO_BCI) |
| Get expectation value of bits, given an array of qubit weights. More...
|
|
virtual real1_f | ExpectationBitsFactorizedRdm (bool roundRz, const std::vector< bitLenInt > &bits, const std::vector< bitCapInt > &perms, const bitCapInt &offset=ZERO_BCI) |
| Get (reduced density matrix) expectation value of bits, given an array of qubit weights. More...
|
|
virtual real1_f | ExpectationFloatsFactorized (const std::vector< bitLenInt > &bits, const std::vector< real1_f > &weights) |
| Get expectation value of bits, given a (floating-point) array of qubit weights. More...
|
|
virtual real1_f | ExpectationFloatsFactorizedRdm (bool roundRz, const std::vector< bitLenInt > &bits, const std::vector< real1_f > &weights) |
| Get (reduced density matrix) expectation value of bits, given a (floating-point) array of qubit weights. More...
|
|
virtual real1_f | ProbRdm (bitLenInt qubit) |
| Direct measure of bit probability to be in |1> state, treating all ancillary qubits as post-selected T gate gadgets. More...
|
|
virtual real1_f | ProbAllRdm (bool roundRz, const bitCapInt &fullRegister) |
| Direct measure of full permutation probability, treating all ancillary qubits as post-selected T gate gadgets. More...
|
|
virtual real1_f | ProbMaskRdm (bool roundRz, const bitCapInt &mask, const bitCapInt &permutation) |
| Direct measure of masked permutation probability, treating all ancillary qubits as post-selected T gate gadgets. More...
|
|
virtual real1_f | ExpectationBitsAllRdm (bool roundRz, const std::vector< bitLenInt > &bits, const bitCapInt &offset=ZERO_BCI) |
| Get permutation expectation value of bits, treating all ancillary qubits as post-selected T gate gadgets. More...
|
|
virtual void | SetBit (bitLenInt qubit, bool value) |
| Set individual bit to pure |0> (false) or |1> (true) state. More...
|
|
virtual bool | ApproxCompare (QInterfacePtr toCompare, real1_f error_tol=TRYDECOMPOSE_EPSILON) |
| Compare state vectors approximately, to determine whether this state vector is the same as the target. More...
|
|
virtual bool | TryDecompose (bitLenInt start, QInterfacePtr dest, real1_f error_tol=TRYDECOMPOSE_EPSILON) |
| Attempt to Decompose() a bit range. More...
|
|
virtual void | Dump () |
| If asynchronous work is still running, let the simulator know that it can be aborted. More...
|
|
virtual bool | isBinaryDecisionTree () |
| Returns "true" if current state representation is definitely a binary decision tree, "false" if it is definitely not, or "true" if it cannot be determined. More...
|
|
virtual bool | isClifford () |
| Returns "true" if current state is identifiably within the Clifford set, or "false" if it is not or cannot be determined. More...
|
|
virtual bool | isClifford (bitLenInt qubit) |
| Returns "true" if current qubit state is identifiably within the Clifford set, or "false" if it is not or cannot be determined. More...
|
|
virtual bool | TrySeparate (const std::vector< bitLenInt > &qubits, real1_f error_tol) |
| Qrack::QUnit types maintain explicit separation of representations of qubits, which reduces memory usage and increases gate speed. More...
|
|
virtual bool | TrySeparate (bitLenInt qubit) |
| Single-qubit TrySeparate() More...
|
|
virtual bool | TrySeparate (bitLenInt qubit1, bitLenInt qubit2) |
| Two-qubit TrySeparate() More...
|
|
virtual double | GetUnitaryFidelity () |
| When "Schmidt-decomposition rounding parameter" ("SDRP") is being used, starting from initial 1.0 fidelity, we compound the "unitary fidelity" by successive multiplication by one minus two times the true unitary probability discarded in each single rounding event. More...
|
|
virtual void | ResetUnitaryFidelity () |
| Reset the internal fidelity calculation tracker to 1.0. More...
|
|
virtual void | SetSdrp (real1_f sdrp) |
| Set the "Schmidt decomposition rounding parameter" value, (between 0 and 1) More...
|
|
virtual void | SetNcrp (real1_f ncrp) |
| Set the "Near-clifford rounding parameter" value, (between 0 and 1) More...
|
|
virtual void | SetReactiveSeparate (bool isAggSep) |
| Set reactive separation option (on by default if available) More...
|
|
virtual bool | GetReactiveSeparate () |
| Get reactive separation option. More...
|
|
virtual void | SetTInjection (bool useGadget) |
| Set the option to use T-injection gadgets (off by default) More...
|
|
virtual bool | GetTInjection () |
| Get the option to use T-injection gadgets. More...
|
|
virtual void | SetNoiseParameter (real1_f lambda) |
| Set the noise level option (only for a noisy interface) More...
|
|
virtual real1_f | GetNoiseParameter () |
| Get the noise level option (only for a noisy interface) More...
|
|
bitCapIntOcl | GetMaxSize () |
| Get maximum number of amplitudes that can be allocated on current device. More...
|
|
virtual void | DepolarizingChannelWeak1Qb (bitLenInt qubit, real1_f lambda) |
| Simulate a local qubit depolarizing noise channel, under a stochastic "weak simulation condition." Under "weak" condition, sampling and exact state queries are not accurate, but sampling can be achieved via repeated full execution of a noisy circuit, for each hardware-realistic measurement sample. More...
|
|
virtual bitLenInt | DepolarizingChannelStrong1Qb (bitLenInt qubit, real1_f lambda) |
| Simulate a local qubit depolarizing noise channel, under a "strong simulation condition." "Strong" condition supports measurement sampling and direct queries of state, but the expression of state is in terms of one retained ancillary qubit per applied noise channel. More...
|
|
| ParallelFor () |
|
void | SetConcurrencyLevel (unsigned num) |
|
unsigned | GetConcurrencyLevel () |
|
bitCapIntOcl | GetStride () |
|
bitLenInt | GetPreferredConcurrencyPower () |
|
void | par_for_inc (const bitCapIntOcl begin, const bitCapIntOcl itemCount, IncrementFunc, ParallelFunc fn) |
| Iterate through the permutations a maximum of end-begin times, allowing the caller to control the incrementation offset through 'inc'. More...
|
|
void | par_for (const bitCapIntOcl begin, const bitCapIntOcl end, ParallelFunc fn) |
| Call fn once for every numerical value between begin and end. More...
|
|
void | par_for_skip (const bitCapIntOcl begin, const bitCapIntOcl end, const bitCapIntOcl skipPower, const bitLenInt skipBitCount, ParallelFunc fn) |
| Skip over the skipPower bits. More...
|
|
void | par_for_mask (const bitCapIntOcl, const bitCapIntOcl, const std::vector< bitCapIntOcl > &maskArray, ParallelFunc fn) |
| Skip over the bits listed in maskArray in the same fashion as par_for_skip. More...
|
|
void | par_for_set (const std::set< bitCapIntOcl > &sparseSet, ParallelFunc fn) |
| Iterate over a sparse state vector. More...
|
|
void | par_for_set (const std::vector< bitCapIntOcl > &sparseSet, ParallelFunc fn) |
| Iterate over a sparse state vector. More...
|
|
void | par_for_sparse_compose (const std::vector< bitCapIntOcl > &lowSet, const std::vector< bitCapIntOcl > &highSet, const bitLenInt &highStart, ParallelFunc fn) |
| Iterate over the power set of 2 sparse state vectors. More...
|
|
real1_f | par_norm (const bitCapIntOcl maxQPower, const StateVectorPtr stateArray, real1_f norm_thresh=ZERO_R1_F) |
| Calculate the normal for the array, (with flooring). More...
|
|
real1_f | par_norm_exact (const bitCapIntOcl maxQPower, const StateVectorPtr stateArray) |
| Calculate the normal for the array, (without flooring.) More...
|
|