
    \h	H                        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
Jr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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'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0  S SK1J2r2  S SK3J4r4J5r5  S SK6J7r7  S SK8J9r9J:r:  S SK;J<r<J=r=J>r>  S SK?J@r@  \" SSS9u  rArBrCrDrE\" S5      rF\," S\A\B5      rG\," S\B\C5      rH\," S\A\A5      rI\," S\A\A5      rJ\," S\B\A5      rK\," S\AS5      rLS rMS rNS  rOS! rPS" rQS# rRS$ rSS% rTS& rUS' rVS( rWS) rXS* rYS+ rZS, r[S- r\S. r]S/ r^S0 r_S1 r`S2 raS3 rbS4 rcS5 rdS6 re\=S7 5       rfS8 rgS9 rhS: riS; rjS< rkS= rlS> rm\=S? 5       rnS@ roSA rpSB rqSC rrSD rsSE rtSF ruSG rvgH)I    )Sum)	gcd_terms)diffexpand)Eq)DummySymbolStr)KroneckerDelta)zeros)factor)SsymbolsAddMulSympifyErrorRationalFunction)sincostansqrtcbrtexp)simplify)ImmutableMatrixInverseMatAddMatMulMatPowMatrix
MatrixExprMatrixSymbolSparseMatrix	TransposeAdjoint	MatrixSet)NonSquareMatrixError)Determinantdet)MatrixElement)
ZeroMatrixIdentity)raisesXFAILskip)versionz	n m l k pTintegerxABCDEw   c                    ^  [        SSS5      (       d   e[        SSS5      (       d   e[        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S	 5        [        S
5      m [        ST T 5      (       d   e[        S
SS9m [        [        U 4S j5        [        S
SS9m [        [        U 4S j5        g )Nr5      r   c                      [        SSS5      $ )Nr5   r=   r#        e/var/www/auris/envauris/lib/python3.13/site-packages/sympy/matrices/expressions/tests/test_matexpr.py<lambda>-test_matrix_symbol_creation.<locals>.<lambda>%       |CQ7rB   c                      [        SSS5      $ )Nr5          @r=   r@   rA   rB   rC   rD   rE   &   s    |Ca8rB   c                      [        SSS5      $ )Nr5                  @r=   r@   rA   rB   rC   rD   rE   '   rF   rB   c                      [        SSS5      $ )Nr5   r=   r?   r@   rA   rB   rC   rD   rE   (       |CB7rB   c                      [        SSS5      $ )Nr5   r=   rH   r@   rA   rB   rC   rD   rE   )   s    |CC8rB   c                      [        SSS5      $ )Nr5   r=   rJ   r@   rA   rB   rC   rD   rE   *   rL   rB   nFr2   c                     > [        ST T 5      $ Nr5   r@   rO   s   rC   rD   rE   /       |CA6rB   T)negativec                     > [        ST T 5      $ rQ   r@   rR   s   rC   rD   rE   1   rS   rB   )r#   r.   
ValueErrorr   rR   s   @rC   test_matrix_symbol_creationrW   "   s    Q""""Q""""
:78
:89
:78
:78
:89
:78AQ""""U#A
:67d#A
:67rB   c                  D   [         R                  [        [        4:X  d   e[         [        -  R                  [        [
        4:X  d   e[         S   R                  S:X  d   e[         S   R                  [         :X  d   e[         S   R                  R                  S:X  d   eg )Nr   r;   r   r   r5   )	r5   shaperO   mr6   lindicessymbolnamerA   rB   rC   test_matexpr_propertiesra   4   sz    77q!fE==QF"""T7??f$$$T7>>QT7>>#%%%rB   c                  L   [         [        -  R                  [        R                  :X  d   e[         [        -  R                  [        :X  d   eS[        -  [        -
  [        -
  [        [        R                  6 :X  d   e[        [        -  R                  [        [        4:X  d   eg Nr=   )	r4   r5   r[   	__class__r   r,   r6   rO   r]   rA   rB   rC   test_matexprre   <   so    aC;;!''!!!aC??f$$$Q37Q;*agg....aC;;1a&   rB   c                    ^^^^ [        S[        [        5      n [        S[        [        5      n[        S[        [        5      nU R	                  [        [        5      R
                  [        [        4:X  d   eX-  R	                  X5      X-  :X  d   eX-  R	                  [        [        5      R                  (       d   e[        SSS5      m[        SSS5      m[        SS	S5      m[        S
[        S5      mTR	                  TT5      T:X  d   e[        S5      nTR	                  [        S5      U5      R                  USS4:X  d   eTS   R	                  TT5      TS   :X  d   e[        [        UU4S j5        TS   R	                  TT5      TS   :X  d   eTS   R	                  TT5      TS   :X  d   e[        [        UU4S j5        [        [        U4S j5        [        S	S/SS//5      n [        S	S/SS//5      n[        SSS5      [        SSS5      pBX$-  R	                  X XA05      [        X5      :X  d   eg )Nr5   r6   r7   W   Xr=   Yr;   Zyr;   r;   c                  .   > T S   R                  T T5      $ )Nrm   subs)ri   rj   s   rC   rD   #test_matexpr_subs.<locals>.<lambda>[       qw||Aq1rB   rY   r=   r;   c                  .   > T S   R                  T T5      $ )Nr=   r=   ro   )rg   rk   s   rC   rD   rq   b   rr   rB   c                  @   > T S   R                  T [        S5      5      $ )Nru   r=   )rp   r   )rg   s   rC   rD   rq   d   s    qw||AuQx8rB      r8   )r#   rO   r\   r]   rp   r[   	is_squarer
   argsr.   
IndexErrorr$   r!   r   )	r5   r6   r7   rl   r8   rg   ri   rj   rk   s	        @@@@rC   test_matexpr_subsr{   C   s   S!QAS!QAS!QA66!Q<!Q'''C::aqs"""C::a%%%%S!QAS!QAS!QAS!QA66!Q<1CA66#c(A##1ay000T7<<14(((
 :12T7<<14((( T7<<14(((
:12
:89q!fq!f%&AAA AQ"La$;qC::qQl#va|333rB   c                  
  ^ [        S[        [        5      m[        S[        [        5      n [        TU -   [        5      (       d   eTU -   R
                  TR
                  :X  d   e[        TT-
  SU -  -   [        5      (       d   e[        [        U4S j5        [        [        U4S j5        [        [        U4S j5        T[        [        [        5      -   T-
  [        [        [        5      :X  d   e[        [        S 5        g )Nr5   r6   r=   c                     > T S-   $ Nr;   rA   r5   s   rC   rD   test_addition.<locals>.<lambda>u   	    a!erB   c                     > ST -   $ N   rA   r   s   rC   rD   r   v   r   rB   c                     > ST -
  $ r   rA   r   s   rC   rD   r   w   r   rB   c                  L    [        [        [        5      [        R                  -   $ N)r,   rO   r\   r   ZerorA   rB   rC   rD   r   z   s    jA.7rB   )
r#   rO   r\   
isinstancer   r[   r   r.   	TypeErrorr,   )r6   r5   s    @rC   test_additionr   m   s    S!QAS!QAa!eV$$$$E==AGG###a!eack6****
9m$
9m$
9m$z!Q!#z!Q'7777
978rB   c                    ^ [        S[        [        5      n [        S[        [        5      m[        S[        [        5      nSU -  T-  R                  [        [        4:X  d   eU S-  T-  [        [        [        5      :X  d   eSU -  R                  U R                  :X  d   eU [        [        [        5      -  T-  [        [        [        5      :X  d   eU[        [        5      -  UR                  -  [        [        5      :X  d   eTS-  [        R                  T-  :X  d   e[        [        U4S j5        [        S[        [        5      n [        S[        [        5      m[        [        5      U T-   -  U T-   :X  d   eU S-  U -  U S-  :X  d   eU S-  U R                  S-  -  U R                  :X  d   eU S-  U R                  S-  -  U :X  d   eg )Nr5   r6   r7   r=   r   c                     > ST -  $ rc   rA   r6   s   rC   rD   %test_multiplication.<locals>.<lambda>   s	    !rB   rh   )r#   rO   r\   r]   r[   r,   r-   Ir   Halfr.   NotImplementedError)r5   r7   r6   s     @rC   test_multiplicationr   }   s   S!QAS!QAS!QAaCE==QF"""aCEjA&&&&aC;;!''!!!z!Q!#z!Q'7777x{?QSS HQK///Q3!&&(??
,S!QAS!QAA;!a% AE)))a46QT>>a4q=ACCa4q=ArB   c                  ,   [        S[        [        5      n [        U S5      nUR                  S:X  d   eUR                  U :X  d   eU [        -  R                  [        :X  d   eU S-  [        [        5      :X  d   eU S-  U :X  d   eU S-  U:X  d   eU S-  [        U 5      :X  d   eU S-  S-  U :X  d   eU S-  S-  U S-  :X  d   eU [        R                  -  [        U 5      :X  d   eU [        SS5      -  [        U 5      :X  d   e[        [        S 5        g )	Nr5   r=   r   r;   r?   rh      c                  "    [        SSS5      S-  $ )Nr6   rh   r=   r@   rA   rB   rC   rD   test_MatPow.<locals>.<lambda>   s    c1a)@!)CrB   )r#   rO   r    r   baser-   r   r   r   r   r   r   r.   r(   )r5   AAs     rC   test_MatPowr      s   S!QA	1B66Q;;77a<<qD::??a48A;a4199a42::b5GAJrEB;!qD191aff9Qhq!nQ'''
!CDrB   c                     ^^^ [        S5      u  mmm[        STT5      n U R                  TT4:X  d   e[        [        UUU4S j5        U R                  5       U :X  d   eg )Nzn,m,tri   c                  *   > [        STT 5      " T5      $ )Nri   r@   )r\   rO   ts   rC   rD   #test_MatrixSymbol.<locals>.<lambda>   s    l315a8rB   )r   r#   r[   r.   r   doit)ri   r\   rO   r   s    @@@rC   test_MatrixSymbolr      sT    gGAq!S!QA77q!f
989668q==rB   c                     ^  [        SSS5      m [        T 5      [        SSU 4S j5      :X  d   e[        T 5      [        SSU 4S j5      :X  d   eg )Nri   r=   c                    > TX4   $ r   rA   ijri   s     rC   rD   'test_dense_conversion.<locals>.<lambda>   s    AadGrB   c                    > TX4   $ r   rA   r   s     rC   rD   r      s    !AD'rB   )r#   r   r!   )ri   s   @rC   test_dense_conversionr      sJ    S!QA1A7K!LLLL!9q!%9::::rB   c                  R    [         [        -  R                  [         [        1:X  d   eg r   )r7   r8   free_symbolsrA   rB   rC   test_free_symbolsr      s    aC!Q'''rB   c                  j    [        [        R                  [        SSS5      -  [        5      (       d   eg )Nri   r=   )r   r   r   r#   r"   rA   rB   rC   test_zero_matmulr      s'    aff|CA66
CCCCrB   c                      [        SSS5      n [        [        U [        [	        [
        5      S-  [        [
        5      S-  -   //5      5      5      [        U [        S//5      5      :X  d   eg Nr5   r;   r=   )r#   r   r   r   r   r4   r   r!   r   s    rC   test_matadd_simplifyr      `    S!QAF1oA	CFAI0E/F.GHIJq&1#- ! ! !rB   c                      [        SSS5      n [        [        U [        [	        [
        5      S-  [        [
        5      S-  -   //5      5      5      [        U [        S//5      5      :X  d   eg r   )r#   r   r   r   r   r4   r   r!   r   s    rC   test_matmul_simplifyr      r   rB   c                     [        S[        [        5      n [        S[        [        5      n[        S[        [        5      n[	        [        5      [        [        [        5      U [        X5      [        X 5      [        U 5      [        U 5      [        U5      [        US5      [        US5      [        US5      /nU H!  nXDR                  " UR                  6 :X  a  M!   e   g )Nr5   r6   ri   r=   r?   r   )r#   rO   r\   r]   r-   r,   r   r   r%   r&   r   r    rd   ry   )r5   r6   ri   objsobjs        rC   test_invariantsr      s    S!QAS!QAS!QAQKAq)1fQlF1LaL'!*gaj&A,q"1aLD mmSXX.... rB   c                      [        S[        [        5      n U S     U [        [        4     U [        S-   [        S-   4     [        SSS5      n [        SS5       H  n[        SS5       H	  nXU4     M     M     g )Nr5   r;   r=   r;   r=   r?   )r#   rO   r\   r]   krange)r5   r   r   s      rC   test_matexpr_indexingr      sl    S!QAdGadGa!eQUlOS!QA2q\r1AdG  rB   c                    ^ ^ [        SSS5      m T S   T S   :X  d   eT [        S5         T S   :X  d   eT S   T S   :X  d   e[        T S S2S S24   5      T S   T S   T S   T S   /:X  d   e[        [        U 4S	 j5        [        [        U 4S
 j5        [        S[
        [        5      m[        [        U4S j5        [        S[
        S5      mTS   TS   :X  d   eg )Nr5   r=   rh   r;   rY   r;   r   rZ   rm   c                     > T S   $ )Nr   rA   r   s   rC   rD   &test_single_indexing.<locals>.<lambda>   	    qtrB   c                     > T [            $ r   rR   r   s   rC   rD   r      s	    qtrB   r6   c                     > T S   $ r~   rA   r   s   rC   rD   r      r   rB   )r#   intlistr.   rz   rO   r\   r5   r6   s   @@rC   test_single_indexingr      s    S!QAQ41T7??SV9$Q41T7??"1"bqb&	?qw$4!D'BBBB
:|$
:|$S!QA
:|$S!QAQ41T7??rB   c                  X    [         S   [         S   -  [         S   [         S   -  :X  d   eg )NrY   r   r   rA   rB   rC   test_MatrixElement_commutativer      s(    T71T7?agago---rB   c                     [        SSS5      n U R                  5       R                  5       U S   U S   -  U S   -  U S   -  U S   U S   -  U S   -  U S   -  -
  U S   U S	   -  U S
   -  U S   -  -
  U S   U S	   -  U S   -  U S   -  -   U S   U S   -  U S
   -  U S   -  -   U S   U S   -  U S   -  U S   -  -
  U S   U S   -  U S   -  U S   -  -
  U S   U S   -  U S   -  U S   -  -   U S   U S	   -  U S   -  U S   -  -   U S   U S	   -  U S   -  U S   -  -
  U S   U S   -  U S   -  U S   -  -
  U S   U S   -  U S   -  U S   -  -   U S   U S   -  U S
   -  U S   -  -   U S   U S   -  U S   -  U S   -  -
  U S   U S   -  U S   -  U S   -  -
  U S   U S   -  U S   -  U S   -  -   U S   U S   -  U S   -  U S   -  -   U S   U S   -  U S
   -  U S   -  -
  U S   U S   -  U S
   -  U S   -  -
  U S   U S   -  U S   -  U S   -  -   U S   U S   -  U S   -  U S   -  -   U S   U S   -  U S   -  U S   -  -
  U S   U S	   -  U S   -  U S   -  -
  U S   U S	   -  U S
   -  U S   -  -   :X  d   e[        SSS5      n[        X-   5      R	                  5       [        X-   5      s=:X  a  X-   R                  5       :X  d   e   eg )Nr5   rw   rZ   rm   ru   )rh   rh   )r=   rh   )rh   r=   r   rs   )rh   r;   )r;   rh   rY   r   )r=   r   rh   r   r   r=   )r   rh   r6   )r#   as_explicitr*   r)   r   r   s     rC   test_MatrixSymbol_determinantr      s3   S!QA==? AdGAdGOAdG$;AdG$C	$$$$'%(*+D'!D'/!D'*A!D'*I%J	$$$$'%(*+D'!D'/!D'*A!D'*I%J 	
$$$$'%( +,D'!D'/!D'*A!D'*I%J 	
$$$$'	%( +,D'!D'/!D'*A!D'*I	%J
 	
$$$$'%(
 +,D'!D'/!D'*A!D'*I%J 	
$$$$'%( +,D'!D'/!D'*A!D'*I%J 	
$$$$'%( +,D'!D'/!D'*A!D'*I%J 	
$$$$'%( +,D'!D'/!D'*A!D'*I%J 	
$$$$'	%( +,D'!D'/!D'*A!D'*I	%J 	
$$$$'
%( +,D'!D'/!D'*A!D'*I
%J 	
$$$$'%( +,D'!D'/!D'*A!D'*I%J 	
$$$$'%( ( ( ( 	S!QAqu""$AE
CqukkmCCCCCrB   c                  p    [         S   [         S   -  R                  [         S   5      [         S   :X  d   eg )Nr   rZ   )r5   r   rA   rB   rC   test_MatrixElement_diffr     s/    dGAdGO!!!D'*ag555rB   c                      [        SSS5      n [        SS/5      nU S   R                  X5      R                  5       US   :X  d   eg )Nur=   r;   rh   r   rZ   )r#   r   rp   r   )r   vs     rC   test_MatrixElement_doitr     sF    S!QAAAT7<<""$$///rB   c                  X   [        [        5      n [        U S5      R                  5       U S-  :X  d   eU [        -  U :X  d   e[        U S5      R                  5       U S-  :X  d   eU S-  U :X  d   e[        U S5      R                  5       U S-  :X  d   e[        S5      n[        US5      R                  5       U[        -  :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S-  :X  d   eg )Nrh   r   r=   r   rw   )r-   rO   r    r   )MNs     rC   test_identity_powersr     s   A!Q<!Q$&&&a4199!Q<!Q$&&&b5A::!R=1a4'''A!Q<!Q$&&&!Q<!###!R=1a4'''!Q<!Q$&&&rB   c                  (  ^ ^ [        [        [        5      m T S-  T :X  d   e[        [        U 4S j5        T S-  [	        [        5      :X  d   e[        T S5      R                  5       T S-  :X  d   e[        [        U 4S j5        [        SS5      m[        TS5      R                  5       TS-  :X  d   e[        [        U4S j5        TS-  [        TS5      R                  5       :X  d   eTS-  [	        S5      :X  d   e[        [        U4S j5        g )	Nrw   c                     > T S-  $ Nr   rA   z1s   rC   rD   !test_Zero_power.<locals>.<lambda>"  	    b"frB   r   r=   c                  8   > [        T S5      R                  5       $ r   r    r   r   s   rC   rD   r   %      fRn113rB   rh   c                     > T S-  $ )NrA   z2s   rC   rD   r   (  r   rB   c                  8   > [        T S5      R                  5       $ Nr?   r   r   s   rC   rD   r   +  r   rB   )r,   rO   r.   rV   r-   r    r   )r   r   s   @@rC   test_Zero_powerr     s    	Aq	Bq5B;;
:}%q5HQK"a=2q5(((
:34	Aq	B"a=2q5(((
:}%q5F2qM&&((((q5HQK
:34rB   c                     [        [        [        -  [        S4   [        [        S4   5      n [        [        [        4   R                  [        [        [        4   5      S:X  d   e[        [        [        4   R                  [        S   5      [        S[        S[        S-
  45      [        S[        S5      -  :X  d   e[        S5      nU R                  [        [        U[        S[        S-
  45      [        [        U4   -  US[        S-
  45      5      (       d   eU R                  5       [        [        [        4   :X  d   eg )Nr   r;   rZ   _i_1)r   r8   r:   r   pr   rO   r   dummy_eqr   r   )dexprr   s     rC   test_matrixelement_diffr   .  s    !A#qsQqsV$EQT7<<!Q$ A%%%QT7<<$ N1a!QqS$B>RSUVX^C_$____=D>>#nT1q!A#h?!T'
JTSTVWZ[V[L\]^^^^::<1QT7"""rB   c                    ^^ [        S5      u  pp#[        X/X#//5      m[        S5      u  mnTTU4   n[        U[        5      (       d   e[	        SS/SS//5      nUTU4   n[        U[        5      (       d   eS HA  u  pUR                  TXU	05      TX4   :X  d   eUR                  TXU	05      XhU	4   :X  a  MA   e   [        SSS5      n
U
S	   R                  U
T5      U :X  d   eU
TU4   R                  U
T5      TTU4   :X  d   eTTU4   R                  TU
5      U
TU4   :X  d   e[        TST-  S-
  U4   [        5      (       d   eTST-  S-
  U4   R                  TS
US05      TS   :X  d   e[        TTS4   [        5      (       d   eTTS4   R                  TS5      TS	   :X  d   eTST4   R                  TS
5      TS   :X  d   eTTU4   R                  U 5      [        S
S/SS//5      TU4   :X  d   e[        [        UU4S j5        [        [        UU4S j5        [        [        UU4S j5        [        [        UU4S j5        g )Nzx y z wzi, jr=   rh   rw   r   )rZ   rY   r   rm   r5   rZ   r;   r   r   rY   c                     > T TS4   $ rc   rA   r   r   s   rC   rD   0test_MatrixElement_with_values.<locals>.<lambda>Q      qAwrB   c                     > T TS4   $ r   rA   r   s   rC   rD   r   R  s    qBxrB   c                     > T ST4   $ rc   rA   r   s   rC   rD   r   S  r   rB   c                     > T ST4   $ r   rA   r   s   rC   rD   r   T  s    qQxrB   )
r   r!   r   r+   r$   rp   r#   r   r.   rV   )r4   rl   zr:   r   MijMsmsijoiojr5   r   r   s              @@rC   test_MatrixElement_with_valuesr   8  sy   #JA! A6?DAq
AqD'Cc=))))	1v1v&	'Bad8DdM****2xxB2'1RV9444yy!RB(B2vJ666 3 	S!QAT7<<1"""QT7<<11a4(((QT7<<11a4(((a!a
m]3333QqS1WaZ=q!Ql+qw666a1g}----QT7<<14(((QT7<<14(((QT7<<?fq!fq!f%56q!t<<<<
:'
:'(
:'
:'(rB   c                     [        SSS5      n U R                  5       U S-  :X  d   e[        SSS5      R                  5       nUR                  5       [        SUS   -  //5      :X  d   e[        SSS5      R                  5       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g )Nr6   rh   r?   ri   r;   rZ   r=   rm   rY   r   )r#   invr   r!   )r6   ri   detXinvXs       rC   test_invr  W  s    S!QA557ae 	S!Q++-A557fq4yk]++++S!Q++-AT71T7?QtWQtW_,DQtWqwh'tWHqw') *,01D557d??rB   c                     [        S[        [        5      n [        S[        [        5      nX-   [        [        -   -  nU [        -  U[        -  -   U [        -  -   U[        -  -   nX#:w  d   e[	        U5      U:X  d   e[        U5      U:X  d   eUS-  U S-  US-  -  U S-  [        -  US-  -  -
  S-  -  U S-  -  n[        [        5      n[        U5      U[        -
  US-  U S-  U[        -
  -  US-  -  S-  -  U S-  -  4;   d   eg )Nr5   r6   r?   )r#   rO   r7   r8   r   r   r-   )r5   r6   expr1expr2exprr   s         rC   test_factor_expandr	  f  s   S!QAS!QAUQUOEaC!A#I!Oac!E>>%=E!!!%=E!!!r7AGAGOa"gaiB&772>>q2wFDA$<AE1b5!R%Q-2*=)B#B1b5#HIIIIrB   c            	        ^^  SSK JmJn   [        SSS5      mT" [        TSS5      [        TSS5      /[        TSS5      [        TSS5      //5      nW " T" T5      U5      (       d   eU " T" TSS9U5      (       d   e[        [        S	5      R                  S
5      S   5      S:  a  [        [        UU4S j5        g g ! [         a    [	        S5         Nf = f)Nr   )arrayarray_equalz?NumPy must be available to test creating matrices from ndarraysr5   r=   r;   Tcopynumpy.c                     > T" T SS9$ )NFr  rA   )r5   r  s   rC   rD   'test_numpy_conversion.<locals>.<lambda>  s    %"6rB   )r  r  r  ImportErrorr0   r#   r+   r   r1   splitr.   r   )r  np_arrayr5   r  s     @@rC   test_numpy_conversionr  u  s    P, 	S!QA}Q1-}Q1/EF1a]1a346 7HuQx****uQT*H5555
77!!#&q)*a/y67 0  PNOPs   B? ?CCc                  f   [        SSS5      n U R                  U -  R                  R                  5       [	        U R                  U -  R                  S   U R                  U -  R                  S   /U R                  U -  R                  S   U R                  U -  R                  S   //5      :X  d   eg )Nr5   r   r=   rZ   rY   r   rm   )r#   Tr   r   r!   r   s    rC   test_issue_2749r    s    S!QACC!G;;""$!##'T1BQSS1WKKPTDU0VccAg[[qD)*0, )- - - -rB   c                      [        SSS5      n U R                  U -  R                  5       S-  [        U S   S-  //5      :X  d   eg )Nr4   r;   r?   rZ   r   )r#   r  r   r!   )r4   s    rC   test_issue_2750r    sF    S!QACCE "$42/@(AAAArB   c                      [        SSS5      n [        SSS5      n[        X5      S:X  d   e[        U S   US   5      R                  [        L d   e[        SS5      n [        SS5      n[        X5      S:X  d   eg )	Nr5   rh   r;   r6   r=   Fr   T)r#   r   funcr,   r   s     rC   test_issue_7842r    s}    S!QAS!QAa8uafag##r)))1aA1aAa8trB   c                      [        S5      n [        S5      " U 5      nUR                  U 5      n[        U5      [        U5      U-  -   n[	        U5      [        U5      UR                  U 5      -  -   n[	        U5      [	        U 5      -  UR                  U 5      R                  U 5      -  n[        U/U/U//5      n[        UR                  U5      /UR                  U5      /UR                  U5      //5      nUR                  U5      U:X  d   eg )Nr   r4   )r   r   r   r   r   r   r!   )r   r4   dxexp1exp2exp3r5   r6   s           rC   test_issue_21195r$    s    AaA	
Bq6CF2IDq6CFBGGAJ''Dq6#a&="''!***1--D'(A111?@A66!9>>rB   c                     [        SSS5      n [        SSS5      nX-  n[        U5      R                  5       n[        SSS5      nUR                  X [        U-  -   5      nUS   US   -  US   US   -  -   US	   US
   -  -   nUS   R                  [        5      U:X  d   e[        US   [        5      R                  5       U:X  d   eg )Nr5   r=   rh   r6   r   rY   r   rm   rs   r   rZ   )r#   r!   adjugaterp   r4   r   r   )r5   r6   JJinvr   Jkexpecteds          rC   test_issue_24859r+    s    S!QAS!QA	A!9DS!QA	1!A#g	Bwqw4401T71T7?BHd8==x'''4!!!#x///rB   c                  F   [        S5      n [        SS5      n[        SU 5      [        U S5      s=:X  a  X4;   d   e   e[        SS/SS//5      n[        [        S[        -  /S[        -  S[        -  //5      n[        [        U5      [        U[        5      s=:X  a  U:X  d   e   e[        SSS5      n[        XB5      [        XB5      :X  d   e[        X$5      [        X$5      :X  d   e[        [        X$5      n[        U[        U5      n[        X$[        5      nXVs=:X  a  Us=:X  a  [        X45      :X  d   e   e[        [        XB5      n[        U[        U5      n[        XB[        5      nXVs=:X  a  Us=:X  a  [        XC5      :X  d   e   e[        X"5      US-  :X  d   e[        XBU5      [        XBS-  5      :X  d   e[        X"U5      [        US-  U5      :X  d   e[        X$U5      [        X$U5      :X  d   e[        U[        X"[        5      [        XCS-  5      :X  d   eg Nr=   r   r;   rh   rw   r5   )r   r,   r   r!   r4   r#   r   )r   r   r   Mxr5   abcs           rC   test_MatMul_postprocessorr2    s   aA	Aq	Bq!9Aq	,aW,,,,,AA A	!QqSAaC1:&	'Bq!9Aq	'R'''''S!QAq9q$$$q9q$$$AqAAq!AA!A'Q'&-'''''AqAAq!AA!A'Q'&-'''''q91qQ<6!T?***qQ<6!Q$?***qQ<6!?***q!Q1q5!1111rB   c                      [        S5      n [        U [        R                  5      [        [        R                  U 5      :X  d   eg rc   )r   r   r   NaN)r   s    rC   test_MatAdd_postprocessor_xfailr5    s/     	aAq!%%=CqM)))rB   c                     [        S5      n [        SU 5      [        U S5      s=:X  a  U :X  d   e   e[        [        R                  U 5      nU[        U [        R                  5      :X  d   e[	        U[        5      (       d   eUR
                  [        R                  U 4:X  d   e[        [        R                  U 5      nU[        U [        R                  5      :X  d   e[	        U[        5      (       d   eUR
                  [        R                  U 4:X  d   e[        U [        R                  5      n[	        U[        5      (       d   eUR
                  [        R                  U 4:X  d   e[        SS/SS//5      n[        [        U5      nU[        U[        5      :X  d   e[	        U[        5      (       d   eUR
                  [        U4:X  d   e[        SSS5      n[        X25      [        X#5      s=:X  a	  X2-   :X  d   e   e[        [        X#5      nU[        U[        U5      s=:X  aU  [        X#[        5      s=:X  a@  [        [        X25      s=:X  a+  [        U[        U5      s=:X  a  [        X2[        5      :X  d   e   e[	        U[        5      (       d   eUR
                  [        X2-   4:X  d   e[        X"5      SU-  :X  d   e[        X#U5      [        X"U5      s=:X  a  [        X2U5      s=:X  a  USU-  -   :X  d   e   e[        U[        X"[        5      n[	        U[        5      (       d   eUR
                  S[        -  USU-  -   4:X  d   eg r-  )r   r   r   Infinityr   ry   ComplexInfinityr4  r!   r4   r#   )r   r/  r   r5   s       rC   test_MatAdd_postprocessorr9    s   
 	aAq!9Aq	&Q&&&&&AJJAAqzz""""a66ajj!_$$$Aq!AAq(())))a66a''++++AquuAa66aeeQZAA AAq	AAq	>>a66aVS!QAq9A	*QU***** 	AqAAq!\A!\Aq\Aq!\PSTUZ[P\\\\\\a66aZq9!qQ<3qQ<B3qQ<B1qs7BBBBBAq!Aa66ac1qs7^###rB   c                  P   [        [        [        [        -  [        [        -  -   5      5      [        :X  d   e[        S[        -  [        -  S[        -  [        -  -   5      n [        U 5      [        :X  d   eU R
                  S[        -  [        -  S[        -  [        -  4:X  d   eg )Nr=   rw   )typer   r7   r8   r   ry   )r/  s    rC    test_simplify_matrix_expressionsr<    s|    	!A#!)$%///!A#a%!A#a%- A7f66ac!eQqSU^###rB   c                     [        SSS5      n [        SSS5      n[        U 5      [        U5      -  n[        U5      [        U 5      -  nX#:w  d   eX#-
  S:w  d   e[        U[        5      (       a   e[        U[        5      (       a   eg )Nr5   r=   r6   r   )r#   r   r   )r5   r6   r  r  s       rC   test_expr>    s    S!QAS!QAF3q6MEF3q6ME>>=A%%%%%%%%%%%rB   c                  &    [        [        S 5        g )Nc                      [        SSS5      $ )Nr;   r=   r5   r@   rA   rB   rC   rD   #test_invalid_args.<locals>.<lambda>  s    aC!8rB   )r.   r   rA   rB   rC   test_invalid_argsrB    s    
<89rB   c                      [        SSS9n [        U SS5      nUR                  5       nUR                  SS5      nUR                  UR                  :X  d   eUR                  S   UR                  S   :X  d   eg )Nr5   T)complexr=   rh   r   )r	   r#   r   rp   ry   )A_labelr5   A_1A_2s       rC   test_matrixsymbol_from_symbolrH    sj    S$'GWa#A
&&(C
&&A,C88qvv88A;!&&)###rB   c                      [        SSS5      n U R                  5       [        U S   U S   U S   /U S   U S   U S	   //5      :X  d   e[        [        S
 5        g )Nrk   r=   rh   rZ   rY   r   r   rm   r   c                  *    [         R                  5       $ r   )r5   r   rA   rB   rC   rD   "test_as_explicit.<locals>.<lambda>,  s
    q}}rB   )r#   r   r   r.   rV   )rk   s    rC   test_as_explicitrL  &  sm    S!QA==?o	
4!D'1T7#	
4!D'1T7#/     :./rB   c                    ^^ [        SS[        R                  S9mTR                  S:X  d   eTR                  [        R                  :X  d   e[        SS/SS//5      mTT;   d   e[        SS5      mTT;   d   e[        [        U4S j5        [        [        U4S j5        [        [        [        [        R                  S9m[        T;   d   e[        [        U4S	 j5        [        [        UU4S
 j5        [        SS1 SkS9m[        SS/SS//5      m[        SS//5      n TT;   [        R                  :X  d   eU T;   [        R                  :X  d   e[        [        S 5        [        [        S 5        [        [        S 5        g )Nr=   )setru   r;   rh   rw   c                     > [         T ;   $ r   r   r   s   rC   rD    test_MatrixSet.<locals>.<lambda>7  	    a1frB   c                     > ST ;   $ r~   rA   rP  s   rC   rD   rQ  8  	    a1frB   c                     > [         T ;   $ r   )r7   rP  s   rC   rD   rQ  ;  rR  rB   c                     > TT ;   $ r   rA   )r   ri   s   rC   rD   rQ  <  rT  rB   >   r;   r=   rh   c                  8    [        SS[        R                  5      $ )Nr=   r   r'   r   RealsrA   rB   rC   rD   rQ  B  s    yB8rB   c                  8    [        SS[        R                  5      $ )Ng333333@r?   rX  rA   rB   rC   rD   rQ  C  s    yb!'':rB   c                      [        SSS5      $ )Nr=   )r;   r=   rh   )r'   rA   rB   rC   rD   rQ  D  s    i1i8rB   )r'   r   rY  r[   rN  r!   r,   r.   r   rO   r\   r5   falserV   )rj   r   ri   s    @@rC   test_MatrixSetr]  /  s=   !QAGG$A77f55AGGAA A6M61aA6M6
9n%
9n%!QAGG$A6M6
9n%
9n%!QI&AAA AAxAFqwwFqww
:89
::;
989rB   c                  D   [        SSS5      n [        SSS5      n[        SS5      nU * U-   * U -
  U-   U:X  d   eU * U-   * U -
  U-   R                  5       U:X  d   eU * U-   * U -
  U-   R                  5       U:X  d   eU * U-   * U -
  U-   U-
  R                  5       U:X  d   eU * U-   * U -
  U-   U-
  R                  5       U:X  d   eX U-   -  XR                  UR                  -   -  -   R                  5       U S-  X-  -   XR                  -  -   XR                  -  -   :X  d   eg )Nr5   r=   r6   )r#   r,   r   r   r  )r5   r6   rk   s      rC   test_matrixsymbol_solvingr_  G  sC   S!QAS!QA1aAR!V9q=1!!!b1fIMA'')Q...b1fIMA%%'1,,,b1fIMA!++-222b1fIMA!))+q0001uI339%--/1a4!#:##3E##3MMMMrB   N)wsympy.concrete.summationsr   sympy.core.exprtoolsr   sympy.core.functionr   r   sympy.core.relationalr   sympy.core.symbolr   r	   r
   (sympy.functions.special.tensor_functionsr   sympy.matrices.denser   sympy.polys.polytoolsr   
sympy.corer   r   r   r   r   r   r   sympy.functionsr   r   r   r   r   r   sympy.simplifyr   sympy.matricesr   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   sympy.matrices.exceptionsr(   &sympy.matrices.expressions.determinantr)   r*   "sympy.matrices.expressions.matexprr+   "sympy.matrices.expressions.specialr,   r-   sympy.testing.pytestr.   r/   r0   importlib.metadatar1   rO   r\   r]   r   r   r4   r5   r6   r7   r8   r9   r:   rW   ra   re   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r  r  r  r$  r+  r2  r5  r9  r<  r>  rB  rH  rL  r]  r_  rA   rB   rC   <module>rr     s   ) * . $ 2 2 C & (   : : #5 5 5 5 ; C < C 4 4 &T21aACLaaaaaa8$&!'4T9 2E&;(D!!/.D(60'5#)> J J8-B
	
02: * *,$^$&:$0:0	NrB   