o
    GZhĘ  ć                   @   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 d dl2m3Z3 e	d\Z4Z5Z6Z7e$dd Z8e$ddZ9e$ddZ:edZ;G dd deZ<dd Z=dd Z>dd Z?d d! Z@d"d# ZAd$d% ZBd&d' ZCd(d) ZDd*d+ ZEd,d- ZFd.d/ ZGd0d1 ZHd2d3 ZId4S )5é    )Ś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                   @   s   e Zd Zdd ZdS )ŚFooc                 K   s   |S )N© )ŚselfZketŚoptionsr'   r'   śV/var/www/auris/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sJ t td t	d  t dtd  t ksJ 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sJ ttt t |  dtd  t	 |  ksJ tt
d t	 |  dtd  t |  ksÆJ tt
d td  t |  dtd  t |  ksÉJ d S r/   )r3   Śdualr%   r   r   r2   r   r   r   r4   r   r   )Śextrar'   r'   r*   Ś
test_extra0   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©Z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_zeroB   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_commutatorG   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_anticommutatorN   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_outerproductS   s   ("rB   c                  C   sV  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j	ks}J tt| || | td| ksJ ttt| || | ddtdt| ks©J d S )NŚaŚbr#   r0   r   T©Śdagger)
r   r   r    r!   r   r   r   r@   r   ZOne)rC   rD   Zket1Zket2Zket3Zbra1Zbra2r'   r'   r*   Śtest_tensorproductZ   s*   &&’
’&’’rG   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   TrE   )r   r   r   r   r   )ŚlhsŚrhsr'   r'   r*   Śtest_daggerl   s   (rJ   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)ZcommutativeŚB)r   r   r   r   r6   )ŚxŚyr%   rK   r'   r'   r*   Śtest_issue_6073r   s
   
 rN   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_densityz   s   ,rP   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   ZNegativeOner   ZHalfr   r   r   r   )Śexpr1Śresultr'   r'   r*   Śtest_issue3044   s   0 rS   c                  C   sX  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ksoJ t 0 ttdt  tdksJ tt	dtdtd  tdtd ksJ W d    d S 1 s„w   Y  d S )Nr   rC   r#   TrE   )
r    r   r   r   r   r   r   r"   r   r   )ŚPZP1ZP2r'   r'   r*   Śtest_issue24158_ket_times_op   s   " 2"žrU   N)JZsympy.core.mulr   Zsympy.core.numbersr   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   Z(sympy.functions.elementary.miscellaneousr   Z$sympy.physics.quantum.anticommutatorr	   Z sympy.physics.quantum.commutatorr
   Zsympy.physics.quantum.constantsr   Zsympy.physics.quantum.daggerr   Zsympy.physics.quantum.gater   r   r   Zsympy.physics.quantum.operatorr   r   Zsympy.physics.quantum.qapplyr   Zsympy.physics.quantum.spinr   r   r   r   r   r   r   Z#sympy.physics.quantum.tensorproductr   Zsympy.physics.quantum.stater   Zsympy.physics.quantum.densityr   Zsympy.physics.quantum.qubitr   r   Zsympy.physics.quantum.bosonr   r    r!   Zsympy.testing.pytestr"   ŚjŚjpŚmŚmpr3   r2   r4   r%   r&   r5   r8   r:   r;   r>   r?   rB   rG   rJ   rN   rP   rS   rU   r'   r'   r'   r*   Ś<module>   sL    $


