API
The QuEST API is divided into the following modules.
Unitaries | Unitary gates |
Gates | Non-unitary but norm-preserving gates, such as measurements |
Operators | Non-physical operators which may be non-unitary, non-norm-preserving, even non-Hermitian |
Decoherence | Decoherence channels which act on density matrices to induce mixing |
Data structures | Precision-agnostic types and data structures for representing numbers, quantum states, and operators |
Calculations | Calculations and property-getters which do not modify the studied quantum state |
State initialisations | Functions for preparing quantum states |
QASM Logging | Functions for recording performed gates to QASM |
Debugging | Utilities for seeding and debugging, such as state-logging |
Unit tests | Unit tests of the QuEST API, using Catch2 in C++14 |
Unit test utilities | Functions used in the unit testing. These are mostly unoptimised, analytic implementations of the complex linear algebra that QuEST ultimately effects on quantum states. These are not part of the QuEST API, and require C++14 |