
    oVh                        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 d dl2m3Z3  e	d      \  Z4Z5Z6Z7 e$dd       Z8 e$dd      Z9 e$dd      Z: ed      Z; G d de      Z<d Z=d Z>d Z?d Z@d ZAd ZBd  ZCd! ZDd" ZEd# ZFd$ ZGd% ZHd& ZIy')(    )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BosonFockBra)warns_deprecated_sympyz	j j' m m'   Ac                       e Zd Zd Zy)Fooc                     |S )N )selfketoptionss      W/home/dcms/DCMS/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*   r0   r.   r(   r(       s    r0   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*   r0   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8r0   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 r5   )r9   dualr&   r   r   r8   r   r   r	   r:   r   r   )extras    r.   
test_extrar?   0   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Dr0   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   r8   r=   r   r   r*   r0   r.   test_innerproductrC   =   sO    "''"*R-/43DDDD"''"*R- D(((r0   c                  V    t        d      dk(  sJ t        t        d            dk(  sJ y )Nr   )r   r   r*   r0   r.   	test_zerorE   B   s)    !9>>'!*"""r0   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   r8   r   r   r   r(   r*   r0   r.   test_commutatorrI   G   s    *R$R'*+qqy|;;;*R$R'*+q000*RS*2-.!333*SXr*2-.!333r0   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 )NrH   r6   )r   r
   r   r(   r8   r   r*   r0   r.   test_anticommutatorrK   N   sX    .SX.r12afRi???.S2.r12afRi???r0   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 )Nr6   FrA   )r   r:   r8   r=   r   r   doit)es    r.   test_outerproductrO   S   s    
BrwwJ2A!9q###!U#ax'<R'????!9>>ax{***r0   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        j                  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$   r6   r   Tdagger)
r    r   r!   r"   r   r	   r   rM   r   One)rQ   rR   ket1ket2ket3bra1bra2s          r.   test_tensorproductr[   Z   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$+##%...-1q5)D01T!Wt^CCC&q!a%0478"&q'F4L"89 9 9r0   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$   r6   TrS   )r   r   r   r	   r   )lhsrhss     r.   test_daggerr_   l   s`    
q
6!A$<
'C
q
47
"VE!H%5d1g%=
=C#d#s***r0   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&   rb   s       r.   test_issue_6073re   r   sY    5e,DAqAq	AA!9>>!&&(qvvax'''r0   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   r:   r8   r   r   )ds    r.   test_densityrh   z   sI    Br"ucl+A!9$r3$r'3@@@@r0   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 )Nr6   r$   r7   r%   )r   r   r   r   NegativeOner	   Halfr   r   r   r   )expr1results     r.   test_issue3044rn      s    "U1Q466tAw>5PQPVPVCW@WXEA166	47CF
mE!BKqvvaff)=>>F%=F"""r0   c            	      n   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      t        d      z  z  t	        d      z  }t        |d      }|t        d      k(  sJ t               5  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 	 d d d        y # 1 sw Y   y xY w)Nr   rQ   r$   TrS   )
r!   r    r   r   r   r   r   r#   r   r   )PP1P2s      r.   test_issue24158_ket_times_oprs      sk   Q'#,&A!9>>a58A!9>>	Xa[#hqk584eAh	?B":!uQx////	T	"B"t$333	!eAh.	/%(	:B	T	"B!		! Thqk"2"445!DDDl1ouQx%(':;<a5QR8@SSSST T Ts   -A4F++F4N)J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"   sympy.testing.pytestr#   jjpmmpr9   r8   r:   r&   r(   r;   r?   rC   rE   rI   rK   rO   r[   r_   re   rh   rn   rs   r*   r0   r.   <module>r      s     5 5 " % 9 ? 7 0 / = = E / K K K = + 1 7 K K 7 {#2q"	!QK
1a[
1b\SM( 
9
E)
#
4@
+9$+(A
#Tr0   