
    \h7                     .   S SK JrJrJr  S SKJr  S SKJrJrJ	r	  S SK
JrJrJrJr  S SKJrJrJrJrJrJrJrJrJrJrJr  S SKJr  S SKJr  S SKJ r   \" S	S
S9r!\" S\!\!5      r"\" S\!\!5      r#\" SSS5      r$S r%S r&S r'S r(S r)S r*S r+S r,S r-S r.g)    )LambdaSsymbols)Sum)adjoint	conjugate	transpose)eyeMatrix
ShapeErrorImmutableMatrix)AdjointIdentityFunctionMatrix
MatrixExprMatrixSymbolTrace
ZeroMatrixtraceMatPowMatAddMatMul)	OneMatrix)raises)inT)integerABC      c            	         [        [        [        5      [        5      (       d   e[        [        [        5      [        5      (       a   e[	        [
        S 5        [        [        S5      5      S:X  d   e[        [        SS/ SQ5      5      S:X  d   e[        [        [        5      5      [        [        [        5      5      :X  d   e[        [        [        5      5      [        [        [        5      5      :X  d   e[        [        [        5      5      [        [        5      :X  d   e[        [        [        5      -  n [        [        S5      5      S:X  d   e[        [        SS5      5      S:X  d   e[        [        SS5      5      S:X  d   e[        [        SS5      5      S:X  d   e[        [        [         [         5      5      [         :X  d   e[        S[        -  ["        -  5      S[        [        ["        -  5      -  :X  d   e[        [        R$                  5      [        [        5      :X  d   e['        S	5      u  p[)        SS[+        X4X-   5      5      n[        U5      S
:X  d   e[	        [,        S 5        [        [        5      R.                  [        L d   e[1        [        [        5      5      [1        [        [        5      R3                  5       5      :X  d   e[        [        5      R4                  SL d   eg )Nc                       [        [        5      $ N)r   r         c/var/www/auris/envauris/lib/python3.13/site-packages/sympy/matrices/expressions/tests/test_trace.py<lambda>test_Trace.<locals>.<lambda>   s    uQxr'   r!   )	      r!   r"               	      r-   r   r+   r,   zi jr.   c                  4    [        [        R                  5      $ r%   )r   r   Oner&   r'   r(   r)   r*   .   s    eAEElr'   T)
isinstancer   r   r   r   r   r   r
   r   r   r   r   r	   r   r   r   r   r   Tr   r   r   	TypeErrorargstrdoitis_commutative)_r   jFs       r(   
test_Tracer?      s)   eAh&&&&%(J////
:'(Q=A19:;rAAA58gaj 1111U1X%
"3333U1X%(***	E!HA !"""Aq!"a'''1a!Q&&&1a!Q&&&1a!Q&&&1Q<1U1Q3Z<''':q!!!5>DAq!VQFAE23A82222
9*+8<<1uQx=Ca00008""d***r'   c                  t   [        [        [        -   5      [        [        5      [        [        5      -   :X  d   e[        [        [        -   5      R                  [        [        [        5      :X  d   e[        [        [        -   5      R                  5       [        [        5      [        [        5      -   :X  d   eg r%   )r   r   r   r   r8   r   r:   r&   r'   r(   test_Trace_A_plus_BrA   6   ss    Q<58eAh....Q<va|+++Q<%(U1X"5555r'   c                      [        / SQ/S-  5      n [        SSS5      n[        U SU -  USU-  5      n[        U5      R                  U:X  d   e[        U5      R                  5       SS[        U5      -  -
  :X  d   eg )N)r+   r,   r!   r!   Yr,      )r   r   r   r   r8   r:   )XrC   qs      r(   test_Trace_MatAdd_doitrH   <   sr    A&AS!QAq!A#q"Q$A8<<18==?b1U1X:o---r'   c                      [        SS/SS//5      n [        U 5      R                  5       S:X  d   e[        U S5      n[        U5      R                  U:X  d   e[        U5      R                  5       S:X  d   eg )Nr+   r,   r!   r"   r-      )r   r   r:   r   r8   rF   rG   s     r(   test_Trace_MatPow_doitrL   E   sj    AA A8==?aq!A8<<18==?b   r'   c                  x    [        SS/SS//5      n [        U 5      [        U 5      -   S[        U 5      -  :X  d   eg )Nr+   r,   r!   r"   )r   r   rF   s    r(   test_Trace_MutableMatrix_plusrO   M   s<    AA A8eAh!E!H*,,,r'   c                  j   [        SS/SS//5      n [        U S5      n[        U5      R                  SS9R                  U:X  d   e[        U SU -  5      n[        U5      R                  SS9R                  U:X  d   e[        U SU -  5      n[        U5      R                  SS9R                  U:X  d   eg )Nr+   r,   r!   r"   F)deep)r   r   r   r:   r8   r   r   rK   s     r(   test_Trace_doit_deep_FalserR   S   s    AA Aq!A8==e=$((A---q!A#A8==e=$((A---q!A#A8==e=$((A---r'   c                      [        S[        -  5      S[        [        5      -  :X  d   e[        SS/SS//5      n [        [	        SU 5      5      S:X  d   eg )Nr,   r+   r!   r"   
   )r   r   r   r   r   rN   s    r(   test_trace_constant_factorrU   ]   sP    1:58###!Q!Q()A1"$$$r'   c                      [        [        5      R                  [        5      [        [        [        [        4   [        S[
        S-
  45      :X  d   e[        [        S5      5      R                  [        5      S:X  d   eg )Nr   r+   r!   )r   r   rewriter   r   r   r
   r&   r'   r(   test_trace_rewriterX   d   sY    8C C!Q$!QA$????Q=  %***r'   c                     [        [        [        -  5      [        [        [        -  5      :w  d   e[        [        [        -  5      R                  5       [        [        [        -  5      :X  d   e[        [        [        R                  -  5      R                  5       [        [        [        R                  -  5      :X  d   eg r%   )r   r   r   
_normalizer6   r&   r'   r(   test_trace_normalizer[   i   sv    1:qs###1:  "eAaCj000133<""$ae444r'   c                      [        [        S 5        [        SSS5      n [        U 5      R	                  5       U S   U S   -   U S   -   :X  d   e[        [        S5      5      R	                  5       S:X  d   eg )Nc                  <    [        [        5      R                  5       $ r%   )r   r   as_explicitr&   r'   r(   r)   (test_trace_as_explicit.<locals>.<lambda>p   s    uQx335r'   rF   r!   )r   r   )r+   r+   )r,   r,   )r   
ValueErrorr   r   r^   r
   rN   s    r(   test_trace_as_explicitra   o   sk    
:56S!QA8!QtWqw%64%@@@@Q=$$&!+++r'   N)/
sympy.corer   r   r   sympy.concreter   sympy.functionsr   r   r	   sympy.matricesr
   r   r   r   sympy.matrices.expressionsr   r   r   r   r   r   r   r   r   r   r   "sympy.matrices.expressions.specialr   sympy.testing.pytestr   	sympy.abcr   r   r   r   r    r?   rA   rH   rL   rO   rR   rU   rX   r[   ra   r&   r'   r(   <module>rj      s    ) )  9 9 C C    9 '  Caaa +D6.!-.%+
5,r'   