Ë
    7^(h7$  ã                   óB  — d dl Z 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mZmZmZ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 dl%m&Z& d dl'm(Z(  ed«      \  Z)Z*dZ+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1d„ Z2d„ Z3d„ Z4d„ Z5d„ Z6d„ Z7y)é    N)ÚIntegerÚRational)ÚS)Úsymbols)Úsqrt)ÚMatrix)	Úmeasure_allÚmeasure_all_oneshotÚmeasure_partialÚmatrix_to_qubitÚmatrix_to_densityÚqubit_to_matrixÚIntQubitÚIntQubitBraÚQubitBra)ÚHadamardGateÚCNOTÚXGateÚYGateÚZGateÚ	PhaseGate)Úqapply)Ú	represent)ÚQubit)Úraises)ÚDensity)ÚTrzx,yg�íµ ÷Æ°>c                  ó–  — g d¢} t        d«      }|j                  d«      t        d«      k(  sJ ‚|j                  d«      t        d«      k(  sJ ‚|j                  d«      t        d«      k(  sJ ‚|j                  dk(  sJ ‚|j                  d	k(  sJ ‚t	        d	«      D ]  }||   | d|z
     k(  rŒJ ‚ t        |«      d	k(  sJ ‚t        d
«      }y )N)r   r   é   r   r   Ú00110r   Ú00111r   Ú00100é   Ú10110é   Ú110)r   ÚflipÚqubit_valuesÚ	dimensionÚrangeÚlen)ÚarrayÚqbÚis      úd/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/physics/quantum/tests/test_qubit.pyÚ
test_Qubitr0      sÈ   € Ú€EÜ	ˆw‹€BØ�7‰7�1‹:œ˜w›Ò'Ð'Ð'Ø�7‰7�1‹:œ˜w›Ò'Ð'Ð'Ø�7‰7�1‹:œ˜w›Ò'Ð'Ð'Ø�?‰?˜oÒ-Ð-Ð-Ø�<‰<˜1ÒÐÐÜ�1‹Xò %ˆØ�!‰u˜˜a !™e™Ó$Ð$Ð$ð%äˆr‹7�aŠ<Ðˆ<Ü	ˆu‹�Bó    c                  óÚ  — t        d«      } t        d«      }| j                  «       t        k(  sJ ‚|j                  «       t         k(  sJ ‚t        ddd«      } t        ddd«      }t        | d¬«      j                  t        |d¬«      k(  sJ ‚t        dd«      } t        dd«      }| j                  |«      t        d«      k(  sJ ‚t        dd«      }| j                  |«      t        d«      k(  sJ ‚y )Nr   r   é   ©Únqubits)r   r   Ú
dual_classr   ÚHÚ_eval_innerproduct_QubitBrar   )r-   Úqb_bras     r/   Útest_QubitBrar:   (   s×   € Ü	ˆq‹€BÜ�a‹[€FØ�=‰=‹?œhÒ&Ð&Ð&Ø×ÑÓ¤%Ò'Ð'Ð'ä	ˆq�!�Q‹€BÜ�a˜˜AÓ€FÜ�R Ô#×%Ñ%¬°6À1Ô)EÒEÐEÐEä	ˆq�!‹€BÜ�a˜‹]€FØ×)Ñ)¨&Ó1´W¸Q³ZÒ?Ð?Ð?ä�a˜‹^€FØ×)Ñ)¨&Ó1´W¸Q³ZÒ?Ð?Ñ?r1   c                  óà  — t        dd¬«      } t        t        d«      «      t        | «      k(  sJ ‚t        d«      }t        t        |«      «      t        |«      k(  sJ ‚t        dd¬«      } t        t        d«      «      t        | «      k(  sJ ‚t        t        d«      «      t        | «      k(  sJ ‚t        dd¬«      } t        t        d	«      «      t        | «      k(  sJ ‚t        t        dd«      «      t        | «      k(  sJ ‚t        d
«      } | j                  «       d
k(  sJ ‚| j                  dk(  sJ ‚t        dd«      } | j                  dk(  sJ ‚t        d«      t        dd«      k(  sJ ‚t        d«      } t        d«      }| j                  «       t
        k(  sJ ‚|j                  «       t         k(  sJ ‚t        d«      } t        d«      }| j                  |«      t        d«      k(  sJ ‚t        d«      } t        d«      }| j                  |«      t        d«      k(  sJ ‚t        t        d„ «       t        t        d„ «       t        t        d„ «       t        t        d„ «       t        t        d„ «       y )Nr   r   r4   Ú0Ú1010Ú1é   r#   Ú0111é   ©r   r   r   r   )r   r   r   r   r3   é   r%   c                  ó   — t        dd«      S )Nr#   r   ©r   © r1   r/   ú<lambda>ztest_IntQubit.<locals>.<lambda>_   s   € œx¨¨1›~€ r1   c                  ó   — t        d«      S )NÚ5rE   rF   r1   r/   rG   ztest_IntQubit.<locals>.<lambda>a   s
   € œx¨›}€ r1   c                  ó   — t        dd«      S )Nr%   rI   rE   rF   r1   r/   rG   ztest_IntQubit.<locals>.<lambda>b   s   € œx¨¨3Ó/€ r1   c                  ó   — t        dd¬«      S )Nr%   rI   r4   rE   rF   r1   r/   rG   ztest_IntQubit.<locals>.<lambda>c   s   € œx¨°3Ô7€ r1   c                  ó   — t        dd¬«      S )Nr%   T)Úbad_argrE   rF   r1   r/   rG   ztest_IntQubit.<locals>.<lambda>d   s   € œh q°$Ô7€ r1   )r   r   r   Úas_intr(   r   r6   Ú_eval_innerproduct_IntQubitBrar   r   Ú
ValueErrorÚ	TypeError)Úiqbr-   Úiqb_bras      r/   Útest_IntQubitrT   :   s  € ä
�1˜aÔ
 €CÜœ5 ›:Ó&¬/¸#Ó*>Ò>Ð>Ð>ä	ˆv‹€BÜœ8 B›<Ó(¬O¸BÓ,?Ò?Ð?Ð?ä
