Skip to main contentIBM Quantum Documentation

# Circuit Synthesis

`qiskit.synthesis¶`

## Evolution Synthesis

`¶`

`EvolutionSynthesis`()Interface for evolution synthesis algorithms.
`ProductFormula`(order[, reps, ...])Product formula base class for the decomposition of non-commuting operator exponentials.
`LieTrotter`([reps, insert_barriers, ...])The Lie-Trotter product formula.
`SuzukiTrotter`([order, reps, ...])The (higher order) Suzuki-Trotter product formula.
`MatrixExponential`()Exact operator evolution via matrix exponentiation and unitary synthesis.

## Linear Function 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`(mat)Synthesize linear reversible circuit for linear nearest-neighbor architectures using Kutin, Moulton, Smithline method.

## Permutation 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`(pattern)Synthesize a permutation circuit for a fully-connected architecture using sorting.
`synth_permutation_acg`(pattern)Synthesize a permutation circuit for a fully-connected architecture using the Alon, Chung, Graham method.

## Clifford Synthesis

`¶`

`synth_clifford_full`(clifford[, method])Decompose a Clifford operator into a QuantumCircuit.
`synth_clifford_ag`(clifford)Decompose a Clifford operator into a QuantumCircuit based on Aaronson-Gottesman method.
`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`(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`(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`(elem)Decompose a CNOTDihedral element into a QuantumCircuit.
`synth_cnotdihedral_two_qubits`(elem)Decompose a CNOTDihedral element on a single qubit and two qubits into a QuantumCircuit.
`synth_cnotdihedral_general`(elem)Decompose a CNOTDihedral element into a QuantumCircuit.

## Discrete Basis Synthesis

`¶`

`SolovayKitaevDecomposition`([...])The Solovay Kitaev discrete decomposition algorithm.
Was this page helpful?