§
    º³ÙgK	  ã                   óV   — d Z ddlmZ ddlmZ ddlmZ ddlmZ  G d„ de¦  «        Z	dS )	zRChoose a Layout by assigning ``n`` circuit qubits to device qubits ``0, .., n-1``.é    )ÚLayout)ÚAnalysisPass)ÚTranspilerError)ÚTargetc                   ó(   ‡ — e Zd ZdZˆ fd„Zd„ Zˆ xZS )ÚTrivialLayouta\  Choose a Layout by assigning ``n`` circuit qubits to device qubits ``0, .., n-1``.

    A pass for choosing a Layout of a circuit onto a Coupling graph, using a simple
    round-robin order.

    This pass associates a physical qubit (int) to each virtual qubit
    of the circuit (Qubit) in increasing order.

    Does not assume any ancilla.
    c                 óÜ   •— t          ¦   «                              ¦   «          t          |t          ¦  «        r'|| _        | j                             ¦   «         | _        dS d| _        || _        dS )zÖTrivialLayout initializer.

        Args:
            coupling_map (Union[CouplingMap, Target]): directed graph representing a coupling map.

        Raises:
            TranspilerError: if invalid options
        N)ÚsuperÚ__init__Ú
isinstancer   ÚtargetÚbuild_coupling_mapÚcoupling_map)Úselfr   Ú	__class__s     €úd/granary/edev/quantum/lib/python3.11/site-packages/qiskit/transpiler/passes/layout/trivial_layout.pyr   zTrivialLayout.__init__!   se   ø€ õ 	‰Œ×ÒÑÔÐÝ�l¥FÑ+Ô+ð 	-Ø&ˆDŒKØ $¤× >Ò >Ñ @Ô @ˆDÔÐÐàˆDŒKØ ,ˆDÔÐÐó    c                 óx  — | j         �2|                     ¦   «         | j         j        k    rt          d¦  «        ‚n>|                     ¦   «         | j                             ¦   «         k    rt          d¦  «        ‚t          j        |j        t          |j	         
                    ¦   «         ¦  «        z   Ž | j        d<   dS )zÅRun the TrivialLayout pass on `dag`.

        Args:
            dag (DAGCircuit): DAG to find layout for.

        Raises:
            TranspilerError: if dag wider than the target backend
        Nz%Number of qubits greater than device.Úlayout)r   Ú
num_qubitsr   r   Úsizer   Úgenerate_trivial_layoutÚqubitsÚlistÚqregsÚvaluesÚproperty_set)r   Údags     r   ÚrunzTrivialLayout.run2   s¨   € ð Œ;Ð"Ø�~Š~ÑÔ $¤+Ô"8Ò8Ð8Ý%Ð&MÑNÔNÐNð 9à�^Š^ÑÔ Ô 1× 6Ò 6Ñ 8Ô 8Ò8Ð8Ý!Ð"IÑJÔJÐJÝ&,Ô&DØŒj�4 ¤	× 0Ò 0Ñ 2Ô 2Ñ3Ô3Ñ3ð'
ˆÔ˜(Ñ#Ð#Ð#r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__classcell__)r   s   @r   r   r      sQ   ø€ € € € € ð	ð 	ð-ð -ð -ð -ð -ð"
ð 
ð 
ð 
ð 
ð 
ð 
r   r   N)
r#   Úqiskit.transpiler.layoutr   Úqiskit.transpiler.basepassesr   Úqiskit.transpiler.exceptionsr   Úqiskit.transpiler.targetr   r   © r   r   ú<module>r*      sŠ   ðð YÐ Xà +Ð +Ð +Ð +Ð +Ð +Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø +Ð +Ð +Ð +Ð +Ð +ð-
ð -
ð -
ð -
ð -
�Lñ -
ô -
ð -
ð -
ð -
r   