�1˜aÔ
 €CÜœ5 ›:Ó&¬/¸#Ó*>Ò>Ð>Ð>Üœ8 A›;Ó'¬?¸3Ó+?Ò?Ð?Ð?ä
�1˜aÔ
 €CÜœ5 ›=Ó)¬_¸SÓ-AÒAÐAÐAÜœ8 A q›>Ó*¬o¸cÓ.BÒBÐBÐBä
�1‹+€CØ�:‰:‹<˜1ÒÐÐØ×Ñ˜|Ò+Ð+Ð+ä
�1�a‹.€CØ×Ñ˜|Ò+Ð+Ð+Ü�A‹;œ( 1 a›.Ò(Ð(Ð(ô �1‹+€CÜ˜!‹n€GØ�>‰>Óœ{Ò*Ð*Ð*Ø×ÑÓ¤8Ò+Ð+Ð+ä
�1‹+€CÜ˜!‹n€GØ×-Ñ-¨gÓ6¼'À!»*ÒDÐDÐDä
�1‹+€CÜ˜!‹n€GØ×-Ñ-¨gÓ6¼'À!»*ÒDÐDÐDÜ
Œ:Ñ-Ô.ä
Œ:Ñ,Ô-Ü
Œ:Ñ/Ô0Ü
Œ:Ñ7Ô8Ü
Œ9Ñ7Õ8r1   c                  óŒ  — dt        d«      z  t        d«      z  dt        d«      z  t        d«      z  z   } t        dd«      t        d«      z  | z  }t        d«      dz  t        d«      dz  z   t        d«      dz  z
  t        d«      dz  z   }t	        |«      j                  «       |k(  sJ ‚t        t        |d¬«      «      |k(  sJ ‚y )	Nr   rC   Ú01Ú10r   Ú00Ú11r4   )r   r   r   r   r   Úexpandr   r   )ÚstateÚ
state_gateÚstate_expandeds      r/   Útest_superposition_of_statesr^   f   s²   € ØŒd�1‹g‰I”e˜D“kÑ! A¤d¨1£g¡I¬e°D«kÑ$9Ñ9€EÜ�a˜“œL¨›OÑ+¨EÑ1€JÜ˜4“[ ‘]¤U¨4£[°¡]Ñ2´U¸4³[À±]ÑBÄUÈ4Ã[ÐQRÁ]ÑR€NÜ�*Ó×$Ñ$Ó&¨.Ò8Ð8Ð8Üœ9 Z¸Ô;Ó<ÀÒNÐNÑNr1   c                  ó¬  — t        t        dt        j                  «       z  «      «      t        t        dt        j                  «       z  «      «      t	        t        dt        j                  «       z  «      «      t        t        dt        j                  «       z  «      «      t	        t        dt        j                  «       z  «      «      t        t        dt        j                  «       z  «      «      g} t        t        t        j                  «       dz  «      t        t        j                  «       dz  «      t        t        j                  «       dz  «      t        t        j                  «       dz  «      t        t        j                  «       dz  «      t        t        j                  «       dz  «      «      }t        t        t        j                  «       dz  «      «      D ](  }| t        t        j                  «       dz  «         |z  }Œ* t        |d¬«      }t        |«      }t        |«      }|j                  «       }|j                  «       }||k(  sJ ‚y )Nr3   rC   é   r4   )r   ÚintÚrandomr   r   r   r   r   r*   r   r   r   rZ   )ÚgatesÚcircuitr.   ÚmatÚstatesÚ	state_reps         r/   Útest_apply_represent_equalityrh   o   sž  € Üœ#˜a¤§¡£Ñ/Ó0Ó1Ü
Œ3ˆq”—‘“Ñ Ó!Ó"¤E¬#¨a´·±³Ñ.?Ó*@Ó$AÜŒc�!”F—M‘M“OÑ#Ó$Ó%¤u¬S°´6·=±=³?Ñ1BÓ-CÓ'DÜ”#�aœŸ™›Ñ'Ó(Ó)ð+€Eô
 ”CœŸ™›¨Ñ)Ó*¬C´·±³ÀÑ0AÓ,BÜŒ�‰‹˜ÑÓœC¤§¡£°Ñ 1Ó2´C¼¿¹»ÈÑ8IÓ4JÜŒF�M‰M‹O˜AÑÓó €Gô ”3”v—}‘}“ qÑ(Ó)Ó*ò 8ˆØœœFŸM™M›O¨AÑ-Ó.Ñ/°Ñ7‰ð8ô �G QÔ
