▼๐ API | |
▼Calculations | Functions for calculating properties of quantum states without modifying them |
Expectation values | Functions for calculating expected values of Hermitian observables |
Probabilities | Functions for non-destructively calculating the probabilities of measurement outcomes |
Properties | Functions for calculating single-state properties like normalisation and purity |
Comparisons | Functions for comparing multiple quantum states |
Partial trace | Functions for calculating reduced density matrices, creating a new output Qureg |
▼Channels | Data structures for representing arbitrary channels as Kraus maps and superoperators |
Structs | Data structures for representing decoherence channels |
Constructors | Functions for creating channel data structures |
Destructors | Functions for destroying existing channel data structures |
Reporters | Functions for printing channels |
Setters | Functions for overwriting the elements of channels |
Synchronisation | Functions for overwriting a channel's GPU (VRAM) memory with its CPU (RAM) contents |
▼Debug | Utilities for controlling QuEST behaviour such as seeding, input validation and printing |
Seeding | Functions for seeding QuEST's random generators |
Validation | Functions to control QuEST's user-input validation |
Reporting | Functions to control how QuEST's reporters display and truncate information |
Caching | Functions to control temporary memory used by the QuEST process |
Info | Functions for getting debugging information |
Decoherence | Functions for effecting decoherence channels upon density matrices |
Environment | Data structures for managing the QuEST execution environment |
▼Initialisations | Functions for preparing Quregs in particular states |
States | Functions for initialising Qureg into physical states |
Amplitudes | Functions for overwriting Qureg amplitudes |
▼Matrices | Data structures for representing operator matrices |
Structs | Data structures for representing operator matrices |
Getters | Functions for obtaining fixed-size matrices |
Constructors | Functions for creating variable-size matrices |
Destructors | Functions for destroying existing matrices |
Reporters | Functions for printing matrices |
Setters | Functions for overwriting the elements of matrices |
Synchronisation | Functions for overwriting a matrix's GPU (VRAM) memory with its CPU (RAM) contents |
Modes | Macros for controlling QuEST compilation |
▼Operations | Functions for effecting operators upon Quregs |
CompMatr1 | Functions for applying general one-qubit dense matrices, as CompMatr1 |
CompMatr2 | Functions for applying general two-qubit dense matrices, as CompMatr2 |
CompMatr | Functions for applying general many-target dense matrices, as CompMatr |
DiagMatr1 | Functions for applying general one-qubit diagonal matrices, as DiagMatr1 |
DiagMatr2 | Functions for applying general two-qubit diagonal matrices, as DiagMatr2 |
DiagMatr | Functions for applying general many-qubit diagonal matrices, as DiagMatr |
FullStateDiagMatr | Functions for applying general all-qubit diagonal matrices, as FullStateDiagMatr |
Fixed | Functions for applying the one-qubit S, T and Hadamard gates |
Swap | Functions for applying the two-qubit SWAP and related gates |
Pauli | Functions for applying the individual one-qubit Pauli operators |
PauliStr | Functions for applying a tensor product of Pauli operators, as a PauliStr |
Rotations | Functions for applying one-qubit rotations around Pauli and arbitrary axis |
Pauli gadgets | Functions for applying many-qubit rotations around arbitrary PauliStr |
Phase gates | Functions for applying many-qubit rotations around Pauli Z axis, and phase flips and shifts |
PauliStrSum | Functions for applying, exponentiating or Trotterising a weigthed sum of Pauli tensors |
Many-not gates | Functions for effecting many-qubit NOT gates |
Measurements | Functions for effecting destructive measurements |
Projectors | Functions for effecting projectors which break the state normalisation |
QFT | Functions for applying the Quantum Fourier Transform |
▼Paulis | Data structures for representing Pauli strings and their weighted sums |
Structs | Data structures for representing tensors and weighted sums of Pauli operators |
Constructors | Functions for creating and initialising Pauli data structures |
Destructors | Functions for destroying existing Pauli data structures |
Reporters | Functions for printing Pauli data structures |
Precision | Macros for controlling QuEST's numerical precision |
▼Qureg | Data structures for representing quantum states |
Structs | Data structures for representing quantum registers |
Constructors | Functions for creating statevectors and density matrices |
Destructors | Functions for destroying existing Qureg |
Reporters | Functions for printing Qureg states or reporting their configuration |
Synchronisation | Functions for copying memory between a Qureg's CPU (RAM) and GPU (VRAM) memory |
Getters | Functions for obtaining amplitudes from statevectors or density matrices |
Setters | See Amplitude initialisations |
Types | Macros for precision-agnostic real and complex arithmetic |
▼๐งช Tests | |
▼Utilities | Testing utilities which include un-optimised, reference implementations of common quantum simulation routines using serial linear algebra |
Cache | Testing utilities which create Quregs across all available hardware deployments |
Compare | Testing utilities which compare scalars produced by the QuEST API to those produced by other test utilities, and Quregs modified by the API to qvector qmatrix references |
Convert | Testing utilities for converting QuEST API structures (like Qureg, CompMatr, PauliStr) to/from testing types (like qvector and qmatrix) |
Evolve | Testing utilities which evolve a reference state (qvector or qmatrix) under the action of a reference operation. These are slow, serial, un-optimised, defensively-designed routines |
Linalg | Testing utilities which perform linear algebra routines upon reference qvector and qmatrix. These are slow, serial, un-optimised, defensively- designed routines |
Lists | Testing utilities which generate lists of integers |
Macros | Macros used by the tests and testing utilities |
Measure | Testing utilities which evaluate measurements upon reference qvector and qmatrix states. These are slow, serial, un-optimised, defensively-designed routines |
qmatrix | Testing utilities which define 'qmatrix', used to perform reference complex matrix algebra, and as a reference proxy to a quantum density matrix |
qvector | Testing utilities which define 'qvector', used as a reference proxy to a quantum statevector |
Random | Testing utilities which generate random objects independently of QuEST's internal generators |
▼Unit tests | Tests of each QuEST API function in isolation for all possible input states and parameters (where feasible), validated against numerical reference implementations using relatively small Quregs |
Calculations | |
Channels | |
Debug | |
Decoherence | |
Environment | |
Initialisation | |
Matrices | |
Operations | |
Paulis | |
Qureg | |
Types | |
Integration tests | Tests which combine many QuEST API functions to perform computations using relatively large Quregs, validated against known analytic results |
Deprecated tests | Unit tests of QuEST's deprecated v3 API functions |
Deprecated utilities | Utilities for testing QuEST's deprecated v3 API functions |