§
    º³Ùgÿ  ã                   óÞ  — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lm	Z	 dd
lm
Z
 ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddlm!Z! ddlm"Z" dd lm#Z# dd!lm$Z$ dd"lm%Z% dd#lm&Z& dd$lm'Z' dd%lm(Z( dd&lm)Z) dd'lm*Z* dd(lm+Z+ dd)lm,Z, dd*lm-Z- dd+lm.Z. dd,lm/Z/ dd-lm0Z0 dd.lm1Z1 dd/lm2Z2 dd0lm3Z3 dd1lm4Z4 dd2lm5Z5 dd3lm6Z6 dd4lm7Z7 dd5lm8Z8 dd6lm9Z9 dd7l:m;Z; dd8l:m<Z< dd9l:m=Z= dd:l:m>Z> dd;l:m?Z? dd<l:m@Z@ dd=l:mAZA dd>l:mBZB dd?lCmDZD dd@lCmEZE ddAlCmFZF ddBlCmGZG ddClCmHZH ddDlCmIZI ddElCmJZJ ddFlCmKZK ddGlLmMZM ddHlLmNZN ddIlLmOZO ddJlLmPZP ddKlQmRZR ddLlSmTZT ddMlSmUZU ddNlSmVZV ddOlSmWZW ddPlSmXZX ddQlSmYZY ddRlSmZZZ ddSlSm[Z[ ddTlSm\Z\ ddUlSm]Z] ddVlSm^Z^ ddWlSm_Z_ ddXlSm`Z` ddYlambZb ddZlamcZc dd[lamdZd dd\lameZe dd]lamfZf dd^lamgZg dd_lamhZh dd`lamiZi ddalamjZj ddblamkZk ddclamlZl dddlammZm ddelamnZn ddflamoZo ddglampZp ddhlamqZq diS )ja  
===================================================
Transpiler Passes (:mod:`qiskit.transpiler.passes`)
===================================================

.. currentmodule:: qiskit.transpiler.passes

Layout Selection (Placement)
============================

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

   SetLayout
   TrivialLayout
   DenseLayout
   SabreLayout
   CSPLayout
   VF2Layout
   ApplyLayout
   Layout2qDistance
   EnlargeWithAncilla
   FullAncillaAllocation
   SabrePreLayout

Routing
=======

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

   BasicSwap
   LookaheadSwap
   StochasticSwap
   SabreSwap
   Commuting2qGateRouter
   StarPreRouting

Basis Change
============

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

   BasisTranslator
   Decompose
   TranslateParameterizedGates
   Unroll3qOrMore
   UnrollCustomDefinitions

Optimizations
=============

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

   Optimize1qGates
   Optimize1qGatesDecomposition
   Collect1qRuns
   Collect2qBlocks
   CollectMultiQBlocks
   CollectAndCollapse
   CollectLinearFunctions
   CollectCliffords
   ConsolidateBlocks
   CXCancellation
   InverseCancellation
   CommutationAnalysis
   CommutativeCancellation
   CommutativeInverseCancellation
   Optimize1qGatesSimpleCommutation
   RemoveDiagonalGatesBeforeMeasure
   RemoveResetInZeroState
   RemoveFinalReset
   HoareOptimizer
   TemplateOptimization
   EchoRZXWeylDecomposition
   ResetAfterMeasureSimplification
   OptimizeCliffords
   ElidePermutations
   NormalizeRXAngle
   OptimizeAnnotated
   Split2QUnitaries
   RemoveIdentityEquivalent

Calibration
=============

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

   PulseGates
   RZXCalibrationBuilder
   RZXCalibrationBuilderNoEcho
   RXCalibrationBuilder

.. autofunction:: rzx_templates

Scheduling
=============

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

   TimeUnitConversion
   ALAPScheduleAnalysis
   ASAPScheduleAnalysis
   PadDynamicalDecoupling
   PadDelay
   ConstrainedReschedule
   ValidatePulseGates
   InstructionDurationCheck
   SetIOLatency
   ALAPSchedule
   ASAPSchedule
   DynamicalDecoupling
   AlignMeasures

