quantumlib / Cirq

A python framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.
Apache License 2.0
4.19k stars 995 forks source link

Devices: Full Clifford group gates support #3639

Closed balopat closed 2 years ago

balopat commented 3 years ago

Feature: Full Clifford group support

Problem: Currently Clifford group gates are supported via the addition of the _acton to gates in Cirq (this is a work in progress). This means only certain gates can be simulated. One could instead support the entire Clifford group via it’s specification of a symplectic matrices plus a vector describing the phases of the Pauli group. In addition this would include better support for the Pauli group and stabilizer groups to the level of supporting NISQ quantum error correction work (error mitigation)

Rough requirements:

smitsanghavi commented 3 years ago

Prior discussion on similar lines (I think): https://github.com/quantumlib/Cirq/issues/2423#issuecomment-606522903

For the record, we already support detecting arbitrary 2x2 unitaries as Clifford or not (as the fallback strategy if the _act_on_ method isn't implemented). Generalizing this to larger unitary matrices was considered too expensive at the time.

95-martin-orion commented 2 years ago

@MichaelBroughton is this resolved as of #4791?

95-martin-orion commented 2 years ago

Confirmed with Mike, this is complete.