
    g                        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% ZGd&S )'    )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dS )Fooc                     |S )N )selfketoptionss      c/var/www/html/ai-engine/env/lib/python3.11/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                  l   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 d S N      )
r   r   por   r   zr	   mor   r   r)   r/   r-   
test_basicr:   $   s   "R%==DG####"Q$<<47477?T"WT!WW_<<<<<56>1$T!WW,--b471BBBBB"b2g,47T"W#44444"R%"R%-  DGd2g$55555&-"##qqy|3333%(2+!D!G)B,....%(619$R'((AdAgIbL888888r/   c                     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 d S r4   )r8   dualr%   r   r   r7   r   r   r	   r9   r   r   )extras    r-   
test_extrar>   /   s   F1HQJE"R%+$r'%-////"Q$u*$r'$q''/DGDGGO"CU!JJJJJ	477"5(* *-1"WU]T"WU]-JK K K K"b2g,u$%%bb)FFFFF"R%+2e+,,RR0MMMMM&-"5())QtQwYr\%-?????%(2+e#$$$'	"U(:::::%(619$R'-..!D!G)B,u2DDDD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 d S )NFip_doit)r   r7   r<   r   r   r)   r/   r-   test_innerproductrB   <   s^    "'"*R-///43DDDDD"'"*R-  D((((((r/   c                  t    t          d          dk    sJ t          t          d                    dk    sJ d S )Nr   )r   r   r)   r/   r-   	test_zerorD   A   s:    !99>>>>'!**""""""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 d S )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0*RS**2-..!3333*SXXr**2-..!333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 d S )NrG   r5   )r   r
   r   r'   r7   r   r)   r/   r-   test_anticommutatorrJ   M   st    .SXX..r122afRi????.S2..r122afRi??????r/   c                     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	          |                                           t
          dz   t          z  k    sJ d S )Nr5   Fr@   )r   r9   r7   r<   r   r   doit)es    r-   test_outerproductrN   R   s    
BrwJ2A!99q####!U###ax'<R'?????!99>>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                                            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 d S )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22d1ggnDDDD-6!99q=11D899QXEEEE$q!a%000  "&q''D.1 1 1 1$+##%%q!)<)<<<<<-1q5))D011T!WWt^CCCC&q!a%004788  "&q''F4LL"89 9 9 9 9 9r/   c                  X   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 d S )Nr   r#   r5   TrR   )r   r   r   r	   r   )lhsrhss     r-   test_daggerr]   k   s    
q

6!A$$<<
'C
q

477
"VE!HH%5%5d1gg%=
=C#d###s******r/   c                      t          dd          \  } }t          | |          }t          d          }t          |          |k    sJ t          |j        |z            |j        |z  k    sJ d S )Nzx yF)commutativeB)r   r   r   r   r<   )xyr%   r`   s       r-   test_issue_6073rc   q   sn    5e,,,DAqAq		AA!99>>>>!&(qvax''''''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 d S )Ng      ?)r   r   r9   r7   r   r   )ds    r-   test_densityrf   y   sZ    Br"ucl++A!99$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 d S )Nr5   r#   r6   r$   )r   r   r   r   NegativeOner	   Halfr   r   r   r   )expr1results     r-   test_issue3044rl   ~   s    "U1Q44666tAww>5PQPVCWCW@WXXEA16	47CCF
mE!BKKqvaf)=)=>>>F%==F""""""r/   c            	      l   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 d S )Nr   rP   r#   TrR   )	r!   r    r   r   r   r   r   r   r   )PP1P2s      r-   test_issue24158_ket_times_oprq      s   Q'#,,&A!99>>>>a588A!99>>>>	Xa[[#hqkk58844eAhh	?	?B"::!uQxx/////	T	"	"	"B"t$$$3333	!x{{	"U1XX	-a	8B	T	"	"	"B"t$$$3333(1++.00011Xa[[@@@@,q//588eAhh#6788E!HHuQxx<OOO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 5 5 5 5 5 5 5 5 " " " " " " % % % % % % 9 9 9 9 9 9 ? ? ? ? ? ? 7 7 7 7 7 7 0 0 0 0 0 0 / / / / / / = = = = = = = = = = E E E E E E E E / / / / / / K K K K K K K K K K K K K K K K K K = = = = = = + + + + + + 1 1 1 1 1 1 7 7 7 7 7 7 7 7 K K K K K K K K K K w{##2q"	E!QKK
U1a[[
U1b\\HSMM    (   
9 9 9
E 
E 
E) ) )
# # #
4 4 4@ @ @
+ + +9 9 9$+ + +( ( (A A A
# # #P P P P Pr/   