Package: qadence
For a high-level overview of Qadence features,check out our white paper.For more detailed information,check out the documentation.Qadenceis a Python package that provides a simple interface to builddigital-analog quantum
programswith tunable qubit interaction defined onarbitrary register topologiesrealizable on neutral atom devices.Feature highlightsAblock-based systemfor composingcomplex digital-analog
programsin a flexible and scalable manner, inspired by the Julia quantum SDKYao.jland functional programming concepts.Asimple interfaceto work withinteracting neutral-atom qubit systemsusingarbitrary registers topologies.An intuitiveexpression-based systemdeveloped on top of the symbolic librarySympyto constructparametric quantum programseasily.High-order generalized parameter shift rulesfordifferentiating parametrized quantum operations.Out-of-the-boxautomatic differentiabilityof quantum programs withPyTorchintegration.Efficient executionon a variety of different purpose backends: from state vector simulators to tensor network emulators and real devices.Installation guideQadence is available onPyPIand can be installed usingpipas follows:pipinstallqadenceThe default, pre-installed backend for Qadence isPyQTorch, a differentiable state vector simulator for digital-analog simulation based onPyTorch. It is possible to install additional,PyTorch-based backends and the circuit visualization library using the following extras:pulser: ThePulserbackend for composing, simulating and executing pulse sequences for neutral-atom quantum devices.braket: TheBraketbackend, an open source library that provides a framework for interacting with quantum computing hardware devices through Amazon Braket.visualization: A visualization library to display quantum circuit diagrams.Qadence also supports aJAXengine which is currently supporting theHorqruxbackend.horqruxis currently only available via thelow-level API.To install individual extras, use the following syntax (IMPORTANTMake sure to use quotes):pipinstall"qadence[braket,pulser,visualization]"To install all available extras, simply do:pipinstall"qadence[all]"IMPORTANTBefore installingqadencewith thevisualizationextra, make sure to install thegraphvizpackage
on your system:# For Debian-based distributions (e.g. Debian, Ubuntu)sudoaptinstallgraphviz# on MacOSbrewinstallgraphviz# via condacondainstallpython-graphvizContributingBefore making a contribution, please review ourcode of conduct.Submitting Issues:To submit bug reports or feature requests, please use ourissue tracker.Developing in qadence:To learn more about how to develop withinqadence, please refer tocontributing guidelines.Setting up qadence in development modeWe recommend to use thehatchenvironment manager to installqadencefrom source:python-mpipinstallhatch# get into a shell with all the dependenciespython-mhatchshell# run a command within the virtual environment with all the dependenciespython-mhatchrunpythonmy_script.pyWARNINGhatchwill not combine nicely with other environment managers such as Conda. If you still want to use Conda,
install it from source usingpip:# within the Conda environmentpython-mpipinstall-e.CitationIf you use Qadence for a publication, we kindly ask you to cite our work using the following BibTex entry:@article{qadence2024pasqal,
  title ={Qadence: a differentiable interface for digital-analog programs.},
  author={Dominik Seitz and Niklas Heim and João P. Moutinho and Roland Guichard and Vytautas Abramavicius and Aleksander Wennersteen and Gert-Jan Both and Anton Quelle and Caroline de Groot and Gergana V. Velikova and Vincent E. Elfving and Mario Dagrada},
  journal={arXiv:2401.09915},
  url ={https://github.com/pasqal-io/qadence},
  year ={2024}}LicenseQadence is a free and open source software package, released under the Apache License, Version 2.0.