§
    OŠtj‹  ã                   ó¼   — d dl mZ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mZmZ d dlmZmZmZmZmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d„ Zd„ Zd„ Z dS )é    )ÚIÚpi)ÚSymbol)Úexp)Úsqrt)ÚMatrix)ÚQFTÚIQFTÚRkGate)ÚZGateÚSwapGateÚHadamardGateÚCGateÚ	PhaseGateÚTGate)ÚQubit)Úqapply)Ú	represent)Úsignc                  óR  — t          d¦  «        } t          d| ¦  «        j        | k    sJ ‚t          d| ¦  «        j        dk    sJ ‚t          dd¦  «        t	          d¦  «        k    sJ ‚t          dd¦  «        t          d¦  «        k    sJ ‚t          dd¦  «        t          d¦  «        k    sJ ‚t          t          d| ¦  «        d¬¦  «        t          ddgdt          t          | ¦  «        dz  t          z  t          z  dt          | ¦  «        z  z  ¦  «        gg¦  «        k    sJ ‚d S )NÚxé   ©r   é   é   r   ©Únqubits)r   r   ÚkÚtargetsr   r   r   r   r   r   r   r   r   Úabs)r   s    úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/physics/quantum/tests/test_qft.pyÚtest_RkGater"      s'  € Ýˆs‰Œ€AÝ�!�Q‰<Œ<Œ>˜QÒÐÐÐÝ�!�Q‰<Œ<Ô 4Ò'Ð'Ð'Ð'Ý�!�Q‰<Œ<�5 ™8œ8Ò#Ð#Ð#Ð#Ý�!�Q‰<Œ<�9 Q™<œ<Ò'Ð'Ð'Ð'Ý�!�Q‰<Œ<�5 ™8œ8Ò#Ð#Ð#Ð#åÝˆq�!‰Œ˜að!ñ !ô !Ý$*¨Q°¨F°Q½½DÀ¹G¼GÀA¹IÅb¹LÍ¹NÈAÍsÐSTÉvÌvÉIÑ<VÑ8WÔ8WÐ4XÐ+YÑ$ZÔ$Zò[ð [ð [ð [ð [ð [ó    c            	      óT  — t          dd¦  «                             ¦   «         t          dd¦  «        t          d¦  «        z  t	          dt          d¦  «        ¦  «        z  t          d¦  «        z  t	          dt          d¦  «        ¦  «        z  t	          dt          d¦  «        ¦  «        z  t          d¦  «        z  k    sJ ‚t          dd¦  «                             ¦   «         t          d¦  «        t	          dt          dd¦  «        ¦  «        z  t	          dt          dd¦  «        ¦  «        z  t          d¦  «        z  t	          dt          dd¦  «        ¦  «        z  t          d¦  «        z  t          dd¦  «        z  k    sJ ‚t          t          dd¦  «        d¬	¦  «        t          d
