---
title: MCXSynthesisNDirtyI15 (latest version)
description: API reference for qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDirtyI15 in the latest version of qiskit
source: https://quantum.cloud.ibm.com/docs/en/api/qiskit/qiskit.transpiler.passes.synthesis.hls_plugins.MCXSynthesisNDirtyI15
---

# MCXSynthesisNDirtyI15

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

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.5/qiskit/transpiler/passes/synthesis/hls_plugins.py#L1069-L1119)

Bases: [`HighLevelSynthesisPlugin`](/docs/api/qiskit/qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.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`](/docs/api/qiskit/qiskit.transpiler.passes.HLSConfig "qiskit.transpiler.passes.HLSConfig") object to use this method with [`HighLevelSynthesis`](/docs/api/qiskit/qiskit.transpiler.passes.HighLevelSynthesis "qiskit.transpiler.passes.HighLevelSynthesis").

For a multi-controlled X gate with $k\ge 4$ control qubits this synthesis method requires $k - 2$ additional dirty auxiliary qubits. The synthesized circuit consists of $2 * k - 1$ qubits and at most $8 * k - 6$ CX gates. For $k\le 3$ 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 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](https://arxiv.org/abs/1501.06911)

## Methods

### run

`run(high_level_object, coupling_map=None, target=None, qubits=None, **options)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.5/qiskit/transpiler/passes/synthesis/hls_plugins.py#L1098-L1119)

Run synthesis for the given MCX gate.
