---
title: KMSSynthesisLinearFunction (v2.0)
description: API reference for qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisLinearFunction in qiskit v2.0
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/2.0/qiskit.transpiler.passes.synthesis.hls_plugins.KMSSynthesisLinearFunction
---

# KMSSynthesisLinearFunction

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

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.0/qiskit/transpiler/passes/synthesis/hls_plugins.py#L673-L712)

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

Linear function synthesis plugin based on the Kutin-Moulton-Smithline method.

This plugin name is :`linear_function.kms` which can be used as the key on an [`HLSConfig`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.HLSConfig "qiskit.transpiler.passes.HLSConfig") object to use this method with [`HighLevelSynthesis`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.HighLevelSynthesis "qiskit.transpiler.passes.HighLevelSynthesis").

The plugin supports the following plugin-specific options:

- **use\_inverted: Indicates whether to run the algorithm on the inverse matrix**

  and to invert the synthesized circuit. In certain cases this provides a better decomposition than the direct approach.

- **use\_transposed: Indicates whether to run the algorithm on the transposed matrix**

  and to invert the order of CX gates in the synthesized circuit. In certain cases this provides a better decomposition than the direct approach.

## Methods

### run

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

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.0/qiskit/transpiler/passes/synthesis/hls_plugins.py#L690-L712)

Run synthesis for the given LinearFunction.
