{"id":13776373,"url":"https://github.com/pasqal-io/qadence","last_synced_at":"2025-05-16T17:07:19.444Z","repository":{"id":199286559,"uuid":"685111739","full_name":"pasqal-io/qadence","owner":"pasqal-io","description":"Digital-analog quantum programming interface","archived":false,"fork":false,"pushed_at":"2025-05-07T14:31:26.000Z","size":54171,"stargazers_count":85,"open_issues_count":26,"forks_count":22,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-05-09T07:23:11.521Z","etag":null,"topics":["digital-analog-quantum-computing","jax","neutral-atom-devices","quantum-computing","quantum-machine-learning","torch","unitaryhack"],"latest_commit_sha":null,"homepage":"https://pasqal-io.github.io/qadence/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pasqal-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-08-30T14:39:43.000Z","updated_at":"2025-05-07T13:39:16.000Z","dependencies_parsed_at":"2023-10-30T09:38:48.696Z","dependency_job_id":"81c6de6c-d69e-43fc-a924-731e48220a1a","html_url":"https://github.com/pasqal-io/qadence","commit_stats":null,"previous_names":["pasqal-io/qadence"],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pasqal-io%2Fqadence","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pasqal-io%2Fqadence/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pasqal-io%2Fqadence/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pasqal-io%2Fqadence/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pasqal-io","download_url":"https://codeload.github.com/pasqal-io/qadence/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253717611,"owners_count":21952517,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["digital-analog-quantum-computing","jax","neutral-atom-devices","quantum-computing","quantum-machine-learning","torch","unitaryhack"],"created_at":"2024-08-03T18:00:24.218Z","updated_at":"2025-05-16T17:07:19.422Z","avatar_url":"https://github.com/pasqal-io.png","language":"Python","funding_links":[],"categories":["Quantum full-stack libraries"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"./docs/extras/assets/logo/qadence_logo_white.svg\" width=\"75%\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"./docs/extras/assets/logo/qadence_logo.svg\" width=\"75%\"\u003e\n    \u003cimg alt=\"Qadence logo\" src=\"./docs/assets/logo/qadence_logo.svg\" width=\"75%\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n**Qadence** is a Python package that provides a simple interface to build **digital-analog quantum\nprograms** with tunable qubit interactions and arbitrary register topologies realizable on neutral atom devices.\n\n**For a high-level overview of Qadence features, [check out our white paper](https://arxiv.org/abs/2401.09915).**\n\n**For more detailed information, [check out the documentation](https://pasqal-io.github.io/qadence/latest/).\n\n**For any questions or comments, [feel free to start a discussion](https://github.com/pasqal-io/qadence/discussions).\n**\n\n[![Linting](https://github.com/pasqal-io/qadence/actions/workflows/lint.yml/badge.svg)](https://github.com/pasqal-io/qadence/actions/workflows/lint.yml)\n[![Tests](https://github.com/pasqal-io/qadence/actions/workflows/test_fast.yml/badge.svg)](https://github.com/pasqal-io/qadence/actions/workflows/test_fast.yml)\n[![Documentation](https://github.com/pasqal-io/qadence/actions/workflows/build_docs.yml/badge.svg)](https://pasqal-io.github.io/qadence/latest)\n[![Pypi](https://badge.fury.io/py/qadence.svg)](https://pypi.org/project/qadence/)\n[![License](https://img.shields.io/badge/License-MIT--derived-yellow.svg)](https://opensource.org/licenses/MIT)\n![Coverage](https://img.shields.io/codecov/c/github/pasqal-io/qadence?style=flat-square)\n\n\n## Feature highlights\n\n\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"./docs/extras/assets/qadence_arch.svg\" width=\"75%\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"./docs/extras/assets/qadence_arch.svg\" width=\"75%\"\u003e\n    \u003cimg alt=\"Qadence architecture\" src=\"./docs/assets/qadence_arch.svg\" width=\"75%\"\u003e\n  \u003c/picture\u003e\n\u003cp align=\"center\"\u003e\n\n* A [block-based system](docs/content/block_system.md) for composing _**complex digital-analog\n  programs**_ in a flexible and scalable manner, inspired by the Julia quantum SDK\n  [Yao.jl](https://github.com/QuantumBFS/Yao.jl) and functional programming concepts.\n\n* An intuitive [expression-based system](docs/content/parameters.md) developed on top of the symbolic library [Sympy](https://www.sympy.org/en/index.html) to construct _**parametric quantum programs**_ easily.\n\n* Out-of-the-box _**automatic differentiability**_ of quantum programs with [PyTorch](https://pytorch.org/) integration.\n\n* [High-order generalized parameter shift rules](docs/tutorials/advanced_tutorials/differentiability.md) for _**differentiating parametrized quantum operations**_.\n\n* A [simple interface](docs/tutorials/digital_analog_qc/analog-basics.md) to work with _**interacting neutral-atom qubit systems**_\n  using [arbitrary registers topologies](docs/content/register.md).\n\n## Installation guide\n\nQadence is available on [PyPI](https://pypi.org/project/qadence/) and can be installed using `pip` as follows:\n\n```bash\npip install qadence\n```\n\nThe default, pre-installed backend for Qadence is [PyQTorch](https://github.com/pasqal-io/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:\n\n* `visualization`: A visualization library to display quantum circuit diagrams.\n* `protocols`: A collection of [protocols](https://github.com/pasqal-io/qadence-protocols) for error mitigation in Qadence.\n* `libs`: A collection of [functionalities](https://github.com/pasqal-io/qadence-libs) for graph machine learning problems build on top of Qadence.\n* `pulser`: The [Pulser](https://github.com/pasqal-io/Pulser) backend for composing, simulating and executing pulse sequences for neutral-atom quantum devices (experimental).\n\nQadence also supports a `JAX` engine which is currently supporting the [Horqrux](https://github.com/pasqal-io/horqrux) backend. `horqrux` is currently only available via the [low-level API](examples/backends/low_level/horqrux_backend.py).\n\n\nTo install individual extras, use the following syntax (**IMPORTANT** Make sure to use quotes):\n\n```bash\npip install \"qadence[pulser,visualization]\"\n```\n\nTo install all available extras, simply do:\n\n```bash\npip install \"qadence[all]\"\n```\n\n**IMPORTANT**\nBefore installing `qadence` with the `visualization` extra, make sure to install the `graphviz` package\non your system:\n\n```bash\n# For Debian-based distributions (e.g. Debian, Ubuntu)\nsudo apt install graphviz\n\n# on MacOS\nbrew install graphviz\n\n# via conda\nconda install python-graphviz\n```\n\nOn Windows Linux Subsystem (WSL2) it has been reported that in some cases \"wslutilities\" must be installed.\nPlease follow instructions [here](https://wslutiliti.es/wslu/install.html) for your flavour.\nFor example on Ubuntu 22.04 LTS and later you must run:\n```\nsudo add-apt-repository ppa:wslutilities/wslu\nsudo apt update\nsudo apt install wslu\n```\n\n## Contributing\n\nBefore making a contribution, please review our [code of conduct](docs/getting_started/CODE_OF_CONDUCT.md).\n\n- **Submitting Issues:** To submit bug reports or feature requests, please use our [issue tracker](https://github.com/pasqal-io/qadence/issues).\n- **Developing in qadence:** To learn more about how to develop within `qadence`, please refer to [contributing guidelines](docs/getting_started/CONTRIBUTING.md).\n\n### Setting up qadence in development mode\n\nWe recommend to use the [`hatch`](https://hatch.pypa.io/latest/) environment manager to install `qadence` from source:\n\n```bash\npython -m pip install hatch\n\n# get into a shell with all the dependencies\npython -m hatch shell\n\n# run a command within the virtual environment with all the dependencies\npython -m hatch run python my_script.py\n```\n\n**WARNING**\n`hatch` will not combine nicely with other environment managers such as Conda. If you still want to use Conda,\ninstall it from source using `pip`:\n\n```bash\n# within the Conda environment\npython -m pip install -e .\n```\n\nUsers also report problems running Hatch on Windows, we suggest using WSL2.\n\n## Citation\n\nIf you use Qadence for a publication, we kindly ask you to cite our work using the following BibTex entry:\n\n```latex\n@article{qadence2025,\nauthor = {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},\nyear = {2025},\nmonth = {01},\npages = {1-14},\ntitle = {Qadence: a differentiable interface for digital and analog programs},\nvolume = {PP},\njournal = {IEEE Software},\ndoi = {10.1109/MS.2025.3536607}\n}\n```\n\n## License\nQadence is a free and open source software package, released under the PASQAL OPEN-SOURCE SOFTWARE LICENSE (MIT-derived).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpasqal-io%2Fqadence","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpasqal-io%2Fqadence","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpasqal-io%2Fqadence/lists"}