Source code documentation
Quantum Application ToolChain (QAT) Python libraries
This software provides a full software stack to develop, analyze, optimize, adapt and debug quantum application for simulated and real quantum processors.
The target is to execute hybrid quantum application on hybrid quantum platform.
The full software stack is composed of the following packages:
The core library
The core library provides the basic classes and interfaces:
The programming library
The programming library provides tools to generate quantum circuits:
The device library
The device library provides generators of usual topologies and HardwareSpecs
objects corresponding to the topologies of various super-conducting quantum
processors:
Generators
Generators generates batches and parses results. Generators are designed to be piped to a computational stack (composed of Plugins and a QPU). This new stack will generate quantum jobs, execute them and will return a parsed result.
Available generators for solving combinatorial optimization problems:
Plugins
Plugins are objects to manipulate quantum jobs (circuits, observables) prior to execution and post-process the results:
- Plugins for variational algorithms
- ObservableSplitter : turning observable sampling into qubit sampling
- CircuitInliner : inlining circuit inside a stack
- Display : a console displayer plugin
- QuameleonPlugin : emulating hardware constraints via a plugin
- Remap: unused qubits remover
- ADAPT-VQE: building iteratively efficient ansatze
- GradientDescentOptimizer: Natural gradient descent optimizer
- SeqOptim: optimizing circuits with the sequential optimization algorithm
- MultipleLaunchesAnalyzer: running several optimizations and keeping the best one
- ZeroNoiseExtrapolator: zero-noise extrapolation for multiqubit noise mitigation
- CostFunctionPlugin: variational optimization without observable
QPUs
QPUs simulate the execution of quantum jobs with classical simulation methods: