
    sh                      ~   S SK JrJrJr  S SKJr  S SKJrJr  S SK	J
r
Jr  S SKJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJrJrJrJrJrJr  S SKJrJrJ r   S SK!J"r"  S SK#J$r$  S SK%J&r&J'r'  S SK(J)r)  S SK*J+r+  S SK,J-r-   " S S\5      r. " S S\5      r/\." 5       r0\/" 5       r1S r2S r3S r4S r5S r6S r7S r8S r9S r:g)     )
DerivativeFunctiondiff)Mul)Integerpi)Symbolsymbols)sympify)sin)QExpr)Dagger)HilbertSpace)OperatorUnitaryOperatorHermitianOperatorOuterProductDifferentialOperatorIdentityOperator)KetBraWavefunction)qapply)	represent)JzKetJzBra)Tr)eye)warns_deprecated_sympyc                   $    \ rS rSr\S 5       rSrg)	CustomKet   c                     g)N)t selfs    }/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/sympy/physics/quantum/tests/test_operator.pydefault_argsCustomKet.default_args           r%   N__name__
__module____qualname____firstlineno__classmethodr)   __static_attributes__r%   r,   r(   r!   r!           r,   r!   c                   $    \ rS rSr\S 5       rSrg)CustomOp   c                     g)N)Tr%   r&   s    r(   r)   CustomOp.default_args   r+   r,   r%   Nr-   r%   r,   r(   r6   r6      r4   r,   r6   c                     [        S5      n [        S5      n[        S5      n[        U [         5      (       d   e[        U [        5      (       d   eU R                  [	        S5      4:X  d   eU R
                  SL d   eU R                  [        5       :X  d   eX-  X-  :w  d   eXU-   -  R                  5       X-  X-  -   :X  d   eX-   S-  R                  5       U S-  X-  -   X-  -   US-  -   :X  d   e[        R                  S   [	        [        R                  5       S   5      :X  d   e[        5       [        S5      :X  d   e[        5          U [        5       -  U :X  d   e S S S 5        g ! , (       d  f       g = f)NABCF   r   O)r   
isinstancer   labelr	   is_commutativehilbert_spacer   expandt_opr)   r   r   )r<   r=   r>   s      r(   test_operatorrG   '   sU   AAAa""""a77vc{n$$$u$$$??ln,,,3!#::1uI139,,,UQJ AqD13J$4q!t$;;;;::a=F4#4#4#6q#9:::::#&&&		!!##q((( 
"	!	!s   E++
E9c                  |    [        S5      n X R                  5       -  S:X  d   eU R                  5       U -  S:X  d   eg )Nr<      )r   inv)r<   s    r(   test_operator_invrK   ?   s5    AUUW9>>55719>>r,   c                     [        S5      n [        U [         5      (       d   e[        U [        5      (       d   e[        U 5      U :X  d   eU R	                  5       U :w  d   eU R
                  SL d   e[        U 5      R
                  SL d   eg )NHF)r   rA   r   r   rJ   rC   )rM   s    r(   test_hermitianrN   E   s    #Aa*++++a""""!9>>557a<<u$$$!9##u,,,r,   c                  Z   [        S5      n [        U [         5      (       d   e[        U [        5      (       d   eU R                  5       [	        U 5      :X  d   eU [	        U 5      -  S:X  d   e[	        U 5      U -  S:X  d   eU R
                  SL d   e[	        U 5      R
                  SL d   eg )NUrI   F)r   rA   r   rJ   r   rC   )rP   s    r(   test_unitaryrQ   Q   s    Aa))))a""""557fQiVAY;!!9Q;!u$$$!9##u,,,r,   c                     [        5          [        5       n [        S5      n[        S5      n[	        S5      n[        U [        5      (       d   e[        U [        5      (       d   eX-  U:X  d   eX-  U:X  d   eU [        U5      -  [        U5      :X  d   e[        U5      U -  [        U5      :X  d   e[        X -  [        5      (       d   eX0-  U:X  d   eX-  U:X  d   eU R                  5       U :X  d   e[        U 5      U :X  d   e[        X-  5      U:X  d   e[        X-  5      U:X  d   eS H&  n[        [        U5      5      [        U5      :X  a  M&   e   S S S 5        g ! , (       d  f       g = f)Nr@   x   )r?   rT      )r   r   r   r	   r   rA   r   rJ   r   r   r   )Ir@   rS   threens        r(   test_identityrY   ^   sS   		!SM3K
!-....!X&&&&uzzuzz6!9}q	)))ay1}q	)))!%!12222yE!!!uzzuuw!||ayA~~ae}!!!ae}!!!A-a01SV;;; + 
"	!	!s   EE"E""
E0c            	         [        S5      n [        S5      n[        X5      n[        U[        5      (       d   e[        U[        5      (       d   eUR
                  U :X  d   eUR                  U:X  d   eUR                  X4:X  d   eUR                  SL d   eX-  n[        U[        5      (       d   e[        U[        5      (       d   eUR
                  U :X  d   eUR                  U:X  d   eUR                  X4:X  d   eUR                  SL d   eSU -  U-  nU[        [        S5      X5      :X  d   eSX-  -  nU[        [        S5      [        X5      5      :X  d   e[        X-  5      [        [        U5      [        U 5      5      :X  d   e[        X-  5      R                  SL d   e[        [        [        SS5      [        SS5      5      5      R                  5       S:X  d   e[        SU -  U5      S[        X5      -  :X  d   e[        U SU-  5      S[        X5      -  :X  d   e[        S5      [        S5      pC[        S5      [        S	5      pe[        X4-   U5      [        X55      [        XE5      -   :X  d   e[        X5U-   5      [        X55      [        X65      -   :X  d   e[        SU-  SU-  -   S
U-  SU-  -   5      S
[        X55      -  S[        X65      -  -   S[        XE5      -  -   S[        XF5      -  -   :X  d   eg )NkbFr?   rI   k1k2b1b2rT            )r   r   r   rA   r   ketbrarB   rC   r   r   r   r   r   r   doit)r[   r\   opr]   r^   r_   r`   s          r(   test_outer_productrh   x   s   CACA	a	Bb,''''b(####66Q;;66Q;;88v%%%	
Bb,''''b(####66Q;;66Q;;88v%%%	
1QBWQZ&&&&	
ACBWQZa!34444!#;,vay&)<<<<!#;%%... l5A;a45::<AAA Aq!Qa);%;;;;1q5!Qa);%;;;; YD	YD	"% <#778 9 8"W% <#778 9 8R!b&!b&1r6/:R$$R$$%R$$% R$$%% & %r,   c                     [        S5      n [        S5      n[        X-  5      [        U5      [        U 5      -  :X  d   e[        X-   5      [        U 5      [        U5      -   :X  d   e[        U S-  5      [        U 5      S-  :X  d   eg )Nr<   r=   r?   )r   r   )r<   r=   s     r(   test_operator_daggerrj      st    AA!#;&)F1I----!%=F1Iq	1111!Q$<6!9a<'''r,   c                  B   [        S5      n [        S5      n[        [        U" U 5      U 5      U" U 5      5      n[	        U S-  U 5      n[        X#-  5      [	        SU -  U 5      :X  d   eUR                  [        U" U 5      U 5      :X  d   eUR                  U" U 5      :X  d   eUR                  U 4:X  d   e[        X 5      [        [        U" U 5      U S5      U" U 5      5      :X  d   e[        [        U" U 5      U S5      U" U 5      5      n[	        U S-  U 5      n[        X#-  5      [	        SU -  U 5      :X  d   eUR                  [        U" U 5      U S5      :X  d   eUR                  U" U 5      :X  d   eUR                  U 4:X  d   e[        X 5      [        [        U" U 5      U S5      U" U 5      5      :X  d   e[        SU -  [        U" U 5      U 5      -  U" U 5      5      nUR                  SU -  [        U" U 5      U 5      -  :X  d   eUR                  U" U 5      :X  d   eUR                  U 4:X  d   e[        X 5      [        [        SU -  [        U" U 5      U 5      -  U 5      U" U 5      5      :X  d   e[        X#-  5      [	        SU -  U 5      :X  d   e[        S5      n[        [        U" X5      U S5      [        U" X5      US5      -   U" X5      5      n[	        U S-  US-  -  US-  U S-  -  -   X5      nUR                  [        U" X5      U S5      [        U" X5      US5      -   :X  d   eUR                  U" X5      :X  d   eUR                  X4:X  d   e[        X 5      [        [        UR                  U 5      U" X5      5      :X  d   e[        X$5      [        [        UR                  U5      U" X5      5      :X  d   e[        X%-  5      [	        SU S-  -  SU -  US-  -  -   SU S-  -  U-  -   SUS-  -  -   X5      :X  d   e[        S5      u  pg[        SU-  [        U[        U" Xg5      U5      -  U5      -  SUS-  -  [        U" Xg5      US5      -  -   U" Xg5      5      n[	        US-  [        U5      -  XgS	[        45      nUR                  SU-  [        U[        U" Xg5      U5      -  U5      -  SUS-  -  [        U" Xg5      US5      -  -   :X  d   eUR                  U" Xg5      :X  d   eUR                  Xg4:X  d   e[        X&5      [        [        UR                  U5      U" Xg5      5      :X  d   e[        X'5      [        [        UR                  U5      U" Xg5      5      :X  d   e[        X%-  5      [	        S[        U5      -  XgS	[        45      :X  d   eg )
NrS   fr?   rT   rb   rI   yzr thr   )r	   r   r   r   r   r   exprfunction	variablesr   r
   r   r   )rS   rl   dgrm   wrths           r(   test_differential_operatorrv      ss   sAAZ!a0!A$7AQT1A!#;,qsA....66Z!a((((::1;;1$:-j1q!.DadKKKKZ!a3QqT:AQT1A!#;,qsA....66Z!a++++::1;;1$:-j1q!.DadKKKKQqSAaD!!44ad;A66QqSAaD!,,,,,::1;;1$:Z!JqtQ,?(?CQqTJK K K!#;,qsA.... 	sAZ!A6'!A6789!	AAQT!Q$YAad*A1A66Z!A.AaGQ1JJJJJ::1   ;;1&   :Z2AaG<= = =:Z2AaG<= = =!#;,qAv!AqD'81QT6!8'Ca1f'L'(- - - - FOEAQqSAj11.E,Eq!II1Xj12q&AABCDQ8	MAQT#b'\11bk2A66	!JqAaHa00!44	1a4AaHb!,,	-- - - ::1!!!;;1'!!!:Z2AaH=> > >;Z3QqX>? ? ?!#;,qRy!!R[AAAAr,   c                     SSK Jn   SSKJn  [	        S5      n[        S5      n[        S5      nUS-  UR                  5       :X  d   eUS-  UR                  5       :X  d   eUS-  UR                  5       :X  d   e[        SS	S
9nU" XU5      (       d   eXE-  U " XE5      :X  d   eU " XE5      U " XESS9:X  d   eSSK	J
n  U" S5      nU" XU5      (       d   eXu-  U " Xu5      :X  d   eU " XuSS9U " Xu5      :X  d   e[        SS	S	S9nXx-  S:X  d   e[        SS	S	S9nXx-  U:X  d   e[        SS	S9nU" XU5      (       d   eXx-  U " Xx5      :X  d   eU " XxSS9U " Xx5      :X  d   eUS-  S:X  d   eUS-  U:X  d   eg )Nr   )Pow)	unchangedr@   rP   rM   rS   T)commutativeF)evaluate)XGaterX   )integerevenrI   )r~   odd)r~   ra      )
sympy.corerx   sympy.core.exprry   r   r   r   rJ   r
   sympy.physics.quantum.gater}   )	rx   ry   r@   rP   rM   rS   r}   XrX   s	            r(   test_eval_powerr      s   )AA#Ab5AEEGb5AEEGb5AEEG4(ASQ43q9q8s1%00000aASQ43q9qe$A	111T-A4199Tt,A4199T"ASQ43q9qe$c!i///a4199a4199r,   N);sympy.core.functionr   r   r   sympy.core.mulr   sympy.core.numbersr   r   sympy.core.symbolr	   r
   sympy.core.sympifyr   (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   sympy.testing.pytestr   r!   r6   t_ketrF   rG   rK   rN   rQ   rY   rh   rj   rv   r   r%   r,   r(   <module>r      s    < <  , / & 8 - / 6> > ? > / 5 3 *  7   
 	z)0	-
-<44&n(8Bvr,   