Skip to content

5. Brief description of the library's file structure

Vlad Gheorghiu edited this page May 1, 2024 · 10 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/qpp.h.

File/folder name Description
cmake/ CMake configuration files
docker/ Docker image
examples/ Usage examples
include/qpp/ Header files
include/qpp/MATLAB/ MATLAB support
include/qpp/MATLAB/matlab.hpp Input/output interfacing with MATLAB
include/qpp/classes/ Class definitions
include/qpp/classes/codes.hpp Quantum error correcting codes
include/qpp/classes/exception.hpp Exceptions
include/qpp/classes/gates.hpp Quantum gates
include/qpp/classes/idisplay.hpp Interface for stream extraction
include/qpp/classes/ijson.hpp Interface for JSON
include/qpp/classes/init.hpp Initialization
include/qpp/classes/layouts.hpp Qudit placement layouts
include/qpp/classes/noise.hpp Quantum noise models
include/qpp/classes/qbase_engine.hpp Quantum engine (base class)
include/qpp/classes/qcircuit.hpp Quantum circuit descriptions
include/qpp/classes/qcircuit_traits.hpp Quantum circuit traits
include/qpp/classes/qdummy_engine.hpp No-op (dummy) quantum engine
include/qpp/classes/qengine.hpp Quantum engine
include/qpp/classes/qengine_traits.hpp Quantum engine traits
include/qpp/classes/random_devices.hpp Random devices
include/qpp/classes/reversible.hpp Support for classical reversible circuits
include/qpp/classes/states.hpp Quantum states
include/qpp/classes/timer.hpp Timing
include/qpp/experimental/ Experimental/test functions/classes
include/qpp/experimental/experimental.hpp Experimental/test functions/classes
include/qpp/internal/ Internal implementation details
include/qpp/internal/classes/ Internal class definitions
include/qpp/internal/classes/iomanip.hpp Input/output manipulators
include/qpp/internal/classes/singleton.hpp Singleton pattern via CRTP
include/qpp/internal/util.hpp Internal utility functions
include/qpp/constants.hpp Constants
include/qpp/entanglement.hpp Entanglement functions
include/qpp/entropies.hpp Entropy functions
include/qpp/functions.hpp General purpose quantum computing functions
include/qpp/input_output.hpp Input/output functions
include/qpp/instruments.hpp Measurement functions
include/qpp/number_theory.hpp Number theory functions (for native types)
include/qpp/operations.hpp Quantum operations functions
include/qpp/options.hpp Options such as display formattors etc.
include/qpp/qpp.h Quantum++ main header file (includes others)
include/qpp/random.hpp Randomness functions
include/qpp/statistics.hpp Statistics functions
include/qpp/traits.hpp Type traits
include/qpp/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 GoogleTest
.github/ GitHub actions continuous integration
.clang_format clang-format configuration file
.gitattributes git attributes configuration file
.gitignore git configuration file
CHANGES.md 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.txt MIT License
README.md Detailed building/installing instructions
VERSION.txt Version number
prettyprint.sh Script for automatic code beautifier via clang-format
pyproject.toml .toml setup for the pyqpp Python 3 wrapper package
setup.py Installer setup for the pyqpp Python 3 wrapper package
Clone this wiki locally