Circuit Analysis
================

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

   Width
   Depth
   Size
   CountOps
   CountOpsLongestPath
   NumTensorFactors
   DAGLongestPath

Synthesis
=========

The synthesis transpiler plugin documentation can be found in the
:mod:`qiskit.transpiler.passes.synthesis.plugin` page.

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

   UnitarySynthesis
   LinearFunctionsToPermutations
   HighLevelSynthesis
   HLSConfig
   SolovayKitaev

Post Layout
===========

These are post qubit selection.

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

   VF2PostLayout

Additional Passes
=================

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

   CheckMap
   CheckGateDirection
   GateDirection
   MergeAdjacentBarriers
   RemoveBarriers
   BarrierBeforeFinalMeasurements
   RemoveFinalMeasurements
   DAGFixedPoint
   FixedPoint
   MinimumPoint
   ContainsInstruction
   GatesInBasis
   ConvertConditionsToIfOps
   UnrollForLoops
   FilterOpNodes
é   )Ú	SetLayout)ÚTrivialLayout)ÚDenseLayout)ÚSabreLayout)Ú	CSPLayout)Ú	VF2Layout)ÚVF2PostLayout)ÚApplyLayout)ÚLayout2qDistance)ÚEnlargeWithAncilla)ÚFullAncillaAllocation)ÚSabrePreLayout)Ú	BasicSwap)ÚLayoutTransformation)ÚLookaheadSwap)ÚStochasticSwap)Ú	SabreSwap)ÚCommuting2qGateRouter)ÚStarPreRouting)Ú	Decompose)ÚUnrollCustomDefinitions)ÚUnroll3qOrMore)ÚBasisTranslator)ÚTranslateParameterizedGates)ÚOptimize1qGates)ÚOptimize1qGatesDecomposition)ÚCollect2qBlocks)ÚCollect1qRuns)ÚCollectMultiQBlocks)ÚConsolidateBlocks)ÚCommutationAnalysis)ÚCommutativeCancellation)ÚCommutativeInverseCancellation)ÚCXCancellation)Ú Optimize1qGatesSimpleCommutation)ÚOptimizeSwapBeforeMeasure)ÚRemoveResetInZeroState)ÚRemoveFinalReset)Ú RemoveDiagonalGatesBeforeMeasure)ÚHoareOptimizer)ÚTemplateOptimization)ÚInverseCancellation)ÚEchoRZXWeylDecomposition)ÚCollectAndCollapse)ÚCollectLinearFunctions)ÚCollectCliffords)ÚResetAfterMeasureSimplification)ÚOptimizeCliffords)ÚElidePermutations)ÚNormalizeRXAngle)ÚOptimizeAnnotated)ÚRemoveIdentityEquivalent)ÚSplit2QUnitaries)ÚResourceEstimation)ÚDepth)ÚSize)ÚWidth)ÚCountOps)ÚCountOpsLongestPath)ÚNumTensorFactors)ÚDAGLongestPath)ÚUnitarySynthesis)Úunitary_synthesis_plugin_names)ÚLinearFunctionsToPermutations)ÚHighLevelSynthesis)Ú	HLSConfig)ÚSolovayKitaev)ÚSolovayKitaevSynthesis)ÚAQCSynthesisPlugin)Ú
PulseGates)ÚRZXCalibrationBuilder)ÚRZXCalibrationBuilderNoEcho)ÚRXCalibrationBuilder)Úrzx_templates)ÚTimeUnitConversion)ÚALAPScheduleAnalysis)ÚASAPScheduleAnalysis)ÚPadDynamicalDecoupling)ÚValidatePulseGates)ÚPadDelay)ÚConstrainedReschedule)ÚInstructionDurationCheck)ÚSetIOLatency)ÚALAPSchedule)ÚASAPSchedule)ÚDynamicalDecoupling)ÚAlignMeasures)ÚCheckMap)ÚCheckGateDirection)ÚGateDirection)ÚBarrierBeforeFinalMeasurements)ÚRemoveFinalMeasurements)ÚMergeAdjacentBarriers)ÚDAGFixedPoint)Ú
FixedPoint)ÚMinimumPoint)ÚError)ÚRemoveBarriers)ÚContainsInstruction)ÚGatesInBasis)ÚConvertConditionsToIfOps)ÚUnrollForLoops)ÚFilterOpNodesN)rÚ__doc__Úlayoutr   r   r   r   r   r   r	   r
   r   r   r   r   Úroutingr   r   r   r   r   r   r   Úbasisr   r   r   r   r   Úoptimizationr   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   Úanalysisr8   r9   r:   r;   r<   r=   r>   r?   Ú	synthesisr@   rA   rB   rC   rD   rE   rF   rG   ÚcalibrationrH   rI   rJ   rK   Úcalibration.rzx_templatesrL   Ú
