Skip to main content

A toolkit for quantum circuit development with built-in, generalized quantum error mitigation, detection, and correction.

Project description

LogicalQ

Georgia Tech Quantum Computing Association's Quantum Error Correction Project

This is the repository where we store all code, tests, and demos for the implementation, simulation, and final hardware-ready code for our QEC toolkit.

The end goal of this project is to provide researchers with an easy-to-learn tool for working with LogicalCircuits, an extension of Qiskit's QuantumCircuits with generalized and optimized QEC methodology.

For more information about LogicalQ, please refer to our documentation: https://logicalq.readthedocs.io/.

Installation

To install the latest stable release of LogicalQ, install directly from the PyPI index via pip:

python -m pip install virtualenv
python -m virtualenv .venv
.venv/bin/activate
python -m pip install LogicalQ

To install the latest nightly version of LogicalQ, clone this repository and install via pip:

git clone https://github.com/GT-Quantum-Computing-Association/LogicalQ.git
cd LogicalQ
python -m pip install virtualenv
python -m virtualenv .venv
.venv/bin/activate
python -m pip install -e .

LogicalQ is written to function best on Unix/POSIX-like system, but it can also be installed on Windows and any other operating system which supports Python 3 and the necessary dependencies. We do our best to ensure compatibility with all major Linux, macOS, and Windows distributions. However, we recommend installing it in a Unix/POSIX-like environment for the highest-quality experience and guaranteed support of all features. If you use Windows, we recommend using WSL, which is documented at https://learn.microsoft.com/en-us/windows/wsl/.

Usage

LogicalQ is really easy to use, like this:

from LogicalQ.Logical import LogicalCircuit, LogicalStatevector
from LogicalQ.Library.QECCs import steane_code

lqc = LogicalCircuit(2, **steane_code)
lqc.encode([0,1], initial_states=[1,0])

lqc.h(0)
lqc.cx(0, 1)

lqc.append_qec_cycle()

lqc.measure_all()

lqc.draw("mpl")

lsv = LogicalStatevector(lqc)
lsv.draw("latex")

See the demos directory for more examples!

Contributing

We welcome contributions from anyone! A GitHub Issue may be used for making requests or reporting bugs. Any contributions should be merged from a branch (preferred for internal contributors from GT QCA) or forks (default for external contributors outside GT QCA). Please read our contributing guidelines.

Acknowledgements

LogicalQ wouldn't've been possible without the amazing members of Georgia Tech Quantum Computing Association who contributed to its development. We are also very grateful to all the developers of Qiskit, Stim, Stac, PECOS, MQT, and tqec, all of which have been invaluable references in developing this codebase. We are especially grateful to IBM Quantum for maintaining Qiskit as an open-source library which we use as the parent class for many of our own classes. Please cite these authors if you use their code or parts of their code which are present in LogicalQ.

Contact and feedback

If you have any questions, comments, or concerns regarding LogicalQ, feel free to contact the GT QCA team at aliceandbob@gatechquantum.com.

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

logicalq-0.1.0.tar.gz (85.1 kB view details)

Uploaded Source

Built Distribution

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

logicalq-0.1.0-py3-none-any.whl (95.7 kB view details)

Uploaded Python 3

File details

Details for the file logicalq-0.1.0.tar.gz.

File metadata

  • Download URL: logicalq-0.1.0.tar.gz
  • Upload date:
  • Size: 85.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for logicalq-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6a97d9859be88eaa9a5e78226724444bc844b4b4ba714f0316dd93340c707290
MD5 15521e886d6f31b94b9efb7076e2b954
BLAKE2b-256 687556189e47d0e1b8a042a4ae9a91e7b30eedb8d1479ffc7660a61b839c5c57

See more details on using hashes here.

File details

Details for the file logicalq-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: logicalq-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 95.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for logicalq-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 44d89ffb4107381aa490df1176be07c0baa90e137f3281fc2c81d7523e8e8f1a
MD5 f8a070980ff3f0ec0d5b3fec9b9a13e8
BLAKE2b-256 98f636b89de650fb9310f070015a17f94e25319fad2bf598c827fee32c1b9c8c

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