# 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?