Skip to content

pasqal-io/qadence

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

69d779a · Oct 9, 2023

History

86 Commits
Oct 6, 2023
Oct 9, 2023
Oct 3, 2023
Oct 9, 2023
Oct 9, 2023
Oct 2, 2023
Oct 5, 2023
Oct 2, 2023
Oct 2, 2023
Oct 9, 2023
Oct 9, 2023
Oct 5, 2023
Oct 4, 2023
Oct 2, 2023

Repository files navigation

Qadence

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.

pre-commit tests

Feature highlights

  • 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

  • QuantumModels to make QuantumCircuits 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.

Citation

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}
}

Installation guide

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 backend
  • pulser: 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