
    sg                     f   d dl mZmZmZ d dlmZ d dlmZmZ d dl	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mZmZmZmZ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$m%Z% d dl&m'Z' d dl(m)Z)  G d de      Z* G d de      Z+ e*       Z, e+       Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6y)    )
DerivativeFunctiondiff)Mul)Integerpi)Symbolsymbols)sin)QExpr)Dagger)HilbertSpace)OperatorUnitaryOperatorHermitianOperatorOuterProductDifferentialOperatorIdentityOperator)KetBraWavefunction)qapply)	represent)JzKetJzBra)Tr)eyec                       e Zd Zed        Zy)	CustomKetc                      y)N)t selfs    \/var/www/html/venv/lib/python3.12/site-packages/sympy/physics/quantum/tests/test_operator.pydefault_argszCustomKet.default_args           N__name__
__module____qualname__classmethodr&   r"   r(   r%   r   r           r(   r   c                       e Zd Zed        Zy)CustomOpc                      y)N)Tr"   r#   s    r%   r&   zCustomOp.default_args   r'   r(   Nr)   r"   r(   r%   r0   r0      r.   r(   r0   c                     t        d      } t        d      }t        d      }t        | t               sJ t        | t              sJ | j                  t	        d      fk(  sJ | j
                  du sJ | j                  t               k(  sJ | |z  || z  k7  sJ | ||z   z  j                         | |z  | |z  z   k(  sJ | |z   dz  j                         | dz  | |z  z   || z  z   |dz  z   k(  sJ t        j                  d   t	        t        j                         d         k(  sJ t               t        d      k(  sJ | t               z  | k(  sJ y )NABCF   r   O)r   
isinstancer   labelr	   is_commutativehilbert_spacer   expandt_opr&   r   )r4   r5   r6   s      r%   test_operatorr?   $   sM   AAAa"""a77vc{n$$$u$$$??ln,,,Q3!A#::q1uI1Q319,,,UQJ AqD1Q3J1$4q!t$;;;;::a=F4#4#4#6q#9:::::#&&&1$$$r(   c                  z    t        d      } | | j                         z  dk(  sJ | j                         | z  dk(  sJ y )Nr4      )r   inv)r4   s    r%   test_operator_invrC   ;   s7    AQUUW9>>55719>>r(   c                      t        d      } t        | t               sJ t        | t              sJ t        |       | k(  sJ | j	                         | k7  sJ | j
                  du sJ t        |       j
                  du sJ y )NHF)r   r9   r   r   rB   r;   )rE   s    r%   test_hermitianrF   A   s{    #Aa*+++a"""!9>>557a<<u$$$!9##u,,,r(   c                  <   t        d      } t        | t               sJ t        | t              sJ | j                         t	        |       k(  sJ | t	        |       z  dk(  sJ t	        |       | z  dk(  sJ | j
                  du sJ t	        |       j
                  du sJ y )NUrA   F)r   r9   r   rB   r   r;   )rH   s    r%   test_unitaryrI   M   s    Aa)))a"""557fQiVAY;!!9Q;!u$$$!9##u,,,r(   c                     t               } t        d      }t        d      }t        | t               sJ t        | t              sJ | |z  |k(  sJ || z  |k(  sJ | t	        |      z  t	        |      k(  sJ t	        |      | z  t	        |      k(  sJ t        | | z  t               sJ t        d| z  t
              sJ t        | |z  t
              sJ | j                         | k(  sJ t	        |       | k(  sJ t        | |z        |k(  sJ t        || z        |k(  sJ dD ]$  }t        t        |            t        |      k(  r$J  y )Nr8   x   )r7   rL      )
r   r   r	   r9   r   r   rB   r   r   r   )Ir8   rK   ns       r%   test_identityrP   Z   sH   AAsAa)***a"""q5A::q5A::vay=F1I%%%!9q=F1I%%%a!e-...a!eS!!!a!eS!!!557a<<!9>>!a%=A!a%=A 8)!,-Q7778r(   c            	         t        d      } t        d      }t        | |      }t        |t              sJ t        |t              sJ |j
                  | k(  sJ |j                  |k(  sJ |j                  | |fk(  sJ |j                  du sJ | |z  }t        |t              sJ t        |t              sJ |j
                  | k(  sJ |j                  |k(  sJ |j                  | |fk(  sJ |j                  du sJ d| z  |z  }|t        t        d      | |      k(  sJ d| |z  z  }|t        t        d      t        | |            k(  sJ t        | |z        t        t        |      t        |             k(  sJ t        | |z        j                  du sJ t        t        t        dd      t        dd                  j                         dk(  sJ t        d| z  |      dt        | |      z  k(  sJ t        | d|z        dt        | |      z  k(  sJ t        d      t        d      }}t        d      t        d	      }}t        ||z   |      t        ||      t        ||      z   k(  sJ t        |||z         t        ||      t        ||      z   k(  sJ t        d|z  d|z  z   d
|z  d|z  z         d
t        ||      z  dt        ||      z  z   dt        ||      z  z   dt        ||      z  z   k(  sJ y )NkbFr7   rA   k1k2b1b2rL            )r   r   r   r9   r   ketbrar:   r;   r   r   r   r   r   r   doit)rR   rS   oprT   rU   rV   rW   s          r%   test_outer_productr_   r   s   CACA	a	Bb,'''b(###66Q;;66Q;;881v%%%	
1Bb,'''b(###66Q;;66Q;;881v%%%	
1QBWQZA&&&&	
AaCBWQZa!34444!A#;,vay&)<<<<!A#;%%... l5A;a45::<AAA Aq!Qa);%;;;;1q5!Qa);%;;;; YD	BYD	Bb"%R <B#778 9 8R"W%R <B#778 9 8R!b&!b&1r6/:R$$R$$%R$$% R$$%% & %r(   c                     t        d      } t        d      }t        | |z        t        |      t        |       z  k(  sJ t        | |z         t        |       t        |      z   k(  sJ t        | dz        t        |       dz  k(  sJ y )Nr4   r5   r7   )r   r   )r4   r5   s     r%   test_operator_daggerra      sx    AA!A#;&)F1I----!a%=F1Iq	1111!Q$<6!9a<'''r(   c                  R   t        d      } t        d      }t        t         ||       |        ||             }t	        | dz  |       }t        ||z        t	        d| z  |       k(  sJ |j                  t         ||       |       k(  sJ |j                   ||       k(  sJ |j                  | fk(  sJ t        ||       t        t         ||       | d       ||             k(  sJ t        t         ||       | d       ||             }t	        | dz  |       }t        ||z        t	        d| z  |       k(  sJ |j                  t         ||       | d      k(  sJ |j                   ||       k(  sJ |j                  | fk(  sJ t        ||       t        t         ||       | d       ||             k(  sJ t        d| z  t         ||       |       z   ||             }|j                  d| z  t         ||       |       z  k(  sJ |j                   ||       k(  sJ |j                  | fk(  sJ t        ||       t        t        d| z  t         ||       |       z  |        ||             k(  sJ t        ||z        t	        d| z  |       k(  sJ t        d      }t        t         || |      | d      t         || |      |d      z    || |            }t	        | dz  |dz  z  |dz  | dz  z  z   | |      }|j                  t         || |      | d      t         || |      |d      z   k(  sJ |j                   || |      k(  sJ |j                  | |fk(  sJ t        ||       t        t        |j                  |        || |            k(  sJ t        ||      t        t        |j                  |       || |            k(  sJ t        ||z        t	        d| dz  z  d| z  |dz  z  z   d| dz  z  |z  z   d|dz  z  z   | |      k(  sJ t        d      \  }}t        d|z  t        |t         |||      |      z  |      z  d|dz  z  t         |||      |d      z  z    |||            }t	        |dz  t        |      z  ||d	t        f      }|j                  d|z  t        |t         |||      |      z  |      z  d|dz  z  t         |||      |d      z  z   k(  sJ |j                   |||      k(  sJ |j                  ||fk(  sJ t        ||      t        t        |j                  |       |||            k(  sJ t        ||      t        t        |j                  |       |||            k(  sJ t        ||z        t	        dt        |      z  ||d	t        f      k(  sJ y )
NrK   fr7   rL   rY   rA   yzr thr   )r	   r   r   r   r   r   exprfunction	variablesr   r
   r   r   )rK   rc   dgrd   wrths           r%   test_differential_operatorrm      s   sAAZ!a0!A$7AQT1A!A#;,qsA....66Z!a((((::1;;1$1:-j1q!.DadKKKKZ!a3QqT:AQT1A!A#;,qsA....66Z!a++++::1;;1$1:-j1q!.DadKKKKQqSAaD!!44ad;A66QqSAaD!,,,,,::1;;1$1:Z!JqtQ,?(?CQqTJK K K!A#;,qsA.... 	sAZ!QA6'!QA6789!Q	AAQT!Q$YAad*Aq1A66Z!QA.AaGQ1JJJJJ::1a   ;;1a&   1:Z2AaG<= = =1:Z2AaG<= = =!A#;,qAv!AqD'81QT6!8'Ca1f'L'(!- - - - FOEArQqSAj1b1.E,Eq!II1Xj1b2q&AABCDQ8	MAQT#b'\1r1bk2A66	!JqAaHa00!44	1a4AaHb!,,	-- - - ::1b!!!;;1b'!!!1:Z2AaH=> > >2;Z3Qq"X>? ? ?!A#;,qRy!b!R[AAAAr(   c                     ddl m}  ddlm} t	        d      }t        d      }t        d      }|dz  |j                         k(  sJ |dz  |j                         k(  sJ |dz  |j                         k(  sJ t        dd	
      } || ||      sJ ||z   | ||      k(  sJ  | ||       | ||d      k(  sJ ddl	m
}  |d      } || ||      sJ ||z   | ||      k(  sJ  | ||d       | ||      k(  sJ t        dd	d	      }||z  dk(  sJ t        dd	d	      }||z  |k(  sJ t        dd	      } || ||      sJ ||z   | ||      k(  sJ  | ||d       | ||      k(  sJ |dz  dk(  sJ |dz  |k(  sJ y )Nr   )Pow)	unchangedr8   rH   rE   rK   T)commutativeF)evaluate)XGaterO   )integerevenrA   )ru   odd)ru   rX      )
sympy.corero   sympy.core.exprrp   r   r   r   rB   r
   sympy.physics.quantum.gatert   )	ro   rp   r8   rH   rE   rK   rt   XrO   s	            r%   test_eval_powerr}      s   )AA#Ab5AEEGb5AEEGb5AEEG4(AS!Qa43q!9q8s1a%00000aAS!Qa43q!9q!e$Aq	111T-Aa4199Tt,Aa4199T"AS!Qa43q!9q!e$c!Qi///a4199a4199r(   N)7sympy.core.functionr   r   r   sympy.core.mulr   sympy.core.numbersr   r   sympy.core.symbolr	   r
   (sympy.functions.elementary.trigonometricr   sympy.physics.quantum.qexprr   sympy.physics.quantum.daggerr   sympy.physics.quantum.hilbertr   sympy.physics.quantum.operatorr   r   r   r   r   r   sympy.physics.quantum.stater   r   r   sympy.physics.quantum.qapplyr   sympy.physics.quantum.representr   sympy.physics.quantum.spinr   r   sympy.physics.quantum.tracer   sympy.matricesr   r   r0   t_ketr>   r?   rC   rF   rI   rP   r_   ra   rm   r}   r"   r(   r%   <module>r      s    < <  , / 8 - / 6> > ? > / 5 3 *    
 	z%.	-
-804&n(8Bvr(   