Cirq

用于创建、编辑和调用噪声中间量级量子(NISQ)电路的 python 框架。「A python framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.」

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

Features
Installation
Quick Start
Documentation
Integrations
Community
Citing Cirq
Contact

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 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? OpenFermionOpenFermion-FQEOpenFermion-PySCFOpenFermion-Psi4
Quantum machine learning (QML)? TensorFlow Quantum
Real experiments using Cirq? ReCirq

Community

Cirq has benefited from open-source 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 code of conduct for our
community.

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

  • Do you have questions about using Cirq? Post them to the Quantum Computing
    Stack Exchange
    and tag them with the cirq tag. You can also search past
    questions using that tag – it's a great way to learn!
  • Would you like to get more involved in Cirq development? Cirq Cynq is our
    biweekly virtual meeting of contributors to discuss everything from issues to
    ongoing efforts, as well as to ask questions. Become a member of
    cirq-dev to get an
    automatic meeting invitation!

Issues and Pull Requests

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.

Main metrics

Overview
Name With Ownerquantumlib/Cirq
Primary LanguagePython
Program languagePython (Language Count: 7)
Platform
License:Apache License 2.0
所有者活动
Created At2017-12-14 23:41:49
Pushed At2025-04-18 23:52:48
Last Commit At
Release Count30
Last Release Namev1.5.0 (Posted on 2025-04-09 20:14:52)
First Release Namev0.1 (Posted on )
用户参与
Stargazers Count4.5k
Watchers Count186
Fork Count1.1k
Commits Count4.2k
Has Issues Enabled
Issues Count2348
Issue Open Count203
Pull Requests Count4222
Pull Requests Open Count20
Pull Requests Close Count689
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private