-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Closed
Labels
mod: circuitRelated to the core of the `QuantumCircuit` class or the circuit libraryRelated to the core of the `QuantumCircuit` class or the circuit librarysynthesistype: feature requestNew feature or requestNew feature or request
Milestone
Description
What should we add?
Currently the synthesis methods of the multi-controlled gates are part of their definition.
We would like to have a single MCXGate()
class, and an HLS plugin that checks the number of clean or dirty ancillas, and chooses the optimal synthesis method (see #12729).
The synthesis library will therefore include a new section Multi-controlled gates synthesis which will include the following functions:
-
synth_mcx_no_ancillas
- the current definition of theMCXGate
-
synth_mcx_one_clean_ancilla
- the current definition of theMCXRecursiveGate
-
synth_mcx_n_dirty_ancillas
- the current definition of theMCVChainGate
-
synth_mcx_graysynth_no_ancillas
- the current definition of theMCXGrayCode
(and the internalMCU1Gate
). Note that the number of CX gates grows exponentially in the number of qubits. -
synth_mcp_no_ancillas
- the current definition if theMCPhaseGate
synth_mcp_graysynth_no_ancillas
- the current definition of theMCXGrayCode
(and the internalMCU1Gate
). Only for parametrized gates. Note that the number of CX gates grows exponentially in the number of qubits.-
synth_mcmt_no_ancillas
- the current definition of theMCMTGate
-
synth_mcmt_n_clean_ancillas
- the current definition of theMCMTVChainGate
-
synth_mcrx_no_ancillas
- the current synthesis of the mcrx method -
synth_mcry_no_ancillas
- the current synthesis of the mcrx method -
synth_mcrz_no_ancillas
- the current synthesis of the mcrz method
The following classes will be deprecated in Qiskit 2.0:
The following classes will remain in the circuit library (including synthesis methods with ancillas when applicable):
Question:
Should we add the gates MCRX, MCRY and MCRZ to the circuit library?
See the discussion in #12048
### Tasks
- [ ] https://github.com/Qiskit/qiskit/pull/12904
- [ ] https://github.com/Qiskit/qiskit/pull/12961
- [ ] https://github.com/Qiskit/qiskit/pull/13150
- [ ] #13507
Metadata
Metadata
Assignees
Labels
mod: circuitRelated to the core of the `QuantumCircuit` class or the circuit libraryRelated to the core of the `QuantumCircuit` class or the circuit librarysynthesistype: feature requestNew feature or requestNew feature or request