a
    {þd†  ã                   @   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© )ÚselfZketÚoptionsr&   r&   úp/var/www/html/stable-diffusion-webui/venv/lib/python3.9/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   s<  t tt ƒtt ksJ ‚t tt ƒtt tdƒ tt tdƒ  ksHJ ‚t tt	 t tdƒ ƒtt tt  kstJ ‚t ttt  ƒtt tt  ks˜J ‚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s8J ‚d S ©Né   é   )
r   r   Úpor   r   Úzr   Úmor   r   r&   r&   r&   r)   Ú
test_basic$   s    0,$($&r4   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sfJ ‚tt
t t  tdƒ |  ƒtt |  tt	 |   ksžJ ‚tttt	  |  ƒtt |  tt	 |   ksÎJ ‚ttt |  tt	 |   ƒtt |  tt	 |   ksJ ‚ttt t |  ƒdtd  t	 |  ks6J ‚tt
d t	 |  ƒdtd  t |  ksdJ ‚tt
d td  t |  ƒdtd  t |  ksšJ ‚d S r.   )r2   Údualr$   r   r   r1   r   r   r   r3   r   r   )Úextrar&   r&   r)   Ú
test_extra/   s     8ÿÿ0:..r7   c                   C   sF   t tjt t ddttjt  ks(J ‚t tjt t ƒtksBJ ‚d S )NF©Zip_doit)r   r1   r5   r   r   r&   r&   r&   r)   Útest_innerproduct<   s    (r9   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sHJ ‚t ttt	dƒƒt ƒdksfJ ‚t tt	dƒtƒt ƒdks„J ‚d S )Né   r   ÚF)
r   r
   r   r   r   r1   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sLJ ‚d S )Nr<   r/   )r   r	   r   r%   r1   r   r&   r&   r&   r)   Útest_anticommutatorM   s    &r>   c                  C   sz   t ttj  t  t } t| ƒtd  t ks0J ‚t| ddtd  tjt  t ksXJ ‚t| ƒ ¡ td  t ksvJ ‚d S )Nr/   Fr8   )r   r3   r1   r5   r   r   Údoit)Úer&   r&   r)   Útest_outerproductR   s    (rA   c                  C   s^  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sJ ‚tt| t|ƒ| ƒ| ƒd| ks¶J ‚t|t| || ƒ ddtdƒ| ksàJ ‚t|| ƒ ¡ tddƒksþJ ‚tt| || ƒ| ƒtdƒ| ks&J ‚ttt| || ƒ| ƒddtdƒt|ƒ ksZJ ‚d S )NÚaÚbr"   r/   r   T©Údagger)r   r   r    r!   r   r   r   r?   )rB   rC   Zket1Zket2Zket3Zbra1Zbra2r&   r&   r)   Útest_tensorproductY   s*    &&ÿ
ÿ(ÿÿrF   c                  C   sX   t tdƒƒt tdƒƒ } t tdƒƒtdƒ t tdƒƒtdƒ  }t| dd|ksTJ ‚d S )Nr   r"   r/   TrD   )r   r   r   r   r   )ÚlhsÚrhsr&   r&   r)   Útest_daggerk   s    (rI   c                  C   sR   t ddd\} }t| |ƒ}tdƒ}t|ƒ|ks2J ‚t|j| ƒ|j| ksNJ ‚d S )Nzx yF)ZcommutativeÚB)r   r   r   r   r5   )ÚxÚyr$   rJ   r&   r&   r)   Útest_issue_6073q   s
    
rM   c                  C   sF   t tt dgtt dgƒ} t| ƒt t t dgtt dgƒksBJ ‚d S )Ng      à?)r   r   r3   r1   r   r   )Údr&   r&   r)   Útest_densityy   s    rO   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 )Nr/   r"   r0   r#   )r   r   r   r   ZNegativeOner   ZHalfr   r   r   r   )Úexpr1Úresultr&   r&   r)   Útest_issue3044~   s    0 rR   c                  C   s<  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s¢J ‚tdƒtdƒ tdƒ tdƒ }t|dd}t|ddtdƒksæJ ‚ttdƒtƒ  ƒtdƒksJ ‚ttdƒtdƒtdƒ  ƒtdƒtdƒ ks8J ‚d S )Nr   rB   r"   TrD   )	r    r   r   r   r   r   r   r   r   )ÚPZP1ZP2r&   r&   r)   Útest_issue24158_ket_times_op†   s    "  rT   N)HZ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!   ÚjZjpÚmÚmpr2   r1   r3   r$   r%   r4   r7   r9   r:   r=   r>   rA   rF   rI   rM   rO   rR   rT   r&   r&   r&   r)   Ú<module>   sH   $


