Quantum++ is a modern C++ general-purpose quantum computing library, composed solely of template header files. Quantum++ is written in standard C++17 and has very low external dependencies, using only the Eigen 3 linear algebra header-only template library and, if available, the OpenMP multiprocessing library. Quantum++ is not restricted to qubit systems or specific quantum information processing tasks, being capable of simulating arbitrary quantum processes. The main design factors taken in consideration were ease of use, high portability, and high performance. The library's simulation capabilities are only restricted by the amount of available physical memory. On a typical machine (Intel i5 8Gb RAM) Quantum++ can successfully simulate the evolution of 25 qubits in a pure state or of 12 qubits in a mixed state reasonably fast.
Features
- Quantum computing is a disruptive technology that promises great benefits for a plethora of applications
- The simulator defines a large collection of (template) quantum computing related functions and a few useful classes
- Ability of simulating classical reversible networks up to billions of bits
- Strong multi-threading abilities
- Built-in support for higher dimensional systems
- Allows treating qubits and qudits on the same footing