qiskit icon indicating copy to clipboard operation
qiskit copied to clipboard

Add remaining standard gates to rust representation

Open mtreinish opened this issue 1 year ago • 3 comments

What should we add?

After #12459 has merged there is now a native rust representation of the standard gate library. However, due to the size of #12459 not all gates were added to this rust representation. This issue tracks the migration of the remaining gates so that we have the complete standard gate library in rust. The remaining gates are:

### Tasks
- [x] C3XGate https://github.com/Qiskit/qiskit/pull/12659
- [x] C3SXGate https://github.com/Qiskit/qiskit/pull/12659
- [ ] C4XGate https://github.com/Qiskit/qiskit/pull/12659
- [x] DCXGate https://github.com/Qiskit/qiskit/pull/12644
- [x] CHGate https://github.com/Qiskit/qiskit/pull/12639
- [x] CPhaseGate https://github.com/Qiskit/qiskit/pull/12639
- [x] CRXGate https://github.com/Qiskit/qiskit/pull/12648
- [x] CRYGate https://github.com/Qiskit/qiskit/pull/12648
- [x] CRZGate https://github.com/Qiskit/qiskit/pull/12648
- [x] CSGate https://github.com/Qiskit/qiskit/pull/12639
- [x] CSdgGate https://github.com/Qiskit/qiskit/pull/12639
- [x] CSwapGate https://github.com/Qiskit/qiskit/pull/12639
- [x] CSXGate https://github.com/Qiskit/qiskit/pull/12639
- [x] CUGate https://github.com/Qiskit/qiskit/pull/12659
- [x] CU1Gate https://github.com/Qiskit/qiskit/pull/12659
- [x] CU3Gate https://github.com/Qiskit/qiskit/pull/12659
- [x] CCZGate https://github.com/Qiskit/qiskit/pull/12659
- [x] MSGate
- [x] PhaseGate
- [ ] RCCXGate
- [ ] RC3XGate
- [x] RGate https://github.com/Qiskit/qiskit/pull/12662 ~https://github.com/Qiskit/qiskit/pull/12507~
- [x] RXXGate https://github.com/Qiskit/qiskit/pull/12672
- [x] RYYGate https://github.com/Qiskit/qiskit/pull/12672
- [x] RZZGate https://github.com/Qiskit/qiskit/pull/12672
- [x] RZXGate https://github.com/Qiskit/qiskit/pull/12672
- [x] XXMinusYYGate https://github.com/Qiskit/qiskit/pull/12606
- [x] XXPlusYYGate https://github.com/Qiskit/qiskit/pull/12606
- [x] SGate https://github.com/Qiskit/qiskit/pull/12598
- [x] SdgGate https://github.com/Qiskit/qiskit/pull/12598
- [x] iSwapGate https://github.com/Qiskit/qiskit/pull/12598
- [x] SXGate https://github.com/Qiskit/qiskit/pull/12598
- [x] SXdgGate https://github.com/Qiskit/qiskit/pull/12598
- [x] TGate https://github.com/Qiskit/qiskit/pull/12598
- [x] TdgGate https://github.com/Qiskit/qiskit/pull/12598
- [x] U1Gate https://github.com/Qiskit/qiskit/pull/12572
- [x] U2Gate https://github.com/Qiskit/qiskit/pull/12572
- [x] U3Gate https://github.com/Qiskit/qiskit/pull/12572

mtreinish avatar Jun 13 '24 09:06 mtreinish

EDIT: All done now. I will give a try to the following gates with the following indices in the table:

  • SGate -> 21
  • SdgGate -> 22
  • iSwapGate -> 23
  • SXGate -> 24
  • SXdgGate -> 25
  • TGate -> 26
  • TdgGate -> 27

ElePT avatar Jun 18 '24 08:06 ElePT

Is MSGate here by accident?

eliarbel avatar Jun 27 '24 07:06 eliarbel

I just copied this from the list in the python code. We can skip MSGate since it shouldn't matter unless we need to generate it from Rust. Since it's mostly there for backwards compatibility and has been superseded by GMS we don't need to worry about it for this issue. It'll be easy to add in the future if the need arises.

mtreinish avatar Jun 27 '24 10:06 mtreinish