'€CÜ�G‹_€FÜ Ó$€IØ�]‰]‹_€FØ× Ñ Ó"€IØ˜ÒÐÑr1   c                  ó
  — t        dddd«      } t        g d¢«      }t        |«      | k(  sJ ‚t        | «      |k(  sJ ‚dt	        d«      z  t        ddd«      t        ddd«      z   t        ddd«      z   t        ddd«      z   t        ddd«      z   t        ddd«      z   t        ddd«      z   t        ddd«      z   z  }t	        d«      dz  t        g d¢«      z  }t        |«      |j                  «       k(  sJ ‚t        |«      |k(  sJ ‚y )Nr   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rC   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   rZ   )r-   re   r[   Úoness       r/   Útest_matrix_to_qubitsrk   ƒ   s  € Ü	ˆq�!�Q˜Ó	€BÜ
ÒAÓ
B€CÜ˜3Ó 2Ò%Ð%Ð%Ü˜2Ó #Ò%Ð%Ð%àŒd�1‹g‰I”u˜Q  1“~¬¨a°°A«Ñ6¼¸qÀ!ÀQ»ÑGÜ˜Q  1“~ñ&Ü(-¨a°°A«ñ7Ü9>¸qÀ!ÀQ»ñHä˜Q  1“~ñ&ä(-¨a°°A«ñ7ñ 8€Eô �‹7�1‰9”VÒ4Ó5Ñ5€DÜ˜4Ó  E§L¡L£NÒ2Ð2Ð2Ü˜5Ó! TÒ)Ð)Ñ)r1   c                  ó˜  — t        d«      \  } }| t        d«      z  |t        d«      z  z   }t        |dd¬«      | t        d«      z  | | j                  «       z  f|t        d«      z  ||j                  «       z  fgk(  sJ ‚t	        |d¬«      t        d«      | | j                  «       z  ft        d«      ||j                  «       z  fgk(  sJ ‚y )Nza br&   Ú111©r   F)Ú	normalize)r   r   r   Ú	conjugater	   )ÚaÚbr[   s      r/   Útest_measure_normalizers   ‘   sÇ   € Ü�5‹>�D€A€qØŒe�E‹l‰N˜Qœu U›|™^Ñ+€EÜ˜5 $°%Ô8Ø
ŒE�%‹L‰.˜!˜AŸK™K›M™/Ð	*¨Q¬u°U«|©^¸Q¸q¿{¹{»}¹_Ð,MÐNòOð Oð Oä�u¨Ô.Ü
�‹,˜˜!Ÿ+™+›-™Ð	(¬5°«<¸¸1¿;¹;»=¹Ð*IÐJòKð Kñ Kr1   c                  ó¬  — t        d«      t        d«      z   } t        | d«      t        d«      t        j                  ft        d«      t        j                  fgk(  sJ ‚t        | t	        d«      «      t        d«      t        j                  ft        d«      t        j                  fgk(  sJ ‚t        | d«      t        | d«      d d d…   k(  sJ ‚t        d«      t        d«      z  t        d	«      z  d
t        d«      z  t        d«      z  z   }t        |d«      t        d«      t        d«      z  t        d	«      z  d
t        d«      z  t        d«      z  z   d
fgk(  sJ ‚t        |d«      t        |d«      k(  sJ ‚t        |d«      t        d	«      t        dd«      ft        d«      t        d
d«      fgk(  sJ ‚t        d«      t        d«      z   t        d«      z   t        d«      z   }t        |d«      t        d«      t        d
d«      ft        d«      t        d
d«      ft        d«      t        d«      z  t        d«      t        d«      z  z   t        j                  fgk(  sJ ‚t        |d«      t        d«      t        d
d«      ft        d«      t        d«      z  t        d«      t        d«      z  z   t        d«      t        d«      z  z   t        dd«      fgk(  sJ ‚y )NrV   rW   rn   r   )r   éÿÿÿÿrC   r3   Ú00001r   Ú11111)r   rC   )r3   r#   )r   rC   r3   Ú1111Ú1101Ú1011Ú1000)r   r   r3   r#   )r   r   r   ÚHalfra   r   r   )r[   Ústate1Ústate2s      r/   Útest_measure_partialr   š   s©  € ä�$‹Kœ% ›+Ñ%€EÜ˜5 $Ó'Ü
�‹+”q—v‘vÐ	¤ t£¬a¯f©fÐ 5Ð6ò7ð 7ð 7ä˜5¤# a£&Ó)Ü
�‹+”q—v‘vÐ	¤ t£¬a¯f©fÐ 5Ð6ò7ð 7ð 7ä˜5 $Ó'Ü˜˜tÓ$¡T r TÑ*ò+ð +ð +ô �!‹W”T˜!“W‰_œU 7›^Ñ+¨a´°Q³©i¼¸g»Ñ.FÑF€FÜ˜6 4Ó(Ü
ˆq‹'”$�q“'‰/œ% ›.Ñ
(¨1¬T°!«W©9´U¸7³^Ñ+CÑ
CÀQÐ	GÐHòIð Ið Iä˜6 6Ó*¬o¸fÀfÓ.MÒMÐMÐMÜ˜6 9Ó-Ü
�‹.œ( 1 a›.Ð	)¬E°'«N¼HÀQÈ»NÐ+KÐLòMð Mð Mô �6‹]œU 6›]Ñ*¬U°6«]Ñ:¼UÀ6»]ÑJ€FÜ˜6 9Ó-Ü
�‹-œ ! Q›Ð	(¬5°«=¼(À1Àa».Ð*IÜ
�‹-œ˜Q›Ñ
¤%¨£-´°Q³Ñ"7Ñ
7¼¿¹Ð	@ð	BòBð Bð Bô ˜6 4Ó(Ü
�‹-œ ! Q›Ð	(Ü
�‹-œ˜Q›Ñ
¤%¨£-´°Q³Ñ"7Ñ
7Ü
�‹-œ˜Q›Ñ
ñ Ü!)¨!¨Q£ð
1ð	2ò2ð 2ñ 2r1   c                  ó<  — t        t        d«      «      t        d«      dfgk(  sJ ‚t        d«      t        d«      z   } t        | «      t        d«      t        j                  ft        d«      t        j                  fgk(  sJ ‚t        d«      t	        d«      z  dt        d«      z  t	        d«      z  z   }t        |«      t        d«      t        dd«      ft        d«      t        dd«      fgk(  sJ ‚t        t        t        d«      «      «      t        d«      dfgk(  sJ ‚y )	NrY   r   rW   r%   rC   rX   r#   r<   )r	   r   r   r|   r   r   r   )r[   r~   s     r/   Útest_measure_allr�   ·   s  € Ü”u˜T“{Ó#¬¨t«°aÐ(8Ð'9Ò9Ð9Ð9Ü�$‹Kœ% ›+Ñ%€EÜ�uÓ¤5¨£;´·±Ð"7Ü�$‹KœŸ™Ð ð""ò "ð "ð "ä�4‹[œ˜a›Ñ  1¤U¨4£[¡=´°a³Ñ#8Ñ8€FÜ�vÓÜ
�‹+”x  1“~Ð	&¬¨t«´h¸qÀ!³nÐ(EÐFòGð Gð Gô ”vœe C›jÓ)Ó*´°c³
¸A¨Ð.?Ò?Ð?Ñ?r1   c                  óB  — t        j                  d«       t        t        d«      «      t        d«      k(  sJ ‚t        t        d«      «      t        d«      k(  sJ ‚t        t        d«      t	        d«      z  t        d«      t	        d«      z  z   «      t        d«      k(  sJ ‚y )Né*   rY   r>   r<   rC   )rb   Úseedr
   r   r   rF   r1   r/   Útest_measure_all_oneshotr…   Ä   s€   € Ü
‡K�K�„Oäœu T›{Ó+¬u°T«{Ò:Ð:Ð:Üœu S›zÓ*¬e°C«jÒ8Ð8Ð8Üœu S›z¬$¨q«'Ñ1´E¸#³J¼tÀA»wÑ4FÑFÓGÜ�#‹Jòð ñ r1   c                  ót  — t        d«      } t        d«      }t        | dg|dg«      }t        |«      }|j                  «       dk(  sJ ‚t        |d«      }|j                  «       dt        t        d«      dg«      z  dt        t        d	«      dg«      z  z   k(  sJ ‚t        |d
«      }|j                  «       dt        t        d«      dg«      z  dt        t        d«      dg«      z  z   k(  sJ ‚t        |d«      }|j                  «       dt        t        d«      dg«      z  dt        t        d«      dg«      z  z   k(  sJ ‚t        |g d¢«      }|j                  «       dk(  sJ ‚t        |g d¢«      }|j                  «       dt        t        d«      dg«      z  dt        t        d«      dg«      z  z   k(  sJ ‚dt	        d«      z  t        d«      t        d«      z   z  }t        |dg«      }t        |d«      }|j                  «       dt        t        d«      dg«      z  dt        t        d«      dg«      z  z   k(  sJ ‚y )Nr$   Ú01010g333333ã?gš™™™™™Ù?g      ð?r   Ú0101r   rz   r#   r=   Ú0110rC   )r   r   rC   r3   r#   )rC   r   r3   rX   rW   rY   g      à?r<   r>   )r   r   r   Údoitr   )Úq1Úq2ÚdÚtÚqs        r/   Útest_eval_tracer�   Í   s6  € Ü	ˆw‹€BÜ	ˆw‹€BÜ��S�	˜B ˜9Ó%€Aä
ˆ1‹€AØ�6‰6‹8�sŠ?Ðˆ?ô 	ˆ1ˆa‹€AØ�6‰6‹8˜œG¤U¨6£]°AÐ$6Ó7Ñ7ØœG¤U¨6£]°AÐ$6Ó7Ñ7ñ8ò 9ð 9ð 9ä
ˆ1ˆa‹€AØ�6‰6‹8˜œG¤U¨6£]°AÐ$6Ó7Ñ7ØœG¤U¨6£]°AÐ$6Ó7Ñ7ñ8ò 9ð 9ð 9ô 	ˆ1ˆa‹€AØ�6‰6‹8˜œG¤U¨6£]°AÐ$6Ó7Ñ7ØœG¤U¨6£]°AÐ$6Ó7Ñ7ñ8ò 9ð 9ð 9ô 	ˆ1ŠoÓ€AØ�6‰6‹8�sŠ?Ðˆ?ô 	ˆ1ŠiÓ€AØ�6‰6‹8˜œG¤U¨4£[°!Ð$4Ó5Ñ5ØœG¤U¨4£[°!Ð$4Ó5Ñ5ñ6ò 7ð 7ð 7ð 
Œ4�‹7‰”u˜T“{¤U¨4£[Ñ0Ñ1€AÜ�!�S�Ó€AÜ
ˆ1ˆa‹€AØ�6‰6‹8˜œG¤U¨3£Z° OÓ4Ñ4ØœG¤U¨3£Z° OÓ4Ñ4ñ5ò 6ð 6ñ 6r1   c                  ó  — t        ddgddgg«      } t        | «      t        t        d«      dg«      k(  sJ ‚t        ddgddgg«      } t        | «      t        t        d«      dg«      k(  sJ ‚t        ddgddgg«      } t        | «      dk(  sJ ‚t        g d¢g d¢g d¢g d¢g«      } t        | «      t        t        d«      dg«      k(  sJ ‚t        g d¢g d¢g d¢g d¢g«      } t        | «      t        t        d	«      dg«      k(  sJ ‚y )
Nr   r   r>   r<   )r   r   r   r   )r   r   r   r   rW   rB   rX   )r   r   r   r   )re   s    r/   Útest_matrix_to_densityr’   ò   s  € Ü
�1�a�&˜1˜a˜&Ð!Ó
"€CÜ˜SÓ!¤W¬e°C«j¸!¨_Ó%=Ò=Ð=Ð=ä
�1�a�&˜1˜a˜&Ð!Ó
"€CÜ˜SÓ!¤W¬e°C«j¸!¨_Ó%=Ò=Ð=Ð=ä
�1�a�&˜1˜a˜&Ð!Ó
"€CÜ˜SÓ! QÒ&Ð&Ð&ä
’,ÚÚÚð ó !€Cô
 ˜SÓ!¤W¬e°D«k¸1Ð-=Ó%>Ò>Ð>Ð>ä
’,ÚÚÚð ó !€Cô
 ˜SÓ!¤W¬e°D«k¸1Ð-=Ó%>Ò>Ð>Ñ>r1   )8rb   Úsympy.core.numbersr   r   Úsympy.core.singletonr   Úsympy.core.symbolr   Ú(sympy.functions.elementary.miscellaneousr   Úsympy.matrices.denser   Úsympy.physics.quantum.qubitr	   r
   r   r   r   r   r   r   r   Úsympy.physics.quantum.gater   r   r   r   r   r   Úsympy.physics.quantum.qapplyr   Úsympy.physics.quantum.representr   Úsympy.physics.quantum.shorr   Úsympy.testing.pytestr   Úsympy.physics.quantum.densityr   Úsympy.physics.quantum.tracer   ÚxÚyÚepsilonr0   r:   rT   r^   rh   rk   rs   r   r�   r…   r�   r’   rF   r1   r/   ú<module>r£      s™   ðÛ ç 2Ý "Ý %Ý 9Ý '÷@÷ @õ @÷:÷ :å /Ý 5Ý ,Ý 'Ý 1Ý *áˆuƒ~�€€1à
€òò@ò$*9òXOòò(*òKò2ò:
@òò"6óJ?r1   