Skip to main content

A framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.

Project description

Cirq logo

Python package for writing, manipulating, and running quantum circuits on quantum computers and simulators.

Licensed under the Apache 2.0 license Compatible with Python versions 3.10 and higher OpenSSF Best Practices Cirq project on PyPI Archived in Zenodo

FeaturesInstallationQuick StartDocumentationIntegrationsCommunityCiting CirqContact

Features

Cirq provides useful abstractions for dealing with today’s noisy intermediate-scale quantum (NISQ) computers, where the details of quantum hardware are vital to achieving state-of-the-art results. Some of its features include:

  • Flexible gate definitions and custom gates
  • Parameterized circuits with symbolic variables
  • Circuit transformation, compilation and optimization
  • Hardware device modeling
  • Noise modeling
  • Multiple built-in quantum circuit simulators
  • Integration with qsim for high-performance simulation
  • Interoperability with NumPy and SciPy
  • Cross-platform compatibility

Installation

Cirq supports Python version 3.10 and later, and can be used on Linux, MacOS, and Windows, as well as Google Colab. For complete installation instructions, please refer to the Install section of the online Cirq documentation.

Quick Start – “Hello Qubit” Example

Here is a simple example to get you up and running with Cirq after you have installed it. Start a Python interpreter, and then type the following:

import cirq

# Pick a qubit.
qubit = cirq.GridQubit(0, 0)

# Create a circuit.
circuit = cirq.Circuit(
    cirq.X(qubit)**0.5,  # Square root of NOT.
    cirq.measure(qubit, key='m')  # Measurement.
)
print("Circuit:")
print(circuit)

# Simulate the circuit several times.
simulator = cirq.Simulator()
result = simulator.run(circuit, repetitions=20)
print("Results:")
print(result)

Python should then print output similar to this:

Circuit:
(0, 0): ───X^0.5───M('m')───
Results:
m=11000111111011001000

Congratulations! You have run your first quantum simulation in Cirq. You can continue to learn more by exploring the many Cirq tutorials described below.

Cirq Documentation

The primary documentation site for Cirq is the Cirq home page on the Quantum AI website. There and elsewhere, a variety of documentation for Cirq is available.

Tutorials

Reference Documentation

  • Docs for the current stable release correspond to what you get with pip install cirq.
  • Docs for the pre-release correspond to what you get with pip install --upgrade cirq~=1.0.dev.

Examples

  • The examples subdirectory of the Cirq GitHub repo has many programs illustrating the application of Cirq to everything from common textbook algorithms to more advanced methods.
  • The Experiments page on the Cirq documentation site has yet more examples, from simple to advanced.

Change log

  • The Cirq releases page on GitHub lists the changes in each release.

Integrations

Google Quantum AI has a suite of open-source software that lets you do more with Cirq. From high-performance simulators, to novel tools for expressing and analyzing fault-tolerant quantum algorithms, our software stack lets you develop quantum programs for a variety of applications.

Your interests Software to explore
Quantum algorithms?
Fault-tolerant quantum computing (FTQC)?
Qualtran
Large circuits and/or a lot of simulations? qsim
Circuits with thousands of qubits and millions of Clifford operations? Stim
Quantum error correction (QEC)? Stim
Chemistry and/or material science? OpenFermion
OpenFermion-FQE
OpenFermion-PySCF
OpenFermion-Psi4
Quantum machine learning (QML)? TensorFlow Quantum
Real experiments using Cirq? ReCirq

Community

Total number of contributors to Cirq

Cirq has benefited from contributions by over 200 people and counting. We are dedicated to cultivating an open and inclusive community to build software for quantum computers, and have a community code of conduct.

Announcements

Stay on top of Cirq developments using the approach that best suits your needs:

Cirq releases take place approximately every quarter.

Questions and Discussions

  • Have questions about Cirq? Post them to the Quantum Computing Stack Exchange and tag them with cirq. You can also search past questions using that tag – it's a great way to learn!
  • Want meet other Cirq developers and participate in discussions? Join Cirq Cynq, our biweekly virtual meeting of contributors. Sign up to cirq-dev to get an automatic meeting invitation!

Contributions

Citing Cirq

When publishing articles or otherwise writing about Cirq, please cite the Cirq version you use – it will help others reproduce your results. We use Zenodo to preserve releases. The following links let you download the bibliographic record for the latest stable release of Cirq in some popular formats:

Download BibTeX bibliography record for latest Cirq release   Download CSL JSON bibliography record for latest Cirq release

For formatted citations and records in other formats, as well as records for all releases of Cirq past and present, please visit the Cirq page on Zenodo.

Contact

For any questions or concerns not addressed here, please email quantum-oss-maintainers@google.com.

Disclaimer

Cirq is not an official Google product. Copyright 2019 The Cirq Developers.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

cirq-1.5.0-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file cirq-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: cirq-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.10.0

File hashes

Hashes for cirq-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c710e5be35087a6d2457dcb1ecb93a0a492a98bb3b27e8a14b8a3a9ad14dca3c
MD5 006f4464b7b525cacf305e72ab1d057a
BLAKE2b-256 dbd75dff0e4d5e697118c44b702da1bdcfc85a7822adb13d8a93c4d1fd23a06e

See more details on using hashes here.

Supported by

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