§
    º³Ùgè/  ã                   óš   — d Z ddlZddlmZmZmZmZ ddlZddl	m
Z
 ddlmZ dd„Z G d„ d	¦  «        Z ed
d¬¦  «        dd„¦   «         ZdS )z^
Visualization function for animation of state transitions by applying gates to single qubit.
é    N)ÚsinÚcosÚacosÚsqrt)ÚMissingOptionalLibraryError)Údeprecate_funcçñhãˆµøä>c                 óÞ   ‡— t          d„ | D ¦   «         ¦  «        }t          |dz
  ¦  «        |k    r*t          |¦  «        Št          ˆfd„| D ¦   «         ¦  «        } t	          j        | ¦  «        S )z<Makes sure magnitude of the vector is 1 with given tolerancec              3   ó    K  — | ]	}||z  V — Œ
d S ©N© )Ú.0Úns     úc/granary/edev/quantum/lib/python3.11/site-packages/qiskit/visualization/transition_visualization.pyú	<genexpr>z_normalize.<locals>.<genexpr>   s&   è è € Ð Ð ˜ˆq�1‰uÐ Ð Ð Ð Ð Ð ó    g      ð?c              3   ó"   •K  — | ]	}|‰z  V — Œ
d S r   r   )r   r   Úmags     €r   r   z_normalize.<locals>.<genexpr>   s'   øè è € Ð%Ð%˜a�!�c‘'Ð%Ð%Ð%Ð%Ð%Ð%r   )ÚsumÚabsr   ÚtupleÚnpÚarray)ÚvÚ	toleranceÚmag2r   s      @r   Ú
_normalizer      sq   ø€ õ Ð Ð ˜aÐ Ñ Ô Ñ Ô €DÝ
ˆ4�#‰:�„˜Ò"Ð"Ý�4‰jŒjˆÝÐ%Ð%Ð%Ð% 1Ð%Ñ%Ô%Ñ%Ô%ˆÝŒ8�A‰;Œ;Ðr   c                   óz   — e Zd ZdZd„ Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ ZdS )Ú_Quaternionz&For calculating vectors on unit spherec                 ó   — d | _         d S r   )Ú_val©Úselfs    r   Ú__init__z_Quaternion.__init__%   s   € ØˆŒ	ˆ	ˆ	r   c                 ól   — t          |¦  «        }t          ¦   «         }|                     | |¦  «         |S )zCreate quaternion from axis)r   r   Ú_axisangle_to_q)Úthetar   Únew_quaternions      r   Úfrom_axisanglez_Quaternion.from_axisangle(   s4   € õ �q‰MŒMˆå$™œˆØ×&Ò& u¨aÑ0Ô0Ð0ØÐr   c                 ó0   — t          ¦   «         }| |_        |S )zCreate quaternion from vector)r   r!   )Úvaluer(   s     r   Ú
from_valuez_Quaternion.from_value1   s   € õ %™œˆØ#ˆÔØÐr   c                 ó  — |d         }|d         }|d         }t          |dz  ¦  «        }|t          |dz  ¦  «        z  }|t          |dz  ¦  «        z  }|t          |dz  ¦  «        z  }t          j        ||||g¦  «        | _        dS )z$Convert axis and angle to quaternionr   é   é   ç       @N)r   r   r   r   r!   )r#   r'   r   ÚxÚyÚzÚws          r   r&   z_Quaternion._axisangle_to_q8   s�   € àˆaŒDˆØˆaŒDˆØˆaŒDˆå�˜‘ÑÔˆØ•�E˜C‘KÑ Ô Ñ ˆØ•�E˜C‘KÑ Ô Ñ ˆØ•�E˜C‘KÑ Ô Ñ ˆå”H˜a  A q˜\Ñ*Ô*ˆŒ	ˆ	ˆ	r   c                 ó@  — t          |t          ¦  «        r|                      |¦  «        S t          |t          t          t
          j        f¦  «        rGt          |¦  «        dk    rt          dt          |¦  «        › �¦  «        ‚|  	                    |¦  «        S t          S )z6Multiplication of quaternion with quaternion or vectoré   z Input vector has invalid length )Ú
