qiskit-documentation/docs/api/qiskit/0.40/synthesis.mdx

68 lines
7.9 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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" />
# Circuit Synthesis
<span id="module-qiskit.synthesis" />
`qiskit.synthesis`
## 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. |
## 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. |
## 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 \[1]. |
## 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. |
## Discrete Basis Synthesis
| | |
| --------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |
| [`SolovayKitaevDecomposition`](qiskit.synthesis.SolovayKitaevDecomposition "qiskit.synthesis.SolovayKitaevDecomposition")(\[...]) | The Solovay Kitaev discrete decomposition algorithm. |