Skip to content

5. Brief description of the library's file structure

Vlad Gheorghiu edited this page Jan 25, 2022 · 5 revisions

A brief description of the Quantum++ file structure is presented below. The directories and their brief descriptions are emphasized using bold fonts, as well as the main header file of the library, include/qpp.h.

File/folder name Description
cmake/ CMake configuration files
examples/ Usage examples
include/ Header files
include/MATLAB/ MATLAB support
include/MATLAB/matlab.hpp Input/output interfacing with MATLAB
include/classes/ Class definitions
include/classes/circuits/ Support for quantum circuits
include/classes/circuits/circuits.hpp Quantum circuit descriptions
include/classes/circuits/engines.hpp Quantum engines, execute quantum circuit descriptions
include/classes/codes.hpp Quantum error correcting codes
include/classes/exception.hpp Exceptions
include/classes/gates.hpp Quantum gates
include/classes/idisplay.hpp Interface for stream extraction
include/classes/init.hpp Initialization
include/classes/layouts.hpp Qudit placement layouts
include/classes/noise.hpp Quantum noise models
include/classes/random_devices.hpp Random devices
include/classes/reversible.hpp Support for classical reversible circuits
include/classes/states.hpp Quantum states
include/classes/timer.hpp Timing
include/experimental/ Experimental/test functions/classes
include/experimental/experimental.hpp Experimental/test functions/classes
include/internal/ Internal implementation details
include/internal/classes/ Internal class definitions
include/internal/classes/iomanip.hpp Input/output manipulators
include/internal/classes/singleton.hpp Singleton pattern via CRTP
include/internal/util.hpp Internal utility functions
include/constants.hpp Constants
include/entanglement.hpp Entanglement functions
include/entropies.hpp Entropy functions
include/functions.hpp General purpose quantum computing functions
include/input_output.hpp Input/output functions
include/instruments.hpp Measurement functions
include/number_theory.hpp Number theory functions (for native types)
include/operations.hpp Quantum operations functions
include/qpp.h Quantum++ main header file (includes others)
include/random.hpp Randomness functions
include/statistics.hpp Statistics functions
include/traits.hpp Type traits
include/types.hpp Type aliases
libs/ Additional dependencies
libs/pybind11/ Python bindings for C++ code
pyqpp/ Python 3 wrapper package for Quantum++
qasmtools/ OpenQASM parser
stress_tests/ Partial stress tests against Qiskit and QuTiP
unit_tests/ Unit testing via Google Test/Mock (source included)
.appveyor/ AppVeyor continuous integration scripts
.circleci/ CircleCI continuous integration configuration
.clang_format clang-format configuration file
.gitattributes git attributes configuration file
.gitignore git configuration file
.travis.yml Travis CI continuous integration config file
CHANGES Cumulative modifications added by each version
CMakeLists.txt CMake config. file for Quantum++ and unit tests
CODE OF CONDUCT.md GitHub's code of conduct
CONTRIBUTING.md GitHub's contributing rules
Doxyfile Doxygen configuration file, needs Graphviz to be run
INSTALL.md Installation guide, also available on the Wiki
LICENSE MIT License
README.md Detailed building/installing instructions
VERSION Version number
appveyor.yml AppVeyor continuous integration (Windows) config file
prettyprint.sh Script for automatic code beautifier via clang-format
setup.py Installer setup for the pyqpp Python 3 wrapper package
Clone this wiki locally