
    Цi"                     8   S SK r S SKJrJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJrJrJrJrJrJrJrJr  S SKJrJrJrJrJrJr  S S	KJr  S S
KJr  S SK J!r!  S SK"J#r#  S SK$J%r%  S SK&J'r'  \" S5      u  r(r)Sr*S r+S r,S r-S r.S r/S r0S r1S r2S r3S r4S r5g)    N)IntegerRational)S)symbols)sqrt)Matrix)measure_all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                     / SQn [        S5      nUR                  S5      [        S5      :X  d   eUR                  S5      [        S5      :X  d   eUR                  S5      [        S5      :X  d   eUR                  S:X  d   eUR                  S	:X  d   e[	        S	5       H  nX   U SU-
     :X  a  M   e   [        U5      S	:X  d   e[        S
5      ng )N)r   r      r   r   00110r   00111r   00100   10110   110)r   flipqubit_values	dimensionrangelen)arrayqbis      e/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/sympy/physics/quantum/tests/test_qubit.py
test_Qubitr/      s    E	wB771:w'''771:w'''771:w'''??o---<<11Xua!e$$$ r7a<<	uB    c                     [        S5      n [        S5      nU R                  5       [        :X  d   eUR                  5       [         :X  d   e[        SSS5      n [        SSS5      n[        U SS9R                  [        USS9:X  d   e[        SS5      n [        SS5      nU R                  U5      [        S5      :X  d   e[        SS5      nU R                  U5      [        S5      :X  d   eg )Nr   r      nqubits)r   r   
dual_classr   H_eval_innerproduct_QubitBrar   )r,   qb_bras     r.   test_QubitBrar9   (   s    	qBa[F==?h&&&%'''	q!QBaAFR#%%61)EEEE	q!Ba]F))&1WQZ???a^F))&1WQZ???r0   c                     [        SSS9n [        [        S5      5      [        U 5      :X  d   e[        S5      n[        [        U5      5      [        U5      :X  d   e[        SSS9n [        [        S5      5      [        U 5      :X  d   e[        [        S5      5      [        U 5      :X  d   e[        SSS9n [        [        S	5      5      [        U 5      :X  d   e[        [        SS5      5      [        U 5      :X  d   e[        S
5      n U R                  5       S
:X  d   eU R                  S:X  d   e[        SS5      n U R                  S:X  d   e[        S5      [        SS5      :X  d   e[        S5      n [        S5      nU R                  5       [
        :X  d   eUR                  5       [         :X  d   e[        S5      n [        S5      nU R                  U5      [        S5      :X  d   e[        S5      n [        S5      nU R                  U5      [        S5      :X  d   e[        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        g )Nr   r   r3   010101   r"   0111   r   r   r   r   )r   r   r   r   r2      r$   c                      [        SS5      $ )Nr"   r   r    r0   r.   <lambda>test_IntQubit.<locals>.<lambda>_   s
    x1~r0   c                      [        S5      $ )N5rD   rE   r0   r.   rF   rG   a   s    x}r0   c                      [        SS5      $ )Nr$   rI   rD   rE   r0   r.   rF   rG   b   s    x3/r0   c                      [        SSS9$ )Nr$   rI   r3   rD   rE   r0   r.   rF   rG   c   s    x37r0   c                      [        SSS9$ )Nr$   T)bad_argrD   rE   r0   r.   rF   rG   d   s    hq$7r0   )r   r   r   as_intr'   r   r5   _eval_innerproduct_IntQubitBrar   r   
ValueError	TypeError)iqbr,   iqb_bras      r.   test_IntQubitrT   :   s   
1a
 C5:&/#*>>>>	vB8B<(OB,????
1a
 C5:&/#*>>>>8A;'?3+????
1a
 C5=)_S-AAAA8Aq>*oc.BBBB
1+C::<1|+++
1a.C|+++A;(1a.((( 1+C!nG>>{***8+++
1+C!nG--g6'!*DDD
1+C!nG--g6'!*DDD
:-.
:,-
:/0
:78
978r0   c                     S[        S5      -  [        S5      -  S[        S5      -  [        S5      -  -   n [        SS5      [        S5      -  U -  n[        S5      S-  [        S5      S-  -   [        S5      S-  -
  [        S5      S-  -   n[	        U5      R                  5       U:X  d   e[        [        USS95      U:X  d   eg )	Nr   rB   0110r   0011r3   )r   r   r   r   r   expandr   r   )state
state_gatestate_expandeds      r.   test_superposition_of_statesr^   f   s    d1gIeDk!Ad1gIeDk$99EaLO+E1J4[]U4[]2U4[]BU4[QR]RN*$$&.8889Z;<NNNr0   c                     [        [        S[        R                  " 5       -  5      5      [        [        S[        R                  " 5       -  5      5      [	        [        S[        R                  " 5       -  5      5      [        [        S[        R                  " 5       -  5      5      [	        [        S[        R                  " 5       -  5      5      [        [        S[        R                  " 5       -  5      5      /n [        [        [        R                  " 5       S-  5      [        [        R                  " 5       S-  5      [        [        R                  " 5       S-  5      [        [        R                  " 5       S-  5      [        [        R                  " 5       S-  5      [        [        R                  " 5       S-  5      5      n[        [        [        R                  " 5       S-  5      5       H*  nU [        [        R                  " 5       S-  5         U-  nM,     [        USS9n[        U5      n[        U5      nUR                  5       nUR                  5       nXT:X  d   eg )Nr2   rB      r3   )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
3q !"E#a.?*@$Ac!FMMO#$%uS6==?1B-C'D#a'()+E
 C)*C0A,BC 12C8I4JFMMOA G 3v}}q()*FMMOA-./7 + GQ
'CG_F$I]]_F  "Ir0   c                     [        SSSS5      n [        / SQ5      n[        U5      U :X  d   e[        U 5      U:X  d   eS[	        S5      -  [        SSS5      [        SSS5      -   [        SSS5      -   [        SSS5      -   [        SSS5      -   [        SSS5      -   [        SSS5      -   [        SSS5      -   -  n[	        S5      S-  [        / SQ5      -  n[        U5      UR                  5       :X  d   e[        U5      U:X  d   eg )Nr   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rB   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
BC32%%%2#%%%d1gIuQ1~aA6q!QGQ1~&(-aA79>q!QHQ1~&(-aA7 8E 719V455D4 ELLN2225!T)))r0   c                     [        S5      u  pU [        S5      -  U[        S5      -  -   n[        USSS9U [        S5      -  X R                  5       -  4U[        S5      -  XR                  5       -  4/:X  d   e[	        USS9[        S5      X R                  5       -  4[        S5      XR                  5       -  4/:X  d   eg )Nza br%   111r   F)	normalize)r   r   r
   	conjugater	   )abr[   s      r.   test_measure_normalizers      s    5>DAeElNQuU|^+E5$%8
E%L.!KKM/	*QuU|^Q{{}_,MNO O Ou.
,++-	(5<;;=*IJK K Kr0   c                     [        S5      [        S5      -   n [        U S5      [        S5      [        R                  4[        S5      [        R                  4/:X  d   e[        U [	        S5      5      [        S5      [        R                  4[        S5      [        R                  4/:X  d   e[        U S5      [        U S5      S S S2   :X  d   e[        S5      [        S5      -  [        S	5      -  S
[        S5      -  [        S5      -  -   n[        US5      [        S5      [        S5      -  [        S	5      -  S
[        S5      -  [        S5      -  -   S
4/:X  d   e[        US5      [        US5      :X  d   e[        US5      [        S	5      [        SS5      4[        S5      [        S
S5      4/:X  d   e[        S5      [        S5      -   [        S5      -   [        S5      -   n[        US5      [        S5      [        S
S5      4[        S5      [        S
S5      4[        S5      [        S5      -  [        S5      [        S5      -  -   [        R                  4/:X  d   e[        US5      [        S5      [        S
S5      4[        S5      [        S5      -  [        S5      [        S5      -  -   [        S5      [        S5      -  -   [        SS5      4/:X  d   eg )NrV   rW   rn   r   )r   rB   r2   00001r   11111)r   rB   )r2   r"   )r   rB   r2   1111110110111000)r   r   r2   r"   )r   r
   r   Halfra   r   r   )r[   state1state2s      r.   test_measure_partialr      s   $K%+%E5$'
+qvv	taff 567 7 75#a&)
+qvv	taff 567 7 75$'t$TrT*+ + + !WT!W_U7^+aQig.FFF64(
q'$q'/%.
(1T!W9U7^+C
CQ	GHI I I66*off.MMMM69-
.(1a.	)E'NHQN+KLM M M 6]U6]*U6]:U6]JF69-
-!Q	(5=(1a.*I
-Q
%-Q"7
7	@	BB B B 64(
-!Q	(
-Q
%-Q"7
7
-Q
 !)!Q
1	22 2 2r0   c                  D   [        [        S5      5      [        S5      S4/:X  d   e[        S5      [        S5      -   n [        U 5      [        S5      [        R                  4[        S5      [        R                  4/:X  d   e[        S5      [	        S5      -  S[        S5      -  [	        S5      -  -   n[        U5      [        S5      [        SS5      4[        S5      [        SS5      4/:X  d   e[        [        [        S5      5      5      [        S5      S4/:X  d   eg )	NrY   r   rW   r$   rB   rX   r"   r;   )r	   r   r   r|   r   r   r   )r[   r~   s     r.   test_measure_allr      s   uT{#ta(8'9999$K%+%Eu5;"7$K "" " " "4[a 1U4[=a#88Fv
+x1~	&thq!n(EFG G G veCj)*c
A.????r0   c                     [        S5      n [        S5      n[        U S/US/5      n[        U5      nUR                  5       S:X  d   e[        US5      nUR                  5       S[        [        S5      S/5      -  S[        [        S	5      S/5      -  -   :X  d   e[        US
5      nUR                  5       S[        [        S5      S/5      -  S[        [        S5      S/5      -  -   :X  d   e[        US5      nUR                  5       S[        [        S5      S/5      -  S[        [        S5      S/5      -  -   :X  d   e[        U/ SQ5      nUR                  5       S:X  d   e[        U/ SQ5      nUR                  5       S[        [        S5      S/5      -  S[        [        S5      S/5      -  -   :X  d   eS[	        S5      -  [        S5      [        S5      -   -  n[        US/5      n[        US5      nUR                  5       S[        [        S5      S/5      -  S[        [        S5      S/5      -  -   :X  d   eg )Nr#   01010g333333?g?g      ?r   0101r   rz   r"   r<   0110rB   )r   r   rB   r2   r"   )rB   r   r2   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668s?? 	1aA668GU6]A$677GU6]A$6778 9 9 9
1aA668GU6]A$677GU6]A$6778 9 9 9 	1aA668GU6]A$677GU6]A$6778 9 9 9 	1oA668s?? 	1iA668GU4[!$455GU4[!$4556 7 7 7 
47uT{U4[01A!SA
1aA668GU3ZO44GU3ZO445 6 6 6r0   c                     [        SS/SS//5      n [        U 5      [        [        S5      S/5      :X  d   e[        SS/SS//5      n [        U 5      [        [        S5      S/5      :X  d   e[        SS/SS//5      n [        U 5      S:X  d   e[        / SQ/ SQ/ SQ/ SQ/5      n [        U 5      [        [        S5      S/5      :X  d   e[        / SQ/ SQ/ SQ/ SQ/5      n [        U 5      [        [        S	5      S/5      :X  d   eg )
Nr   r   r=   r;   )r   r   r   r   )r   r   r   r   rW   rA   rX   )r   r   r   r   )re   s    r.   test_matrix_to_densityr      s   
1a&1a&!
"CS!WeCj!_%====
1a&1a&!
"CS!WeCj!_%====
1a&1a&!
"CS!Q&&&
,  !C
 S!WeDk1-=%>>>>
,  !C
 S!WeDk1-=%>>>>r0   )6rb   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   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epsilonr/   r9   rT   r^   rh   rk   rs   r   r   r   r   rE   r0   r.   <module>r      s     2 " % 9 '@ @ @: : / 5 , ' 1 *u~1
@$*9XO(*K2:
@"6J?r0   