isinstancer   Ú_multiply_with_quaternionÚlistr   r   ÚndarrayÚlenÚ
ValueErrorÚ_multiply_with_vectorÚNotImplemented)r#   Úbs     r   Ú__mul__z_Quaternion.__mul__E   s‹   € õ �a�Ñ%Ô%ð 	"Ø×1Ò1°!Ñ4Ô4Ð4Ý˜�D¥%­¬Ð4Ñ5Ô5ð 	"Ý�1‰vŒv˜Š{ˆ{Ý Ð!LÅCÈÁFÄFÐ!LÐ!LÑMÔMÐMØ×-Ò-¨aÑ0Ô0Ð0å!Ð!r   c                 óN  — | j         \  }}}}|j         \  }}}}	||z  ||z  z
  ||z  z
  ||	z  z
  }
||z  ||z  z   ||	z  z   ||z  z
  }||z  ||z  z   ||z  z   ||	z  z
  }||	z  ||z  z   ||z  z   ||z  z
  }t                               t          j        |
|||f¦  «        ¦  «        }|S )z,Multiplication of quaternion with quaternion©r!   r   r,   r   r   )r#   Úq_2Úw_1Úx_1Úy_1Úz_1Úw_2Úx_2Úy_2Úz_2r4   r1   r2   r3   Úresults                  r   r8   z%_Quaternion._multiply_with_quaternionQ   sÜ   € à!œYÑˆˆS�#�sØ œXÑˆˆS�#�sØ�#‰I˜˜c™	Ñ! C¨#¡IÑ-°°c±	Ñ9ˆØ�#‰I˜˜c™	Ñ! C¨#¡IÑ-°°c±	Ñ9ˆØ�#‰I˜˜c™	Ñ! C¨#¡IÑ-°°c±	Ñ9ˆØ�#‰I˜˜c™	Ñ! C¨#¡IÑ-°°c±	Ñ9ˆå×'Ò'­¬°!°Q¸¸1°Ñ(>Ô(>Ñ?Ô?ˆØˆr   c                 óª   — t                                t          j        d|¦  «        ¦  «        }| |z  |                      ¦   «         z  j        dd…         S )z(Multiplication of quaternion with vectorg        r.   N)r   r,   r   ÚappendÚget_conjugater!   )r#   r   rC   s      r   r=   z!_Quaternion._multiply_with_vector]   sH   € å×$Ò$¥R¤Y°°aÑ%8Ô%8Ñ9Ô9ˆØ�s‘
˜T×/Ò/Ñ1Ô1Ñ1Ô7¸¸¸Ô;Ð;r   c                 ó„   — | j         \  }}}}t                               t          j        || | | f¦  «        ¦  «        }|S )zConjugation of quaternionrB   )r#   r4   r1   r2   r3   rL   s         r   rO   z_Quaternion.get_conjugateb   sA   € à”Y‰
ˆˆ1ˆa�Ý×'Ò'­¬°!°a°R¸!¸¸a¸R°Ñ(AÔ(AÑBÔBˆØˆr   c           	      ór   — |                       ¦   «         \  }}d|› d|d         › d|d         › d|d         › d�	S )Nz((z; r   z, r.   r/   z)))Úget_axisangle)r#   r'   r   s      r   Ú__repr__z_Quaternion.__repr__h   sL   € Ø×%Ò%Ñ'Ô'‰ˆˆqØ5�EÐ5Ð5˜Q˜qœTÐ5Ð5 Q q¤TÐ5Ð5¨Q¨q¬TÐ5Ð5Ð5Ð5r   c                 ó€   — | j         d         | j         dd…         }}t          |¦  «        dz  }|t          |¦  «        fS )z&Returns angle and vector of quaternionr   r.   Nr0   )r!   r   r   )r#   r4   r   r'   s       r   rR   z_Quaternion.get_axisanglel   s;   € àŒy˜Œ|˜TœY q r rœ]ˆ1ˆÝ�Q‘”˜#‘ˆà•j ‘m”mÐ#Ð#r   c                 ó4   — | j                              ¦   «         S )zConverts quaternion to a list)r!   Útolistr"   s    r   rV   z_Quaternion.tolists   s   € àŒy×ÒÑ!Ô!Ð!r   c                 ón   — |                       ¦   «         \  }}t          j                             |¦  «        S )zCalculates norm of quaternion)rR   r   ÚlinalgÚnorm)r#   Ú_r   s      r   Úvector_normz_Quaternion.vector_normw   s+   € à×!Ò!Ñ#Ô#‰ˆˆ1ÝŒy�~Š~˜aÑ Ô Ð r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r$   Ústaticmethodr)   r,   r&   r@   r8   r=   rO   rS   rR   rV   r[   r   r   r   r   r   "   sæ   € € € € € Ø0Ð0ðð ð ð ðð ñ „\ðð ðð ñ „\ðð+ð +ð +ð
"ð 
"ð 
"ð
ð 
ð 
ð<ð <ð <ð
ð ð ð6ð 6ð 6ð$ð $ð $ð"ð "ð "ð!ð !ð !ð !ð !r   r   z1.2.0zin the 2.0 release)ÚsinceÚremoval_timelineFéd   r/   c           
      ó6  ‡‡‡‡‡‡— 	 ddl m} d}n# t          $ r d}Y nw xY w	 ddl}ddlm} ddlm}	 ddlm}
 d	d
