§
    º³Ùg  ã                   óJ   — d Z ddlmZ ddlmZ ddlmZ  G d„ de¦  «        ZdS )z>Analysis pass to find commutation relations between DAG nodes.é    )ÚSessionCommutationChecker)ÚAnalysisPass)Úanalyze_commutationsc                   ó.   ‡ — e Zd ZdZddœˆ fd„
Zd„ Zˆ xZS )ÚCommutationAnalysisa  Analysis pass to find commutation relations between DAG nodes.

    ``property_set['commutation_set']`` is a dictionary that describes
    the commutation relations on a given wire, all the gates on a wire
    are grouped into a set of gates that commute.
    N)Ú_commutation_checkerc                óh   •— t          ¦   «                              ¦   «          |€t          }|| _        d S )N)ÚsuperÚ__init__ÚsccÚcomm_checker)Úselfr   Ú	__class__s     €úp/granary/edev/quantum/lib/python3.11/site-packages/qiskit/transpiler/passes/optimization/commutation_analysis.pyr   zCommutationAnalysis.__init__   s5   ø€ Ý‰Œ×ÒÑÔÐð  Ð'Ý#&Ð à0ˆÔÐÐó    c                 óJ   — t          || j        j        ¦  «        | j        d<   dS )z§Run the CommutationAnalysis pass on `dag`.

        Run the pass on the DAG, and write the discovered commutation relations
        into the ``property_set``.
        Úcommutation_setN)r   r   ÚccÚproperty_set)r   Údags     r   ÚrunzCommutationAnalysis.run%   s)   € õ 0DÀCÈÔIZÔI]Ñ/^Ô/^ˆÔÐ+Ñ,Ð,Ð,r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__classcell__)r   s   @r   r   r      sg   ø€ € € € € ðð ð 04ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð_ð _ð _ð _ð _ð _ð _r   r   N)	r   Ú"qiskit.circuit.commutation_libraryr   r   Úqiskit.transpiler.basepassesr   Ú'qiskit._accelerate.commutation_analysisr   r   © r   r   ú<module>r!      s‚   ðð EÐ Dà OÐ OÐ OÐ OÐ OÐ OØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø HÐ HÐ HÐ HÐ HÐ Hð_ð _ð _ð _ð _˜,ñ _ô _ð _ð _ð _r   