MCXSynthesisNDirtyI15
class qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDirtyI15
Bases: HighLevelSynthesisPlugin
Synthesis plugin for a multi-controlled X gate based on the paper by Iten et al. (2016).
See [1] for details.
This plugin name is :mcx.n_dirty_i15
which can be used as the key on an HLSConfig
object to use this method with HighLevelSynthesis
.
For a multi-controlled X gate with control qubits this synthesis method requires additional dirty auxiliary qubits. The synthesized circuit consists of qubits and at most CX gates. For explicit efficient circuits are used instead.
The plugin supports the following plugin-specific options:
- num_clean_ancillas: The number of clean auxiliary qubits available.
- num_dirty_ancillas: The number of dirty auxiliary qubits available.
- relative_phase: When set to
True
, the method applies the optimized multi-controlled X gate up to a relative phase, in a way that, by lemma 8 of [1], the relative phases of theaction part
cancel out with the phases of thereset part
. - action_only: when set to
True
, the method applies only theaction part
of lemma 8 of [1].
References
- Iten et. al., Quantum Circuits for Isometries, Phys. Rev. A 93, 032318 (2016), arXiv:1501.06911
Methods
run
run(high_level_object, coupling_map=None, target=None, qubits=None, **options)
Run synthesis for the given MCX gate.