§
    ¹³ÙgK	  ã                   óˆ   — d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	  eddgddgg¦  «         G d„ de¦  «        ¦   «         Z
d	S )
zIdentity gate.é    )ÚOptional)ÚSingletonGateÚstdlib_singleton_key)Úwith_gate_array)ÚStandardGateé   c                   ó†   ‡ — e Zd ZdZej        Zddddœdee         fˆ fd„Z	 e
¦   «         Zddefd	„Zdd
edefd„Zd„ Zˆ xZS )ÚIGateue  Identity gate.

    Identity gate corresponds to a single-qubit gate wait cycle,
    and should not be optimized or unrolled (it is an opaque gate).

    Can be applied to a :class:`~qiskit.circuit.QuantumCircuit`
    with the :meth:`~qiskit.circuit.QuantumCircuit.i` and
    :meth:`~qiskit.circuit.QuantumCircuit.id` methods.

    **Matrix Representation:**

    .. math::

        I = \begin{pmatrix}
                1 & 0 \\
                0 & 1
            \end{pmatrix}

    **Circuit symbol:**

    .. code-block:: text

             â”Œâ”€â”€â”€â”�
        q_0: â”¤ I â”œ
             â””â”€â”€â”€â”˜
    NÚdt)ÚdurationÚunitÚlabelc                óV   •— t          ¦   «                              ddg |||¬¦  «         dS )zCreate new Identity gate.Úidr   )r   r   r   N)ÚsuperÚ__init__)Úselfr   r   r   Ú	__class__s       €ú]/granary/edev/quantum/lib/python3.11/site-packages/qiskit/circuit/library/standard_gates/i.pyr   zIGate.__init__4   s.   ø€ å‰Œ×Ò˜˜q "¨E¸HÈ4ÐÑPÔPÐPÐPÐPó    FÚ	annotatedc                 ó   — t          ¦   «         S )a­  Returne the inverse gate (itself).

        Args:
            annotated: when set to ``True``, this is typically used to return an
                :class:`.AnnotatedOperation` with an inverse modifier set instead of a concrete
                :class:`.Gate`. However, for this class this argument is ignored as this gate
                is self-inverse.

        Returns:
            IGate: inverse gate (self-inverse).
        .©r
   )r   r   s     r   ÚinversezIGate.inverse:   s   € õ ‰wŒwˆr   Úexponentc                 ó   — t          ¦   «         S ©Nr   )r   r   r   s      r   ÚpowerzIGate.powerH   s   € Ý‰wŒwˆr   c                 ó,   — t          |t          ¦  «        S r   )Ú
isinstancer
   )r   Úothers     r   Ú__eq__zIGate.__eq__K   s   € Ý˜%¥Ñ'Ô'Ð'r   r   )F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r
   Ú_standard_gater   Ústrr   r   Ú_singleton_lookup_keyÚboolr   Úfloatr   r"   Ú__classcell__)r   s   @r   r
   r
      sà   ø€ € € € € ðð ð6 "Ô'€NðQÀÈ4ð Qð Qð Q˜h sœmð Qð Qð Qð Qð Qð Qð 1Ð0Ñ2Ô2Ððð  ð ð ð ð ðð ˜eð °ð ð ð ð ð(ð (ð (ð (ð (ð (ð (r   r
   N)r&   Útypingr   Úqiskit.circuit.singletonr   r   Úqiskit.circuit._utilsr   Úqiskit._accelerate.circuitr   r
   © r   r   ú<module>r2      s³   ðð Ð à Ð Ð Ð Ð Ð Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3ð €�1�a�&˜1˜a˜&Ð!Ñ"Ô"ð6(ð 6(ð 6(ð 6(ð 6(ˆMñ 6(ô 6(ñ #Ô"ð6(ð 6(ð 6(r   