lm	} d	dl
m} d}n# t          $ r d}Y nw xY wd}dt          j        v rdt          j        vrd}|st          ddd¬¦  «        ‚|s|du rt          ddd¬¦  «        ‚t          | j        ¦  «        d	k    r |d¦  «        ‚|Š|dz  |z  }i }dt"                               t&          j        ‰z  g d¢¦  «        df|d<   dt"                               t&          j        ‰z  g d¢¦  «        df|d<   dt"                               t&          j        ‰z  g d¢¦  «        df|d<   dt"                               t&          j        d z  ‰z  g d¢¦  «        d!f|d<   d"t"                               t&          j         d z  ‰z  g d¢¦  «        d#f|d"<   d$t"                               t&          j        ‰z  t+          g d%¢¦  «        ¦  «        d&f|d$<   d't"                               t&          j        d(z  ‰z  g d¢¦  «        d)f|d'<   d*t"                               t&          j         d(z  ‰z  g d¢¦  «        d+f|d*<   g Š| j        D �]Á\  }}}|j        d,k    rŒ|j        |v r!‰                     ||j                 ¦  «         Œ=|j        d-k    rQ|j        d         }t"                               |‰z  g d¢¦  «        }‰                     |j        › d.|d/›�|d0f¦  «         Œ™|j        d1k    rQ|j        d         }t"                               |‰z  g d¢¦  «        }‰                     |j        › d.|d/›�|d2f¦  «         Œõ|j        d3k    rR|j        d         }t"                               |‰z  g d¢¦  «        }‰                     |j        › d.|d/›�|d4f¦  «         �ŒR|j        d5k    rR|j        d         }t"                               |‰z  g d¢¦  «        }‰                     |j        › d.|d/›�|d6f¦  «         �Œ¯ |d7|j        › d8�¦  «        ‚t          ‰¦  «        dk    r |d9¦  «        ‚t+          t'          j        g d¢¦  «        ¦  «        }|                     d:¬;¦  «        }t9          d<„ |j                             d=¦  «        D ¦   «         ¦  «        d>k    r# |
|d¬?¦  «        Š|                     ‰¦  «         n |
|¦  «        Š‰                      d@dA¦  «         ‰ !                    d@dA¦  «          |‰¬B¦  «        Š G dC„ dD¦  «        } |¦   «         Š|‰_"        ˆˆˆˆˆˆfdE„}ˆˆfdF„}|	 #                    ||tI          ‰t          ‰¦  «        z  d	z   ¦  «        |dd|¬G¦  «        }|r| %                    |dH¬I¦  «         |r<dJ|j&        dK<   | '                    |¦  «          || (                    ¦   «         ¦  «        S | )                    ¦   «          | '                    |¦  «         dS )LaL  
    Creates animation showing transitions between states of a single
    qubit by applying quantum gates.

    Args:
        circuit (QuantumCircuit): Qiskit single-qubit QuantumCircuit. Gates supported are
            h,x, y, z, rx, ry, rz, s, sdg, t, tdg and u1.
        trace (bool): Controls whether to display tracing vectors - history of 10 past vectors
            at each step of the animation.
        saveas (str): User can choose to save the animation as a video to their filesystem.
            This argument is a string of path with filename and extension (e.g. "movie.mp4" to
            save the video in current working directory).
        fpg (int): Frames per gate. Finer control over animation smoothness and computational
            needs to render the animation. Works well for tkinter GUI as it is, for jupyter GUI
            it might be preferable to choose fpg between 5-30.
        spg (int): Seconds per gate. How many seconds should animation of individual gate
            transitions take.

    Returns:
        IPython.core.display.HTML:
            If arg jupyter is set to True. Otherwise opens tkinter GUI and returns
            after the GUI is closed.

    Raises:
        MissingOptionalLibraryError: Must have Matplotlib (and/or IPython) installed.
        VisualizationError: Given gate(s) are not supported.

    r   )ÚHTMLTFN)Úpyplot)Ú	animation)ÚAxes3Dr.   )ÚBloch)ÚVisualizationErrorÚ	ipykernelÚspyderÚ
