MCXRecursive#
- class qiskit.circuit.library.MCXRecursive(num_ctrl_qubits=None, label=None, ctrl_state=None)[source]#
Bases:
MCXGate
Implement the multi-controlled X gate using recursion.
Using a single ancilla qubit, the multi-controlled X gate is recursively split onto four sub-registers. This is done until we reach the 3- or 4-controlled X gate since for these we have a concrete implementation that do not require ancillas.
Create new MCX gate.
Attributes
- condition_bits#
Get Clbits in condition.
- ctrl_state#
Return the control state of the gate as a decimal integer.
- decompositions#
Get the decompositions of the instruction from the SessionEquivalenceLibrary.
- definition#
Return definition in terms of other basic gates. If the gate has open controls, as determined from self.ctrl_state, the returned definition is conjugated with X without changing the internal _definition.
- duration#
Get the duration.
- label#
Return instruction label
- name#
Get name of gate. If the gate has open controls the gate name will become:
<original_name_o<ctrl_state>
where <original_name> is the gate name for the default case of closed control qubits and <ctrl_state> is the integer value of the control state for the gate.
- num_ancilla_qubits#
The number of ancilla qubits.
- num_clbits#
Return the number of clbits.
- num_ctrl_qubits#
Get number of control qubits.
- Returns:
The number of control qubits for the gate.
- Return type:
- num_qubits#
Return the number of qubits.
- params#
Get parameters from base_gate.
- Returns:
List of gate parameters.
- Return type:
- Raises:
CircuitError -- Controlled gate does not define a base gate
- unit#
Get the time unit of duration.
Methods