schedulingrM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   ÚutilsrZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   © ó    úW/granary/edev/quantum/lib/python3.11/site-packages/qiskit/transpiler/passes/__init__.pyú<module>rx      sh  ððrð rðj Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø &Ð &Ð &Ð &Ð &Ð &Ø )Ð )Ð )Ð )Ð )Ð )Ø "Ð "Ð "Ð "Ð "Ð "ð Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø "Ð "Ð "Ð "Ð "Ð "Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø #Ð #Ð #Ð #Ð #Ð #ð Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø !Ð !Ð !Ð !Ð !Ð !Ø "Ð "Ð "Ð "Ð "Ð "Ø .Ð .Ð .Ð .Ð .Ð .ð *Ð )Ð )Ð )Ð )Ð )Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø )Ð )Ð )Ð )Ð )Ð )Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø -Ð -Ð -Ð -Ð -Ð -Ø +Ð +Ð +Ð +Ð +Ð +Ø -Ð -Ð -Ð -Ð -Ð -Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø (Ð (Ð (Ð (Ð (Ð (Ø :Ð :Ð :Ð :Ð :Ð :Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø *Ð *Ð *Ð *Ð *Ð *Ø :Ð :Ð :Ð :Ð :Ð :Ø (Ð (Ð (Ð (Ð (Ð (Ø .Ð .Ð .Ð .Ð .Ð .Ø -Ð -Ð -Ð -Ð -Ð -Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø *Ð *Ð *Ð *Ð *Ð *Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø +Ð +Ð +Ð +Ð +Ð +Ø +Ð +Ð +Ð +Ð +Ð +Ø *Ð *Ð *Ð *Ð *Ð *Ø +Ð +Ð +Ð +Ð +Ð +Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø *Ð *Ð *Ð *Ð *Ð *ð )Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø &Ð &Ð &Ð &Ð &Ð &Ø $Ð $Ð $Ð $Ð $Ð $ð (Ð 'Ð 'Ð 'Ð 'Ð 'Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø )Ð )Ð )Ð )Ð )Ð )Ø  Ð  Ð  Ð  Ð  Ð  Ø $Ð $Ð $Ð $Ð $Ð $Ø -Ð -Ð -Ð -Ð -Ð -Ø )Ð )Ð )Ð )Ð )Ð )ð $Ð #Ð #Ð #Ð #Ð #Ø .Ð .Ð .Ð .Ð .Ð .Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø -Ð -Ð -Ð -Ð -Ð -Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ð +Ð *Ð *Ð *Ð *Ð *Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø .Ð .Ð .Ð .Ð .Ð .Ø *Ð *Ð *Ð *Ð *Ð *Ø  Ð  Ð  Ð  Ð  Ð  Ø -Ð -Ð -Ð -Ð -Ð -Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø $Ð $Ð $Ð $Ð $Ð $Ø $Ð $Ð $Ð $Ð $Ð $Ø $Ð $Ð $Ð $Ð $Ð $Ø +Ð +Ð +Ð +Ð +Ð +Ø %Ð %Ð %Ð %Ð %Ð %ð Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø  Ð  Ð  Ð  Ð  Ð  Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø *Ð *Ð *Ð *Ð *Ð *Ø (Ð (Ð (Ð (Ð (Ð (Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø !Ð !Ð !Ð !Ð !Ð !Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  rv   