C++ Python CMake Shell Makefile M4 C
Clone or download
Latest commit 45f0b12 Jul 4, 2018
Permalink
Failed to load latest commit information.
VisualStudio commit Jun 19, 2018
doc version 1.0 Jul 3, 2018
examples Update reversible2.cpp Jul 4, 2018
include version 1.0 Jul 3, 2018
unit_tests commit Jun 22, 2018
.clang-format added .clang-format, re-formatted code Jan 16, 2018
.gitignore commit Jun 23, 2018
.travis.yml commit Dec 20, 2017
CHANGES version 1.0 Jul 3, 2018
CMakeLists.txt commit Jun 28, 2018
CODE_OF_CONDUCT.md commit Sep 6, 2017
CONTRIBUTING.md commit Sep 6, 2017
Doxyfile Preparing version 1.0 Jun 28, 2018
INSTALL.md commit Jan 25, 2018
LICENSE Create LICENSE Jan 13, 2018
README.md version 1.0 Jul 3, 2018
VERSION version 1.0 Jul 3, 2018
appveyor.yml commit Dec 20, 2017
cmath_cygwin.patch commit Mar 28, 2015
prettyprint.sh commit Jan 25, 2018
run_mac_MATLAB.sh commit Jan 25, 2018

README.md

Quantum++

Version 1.0 - 3 July 2018

Build status:

Build Status Build status

Chat (questions/issues)

Join the chat at https://gitter.im/vsoftco_qpp


About

Quantum++ is a modern C++11 general purpose quantum computing library, composed solely of template header files. Quantum++ is written in standard C++11 and has very low external dependencies, using only the Eigen 3 linear algebra header-only template library and, if available, the OpenMP multi-processing 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 the 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.

To report any bugs or ask for additional features/enhancements, please submit an issue with an appropriate label.

If you are interesting in contributing to this project, feel free to contact me. Alternatively, create a custom branch, add your contribution, then finally create a pull request. If I accept the pull request, I will merge your custom branch with the latest development branch. The latter will eventually be merged into a future release version. To contribute, you need to have a solid knowledge of C++ (preferably C++11), including templates and the standard library, a basic knowledge of quantum computing and linear algebra, and working experience with Eigen 3.

For additional Eigen 3 documentation see http://eigen.tuxfamily.org/dox/. For a simple Eigen 3 quick ASCII reference see http://eigen.tuxfamily.org/dox/AsciiQuickReference.txt.

Copyright (c) 2013 - 2018 Vlad Gheorghiu, vgheorgh AT gmail DOT com.


License

Quantum++ is distributed under the MIT license. Please see the LICENSE file for more details.


Installation instructions and further documentation

Please see the installation guide INSTALL.md and the comprehensive Wiki for further documentation and detailed examples.

The official API documentation is available in PDF and HTML formats in the doc folder.