|
Qrack
1.7
General classical-emulating-quantum development framework
|
Classes | |
| struct | Complex16Simd |
| SIMD implementation of the double precision complex type. More... | |
| struct | Complex16x2Simd |
| SIMD implementation of the double precision complex vector type of 2 complex numbers, only for AVX Apply2x2. More... | |
| class | OCLEngine |
| "Qrack::OCLEngine" manages the single OpenCL context. More... | |
| class | ParallelFor |
| class | QEngineCPU |
| General purpose QEngineCPU implementation. More... | |
| class | QEngineOCL |
| OpenCL enhanced QEngineCPU implementation. More... | |
| struct | QEngineShard |
| Associates a QInterface object with a set of bits. More... | |
| class | QInterface |
| A "Qrack::QInterface" is an abstract interface exposing qubit permutation state vector with methods to operate on it as by gates and register-like instructions. More... | |
| class | QUnit |
Typedefs | |
| typedef std::shared_ptr< QEngineCPU > | QEngineCPUPtr |
| typedef std::shared_ptr< QInterface > | QInterfacePtr |
| typedef std::shared_ptr< QUnit > | QUnitPtr |
Enumerations | |
| enum | QInterfaceEngine { QINTERFACE_CPU = 0, QINTERFACE_OPENCL, QINTERFACE_QUNIT, QINTERFACE_FIRST = QINTERFACE_CPU, QINTERFACE_OPTIMAL = QINTERFACE_CPU, QINTERFACE_MAX } |
| Enumerated list of supported engines. More... | |
Functions | |
| Complex16Simd | operator* (const double &lhs, const Complex16Simd &rhs) |
| Complex16Simd | operator/ (const double &lhs, const Complex16Simd &rhs) |
| double | real (const Complex16Simd &cmplx) |
| double | imag (const Complex16Simd &cmplx) |
| double | arg (const Complex16Simd &cmplx) |
| Complex16Simd | conj (const Complex16Simd &cmplx) |
| double | norm (const Complex16Simd &cmplx) |
| double | abs (const Complex16Simd &cmplx) |
| Complex16Simd | polar (const double rho, const double theta=0) |
| Complex16x2Simd | dupeLo (const Complex16x2Simd &cmplx2) |
| Complex16x2Simd | dupeHi (const Complex16x2Simd &cmplx2) |
| Complex16x2Simd | matrixMul (const Complex16x2Simd &mtrxCol1, const Complex16x2Simd &mtrxCol2, const Complex16x2Simd &qubit) |
| Complex16x2Simd | matrixMul (const double &nrm, const Complex16x2Simd &mtrxCol1, const Complex16x2Simd &mtrxCol2, const Complex16x2Simd &qubit) |
| Complex16x2Simd | operator* (const double lhs, const Complex16x2Simd &rhs) |
| template<class BidirectionalIterator > | |
| void | reverse (BidirectionalIterator first, BidirectionalIterator last, bitCapInt stride) |
| template<class BidirectionalIterator > | |
| void | rotate (BidirectionalIterator first, BidirectionalIterator middle, BidirectionalIterator last, bitCapInt stride) |
| template<typename... Ts> | |
| QInterfacePtr | CreateQuantumInterface (QInterfaceEngine engine, QInterfaceEngine subengine, Ts...args) |
| Factory method to create specific engine implementations. More... | |
| template void | rotate< complex * > (complex *first, complex *middle, complex *last, bitCapInt stride) |
| typedef std::shared_ptr<QEngineCPU> Qrack::QEngineCPUPtr |
| typedef std::shared_ptr<QInterface> Qrack::QInterfacePtr |
| typedef std::shared_ptr<QUnit> Qrack::QUnitPtr |
Enumerated list of supported engines.
Use QINTERFACE_OPTIMAL for the best supported engine.
| Enumerator | |
|---|---|
| QINTERFACE_CPU |
Create a QEngineCPU leveraging only local CPU and memory resources. |
| QINTERFACE_OPENCL |
Create a QEngineOCL, derived from QEngineCPU, leveraging OpenCL hardware to increase the speed of certain calculations. |
| QINTERFACE_QUNIT |
Create a QUnit, which utilizes other QInterface classes to minimize the amount of work that's needed for any given operation based on the entanglement of the bits involved. This, combined with QINTERFACE_OPTIMAL, is the recommended object to use as a library consumer. |
| QINTERFACE_FIRST | |
| QINTERFACE_OPTIMAL | |
| QINTERFACE_MAX | |
|
inline |
|
inline |
|
inline |
| QInterfacePtr Qrack::CreateQuantumInterface | ( | QInterfaceEngine | engine, |
| QInterfaceEngine | subengine, | ||
| Ts... | args | ||
| ) |
Factory method to create specific engine implementations.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| void Qrack::reverse | ( | BidirectionalIterator | first, |
| BidirectionalIterator | last, | ||
| bitCapInt | stride | ||
| ) |
| void Qrack::rotate | ( | BidirectionalIterator | first, |
| BidirectionalIterator | middle, | ||
| BidirectionalIterator | last, | ||
| bitCapInt | stride | ||
| ) |
1.8.11