§
    º³Ùg•  ã                   óV  — d Z ddlmZmZmZmZmZmZ ddlm	Z	m
Z
mZmZ ddlmZmZ ddlmZmZmZ ddlmZmZmZmZmZmZ ddlmZmZmZ ddlm Z m!Z!m"Z" dd	l#m$Z$m%Z% dd
l&m'Z'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2m3Z3m4Z4 ddl5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z= ddl>m?Z?m@Z@mAZAmBZBmCZC dS )aó  
===========================================
Circuit Synthesis (:mod:`qiskit.synthesis`)
===========================================

.. currentmodule:: qiskit.synthesis

.. _evolution_synthesis:

Evolution Synthesis
===================

.. autosummary::
   :toctree: ../stubs/

   EvolutionSynthesis
   ProductFormula
   LieTrotter
   SuzukiTrotter
   MatrixExponential
   QDrift

Linear Function Synthesis
=========================

.. autofunction:: synth_cnot_count_full_pmh
.. autofunction:: synth_cnot_depth_line_kms

Linear-Phase Synthesis
======================

.. autofunction:: synth_cz_depth_line_mr
.. autofunction:: synth_cx_cz_depth_line_my
.. autofunction:: synth_cnot_phase_aam

Permutation Synthesis
=====================

.. autofunction:: synth_permutation_depth_lnn_kms
.. autofunction:: synth_permutation_basic
.. autofunction:: synth_permutation_acg
.. autofunction:: synth_permutation_reverse_lnn_kms

Clifford Synthesis
==================

.. autofunction:: synth_clifford_full
.. autofunction:: synth_clifford_ag
.. autofunction:: synth_clifford_bm
.. autofunction:: synth_clifford_greedy
.. autofunction:: synth_clifford_layers
.. autofunction:: synth_clifford_depth_lnn

CNOTDihedral Synthesis
======================

.. autofunction:: synth_cnotdihedral_full
.. autofunction:: synth_cnotdihedral_two_qubits
.. autofunction:: synth_cnotdihedral_general

Stabilizer State Synthesis
==========================

.. autofunction:: synth_stabilizer_layers
.. autofunction:: synth_stabilizer_depth_lnn
.. autofunction:: synth_circuit_from_stabilizers

Discrete Basis Synthesis
========================

.. autosummary::
   :toctree: ../stubs/

   SolovayKitaevDecomposition

.. autofunction:: generate_basic_approximations

Basis Change Synthesis
======================

.. autofunction:: synth_qft_line
.. autofunction:: synth_qft_full

Unitary Synthesis
=================

Decomposition of general :math:`2^n \times 2^n` unitary matrices for any number of qubits.

.. autofunction:: qs_decomposition

The Approximate Quantum Compiler is available as the module :mod:`qiskit.synthesis.unitary.aqc`.

One-Qubit Synthesis
===================

.. autosummary::
   :toctree: ../stubs/

   OneQubitEulerDecomposer

Two-Qubit Synthesis
===================

.. autosummary::
   :toctree: ../stubs/

   TwoQubitBasisDecomposer
   XXDecomposer
   TwoQubitWeylDecomposition

.. autofunction:: two_qubit_cnot_decompose

Multi Controlled Synthesis
==========================

.. autofunction:: synth_mcmt_vchain
.. autofunction:: synth_mcx_n_dirty_i15
.. autofunction:: synth_mcx_n_clean_m15
.. autofunction:: synth_mcx_1_clean_b95
.. autofunction:: synth_mcx_noaux_v24
.. autofunction:: synth_mcx_gray_code
.. autofunction:: synth_c3x
.. autofunction:: synth_c4x

Binary Arithmetic Synthesis
===========================

Adders
------

.. autofunction:: adder_qft_d00
.. autofunction:: adder_ripple_c04
.. autofunction:: adder_ripple_v95

Multipliers
-----------

.. autofunction:: multiplier_cumulative_h18 
.. autofunction:: multiplier_qft_r17

é   )ÚEvolutionSynthesisÚProductFormulaÚ
LieTrotterÚSuzukiTrotterÚMatrixExponentialÚQDrift)Úsynth_permutation_depth_lnn_kmsÚsynth_permutation_basicÚsynth_permutation_acgÚ!synth_permutation_reverse_lnn_kms)Úsynth_cnot_count_full_pmhÚsynth_cnot_depth_line_kms)Úsynth_cz_depth_line_mrÚsynth_cx_cz_depth_line_myÚsynth_cnot_phase_aam)Úsynth_clifford_fullÚsynth_clifford_agÚsynth_clifford_bmÚsynth_clifford_greedyÚsynth_clifford_layersÚsynth_clifford_depth_lnn)Úsynth_cnotdihedral_fullÚsynth_cnotdihedral_two_qubitsÚsynth_cnotdihedral_general)Úsynth_stabilizer_layersÚsynth_stabilizer_depth_lnnÚsynth_circuit_from_stabilizers)ÚSolovayKitaevDecompositionÚgenerate_basic_approximations)Úsynth_qft_lineÚsynth_qft_full)Úqs_decomposition)Úaqc)ÚOneQubitEulerDecomposer)ÚXXDecomposer)ÚTwoQubitBasisDecomposerÚtwo_qubit_cnot_decomposeÚTwoQubitWeylDecomposition)Úsynth_mcmt_vchainÚsynth_mcx_n_dirty_i15Úsynth_mcx_n_clean_m15Úsynth_mcx_1_clean_b95Úsynth_mcx_noaux_v24Úsynth_mcx_gray_codeÚ	synth_c3xÚ	synth_c4x)Úadder_qft_d00Úadder_ripple_c04Úadder_ripple_v95Úmultiplier_cumulative_h18Úmultiplier_qft_r17N)DÚ__doc__Ú	evolutionr   r   r   r   r   r   Úpermutationr	   r
   r   r   Úlinearr   r   Úlinear_phaser   r   r   Úcliffordr   r   r   r   r   r   Úcnotdihedralr   r   r   Ú
stabilizerr   r   r   Údiscrete_basisr   r   Úqftr    r!   Úunitary.qsdr"   Úunitaryr#   Ú	one_qubitr$   Útwo_qubit.xx_decomposer%   Útwo_qubit.two_qubit_decomposer&   r'   r(   Úmulti_controlledr)   r*   r+   r,   r-   r.   r/   r0   Ú
arithmeticr1   r2   r3   r4   r5   © ó    úO/granary/edev/quantum/lib/python3.11/site-packages/qiskit/synthesis/__init__.pyú<module>rJ      sü  ððLð Lð\ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð bÐ aÐ aÐ aÐ aÐ aÐ aÐ aÐ aÐ aðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð
 VÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð
	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð rH   