
    sg                        d dl mZ d dl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 d d	lmZ d d
lmZmZmZ d dlmZmZ d dlmZ d dlmZ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,m-Z- d dl.m/Z/m0Z0m1Z1  e	d      \  Z2Z3Z4Z5 e$dd       Z6 e$dd      Z7 e$dd      Z8 ed      Z9 G d de      Z:d Z;d Z<d Z=d Z>d Z?d Z@d ZAd  ZBd! ZCd" ZDd# ZEd$ ZFd% ZGy&)'    )Mul)IIntegerRational)S)symbols)sqrt)AntiCommutator)
Commutator)hbar)Dagger)HXGateIdentityGate)OperatorIdentityOperator)qapply)JxJyJzJplusJminusJ2JzKet)TensorProduct)Ket)Density)QubitQubitBra)BosonOpBosonFockKetBosonFockBraz	j j' m m'   Ac                       e Zd Zd Zy)Fooc                     |S )N )selfketoptionss      Z/var/www/html/venv/lib/python3.12/site-packages/sympy/physics/quantum/tests/test_qapply.py_apply_operator_JzKetzFoo._apply_operator_JzKet    s    
    N)__name__
__module____qualname__r.   r)   r/   r-   r'   r'      s    r/   r'   c                     t        t        t        z        t        t        z  k(  sJ t        t        t
        z        t        t        z  t        d      z  t        t        z  t        d      z  z   k(  sJ t        t        t        z   t
        z  t        d      z        t        t        z  t        t        z  z   k(  sJ t        t        t        t        z   z        t        t        z  t        t        z  z
  k(  sJ t        t        t        z  t        t        z  z         t        t        z  t        t        z  z
  k(  sJ t        t        t        z  t        z        dt        dz  z  t        z  k(  sJ t        t        dz  t        z        dt        dz  z  t        z  k(  sJ t        t        dz  t        dz  z  t        z        dt        dz  z  t        z  k(  sJ y N      )
r   r   por   r   zr	   mor   r   r)   r/   r-   
test_basicr:   $   sU   "R%=DG###"Q$<4747?T"WT!W_<<<<56>1$T!W,-b471BBBB"b2g,47T"W#4444"R%"R%- DGd2g$5555&-"#qqy|333%(2+!D!G)B,...%(619$R'(AdAgIbL888r/   c                  Z   t         j                  t        z  t         z  } t        t        t
        z  | z        t        t
        z  | z  k(  sJ t        t        t         z  | z        t        t
        z  t        d      z  t        t        z  t        d      z  z   | z  k(  sJ t        t        t        z   t         z  t        d      z  | z        t        t
        z  | z  t        t        z  | z  z   k(  sJ t        t        t
        t        z   z  | z        t        t
        z  | z  t        t        z  | z  z
  k(  sJ t        t        t
        z  | z  t        t        z  | z  z         t        t
        z  | z  t        t        z  | z  z
  k(  sJ t        t        t        z  t
        z  | z        dt        dz  z  t        z  | z  k(  sJ t        t        dz  t        z  | z        dt        dz  z  t
        z  | z  k(  sJ t        t        dz  t        dz  z  t
        z  | z        dt        dz  z  t
        z  | z  k(  sJ y r4   )r8   dualr%   r   r   r7   r   r   r	   r9   r   r   )extras    r-   
test_extrar>   /   s   FF1HQJE"R%+$r'%-///"Q$u*$r'$q'/DGDGO"CU!JJJJ	47"5(*-1"WU]T"WU]-JK K K"b2g,u$%bb)FFFF"R%+2e+,RR0MMMM&-"5()QtQwYr\%-????%(2+e#$$'	"U(::::%(619$R'-.!D!G)B,u2DDDDr/   c                      t        t        j                  t        z  t        z  d      t        t        j                  t        z  z  k(  sJ t        t        j                  t        z  t        z        t        k(  sJ y )NFip_doit)r   r7   r<   r   r   r)   r/   r-   test_innerproductrB   <   sO    "''"*R-/43DDDD"''"*R- D(((r/   c                  V    t        d      dk(  sJ t        t        d            dk(  sJ y )Nr   )r   r   r)   r/   r-   	test_zerorD   A   s)    !9>>'!*"""r/   c                     t        t        t        t              t        z  t
        z        t        t        dz  z  t
        z  k(  sJ t        t        t        t              t        z  t
        z        dk(  sJ t        t        t        t        d            t
        z        dk(  sJ t        t        t        d      t              t
        z        dk(  sJ y )N   r   F)
r   r   r   r   r   r7   r   r   r   r'   r)   r/   r-   test_commutatorrH   F   s    *R$R'*+qqy|;;;*R$R'*+q000*RS*2-.!333*SXr*2-.!333r/   c                      t        t        t        t        d            t        z        dt
        z  t        z  k(  sJ t        t        t        d      t              t        z        dt
        z  t        z  k(  sJ y )NrG   r5   )r   r
   r   r'   r7   r   r)   r/   r-   test_anticommutatorrJ   M   sX    .SX.r12afRi???.S2.r12afRi???r/   c                  f   t         t        t        j                  z  z  t         z  t        z  } t	        |       t
        dz   t        z  k(  sJ t	        | d      t
        dz   t        j                  t        z  z  t        z  k(  sJ t	        |       j                         t
        dz   t        z  k(  sJ y )Nr5   Fr@   )r   r9   r7   r<   r   r   doit)es    r-   test_outerproductrN   R   s    
BrwwJ2A!9q###!U#ax'<R'????!9>>ax{***r/   c            	         t        d      } t        d      }t        t        d      t        d            }t        t        d      t        d            }t        t        d      t        d            }t        t        d      t        d            }t        t        d      t        d            }t	        t        | |dz        |z        t        d      |z  k(  sJ t	        t        | t        |      |z        |z        d|z  k(  sJ t	        |t        | ||z        z  d      t        d      |z  k(  sJ t	        ||z        j                         t        dd      k(  sJ t	        t        | ||z        |z        t        d      |z  k(  sJ t	        t        t        | ||z        |z        d      t        d      t        |      z  k(  sJ y )Nabr#   r5   r   Tdagger)r    r   r!   r"   r   r	   r   rL   )rP   rQ   ket1ket2ket3bra1bra2s          r-   test_tensorproductrY   Y   s   AAa,q/:Da,q/:Da,q/:Da,q/:Da,q/:D-16*T12d1gnDDD-6!9q=1D89QXEEE$q!a%00"&q'D.1 1 1$+##%q!)<<<<-1q5)D01T!Wt^CCC&q!a%0478"&q'F4L"89 9 9r/   c                      t        t        d            t        t        d            z  } t        t        d            t        d      z  t        t        d            t        d      z  z   }t	        | d      |k(  sJ y )Nr   r#   r5   TrR   )r   r   r   r	   r   )lhsrhss     r-   test_daggerr]   k   s`    
q
6!A$<
'C
q
47
"VE!H%5d1g%=
=C#d#s***r/   c                      t        dd      \  } }t        | |      }t        d      }t        |      |k(  sJ t        |j                  |z        |j                  |z  k(  sJ y )Nzx yF)commutativeB)r   r   r   r   r<   )xyr%   r`   s       r-   test_issue_6073rc   q   sY    5e,DAqAq	AA!9>>!&&(qvvax'''r/   c                      t        t        t        z  dgt        t        z  dg      } t	        |       t        t
         t        z  dgt
        t        z  dg      k(  sJ y )Ng      ?)r   r   r9   r7   r   r   )ds    r-   test_densityrf   y   sI    Br"ucl+A!9$r3$r'3@@@@r/   c                     t        t        t        t        d      t        j                        z  t        d      z  t        t        t        j                  t        j                        z        } t        t        j                  t        dd      dt        j                  z  t        dz        }|t        t        dd      t        t        j                  t        j                              z  }t        |       |k(  sJ y )Nr5   r#   r6   r$   )r   r   r   r   NegativeOner	   Halfr   r   r   r   )expr1results     r-   test_issue3044rl   ~   s    "U1Q466tAw>5PQPVPVCW@WXEA166	47CF
mE!BKqvvaff)=>>F%=F"""r/   c            	      D   t        d      t        d      z  } t        |       | k(  sJ t        d      t	        d      z  } t        |       | k(  sJ t        t        d      t        t        d      t        d            t	        d            }t        |      t        d      t	        d      z  k(  sJ t        |d      }t        |d      t        d      k(  sJ t        d      t        d      z  t        d      z  t	        d      z  }t        |d      }t        |d      t        d      k(  sJ t        t        d      t               z        t        d      k(  sJ t        t        d      t        d      t        d      z   z        t        d      t        d      z   k(  sJ y )Nr   rP   r#   TrR   )	r!   r    r   r   r   r   r   r   r   )PP1P2s      r-   test_issue24158_ket_times_oprq      sR   Q'#,&A!9>>a58A!9>>	Xa[#hqk584eAh	?B":!uQx////	T	"B"t$333	!x{	"U1X	-a	8B	T	"B"t$333(1+.001Xa[@@@,q/58eAh#678E!HuQx<OOOOr/   N)Hsympy.core.mulr   sympy.core.numbersr   r   r   sympy.core.singletonr   sympy.core.symbolr   (sympy.functions.elementary.miscellaneousr	   $sympy.physics.quantum.anticommutatorr
    sympy.physics.quantum.commutatorr   sympy.physics.quantum.constantsr   sympy.physics.quantum.daggerr   sympy.physics.quantum.gater   r   r   sympy.physics.quantum.operatorr   r   sympy.physics.quantum.qapplyr   sympy.physics.quantum.spinr   r   r   r   r   r   r   #sympy.physics.quantum.tensorproductr   sympy.physics.quantum.stater   sympy.physics.quantum.densityr   sympy.physics.quantum.qubitr   r   sympy.physics.quantum.bosonr    r!   r"   jjpmmpr8   r7   r9   r%   r'   r:   r>   rB   rD   rH   rJ   rN   rY   r]   rc   rf   rl   rq   r)   r/   r-   <module>r      s     5 5 " % 9 ? 7 0 / = = E / K K K = + 1 7 K K {#2q"	!QK
1a[
1b\SM( 
9
E)
#
4@
+9$+(A
#Pr/   