github quantumlib/Cirq v1.2.0

latest release: v1.3.0
9 months ago

Cirq v1.2.0 release

Summary

This Cirq release focuses on making it easier to express and do resource estimations for Fault Tolerant Quantum Algorithms, with a number of high level improvement summarized as follows:

Improvements to Cirq-Core

  • Cirq protocols (eg: cirq.unitary) and simulators (eg: cirq.Simulator) now support gates that allocate new qubits as part of their decomposition
  • cirq.QubitManager is a new top-level abstraction that defines the interface for a qubit allocator/deallocator which can be used to manage ancilla qubits at the time of circuit construction.
  • cirq.decompose infrastructure is updated s.t. new composite gates can override the _decompose_with_context_ method to gain access to a cirq.DecompositionContext that contains options such as a cirq.QubitManager to help with allocating ancilla qubits at the time of circuit construction.

Cirq-FT: A new sub-package for Fault-Tolerant algorithms

Cirq-FT is a new sub-package for rapid prototyping and resource estimation of fault tolerant algorithms that extends Cirq. Some notable features include

  • A concept of qubit Register / Registers that make it easier for composite gates to express their signature in terms of named groups of logical qubits.
  • A cirq_ft.GateWithRegisters base class, which acts as a SHIM on top of the flat qubits API of cirq.Gate class and helps users define their composite gates using qubit registers.
  • New protocols, like cirq_ft.TComplexity, for macroscopic resource estimation.
  • New compilation transformers for mapping ancilla allocation / deallocation requests in a compute graph (eg: cirq circuit) to physical qubits, supporting both clean and dirty allocations.
  • A well-annotated and well-tested library of hierarchical gate decompositions which implements all the circuit primitives from Encoding Electronic Spectra in Quantum Circuits with Linear T Complexity. Table IV containing resource estimates of circuits with ~10^10 T-gates can be reproduced in under a minute demonstrating the scalability of the framework.

Other notable changes

  • Dropped support for Python 3.7 and Python 3.8 and added support for Python 3.11
  • Performance improvements for parameter resolution and a new __cirq_debug__ flag that provides an option to disable validations at the time of circuit construction.

What's Changed

New Contributors

Full Changelog: v1.1.0...v1.2.0

A Huge Thank You

Thank you to all our contributors for this release:

Ben Greiner, Cheng Xing, Doug Strain, Joe Schulte, Jon Donovan, Mark Edmiston, Matthew Harrigan, Matthew Neeley, Michael A. Perlin, Noureldin, Ogah Jackreece Ejini, Orion Martin, Pavol Juhas, Piotr Lewandowski, S Jeeva, Seneca Meeks, Siddharth Mehta, Spence Churchill, Tanuj Khattar, Tarun Singhania, Uzair Faruqui, Victory Omole, William Courtney, carthick, jli0108, nickdgardner, richrines1, sarahsor, skushnir123, xXnathankerrXx, yinghui-hu

Don't miss a new Cirq release

NewReleases is sending notifications on new releases.