
    gL                     *   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            cZZZ ed	           ed	           ed	          cZZZ  ed
           ed
           ed
          cZ!Z"Z# e             e            cZ$Z% ed	           ed	          cZ&Z' ed           ed          cZ(Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d 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                  "   t          t          t                    rt          t          t                    sJ t          t          t                    rt          t          t
                    sJ t          t          t                    rt          t          t                    sJ t          t          t                    rt          t          t                    sJ t          t          t                    rt          t          t                    sJ d S N)
isinstancesxr   r   syr   szr   smr   spr        b/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/physics/quantum/tests/test_pauli.pytest_pauli_operators_typesr&      s    b+&&A:b&+A+AAAAb+&&A:b&+A+AAAAb+&&A:b&+A+AAAAb+&&E:b*+E+EEEEb+&&D:b)+D+DDDDDDr$   c                     t          t          t                                                    dt          z  t
          z  k    sJ t          t          t
                                                    dt          z  t          z  k    sJ t          t
          t                                                    dt          z  t          z  k    sJ d S Nr   )r   r   r   doitr   r    r#   r$   r%   test_pauli_operators_commutatorr*       s    b"""$$A
2222b"""$$A
2222b"""$$A
222222r$   c                  J   t          t          t                                                    dt          z  t
          z  k    sJ t          t          t
                                                    dt          z  t          z  k    sJ t          t
          t                                                    dt          z  t          z  k    sJ t          t          t                                                    dt          z  t          z  k    sJ t          t          t                                                    dt          z  t          z  k    sJ t          t          t                                                    dt          z  t          z  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%   +test_pauli_operators_commutator_with_labelsr2   '   s   c3$$&&!a%#+5555c3$$&&!a%#+5555c3$$&&!a%#+5555c3$$&&!a%#+5555c3$$&&!a%#+5555c3$$&&!a%#+5555c3$$&&!++++c3$$&&!++++c3$$&&!++++++r$   c                     t          t          t                                                    d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	   r   r    r)   r   r!   r"   r#   r$   r%   #test_pauli_operators_anticommutatorr4   6   s    "b!!&&((A----"b!!&&((A----"b!!&&((A----"b!!&&((A------r$   c                      t          t                    t          k    sJ t          t                    t          k    sJ t          t                    t          k    sJ d S r   )r   r   r   r    r#   r$   r%   test_pauli_operators_adjointr6   >   sM    "::"::"::r$   c                  z   t          t                    t          k    sJ t          t                    t          k    sJ t          t                    t          k    sJ t          t                    t          k    sJ t          t                    t
          k    sJ t          t                    t          k    sJ d S r   )r   r,   r-   r.   r/   r0   r1   r#   r$   r%   (test_pauli_operators_adjoint_with_labelsr8   E   s    #;;##;;##;;##;;##;;##;;#r$   c                     t          t          t          z            dk    sJ t          t          t          z            dk    sJ t          t          t          z            dk    sJ t          t          t          z            t          t          z  k    sJ t          t          t          z            t          t          z  k    sJ t          t          t          z            t          t          z  k    sJ t          t          t          z            t           t          z  k    sJ t          t          t          z            t           t          z  k    sJ t          t          t          z            t           t          z  k    sJ d S Nr   )r   r   r   r    r   r#   r$   r%   #test_pauli_operators_multiplicationr;   P   s+   27##q((((27##q((((27##q((((27##q2v----27##q2v----27##q2v----27##sRx////27##sRx////27##sRx//////r$   c                     t          t          t          z            dk    sJ t          t          t          z            dk    sJ t          t          t          z            dk    sJ t	          t          t
          z  t                    sJ t	          t          t          z  t                    sJ t	          t          t          z  t                    sJ t          t          t          z  t
          z  t          z            t           t          z  k    sJ t          t          t          z  t          z  t
          z            t           t          z  k    sJ d S r:   )	r   r,   r-   r.   r   r/   r   r0   r1   r#   r$   r%   /test_pauli_operators_multiplication_with_labelsr=   _   s   39%%****39%%****39%%****cCi%%%%%cCi%%%%%cCi%%%%%39s?S011sUS[@@@@39s?S011sUS[@@@@@@r$   c                  ^   t                      t                      }} t          d          }t          d          }t          | |z            |k    sJ t          | |z            |k    sJ t          ||z            |k    sJ t          ||z            | k    sJ t	          d          }t	          d          }t          || z  d          |k    sJ t          || z  d          |k    sJ t          ||z  d          |k    sJ t          ||z  d          | k    sJ t          t          d                    t	          d          k    sJ t          t	          d                    t          d          k    sJ t          t          d            t          t          d            d S )Nr   r   T)daggerc                       t          d          S r(   )r   r#   r$   r%   <lambda>z#test_pauli_states.<locals>.<lambda>       y|| r$   c                       t          d          S r(   )r   r#   r$   r%   rA   z#test_pauli_states.<locals>.<lambda>   rB   r$   )r   r   r   r
   r   r   r   
ValueError)r   r    updowns       r%   test_pauli_statesrG   m   s   XXvxxB	1BQ<<D"r'??d"""""t)"""""r'??b    "t)$&&&&	1BQ<<D"r'$'''4////$)D)))R////"r'$'''2----$)D)))tV3333)A,,9Q<<////)A,,9Q<<////
:++,,,
:++,,,,,r$   c                      t           j        du sJ t          j        du sJ t          j        du sJ t          j        du sJ d S )NFT)r!   use_namesm1r   r,   r#   r$   r%   test_use_namerK      sT    ;%<4;%<4r$   c                     t          t                    dk    sJ t          t                    dk    sJ t          t                    dk    sJ t          t                    dk    sJ t          t
                    dk    sJ t          t                    dk    sJ t          t                    dk    sJ t          t                    dk    sJ t          t                    d	k    sJ 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!   rJ   r"   sp1r#   r$   r%   test_printingrN      s    99%%%%::,,,,,99%%%%::,,,,,99%%%%::,,,,,99%%%%::,,,,,99%%%%::,,,,,,,r$   c                     t          t                    t          ddgddgg          k    sJ t          t                    t          dt           gt          dgg          k    sJ 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 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%   test_representrQ      s    R==FQFQF#3444444R==FQGaV#4555555R==FQFQG#4555555R==FQFQF#3444444R==FQFQF#344444444r$   N)6sympy.core.mulr   sympy.core.numbersr   sympy.matrices.denser   sympy.printing.latexr   sympy.physics.quantumr   r   r	   r
   r   r   sympy.physics.quantum.paulir   r   r   r   r   r   r   r   r   sympy.testing.pytestr   r   r   r    r,   r-   r.   r/   r0   r1   r!   r"   rJ   rM   r   r   r&   r*   r2   r4   r6   r8   r;   r=   rG   rK   rN   rQ   r#   r$   r%   <module>rY      s                     ' ' ' ' ' ' & & & & & &8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8: : : : : : : : : : : : : : : : : : = < < < < < < < ' ' ' ' ' ' VXXvvxx
Bq		66!99ffQiiS#q		66!99ffQiiS#	yy{{B:a==))A,,Sx}}hhsmm1E E E3 3 3, , ,. . .    0 0 0A A A- - -2     
- 
- 
-5 5 5 5 5r$   