a
    kº”hL  ã                   @   st  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mZmZmZ d dlmZmZmZmZmZmZmZ d dlmZmZ d dlmZ eƒ eƒ eƒ   ZZZed	ƒed	ƒed	ƒ  ZZZ ed
ƒed
ƒed
ƒ  Z!Z"Z#eƒ eƒ  Z$Z%ed	ƒed	ƒ Z&Z'edƒedƒ Z(Z)dd„ Z*dd„ Z+dd„ Z,dd„ Z-dd„ Z.dd„ Z/dd„ Z0dd„ Z1dd„ Z2dd „ Z3d!d"„ Z4d#d$„ Z5d%S )&é    )ÚMul)ÚI)ÚMatrix)Úlatex)ÚDaggerÚ
CommutatorÚAntiCommutatorÚqapplyÚOperatorÚ	represent)ÚSigmaOpBaseÚSigmaXÚSigmaYÚSigmaZÚ
SigmaMinusÚ	SigmaPlusÚqsimplify_pauli)Ú	SigmaZKetÚ	SigmaZBra)Úraisesé   é   ÚAÚBc                   C   s|   t ttƒrt ttƒsJ ‚t ttƒr,t ttƒs0J ‚t ttƒrDt ttƒsHJ ‚t ttƒr\t tt	ƒs`J ‚t t
tƒrtt t
tƒsxJ ‚d S ©N)Ú
isinstanceÚsxr   r   Úsyr   Úszr   Úsmr   Úspr   © r!   r!   úT/var/www/auris/lib/python3.9/site-packages/sympy/physics/quantum/tests/test_pauli.pyÚtest_pauli_operators_types   s
    r#   c                   C   s^   t ttƒ ¡ dt t ksJ ‚t ttƒ ¡ dt t ks<J ‚t ttƒ ¡ dt t ksZJ ‚d S ©Nr   )r   r   r   Údoitr   r   r!   r!   r!   r"   Útest_pauli_operators_commutator    s    r&   c                   C   sú   t ttƒ ¡ dt t ksJ ‚t ttƒ ¡ dt t ks<J ‚t ttƒ ¡ dt t ksZJ ‚t ttƒ ¡ dt t ksxJ ‚t ttƒ ¡ dt t ks–J ‚t ttƒ ¡ dt t ks´J ‚t ttƒ ¡ dksÊJ ‚t ttƒ ¡ dksàJ ‚t ttƒ ¡ dksöJ ‚d S )Nr   r   )	r   Úsx1Úsy1r%   r   Úsz1Úsx2Úsy2Úsz2r!   r!   r!   r"   Ú+test_pauli_operators_commutator_with_labels'   s    r-   c                   C   s\   t ttƒ ¡ dksJ ‚t ttƒ ¡ dks,J ‚t ttƒ ¡ dksBJ ‚t ttƒ ¡ dksXJ ‚d S )Nr   r   )r   r   r   r%   r   r   r    r!   r!   r!   r"   Ú#test_pauli_operators_anticommutator6   s    r.   c                   C   s4   t tƒtksJ ‚t tƒtks J ‚t tƒtks0J ‚d S r   )r   r   r   r   r!   r!   r!   r"   Útest_pauli_operators_adjoint>   s    r/   c                   C   sd   t tƒtksJ ‚t tƒtks J ‚t tƒtks0J ‚t tƒtks@J ‚t tƒtksPJ ‚t tƒtks`J ‚d S r   )r   r'   r(   r)   r*   r+   r,   r!   r!   r!   r"   Ú(test_pauli_operators_adjoint_with_labelsE   s    r0   c                   C   sÖ   t tt ƒdksJ ‚t tt ƒdks(J ‚t tt ƒdks<J ‚t tt ƒtt ksTJ ‚t tt ƒtt kslJ ‚t tt ƒtt ks„J ‚t tt ƒt t ksžJ ‚t tt ƒt t ks¸J ‚t tt ƒt t ksÒJ ‚d S ©Nr   )r   r   r   r   r   r!   r!   r!   r"   Ú#test_pauli_operators_multiplicationP   s    r2   c                   C   sº   t tt ƒdksJ ‚t tt ƒdks(J ‚t tt ƒdks<J ‚ttt tƒsNJ ‚ttt tƒs`J ‚ttt tƒsrJ ‚t tt t t ƒt t ks”J ‚t tt t t ƒt t ks¶J ‚d S r1   )	r   r'   r(   r)   r   r*   r   r+   r,   r!   r!   r!   r"   Ú/test_pauli_operators_multiplication_with_labels_   s    "r3   c                  C   s4  t ƒ tƒ  } }tdƒ}tdƒ}t| | ƒ|ks2J ‚t| | ƒ|ksFJ ‚t|| ƒ|ksZJ ‚t|| ƒ| kspJ ‚tdƒ}tdƒ}t||  dd|ks˜J ‚t||  dd|ks°J ‚t|| dd|ksÈJ ‚t|| dd| ksâJ ‚ttdƒƒtdƒksúJ ‚ttdƒƒtdƒksJ ‚ttdd„ ƒ ttdd„ ƒ d S )Nr   r   T)Údaggerc                   S   s   t dƒS r$   )r   r!   r!   r!   r"   Ú<lambda>‚   ó    z#test_pauli_states.<locals>.<lambda>c                   S   s   t dƒS r$   )r   r!   r!   r!   r"   r5   ƒ   r6   )r   r   r   r	   r   r   r   Ú
ValueError)r   r   ZupZdownr!   r!   r"   Útest_pauli_statesm   s"    r8   c                   C   s<   t jdu sJ ‚tjdu sJ ‚tjdu s*J ‚tjdu s8J ‚d S )NFT)r   Zuse_nameÚsm1r   r'   r!   r!   r!   r"   Útest_use_name†   s    r:   c                   C   s¤   t tƒdksJ ‚t tƒdks J ‚t tƒdks0J ‚t tƒdks@J ‚t tƒdksPJ ‚t tƒdks`J ‚t tƒdkspJ ‚t tƒdks€J ‚t t	ƒd	ksJ ‚t t
ƒd
ks J ‚d S )Nz
{\sigma_x}z{\sigma_x^{(1)}}z
{\sigma_y}z{\sigma_y^{(1)}}z
{\sigma_z}z{\sigma_z^{(1)}}z
{\sigma_-}z{\sigma_-^{(1)}}z
{\sigma_+}z{\sigma_+^{(1)}})r   r   r'   r   r(   r   r)   r   r9   r    Úsp1r!   r!   r!   r"   Útest_printing   s    r<   c                   C   s¦   t tƒtddgddggƒks J ‚t tƒtdt gtdggƒksBJ ‚t tƒtddgddggƒksbJ ‚t tƒtddgddggƒks‚J ‚t tƒtddgddggƒks¢J ‚d S )Nr   r   éÿÿÿÿ)r   r   r   r   r   r   r   r    r!   r!   r!   r"   Útest_representš   s
     "  r>   N)6Zsympy.core.mulr   Zsympy.core.numbersr   Zsympy.matrices.denser   Zsympy.printing.latexr   Zsympy.physics.quantumr   r   r   r	   r
   r   Zsympy.physics.quantum.paulir   r   r   r   r   r   r   r   r   Zsympy.testing.pytestr   r   r   r   r'   r(   r)   r*   r+   r,   r   r    r9   r;   r   r   r#   r&   r-   r.   r/   r0   r2   r3   r8   r:   r<   r>   r!   r!   r!   r"   Ú<module>   s2    $	