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 |