„ t          d¦  «        D ¦   «         ¦  «        k    sJ ‚t          dd¦  «                             ¦   «         sJ ‚t          t          dd¦  «                             ¦   «         t          ddd¦  «        z  ¦  «                             ¦   «         t          t          d¦  «        t          d¦  «        z  t          d¦  «        z  t          ddd¦  «        z  ¦  «                             ¦   «         k    sJ ‚d S )Nr   r   r   )r   r   r   éþÿÿÿéýÿÿÿr   c                 óF   ‡— g | ]Šˆfd „t          d¦  «        D ¦   «         ‘ŒS )c                 ó†   •— g | ]=}t          d t          z  t          z  dz  ¦  «        |‰z  dz  z  t          d¦  «        z  ‘Œ>S )r   é   )r   r   r   r   )Ú.0ÚiÚjs     €r!   ú
<listcomp>z3test_quantum_fourier.<locals>.<listcomp>.<listcomp>(   sC   ø€ ÐDÐDÐD°a•�Q•r‘T�!‘V˜A‘X‘”  1¡ q¡Ñ)­$¨q©'¬'Ñ1ÐDÐDÐDr#   r)   )Úrange)r*   r,   s    @r!   r-   z(test_quantum_fourier.<locals>.<listcomp>(   s4   ø€ ÐWÐWÐWÈÐDÐDÐDÐD½5À¹8¼8ÐDÑDÔDÐWÐWÐWr#   r)   é   )r	   Ú	decomposer   r   r   r   r   r
   r   r   r   r.   r   r   Úexpand© r#   r!   Útest_quantum_fourierr3      sg  € Ýˆq�!‰9Œ9×ÒÑ Ô Ý��A‰Œ•| A‘”Ñ&¥u¨Tµ9¸Q±<´<Ñ'@Ô'@Ñ@Ý�Q‰Œñ	Ý˜d¥E¨!¡H¤HÑ-Ô-ñ	.Ý.3°D½)ÀA¹,¼,Ñ.GÔ.Gñ	Hå�Q‰Œñ	òð ð ð õ
 ��1‰:Œ:×ÒÑ!Ô!Ý�Q‰Œ�˜d¥F¨1¨b¡M¤MÑ2Ô2Ñ2µ5¸½vÀaÈ¹}¼}Ñ3MÔ3MÑMÝ�Q‰Œñ	Ý˜d¥F¨1¨b¡M¤MÑ2Ô2ñ	3Ý3?À±?´?ñ	CÝCKÈAÈqÁ>Ä>ñ	RòRð Rð Rð Rõ •S˜˜A‘Y”Y¨Ð*Ñ*Ô*ÝÐWÐWÍeÐTUÉhÌhÐWÑWÔWÑXÔXòYð Yð Yð Yõ ˆq�!‰9Œ9×ÒÑ Ô Ð Ð Ð Ý•#�a˜‘)”)×%Ò%Ñ'Ô'­¨a°°A©¬Ñ6Ñ7Ô7×>Ò>Ñ@Ô@ÅFÝ�Q‰Œ� Q™œÑ'­°Q©¬Ñ7½¸aÀÀA¹¼ÑFñEô Eç‚f�h„hòð ð ð ð ð r#   c                  óî   — t          dd¦  «        } t          | d¬¦  «        }t          |                      ¦   «         d¬¦  «        }|                     d¬¦  «        |                     d¬¦  «        k    sJ ‚d S )Nr   r   r   é
   )Ún)r	   r   r0   Úevalf)ÚcÚaÚbs      r!   Útest_qft_representr;   0   sj   € ÝˆAˆq‰	Œ	€AÝ�!˜QÐÑÔ€AÝ�!—+’+‘-”-¨Ð+Ñ+Ô+€AØ�7Š7�Rˆ7‰=Œ=˜AŸGšG b˜G™MœMÒ)Ð)Ð)Ð)Ð)Ð)r#   N)!Úsympy.core.numbersr   r   Úsympy.core.symbolr   Ú&sympy.functions.elementary.exponentialr   Ú(sympy.functions.elementary.miscellaneousr   Úsympy.matrices.denser   Úsympy.physics.quantum.qftr	   r
   r   Úsympy.physics.quantum.gater   r   r   r   r   r   Úsympy.physics.quantum.qubitr   Úsympy.physics.quantum.qapplyr   Úsympy.physics.quantum.representr   Ú$sympy.functions.elementary.complexesr   r"   r3   r;   r2   r#   r!   ú<module>rG      sU  ðØ &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø $Ð $Ð $Ð $Ð $Ð $Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7ð:ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :à -Ð -Ð -Ð -Ð -Ð -Ø /Ð /Ð /Ð /Ð /Ð /Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5à 5Ð 5Ð 5Ð 5Ð 5Ð 5ð	[ð 	[ð 	[ðð ð ð&*ð *ð *ð *ð *r#   