MatplotlibÚvisualize_transitionzpip install matplotlib)ÚlibnameÚnameÚpip_installÚIPythonzpip install ipythonz%Only one qubit circuits are supportediè  r1   )r.   r   r   z#1abc9cr2   )r   r.   r   z#2ecc71r3   )r   r   r.   z#3498dbÚsr/   z#9b59b6Úsdgz#8e44adÚh)r.   r   r.   z#34495eÚté   z#e74c3cÚtdgz#c0392bÚbarrierÚrxz: z.2fz#16a085Úryz#27ae60Úrzz#2980b9Úu1z#f1c40fzGate z is not supportedzNothing to visualize.)é   r~   )Úfigsizec              3   ó4   K  — | ]}t          |¦  «        V — Œd S r   )Úint)r   r1   s     r   r   z'visualize_transition.<locals>.<genexpr>  s(   è è € Ð?Ð?˜�S�‰VŒVÐ?Ð?Ð?Ð?Ð?Ð?r   ú.)r6   rw   r   )Úauto_add_to_figureiöÿÿÿé
   )Úaxesc                   ó   — e Zd ZdZd„ ZdS )ú'visualize_transition.<locals>.Namespacez'Helper class serving as scope containerc                 ó>   — g | _         d| _        g | _        g | _        d S )Néþÿÿÿ)Únew_vecÚ	last_gateÚcolorsÚpntsr"   s    r   r$   z0visualize_transition.<locals>.Namespace.__init__  s"   € ØˆDŒLØˆDŒNØˆDŒKØˆDŒIˆIˆIr   N)r\   r]   r^   r_   r$   r   r   r   Ú	Namespacer‡     s)   € € € € € Ø5Ð5ð	ð 	ð 	ð 	ð 	r   rŽ   c                 ó„  •— ‰	                      ¦   «          | dz
  ‰z  }|‰j        k    rC‰j                             g g g g¦  «         ‰j                             ‰|         d         ¦  «         | dk    rÍ‰	                     ‰j        ¦  «         ‰j        d         d                              ‰j        d         ¦  «         ‰j        d         d                              ‰j        d         ¦  «         ‰j        d         d                              ‰j        d         ¦  «         d‰j        d<   ‰	                     ¦   «          ‰S ‰|         d         ‰j        z  ‰_        ‰j        |dz            d                              ‰j        d         ¦  «         ‰j        |dz            d                              ‰j        d         ¦  «         ‰j        |dz            d                              ‰j        d         ¦  «         ‰	                     ‰j        ¦  «         ‰
r4‰j        D ],}‰	                     |d         |d         |d         g¦  «         Œ-‰|         d         g‰	_	        ‰j        ‰	_
        d‰	_        ‰|         d         }g d¢}‰	                     ||‰|         d         dd¬	¦  «         ‰	                     ¦   «          |‰_        ‰S )
