Skip to content

EigenGate equality does not account for exponent when comparing global phase #7052

Closed
@daxfohl

Description

@daxfohl

Description of the issue

global phase should be multiplied by the exponent and normalized when comparing eigen gates.

How to reproduce the issue

https://github.com/quantumlib/Cirq/blob/main/cirq-core/cirq/ops/common_gates_test.py#L247-L249 has ZPowGate(phase=-0.5)**5, and https://github.com/quantumlib/Cirq/blob/main/cirq-core/cirq/ops/common_gates_test.py#L252 has a ZPowGate(phase=-0.1)**5 in a different equality group. These are equal gates with the same unitary though, and should be in the same equality group. In the first, the exponentiated phase causes a -5/4 rotation, and in the second it causes a -1/4 rotation, so both end up at the same spot.

Unitaries:

[[0-1j 0+0j]
 [0+0j 0+1j]]

[[0-1j 0+0j]
 [0+0j 0+1j]]

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bug-reportSomething doesn't seem to work.triage/acceptedA consensus emerged that this bug report, feature request, or other action should be worked on

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions