Skip to main content

Pasqal interface for circuit-based quantum computing SDKs

Project description

Qadence logo

Qadence is a Python package that provides a simple interface to build digital-analog quantum programs with tunable qubit interactions and arbitrary register topologies realizable on neutral atom devices.

For a high-level overview of Qadence features, check out our white paper.

**For more detailed information, check out the documentation.

**For any questions or comments, feel free to start a discussion. **

Linting Tests Documentation Pypi License Coverage

Feature highlights

Qadence architecture

Installation guide

Qadence is available on PyPI and can be installed using pip as follows:

pip install qadence

The default, pre-installed backend for Qadence is PyQTorch, a differentiable state vector simulator for digital-analog simulation based on PyTorch. It is possible to install additional, PyTorch -based backends and the circuit visualization library using the following extras:

  • visualization: A visualization library to display quantum circuit diagrams.
  • protocols: A collection of protocols for error mitigation in Qadence.
  • libs: A collection of functionalities for graph machine learning problems build on top of Qadence.
  • pulser: The Pulser backend for composing, simulating and executing pulse sequences for neutral-atom quantum devices (experimental).

Qadence also supports a JAX engine which is currently supporting the Horqrux backend. horqrux is currently only available via the low-level API.

To install individual extras, use the following syntax (IMPORTANT Make sure to use quotes):

pip install "qadence[pulser,visualization]"

To install all available extras, simply do:

pip install "qadence[all]"

IMPORTANT Before installing qadence with the visualization extra, make sure to install the graphviz package on your system:

# For Debian-based distributions (e.g. Debian, Ubuntu)
sudo apt install graphviz

# on MacOS
brew install graphviz

# via conda
conda install python-graphviz

On Windows Linux Subsystem (WSL2) it has been reported that in some cases "wslutilities" must be installed. Please follow instructions here for your flavour. For example on Ubuntu 22.04 LTS and later you must run:

sudo add-apt-repository ppa:wslutilities/wslu
sudo apt update
sudo apt install wslu

Contributing

Before making a contribution, please review our code of conduct.

  • Submitting Issues: To submit bug reports or feature requests, please use our issue tracker.
  • Developing in qadence: To learn more about how to develop within qadence, please refer to contributing guidelines.

Setting up qadence in development mode

We recommend to use the hatch environment manager to install qadence from source:

python -m pip install hatch

# get into a shell with all the dependencies
python -m hatch shell

# run a command within the virtual environment with all the dependencies
python -m hatch run python my_script.py

WARNING hatch will not combine nicely with other environment managers such as Conda. If you still want to use Conda, install it from source using pip:

# within the Conda environment
python -m pip install -e .

Users also report problems running Hatch on Windows, we suggest using WSL2.

Citation

If you use Qadence for a publication, we kindly ask you to cite our work using the following BibTex entry:

@article{qadence2025,
author = {Seitz, Dominik and Heim, Niklas and Moutinho, João and Guichard, Roland and Abramavicius, Vytautas and Wennersteen, Aleksander and Both, Gert-Jan and Quelle, Anton and Groot, Caroline and Velikova, Gergana and Elfving, Vincent and Dagrada, Mario},
year = {2025},
month = {01},
pages = {1-14},
title = {Qadence: a differentiable interface for digital and analog programs},
volume = {PP},
journal = {IEEE Software},
doi = {10.1109/MS.2025.3536607}
}

If you use the approximate Generalized parameter shift rule for your publication, we kindly ask you to cite:

@misc{2505.18090,
Author = {Vytautas Abramavicius and Evan Philip and Kaonan Micadei and Charles Moussa and Mario Dagrada and Vincent E. Elfving and Panagiotis Barkoutsos and Roland Guichard},
Title = {Evaluation of derivatives using approximate generalized parameter shift rule},
Year = {2025},
Eprint = {arXiv:2505.18090},
}

License

Qadence is a free and open source software package, released under the PASQAL OPEN-SOURCE SOFTWARE LICENSE (MIT-derived).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qadence-1.11.5.tar.gz (230.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qadence-1.11.5-py3-none-any.whl (297.5 kB view details)

Uploaded Python 3

File details

Details for the file qadence-1.11.5.tar.gz.

File metadata

  • Download URL: qadence-1.11.5.tar.gz
  • Upload date:
  • Size: 230.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for qadence-1.11.5.tar.gz
Algorithm Hash digest
SHA256 527de6dcfacc873769510e716fe6272856e56ab64eec00af41f83be3692807b8
MD5 c6fc3d16cc308357fab21219bae8cd49
BLAKE2b-256 5d47c46f382dd8dccb9c29db0aefaba7d85edee8dfda9f2a8d31459998c24c9d

See more details on using hashes here.

File details

Details for the file qadence-1.11.5-py3-none-any.whl.

File metadata

  • Download URL: qadence-1.11.5-py3-none-any.whl
  • Upload date:
  • Size: 297.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for qadence-1.11.5-py3-none-any.whl
Algorithm Hash digest
SHA256 831cea1a304cd4134ee49614dd6c70a912ac4719b1dba576930f9af7ed2a2f84
MD5 b4af2923caf14127435296956bef885a
BLAKE2b-256 583ce2277b486d91620e925449179cf01552ed34fa8695728c3a1518724fab26

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page