Qadence is a Python package that provides a simple interface to build digital-analog quantum programs with tunable interaction defined on arbitrary qubit register layouts.
-
A block-based system for composing complex digital-analog programs in a flexible and extensible manner. Heavily inspired by
Yao.jl
and functional programming concepts. -
A simple interface to work with interacting qubit systems using arbitrary qubit registers.
-
Intuitive, expression-based system built on top of
sympy
to construct parametric quantum programs. -
[Higher-order generalized parameter shift](link to psr tutorial) rules for differentiating arbitrary quantum operations on real hardware.
-
Out-of-the-box automatic differentiability of quantum programs using https://pytorch.org
-
QuantumModel
s to makeQuantumCircuit
s differentiable and runnable on a variety of different backends like state vector simulators, tensor network emulators and real devices.
Documentation can be found here: https://pasqal-qadence.readthedocs-hosted.com/en/latest.
If you use Qadence for a publication, we kindly ask you to cite our work using the bibtex citation:
@misc{qadence2023pasqal,
url = {https://github.com/pasqal-io/qadence},
title = {Qadence: {A} {D}igital-analog quantum programming interface.},
year = {2023}
}
Qadence can be install with pip
as follows:
pip install qadence[pulser,visualization]
The default backend for qadence is pyqtorch
(a
differentiable state vector simulator). You can install one or all of the following additional
backends and the circuit visualization library using the following extras:
braket
: install the Amazon Braket quantum backendpulser
: install the Pulser backend. Pulser is a framework for composing, simulating and executing pulse sequences for neutral-atom quantum devices.visualization
: install the library necessary to visualize quantum circuits.
NOTE: In order to correctly install the "visualization" extra, you need to have graphviz
installed
in your system. This depends on the operating system you are using:
# on Ubuntu
sudo apt install graphviz
# on MacOS
brew install graphviz
# via conda
conda install python-graphviz