Open tanujkhattar opened 6 months ago
CHadamard is implemented. I've annotated it with 2 rotations and 4 cliffords with the following description:
This is based on the decomposition provided by
cirq.decompose_multi_controlled_rotation
which uses three cirq.MatrixGate's to do a controlled version of any single-qubit gate. The first MatrixGate happens to be a clifford, Hadamard operation in this case. The other two are considered 'rotations'.
We should update the annotation with 2 T gates + 9 cliffords instead of 2 rotations as per my comment in https://github.com/quantumlib/Qualtran/issues/233
Here is a quirk link that shows the decomposition
Specifically, this part:
CHadamard and CZPowGate exist.
CRx, CRy, CRz, CXPowGate, CYPowGate are needed.
I've encountered CS and CT in the library; we need those as well.
For Rx(theta) and friends; we do angle simplification in the QECGatesCost resource counting. We look for angles that are actually clifford or the T gate. The existing hacky logic (that links to this issue) treats any Controlled(Rotation) as one rotation
Circuits for CT https://quantumcomputing.stackexchange.com/a/13135
A user points out that the QECGatesCost
doesn't accurately track clifford count for controlled rotations.
Some bloqs which need this are
etc.