Skip to main contentIBM Quantum Documentation
This page is from the dev version of Qiskit SDK. Go to the stable version

MCXSynthesisNDirtyI15

class qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDirtyI15

GitHub

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 k3k\ge 3 control qubits this synthesis method requires k2k - 2 additional dirty auxiliary qubits. The synthesized circuit consists of 2k12 * k - 1 qubits and at most 8k68 * k - 6 CX gates.

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 the action part cancel out with the phases of the reset part.
  • action_only: when set to True, the method applies only the action part of lemma 8 of [1].

References

  1. 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)

GitHub

Run synthesis for the given MCX gate.

Was this page helpful?
Report a bug or request content on GitHub.