Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK Go to the latest version
Important

IBM Quantum Platform is moving and this version will be sunset on July 1. To get started on the new platform, read the migration guide.

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.