Nr.   r/   r   ÚrÚo)gffffffö?gÍÌÌÌÌÌÜ¿gffffffú?é   Úleft)ÚcolorÚfontsizeÚhorizontalalignment)Úclearr‹   r�   rN   rŒ   Úadd_vectorsrŠ   Úmake_sphereÚ
add_pointsÚvector_colorÚpoint_colorÚpoint_markerÚadd_annotation)ÚiÚgate_counterÚ	point_setÚannotation_textÚannotationvectorÚ_axÚframes_per_gateÚlist_of_circuit_gatesÚ	namespaceÚsphereÚtraces        €€€€€€r   Úanimatez%visualize_transition.<locals>.animate(  sÂ  ø€ Ø�Š‰Œˆð ˜A™ /Ñ1ˆØ˜9Ô.Ò.Ð.ØŒN×!Ò! 2 r¨2 ,Ñ/Ô/Ð/ØÔ×#Ò#Ð$9¸,Ô$GÈÔ$JÑKÔKÐKð �Š6ˆ6Ø×Ò˜yÔ0Ñ1Ô1Ð1ØŒN˜1Ô˜aÔ ×'Ò'¨	Ô(9¸!Ô(<Ñ=Ô=Ð=ØŒN˜1Ô˜aÔ ×'Ò'¨	Ô(9¸!Ô(<Ñ=Ô=Ð=ØŒN˜1Ô˜aÔ ×'Ò'¨	Ô(9¸!Ô(<Ñ=Ô=Ð=Ø"%ˆIÔ˜QÑØ×ÒÑ Ô Ð ØˆJà1°,Ô?ÀÔBÀYÔEVÑVˆ	ÔàŒ�| aÑ'Ô(¨Ô+×2Ò2°9Ô3DÀQÔ3GÑHÔHÐHØŒ�| aÑ'Ô(¨Ô+×2Ò2°9Ô3DÀQÔ3GÑHÔHÐHØŒ�| aÑ'Ô(¨Ô+×2Ò2°9Ô3DÀQÔ3GÑHÔHÐHà×Ò˜9Ô,Ñ-Ô-Ð-Øð 	Nà&œ^ð Nð N�	Ø×!Ò! 9¨Q¤<°¸1´¸yÈ¼|Ð"LÑMÔMÐMÐMà4°\ÔBÀ1ÔEÐFˆÔØ&Ô-ˆÔØ!ˆÔà/°Ô=¸aÔ@ˆØ.Ð.Ð.ÐØ×ÒØØØ'¨Ô5°aÔ8ØØ &ð 	ñ 	
ô 	
ð 	
ð 	×ÒÑÔÐà*ˆ	ÔØˆ
r   c                  ó   •— dg‰_         ‰ S )Nr�   )r›   )r¤   r¨   s   €€r   Úinitz"visualize_transition.<locals>.initZ  s   ø€ Ø"˜eˆÔØˆ
r   )Ú	init_funcÚblitÚrepeatÚintervalr’   )Úfpsé2   zanimation.embed_limit)*ÚIPython.displayre   ÚImportErrorÚ
matplotlibrf   rg   Úmpl_toolkits.mplot3drh   Úblochri   Ú
exceptionsrj   ÚsysÚmodulesr   r;   Úqubitsr   r)   r   Úpir   Ú_datarp   rN   Úparamsr   Úfigurer   Ú__version__ÚsplitÚadd_axesÚset_xlimÚset_ylimrŠ   ÚFuncAnimationÚrangeÚsaveÚrcParamsÚcloseÚ	to_jshtmlÚshow) Úcircuitr©   ÚsaveasÚfpgÚspgre   Úhas_ipythonrµ   Úpltrg   rh   ri   rj   Úhas_matplotlibÚjupyterÚtime_between_framesÚsimple_gatesÚgaterZ   r'   Ú
quaternionÚstarting_posÚfigrŽ   rª   r¬   Úanir¤   r¥   r¦   r§   r¨   s     `                         @@@@@r   rn   rn   }   sµ  øøøøøø€ ðBØ(Ð(Ð(Ð(Ð(Ð(àˆˆøÝð ð ð Øˆˆˆðøøøð
ØÐÐÐØ,Ð,Ð,Ð,Ð,Ð,Ø(Ð(Ð(Ð(Ð(Ð(Ø/Ð/Ð/Ð/Ð/Ð/Ø Ð Ð Ð Ð Ð Ø2Ð2Ð2Ð2Ð2Ð2àˆˆøÝð ð ð Øˆˆˆðøøøð €GØ•s”{Ð"Ð"¨½¼Ð)DÐ)DØˆàð 
Ý)Ø Ø'Ø0ð
ñ 
ô 
ð 	
ð
 ð 
˜7 d˜?˜?Ý)ØØ'Ø-ð
ñ 
ô 
ð 	
õ
 ˆ7Œ>ÑÔ˜aÒÐØ Ð Ð!HÑIÔIÐIà€OØ ™:¨Ñ,Ðð €LàÝ×"Ò"¥2¤5¨?Ñ#:¸I¸I¸IÑFÔFØð€L�Ñð 	Ý×"Ò"¥2¤5¨?Ñ#:¸I¸I¸IÑFÔFØð€L�Ñð 	Ý×"Ò"¥2¤5¨?Ñ#:¸I¸I¸IÑFÔFØð€L�Ñð 	Ý×"Ò"¥2¤5¨1¡9¨Ñ#>À	À	À	ÑJÔJØð€L�Ñð 	Ý×"Ò"¥B¤E 6¨A¡:°Ñ#?ÀÀÀÑKÔKØð€L�Ñð 	Ý×"Ò"¥2¤5¨?Ñ#:½JÀyÀyÀyÑ<QÔ<QÑRÔRØð€L�Ñð 	Ý×"Ò"¥2¤5¨1¡9¨Ñ#>À	À	À	ÑJÔJØð€L�Ñð 	Ý×"Ò"¥B¤E 6¨A¡:°Ñ#?ÀÀÀÑKÔKØð€L�Ñð Ðà”mð Kñ K‰
ˆˆa�ØŒ9˜	Ò!Ð!ØØŒ9˜Ð$Ð$Ø!×(Ò(¨°d´iÔ)@ÑAÔAÐAÐAØŒY˜$ÒÐØ”K ”NˆEÝ$×3Ò3°E¸OÑ4KÈYÈYÈYÑWÔWˆJØ!×(Ò(¨T¬YÐ*EÐ*E¸%Ð*EÐ*EÐ*EÀzÐS\Ð)]Ñ^Ô^Ð^Ð^ØŒY˜$ÒÐØ”K ”NˆEÝ$×3Ò3°E¸OÑ4KÈYÈYÈYÑWÔWˆJØ!×(Ò(¨T¬YÐ*EÐ*E¸%Ð*EÐ*EÐ*EÀzÐS\Ð)]Ñ^Ô^Ð^Ð^ØŒY˜$ÒÐØ”K ”NˆEÝ$×3Ò3°E¸OÑ4KÈYÈYÈYÑWÔWˆJØ!×(Ò(¨T¬YÐ*EÐ*E¸%Ð*EÐ*EÐ*EÀzÐS\Ð)]Ñ^Ô^Ð^Ñ^ØŒY˜$ÒÐØ”K ”NˆEÝ$×3Ò3°E¸OÑ4KÈYÈYÈYÑWÔWˆJØ!×(Ò(¨T¬YÐ*EÐ*E¸%Ð*EÐ*EÐ*EÀzÐS\Ð)]Ñ^Ô^Ð^Ñ^à$Ð$Ð%I¨T¬YÐ%IÐ%IÐ%IÑJÔJÐJå
Ð Ñ!Ô! QÒ&Ð&Ø Ð Ð!8Ñ9Ô9Ð9å�bœh y y yÑ1Ô1Ñ2Ô2€Là
�*Š*˜Vˆ*Ñ
$Ô
$€CÝÐ?Ð?˜ZÔ3×9Ò9¸#Ñ>Ô>Ð?Ñ?Ô?Ñ?Ô?À9ÒLÐLØˆf�S¨UÐ3Ñ3Ô3ˆØ�Š�SÑÔÐÐàˆf�S‰kŒkˆà‡L‚L��bÑÔÐØ‡L‚L��bÑÔÐØˆU˜ˆ_‰_Œ_€Fðð ð ð ð ñ ô ð ð �	‘”€IØ$€IÔð0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ðdð ð ð ð ð ð ×
!Ò
!ØØÝˆo¥Ð$9Ñ :Ô :Ñ:¸QÑ>Ñ?Ô?ØØØØ$ð "ñ ô €Cð ð !Ø�Š�˜RˆÑ Ô Ð Øð %à79ˆ
ÔÐ3Ñ4Ø�	Š	�#‰ŒˆØˆt�C—M’M‘O”OÑ$Ô$Ð$Ø‡H‚H�J„J€JØ‡I‚Iˆc�N„N€NØˆ4s   ˆ ‘ Ÿ ¤$A	 Á	AÁA)r	   )FNrc   r/   )r_   r¹   Úmathr   r   r   r   Únumpyr   Úqiskit.exceptionsr   Úqiskit.utils.deprecationr   r   r   rn   r   r   r   ú<module>rß      sý   ððð ð €
€
€
Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð à 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3ðð ð ð ðX!ð X!ð X!ð X!ð X!ñ X!ô X!ð X!ðv €Ø
Ø)ðñ ô ðpð pð pñ	ô ðpð pð pr   