o
    g                     @   s  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\Z2Z3Z4Z5e$dd Z6e$ddZ7e$ddZ8edZ9G dd deZ:dd Z;dd Z<dd Z=dd  Z>d!d" Z?d#d$ Z@d%d& ZAd'd( ZBd)d* ZCd+d, ZDd-d. ZEd/d0 ZFd1d2 ZGd3S )4    )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                   @   s   e Zd Zdd ZdS )Fooc                 K   s   |S )N )selfketoptionsr&   r&   ^/var/www/visachat/venv/lib/python3.10/site-packages/sympy/physics/quantum/tests/test_qapply.py_apply_operator_JzKet    s   zFoo._apply_operator_JzKetN)__name__
__module____qualname__r+   r&   r&   r&   r*   r%      s    r%   c                   C   s8  t tt tt ksJ t tt tt td tt td  ks$J t tt	 t td tt tt  ks:J t ttt  tt tt  ksLJ t tt tt  tt tt  ks`J t t	t	 t dtd  t ksrJ t td t dtd  t ksJ t td t	d  t dtd  t ksJ d S N      )
r   r   por   r   zr   mor   r   r&   r&   r&   r*   
test_basic$   s   0,$($$0r5   c                  C   s  t jt t  } ttt |  tt |  ksJ ttt  |  tt td tt	 td  |  ks3J tt
t t  td |  tt |  tt	 |   ksOJ tttt	  |  tt |  tt	 |   ksgJ ttt |  tt	 |   tt |  tt	 |   ksJ ttt t |  dtd  t	 |  ksJ tt
d t	 |  dtd  t |  ksJ tt
d td  t |  dtd  t |  ksJ d S r/   )r3   dualr$   r   r   r2   r   r   r   r4   r   r   )extrar&   r&   r*   
test_extra/   s    808,,8r8   c                   C   sF   t tjt t ddttjt  ksJ t tjt t tks!J d S )NFip_doit)r   r2   r6   r   r   r&   r&   r&   r*   test_innerproduct<   s   (r;   c                   C   s(   t ddksJ t tddksJ d S )Nr   )r   r   r&   r&   r&   r*   	test_zeroA   s   r<   c                   C   s   t tttt t ttd  t ksJ t tttt t dks$J t ttt	dt dks3J t tt	dtt dksBJ d S )N   r   F)
r   r
   r   r   r   r2   r   r   r   r%   r&   r&   r&   r*   test_commutatorF   s   *"r?   c                   C   sP   t tttdt dt t ksJ t ttdtt dt t ks&J d S )Nr>   r0   )r   r	   r   r%   r2   r   r&   r&   r&   r*   test_anticommutatorM   s   &*r@   c                  C   sz   t ttj  t  t } t| td  t ksJ t| ddtd  tjt  t ks,J t|  td  t ks;J d S )Nr0   Fr9   )r   r4   r2   r6   r   r   doit)er&   r&   r*   test_outerproductR   s   ("rC   c                  C   sZ  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 | td| ksHJ tt| t|| | d| ks[J t|t| ||  ddtd| kspJ t||  tddksJ tt| || | td| ksJ ttt| || | ddtdt| ksJ d S )Nabr"   r0   r   Tdagger)r   r   r    r!   r   r   r   rA   )rD   rE   ket1ket2ket3bra1bra2r&   r&   r*   test_tensorproductY   s*   &&
&rM   c                  C   sX   t tdt td } t tdtd t tdtd  }t| dd|ks*J d S )Nr   r"   r0   TrF   )r   r   r   r   r   )lhsrhsr&   r&   r*   test_daggerk   s   (rP   c                  C   sR   t ddd\} }t| |}td}t||ksJ t|j| |j| ks'J d S )Nzx yF)commutativeB)r   r   r   r   r6   )xyr$   rR   r&   r&   r*   test_issue_6073q   s
   
 rU   c                  C   sF   t tt dgtt dg} t| t t t dgtt dgks!J d S )Ng      ?)r   r   r4   r2   r   r   )dr&   r&   r*   test_densityy   s   ,rW   c                  C   s   t tttdtj td tttjtj } ttjtdddtj t	d }|t tddttjtj9 }t
| |ks?J d S )Nr0   r"   r1   r#   )r   r   r   r   NegativeOner   Halfr   r   r   r   )expr1resultr&   r&   r*   test_issue3044~   s   0 r\   c                  C   s8  t dtd } t| | ksJ tdtd } t| | ks J ttdttdtdtd}t|tdtd ks?J t|dd}t|ddtdksQJ tdtd td td }t|dd}t|ddtdkssJ ttdt  tdksJ ttdtdtd  tdtd ksJ d S )Nr   rD   r"   TrF   )	r    r   r   r   r   r   r   r   r   )PP1P2r&   r&   r*   test_issue24158_ket_times_op   s   " 4r`   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mpr3   r2   r4   r$   r%   r5   r8   r;   r<   r?   r@   rC   rM   rP   rU   rW   r\   r`   r&   r&   r&   r*   <module>   sJ    $


