
    \h7$                     B   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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 r0S r1S r2S r3S r4S r5S r6S r7g)    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                     / 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      ^/var/www/auris/envauris/lib/python3.13/site-packages/sympy/physics/quantum/tests/test_qubit.py
test_Qubitr0      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_QubitBrar:   (   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???r1   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   r4   010101   r#   0111   r   r   r   r   )r   r   r   r   r3      r%   c                      [        SS5      $ )Nr#   r   r    r1   r/   <lambda>test_IntQubit.<locals>.<lambda>_   s
    x1~r1   c                      [        S5      $ )N5rE   rF   r1   r/   rG   rH   a   s    x}r1   c                      [        SS5      $ )Nr%   rJ   rE   rF   r1   r/   rG   rH   b   s    x3/r1   c                      [        SSS9$ )Nr%   rJ   r4   rE   rF   r1   r/   rG   rH   c   s    x37r1   c                      [        SSS9$ )Nr%   T)bad_argrE   rF   r1   r/   rG   rH   d   s    hq$7r1   )r   r   r   as_intr(   r   r6   _eval_innerproduct_IntQubitBrar   r   
ValueError	TypeError)iqbr-   iqb_bras      r/   test_IntQubitrU   :   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8r1   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   rC   0110r   0011r4   )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Nr1   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 )Nr3   rC      r4   )r   intrandomr   r   r   r   r   r*   r   r   r   r[   )gatescircuitr.   matstates	state_reps         r/   test_apply_represent_equalityri   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r1   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   rC   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r[   )r-   rf   r\   oness       r/   test_matrix_to_qubitsrl      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)))r1   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_normalizert      s    5>DAeElNQuU|^+E5$%8
E%L.!KKM/	*QuU|^Q{{}_,MNO O Ou.
,++-	(5<;;=*IJK K Kr1   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 )NrW   rX   ro   r   )r   rC   r3   00001r   11111)r   rC   )r3   r#   )r   rC   r3   1111110110111000)r   r   r3   r#   )r   r   r   Halfrb   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 2r1   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 )	NrZ   r   rX   r%   rC   rY   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.????r1   c                  J   [         R                  " S5        [        [        S5      5      [        S5      :X  d   e[        [        S5      5      [        S5      :X  d   e[        [        S5      [	        S5      -  [        S5      [	        S5      -  -   5      [        S5      :X  d   eg )N*   rZ   r>   r<   rC   )rc   seedr
   r   r   rF   r1   r/   test_measure_all_oneshotr      s    
KKOuT{+uT{:::uSz*eCj888uSz$q'1E#JtAw4FFG#J  r1   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   r{   r#   r=   0110rC   )r   r   rC   r3   r#   )rC   r   r3   rY   rX   rZ   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 6r1   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   rX   rB   rY   )r   r   r   r   )rf   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-=%>>>>r1   )8rc   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:   rU   r_   ri   rl   rt   r   r   r   r   r   rF   r1   r/   <module>r      s     2 " % 9 '@ @ @: : / 5 , ' 1 *u~1
@$*9XO(*K2:
@"6J?r1   