88 lines
11 KiB
Plaintext
88 lines
11 KiB
Plaintext
---
|
||
title: synthesis
|
||
description: API reference for qiskit.synthesis
|
||
in_page_toc_min_heading_level: 2
|
||
python_api_type: module
|
||
python_api_name: qiskit.synthesis
|
||
---
|
||
|
||
<span id="module-qiskit.synthesis" />
|
||
|
||
<span id="qiskit-synthesis" />
|
||
|
||
<span id="circuit-synthesis-qiskit-synthesis" />
|
||
|
||
# Circuit Synthesis
|
||
|
||
<span id="module-qiskit.synthesis" />
|
||
|
||
`qiskit.synthesis`
|
||
|
||
<span id="id1" />
|
||
|
||
## Evolution Synthesis
|
||
|
||
| | |
|
||
| ---------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
||
| [`EvolutionSynthesis`](qiskit.synthesis.EvolutionSynthesis "qiskit.synthesis.EvolutionSynthesis")() | Interface for evolution synthesis algorithms. |
|
||
| [`ProductFormula`](qiskit.synthesis.ProductFormula "qiskit.synthesis.ProductFormula")(order\[, reps, ...]) | Product formula base class for the decomposition of non-commuting operator exponentials. |
|
||
| [`LieTrotter`](qiskit.synthesis.LieTrotter "qiskit.synthesis.LieTrotter")(\[reps, insert\_barriers, ...]) | The Lie-Trotter product formula. |
|
||
| [`SuzukiTrotter`](qiskit.synthesis.SuzukiTrotter "qiskit.synthesis.SuzukiTrotter")(\[order, reps, ...]) | The (higher order) Suzuki-Trotter product formula. |
|
||
| [`MatrixExponential`](qiskit.synthesis.MatrixExponential "qiskit.synthesis.MatrixExponential")() | Exact operator evolution via matrix exponentiation and unitary synthesis. |
|
||
| [`QDrift`](qiskit.synthesis.QDrift "qiskit.synthesis.QDrift")(\[reps, insert\_barriers, ...]) | The QDrift Trotterization method, which selects each each term in the Trotterization randomly, with a probability proportional to its weight. |
|
||
|
||
## Linear Function Synthesis
|
||
|
||
| | |
|
||
| ----------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
||
| [`synth_cnot_count_full_pmh`](qiskit.synthesis.synth_cnot_count_full_pmh "qiskit.synthesis.synth_cnot_count_full_pmh")(state\[, section\_size]) | Synthesize linear reversible circuits for all-to-all architecture using Patel, Markov and Hayes method. |
|
||
| [`synth_cnot_depth_line_kms`](qiskit.synthesis.synth_cnot_depth_line_kms "qiskit.synthesis.synth_cnot_depth_line_kms")(mat) | Synthesize linear reversible circuit for linear nearest-neighbor architectures using Kutin, Moulton, Smithline method. |
|
||
|
||
## Linear-Phase Synthesis
|
||
|
||
| | |
|
||
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------- |
|
||
| [`synth_cz_depth_line_mr`](qiskit.synthesis.synth_cz_depth_line_mr "qiskit.synthesis.synth_cz_depth_line_mr")(mat) | Synthesis of a CZ circuit for linear nearest neighbour (LNN) connectivity, based on Maslov and Roetteler. |
|
||
|
||
## Permutation Synthesis
|
||
|
||
| | |
|
||
| ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
|
||
| [`synth_permutation_depth_lnn_kms`](qiskit.synthesis.synth_permutation_depth_lnn_kms "qiskit.synthesis.synth_permutation_depth_lnn_kms")(pattern) | Synthesize a permutation circuit for a linear nearest-neighbor architecture using the Kutin, Moulton, Smithline method. |
|
||
| [`synth_permutation_basic`](qiskit.synthesis.synth_permutation_basic "qiskit.synthesis.synth_permutation_basic")(pattern) | Synthesize a permutation circuit for a fully-connected architecture using sorting. |
|
||
| [`synth_permutation_acg`](qiskit.synthesis.synth_permutation_acg "qiskit.synthesis.synth_permutation_acg")(pattern) | Synthesize a permutation circuit for a fully-connected architecture using the Alon, Chung, Graham method. |
|
||
|
||
## Clifford Synthesis
|
||
|
||
| | |
|
||
| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||
| [`synth_clifford_full`](qiskit.synthesis.synth_clifford_full "qiskit.synthesis.synth_clifford_full")(clifford\[, method]) | Decompose a Clifford operator into a QuantumCircuit. |
|
||
| [`synth_clifford_ag`](qiskit.synthesis.synth_clifford_ag "qiskit.synthesis.synth_clifford_ag")(clifford) | Decompose a Clifford operator into a QuantumCircuit based on Aaronson-Gottesman method. |
|
||
| [`synth_clifford_bm`](qiskit.synthesis.synth_clifford_bm "qiskit.synthesis.synth_clifford_bm")(clifford) | Optimal CX-cost decomposition of a Clifford operator on 2-qubits or 3-qubits into a QuantumCircuit based on Bravyi-Maslov method. |
|
||
| [`synth_clifford_greedy`](qiskit.synthesis.synth_clifford_greedy "qiskit.synthesis.synth_clifford_greedy")(clifford) | Decompose a Clifford operator into a QuantumCircuit based on the greedy Clifford compiler that is described in Appendix A of Bravyi, Hu, Maslov and Shaydulin. |
|
||
| [`synth_clifford_layers`](qiskit.synthesis.synth_clifford_layers "qiskit.synthesis.synth_clifford_layers")(cliff\[, ...]) | Synthesis of a Clifford into layers, it provides a similar decomposition to the synthesis described in Lemma 8 of Bravyi and Maslov. |
|
||
| [`synth_clifford_depth_lnn`](qiskit.synthesis.synth_clifford_depth_lnn "qiskit.synthesis.synth_clifford_depth_lnn")(cliff) | Synthesis of a Clifford into layers for linear-nearest neighbour connectivity. |
|
||
|
||
## CNOTDihedral Synthesis
|
||
|
||
| | |
|
||
| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
|
||
| [`synth_cnotdihedral_full`](qiskit.synthesis.synth_cnotdihedral_full "qiskit.synthesis.synth_cnotdihedral_full")(elem) | Decompose a CNOTDihedral element into a QuantumCircuit. |
|
||
| [`synth_cnotdihedral_two_qubits`](qiskit.synthesis.synth_cnotdihedral_two_qubits "qiskit.synthesis.synth_cnotdihedral_two_qubits")(elem) | Decompose a CNOTDihedral element on a single qubit and two qubits into a QuantumCircuit. |
|
||
| [`synth_cnotdihedral_general`](qiskit.synthesis.synth_cnotdihedral_general "qiskit.synthesis.synth_cnotdihedral_general")(elem) | Decompose a CNOTDihedral element into a QuantumCircuit. |
|
||
|
||
## Stabilizer State Synthesis
|
||
|
||
| | |
|
||
| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||
| [`synth_stabilizer_layers`](qiskit.synthesis.synth_stabilizer_layers "qiskit.synthesis.synth_stabilizer_layers")(stab\[, ...]) | Synthesis of a stabilizer state into layers. |
|
||
| [`synth_stabilizer_depth_lnn`](qiskit.synthesis.synth_stabilizer_depth_lnn "qiskit.synthesis.synth_stabilizer_depth_lnn")(stab) | Synthesis of an n-qubit stabilizer state for linear-nearest neighbour connectivity, in 2-qubit depth 2\*n+2 and two distinct CX layers, using CX and phase gates (S, Sdg or Z). |
|
||
|
||
## Discrete Basis Synthesis
|
||
|
||
| | |
|
||
| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
||
| [`SolovayKitaevDecomposition`](qiskit.synthesis.SolovayKitaevDecomposition "qiskit.synthesis.SolovayKitaevDecomposition")(\[...]) | The Solovay Kitaev discrete decomposition algorithm. |
|
||
| [`generate_basic_approximations`](qiskit.synthesis.generate_basic_approximations "qiskit.synthesis.generate_basic_approximations")(basis\_gates, depth) | Generates a list of `GateSequence``s with the gates in ``basic_gates`. |
|
||
|