---
title: DefaultUnitarySynthesis (v2.3)
description: API reference for qiskit.transpiler.passes.synthesis.default_unitary_synth_plugin.DefaultUnitarySynthesis in qiskit v2.3
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/2.3/qiskit.transpiler.passes.synthesis.default_unitary_synth_plugin.DefaultUnitarySynthesis
---

# DefaultUnitarySynthesis

*class* `qiskit.transpiler.passes.synthesis.default_unitary_synth_plugin.DefaultUnitarySynthesis`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.3/qiskit/transpiler/passes/synthesis/default_unitary_synth_plugin.py#L65-L144)

Bases: [`UnitarySynthesisPlugin`](/docs/api/qiskit/2.3/qiskit.transpiler.passes.synthesis.plugin.UnitarySynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.UnitarySynthesisPlugin")

The default unitary synthesis plugin.

## Attributes

### max\_qubits

### min\_qubits

### supported\_bases

### supports\_basis\_gates

### supports\_coupling\_map

### supports\_gate\_errors

### supports\_gate\_errors\_by\_qubit

### supports\_gate\_lengths

### supports\_gate\_lengths\_by\_qubit

### supports\_natural\_direction

### supports\_pulse\_optimize

### supports\_target

## Methods

### run

`run(unitary, **options)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.3/qiskit/transpiler/passes/synthesis/default_unitary_synth_plugin.py#L116-L144)

Run synthesis for the given unitary matrix

**Parameters**

- **unitary** ([*numpy.ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray)) – The unitary matrix to synthesize to a [`DAGCircuit`](/docs/api/qiskit/2.3/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit") object
- **options** – The optional kwargs that are passed based on the output the `support_*` methods on the class. Refer to the documentation for these methods on [`UnitarySynthesisPlugin`](/docs/api/qiskit/2.3/qiskit.transpiler.passes.synthesis.plugin.UnitarySynthesisPlugin "qiskit.transpiler.passes.synthesis.plugin.UnitarySynthesisPlugin") to see what the keys and values are.

**Returns**

The dag circuit representation of the unitary. Alternatively, you can return a tuple of the form `(dag, wires)` where `dag` is the dag circuit representation of the circuit representation of the unitary and `wires` is the mapping wires to use for [`qiskit.dagcircuit.DAGCircuit.substitute_node_with_dag()`](/docs/api/qiskit/2.3/qiskit.dagcircuit.DAGCircuit#substitute_node_with_dag "qiskit.dagcircuit.DAGCircuit.substitute_node_with_dag"). If you return a tuple and `wires` is `None` this will behave just as if only a [`DAGCircuit`](/docs/api/qiskit/2.3/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit") was returned. Additionally if this returns `None` no substitution will be made.

**Return type**

[DAGCircuit](/docs/api/qiskit/2.3/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit")
