
    \h                     ~   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
  S SKJrJrJr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  S S
KJr  \	" SSS9u  rrrr\" S\\5      r \" S\\5      r!\" S\\5      r"\" S\\5      r#\" S\\5      r$S r%S r&S r'S r(S r)S r*S r+S r,S r-S r.S r/S r0S r1S  r2S! r3S" r4S# r5g$)%    )sqrt)powsimp)raises)	unchanged)symbolsS)IdentityMatrixSymbolImmutableMatrix
ZeroMatrix	OneMatrixMatrix)NonSquareMatrixError)MatPowMatAddMatMul)Inverse)MatrixElementzn m l kT)integerABCDEc                      [        SS/SS//5      n [        U S5      S   S:X  d   e[        U S5      S   S:X  d   e[        U S5      S   S:X  d   e[        U S5      S   S:X  d   e[        U S5      S   S:X  d   eg )	N            r   r   r   r   r      )r   r   Xs    d/var/www/auris/envauris/lib/python3.13/site-packages/sympy/matrices/expressions/tests/test_matpow.pytest_entry_matrixr&      s    !Q!Q()A!Q<"""!Q<"""!Q<"""!Q<"""!Q<"""    c                  T   SSK Jn   [        [        S5      S   S:X  d   e[        [        S5      S   S:X  d   e[        [        S5      S   [        S   :X  d   e[	        [        [        S5      S   U 5      (       d   e[	        [        [        [
        5      S   [        5      (       d   eg )Nr   Sumr    r   r!   r   )sympy.concreter*   r   r   
isinstancenr   r)   s    r%   test_entry_symbolr.      s    "!Q<"""!Q<"""!Q<4(((fQl4(#....fQl4(-8888r'   c            	      "   [        SSS5      n [        U S5      R                  5       [        [	        S5      5      :X  d   e[        U S5      R                  5       U R                  5       :X  d   e[        U S5      R                  5       U R                  5       S-  :X  d   e[        U [
        5      R                  5       [        U [
        -  S   U [
        -  S   /U [
        -  S   U [
        -  S   //5      :X  d   e[        S	S
S5      n[        SS
S5      n[        SS
S5      nUR                  U-  [        R                  -  nUR                  5       [        [        US   US   -  US   US   -  -   US   US   -  -   5      //5      :X  d   eX1R                  U-  [        R                  -  -  n[        US   US   -  US   US   -  -   US   US   -  -   5      nUR                  5       [        US   U-  /US   U-  /US   U-  //5      :X  d   eXR                  -  [        R                  -  n[        US   US   -  US   US   -  -   US   US   -  -   5      nXR                  -  R                  5       U-  nUR                  5       U:X  d   eU S-  nU S   U S   -  U S   U S   -  -
  n[        U S   U S   * /U S   * U S   //5      U-  nUR                  5       U:X  d   eX-  nUR                  5       U R                  5       U-  :X  d   eg )Nr$   r   r   r   r    r!   )r   r   )r   r   ar   bc)r   r   )r
   r   as_explicitr   r	   r-   Tr   Halfr   r   )	r$   r0   r1   r2   exprmdenomexpecteddets	            r%   test_as_explicit_symbolr<   &   s$   S!QA!Q<##%!)EEEE!Q<##%888!Q<##%!--/A)====!Q<##%
q&$!q&$(
q&$!q&$(: *   
 	S!QAS!QAS!QACCEAFF?D$qwqw44/PSTUYSZ[\]a[bSb/b*c)d(e!ffffcc!eaff_DQtWQtW_qwqw.44@AA!D'!)qwqykAdGAI;(O!PPPPccEAFF?D441T71T7?2QtWQtW_DEE##""$U*H)))b5D
D'!D'/AdGAdGO
+C$!D'*agXqw,?@A#EH)))4D!!3333r'   c                  d   [        SS/SS//5      n [        U S5      R                  5       [        [        S5      5      :X  d   e[        U S5      R                  5       U :X  d   e[        U S5      R                  5       U S-  :X  d   e[        U S5      R                  5       U R	                  5       :X  d   e[        U S5      R                  5       U R	                  5       S-  :X  d   e[        S/5      n [        U [
        R                  5      R                  5       U [
        R                  -  :X  d   eg )Nr   r   r   r   r   r3   )r   r   r4   r	   invr   r6   )r   s    r%   test_as_explicit_matrixr@   I   s    !Q!Q()A!Q<##%!)EEEE!Q<##%***!Q<##%A---!R=$$&!%%'111!R=$$&1557Q,666A!QVV((*ai777r'   c                     [        [        S5      R                  5       [        [        5      :X  d   e[        [        S5      R                  5       [        :X  d   e[        [        S5      R                  5       [        R
                  :X  d   eS[        R                  [        R                  [        4 H5  n [        [        U 5      R                  5       [        [        U 5      :X  a  M5   e   g )Nr   r   r3   r   )	r   r   doitr	   r-   Ir   r6   Pi)rs    r%   test_doit_symbolrF   U   s    !Q<(1+---!Q<!###!R=133&&&q!a|  "fQl222 "r'   c                    ^  [        SS/SS//5      m [        T S5      R                  5       [        [        S5      5      :X  d   e[        T S5      R                  5       T :X  d   e[        T S5      R                  5       T S-  :X  d   e[        T S5      R                  5       T R	                  5       :X  d   e[        T S5      R                  5       T R	                  5       S-  :X  d   e[        [        S/5      [
        R                  5      R                  5       [        S/5      :X  d   e[        SS/SS//5      m [        [        U 4S j5        [        [        U 4S	 j5        g )
Nr   r   r   r   r   r3   r>   c                  8   > [        T S5      R                  5       $ Nr3   r   rB   r#   s   r%   <lambda>"test_doit_matrix.<locals>.<lambda>g       va|002r'   c                  8   > [        T S5      R                  5       $ Nr>   rJ   r#   s   r%   rK   rL   h   rM   r'   )	r   r   rB   r	   r?   r   r6   r   
ValueErrorr#   s   @r%   test_doit_matrixrQ   ]   s%   !Q!Q()A!Q</(1+">>>>!Q<!###!Q<!Q$&&&!R=1557***!R=AEEGa<////1#&/446/1#:NNNN!Q!Q()A
:23
:23r'   c                     ^ ^^ [        SSS5      m [        / SQ/ SQ/5      mSSSS[        R                  [        R                  [
        4 H-  m[        [        U U4S	 j5        [        [        UU4S
 j5        M/     g )Nr   r   r   )r   r   r   )r         r3   r   r   c                     > [        T T5      $ Nr   )r   rE   s   r%   rK    test_nonsquare.<locals>.<lambda>o       VAq\r'   c                     > [        T T5      $ rV   rW   )r   rE   s   r%   rK   rX   p   rY   r'   )r
   r   r   r6   rD   r-   r   r   )r   r   rE   s   @@@r%   test_nonsquarer[   k   sY    S!QAI./A!Q166144+#%9:#%9: ,r'   c                      [        SS/SS//5      n [        U [        5      R                  5       U [        -  s=:X  a  U :X  d   e   eg )Nr   r   )r   r   r-   rB   r#   s    r%   test_doit_equals_powr]   s   sD    1Q%1'A!Q<!Q$+!+++++r'   c                      [        SS/SS//5      n [        SS/SS//5      n[        [        X5      S5      R                  5       X-  S-  :X  d   e[        [	        X5      S5      R                  5       X-   S-  :X  d   eg )Nr   r   r   r   rS   )r   r   r   rB   r   )r$   Ys     r%   test_doit_nested_MatrixExprr`   x   s    !Q!Q()A!Q!Q()A&,"'')acAX555&,"'')aeaZ777r'   c                     [        [        5      n [        U S5      R                  5       U :X  d   e[        U [        5      R                  5       U :X  d   e[        U S5      R                  5       U :X  d   e[        U S5      R                  5       U :X  d   e[        S5      n[        U[        5      R                  5       U:X  d   e[        US5      R                  5       U:X  d   e[        US5      R                  5       U:X  d   eg )Nr   r   r   r3   )r	   r-   r   rB   )kls     r%   test_identity_powerre      s    A!Q<!###!Q<!###!R=1$$$!Q<!###A!Q<!###!R=1$$$!Q<!###r'   c                    ^ ^ [        [        [        5      m [        T S5      R                  5       T :X  d   e[	        [
        U 4S j5        [        T S5      R                  5       [        [        5      :X  d   e[        T [        5      R                  5       T :X  d   e[	        [
        U 4S j5        [        SS5      m[        T[        5      R                  5       T:X  d   e[	        [
        U4S j5        [        TS5      R                  5       T:X  d   e[        TS5      R                  5       [        S5      :X  d   e[	        [
        U4S j5        g )	Nr   c                  8   > [        T S5      R                  5       $ rI   rJ   z1s   r%   rK   !test_zero_power.<locals>.<lambda>       fRn113r'   r   c                  8   > [        T S5      R                  5       $ rO   rJ   rh   s   r%   rK   rj      rk   r'   r   c                  8   > [        T S5      R                  5       $ )Nrb   rJ   z2s   r%   rK   rj      rk   r'   r   c                  8   > [        T S5      R                  5       $ rI   rJ   rn   s   r%   rK   rj      rk   r'   )r   r-   r   rB   r   rP   r	   )ri   ro   s   @@r%   test_zero_powerrq      s    	Aq	B"a=2%%%
:34"a=8A;..."a=2%%%
:34	Aq	B"a=2%%%
:34"a=2%%%"a=8A;...
:34r'   c                     [        SS5      n U S-  [        S5      :X  d   eU S-  U :X  d   eX -  U S-  s=:X  a
  SU -  :X  d   e   eX -  U -  U S-  s=:X  a
  SU -  :X  d   e   e[        [        [        5      n X -  U S-  s=:X  a  [        U -  :X  d   e   e[        U [        S-
  -  U -  5      U [        -  s=:X  a  [        [        S-
  -  U -  :X  d   e   eg )Nr   r   r   r   	   )r   r	   r-   r   )os    r%   test_OneMatrix_powerru      s    !QA6Xa[   6Q;;5AF#a!e#####519Q'!a%'''''!QA5AF#a!e#####1Q<!#$QB!A,2BBBBBBr'   c                     SSK Jn   [        [        -  R                  S-  [        [        -  S-  R                  s=:X  a)  [        R                  [        R                  -  S-  :X  d   e   e[        [        -  R                  S-  R                  [        [        -  S-  :X  d   e[        R                  R
                  R                  S-  [        S-  :X  d   e[        R                  [        -  R                  [        -  [        [        [        -  -  :X  d   e[        R                  [        R                  -  S-  R                  [        [        -  S-  :X  d   e[        [        -  R                  S-  R                  S-  [        [        -  S-  :X  d   eU " U " [        S-  [        S-  -  5      S-  5      R                  5       [        S-  [        S-  -  S-  :X  d   e[        [        -  S	-  R                  S	-  [        [        -  S
-  R                  :X  d   e[        [        -  [        -  R                  [        -  R                  [        [        -  [        [        -  -  :X  d   eg )Nr   )	TransposerS   r"   i#   r   r      )$sympy.matrices.expressions.transposerw   r   r   r5   rC   rd   rc   r   r   rB   )TPs    r%   test_transpose_powerr}      s   DaC77A:1Q3(7!##)a77777qSGGQJ>>acAX%%%CCEEGGa<1b5   CCF::q=A!H$$$SS133YN!A#)))qSGGQJ>>11r	)))bA1oq !&&(QTAqD[1,<<<<qS2I=="!A#---cAXLL!O1Q3!A#,...r'   c                     [        [        [        S5      5      R                  5       [	        [
        5      :X  d   e[        [        [        S5      5      R                  5       [        [        5      :X  d   e[        [        [        S5      5      R                  5       [        [        S5      :X  d   e[        [        [        S5      5      R                  5       [        :X  d   e[        [        [        5      S5      R                  5       [	        [
        5      :X  d   e[        [        [        5      S5      R                  5       [        [        5      :X  d   e[        [        [        5      S5      R                  5       [        [        S5      :X  d   e[        [        [        5      S5      R                  5       [        :X  d   eg )Nr   r   r   r>   r3   )r   r   r   rB   r	   r-    r'   r%   test_Inverser      s.   6!Q< %%'8A;6666!Q< %%'71:5556!Q< %%'6!R=8886!R=!&&(A---'!*a %%'8A;666'!*a %%'71:555'!*a %%'6!R=888'!*b!&&(A---r'   c                  x   [         S-  S-  [         :X  d   e[         S-  S-  [        [         S5      :X  d   e[         S-  S-  [        [         S5      :X  d   e[         S-  S-  [         :X  d   e[         S-  S-  S-  S	-  [        [         S
5      :X  d   e[         [        -  [        -  [         [        S-  -  :X  d   eg )Nr   r   r   rT   r>   rb   r3   r   rS   x   )r   r   r-   r   r'   r%   test_combine_powersr      s    Fq=AFq=F1aL(((G?fQl***G?a1f]q Q&&C.888Fq=A!q&M)))r'   c                     [        [        [        S5      (       d   e[        [        [        S5      (       d   e[        [        [        [        5      S5      (       d   e[        [        [        [        S5      S5      (       d   e[        [        [        [        S5      S5      (       d   e[        [        [        [        S5      S5      (       d   eg )Nr   r   r3   )r   r   r   r   r   r'   r%   test_unchangedr      s    VQ""""VQ""""VWQZ,,,,WfQmR0000VVAr]B////VVAq\1----r'   c                  &    [        [        S 5        g )Nc                      SS[         -  -  $ )Nr   r>   )r   r   r'   r%   rK   (test_no_exponentiation.<locals>.<lambda>   s    BqD	r'   )r   NotImplementedErrorr   r'   r%   test_no_exponentiationr      s      12r'   N)6(sympy.functions.elementary.miscellaneousr   sympy.simplify.powsimpr   sympy.testing.pytestr   sympy.core.exprr   
sympy.corer   r   sympy.matricesr	   r
   r   r   r   r   sympy.matrices.exceptionsr   sympy.matrices.expressionsr   r   r   "sympy.matrices.expressions.inverser   "sympy.matrices.expressions.matexprr   r-   r8   rd   rc   r   r   r   r   r   r&   r.   r<   r@   rF   rQ   r[   r]   r`   re   rq   ru   r}   r   r   r   r   r   r'   r%   <module>r      s    9 * ' % ! a a : = = 6 <Y-
1aaaaaa#9 4F	834;,
8	$5
C/"	.*.3r'   