
    g	H                     F   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
mZ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mZ d d
lmZmZmZmZm Z m!Z! d dl"m#Z# d dl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2 d dl3m4Z4m5Z5 d dl6m7Z7 d dl8m9Z9m:Z: d dl;m<Z<m=Z=m>Z> d dl?m@Z@  edd          \  ZAZBZCZDZE ed          ZF e,deAeB          ZG e,deBeC          ZH e,deAeA          ZI e,deAeA          ZJ e,deBeA          ZK e,deAd          ZLd ZMd ZNd  ZOd! ZPd" ZQd# ZRd$ ZSd% ZTd& ZUd' ZVd( ZWd) ZXd* ZYd+ ZZd, Z[d- Z\d. Z]d/ Z^d0 Z_d1 Z`d2 Zad3 Zbd4 Zcd5 Zdd6 Zee=d7             Zfd8 Zgd9 Zhd: Zid; Zjd< Zkd= Zld> Zme=d?             Znd@ ZodA ZpdB ZqdC ZrdD ZsdE ZtdF ZudG ZvdHS )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                  D    t          ddd          sJ t          ddd          sJ t          t          d            t          t          d            t          t          d            t          t          d            t          t          d            t          t          d	            t          d
           t          d            sJ t          d
d           t          t           fd           t          d
d           t          t           fd           d S )Nr5      r   c                  $    t          ddd          S )Nr5   r=   r#        i/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/matrices/expressions/tests/test_matexpr.py<lambda>z-test_matrix_symbol_creation.<locals>.<lambda>%       |CQ77 rB   c                  $    t          ddd          S )Nr5          @r=   r@   rA   rB   rC   rD   z-test_matrix_symbol_creation.<locals>.<lambda>&   s    |Ca88 rB   c                  $    t          ddd          S )Nr5                  @r=   r@   rA   rB   rC   rD   z-test_matrix_symbol_creation.<locals>.<lambda>'   rE   rB   c                  $    t          ddd          S )Nr5   r=   r?   r@   rA   rB   rC   rD   z-test_matrix_symbol_creation.<locals>.<lambda>(       |CB77 rB   c                  $    t          ddd          S )Nr5   r=   rG   r@   rA   rB   rC   rD   z-test_matrix_symbol_creation.<locals>.<lambda>)   s    |CC88 rB   c                  $    t          ddd          S )Nr5   r=   rI   r@   rA   rB   rC   rD   z-test_matrix_symbol_creation.<locals>.<lambda>*   rK   rB   nFr2   c                  &    t          d            S Nr5   r@   rN   s   rC   rD   z-test_matrix_symbol_creation.<locals>.<lambda>/       |CA66 rB   T)negativec                  &    t          d            S rP   r@   rQ   s   rC   rD   z-test_matrix_symbol_creation.<locals>.<lambda>1   rR   rB   )r#   r.   
ValueErrorr   rQ   s   @rC   test_matrix_symbol_creationrV   "   s,   Q"""""Q"""""
:77888
:88999
:77888
:77888
:88999
:77888AQ"""""U###A
:6666777d###A
:666677777rB   c                  2   t           j        t          t          fk    sJ t           t          z  j        t          t
          fk    sJ t           d         j        dk    sJ t           d         j        t           k    sJ t           d         j        j        dk    sJ d S )Nr   r;   r   r   r5   )	r5   shaperN   mr6   lindicessymbolnamerA   rB   rC   test_matexpr_propertiesr`   4   s    7q!fE=QF""""T7?f$$$$T7>QT7>#%%%%%%rB   c                  :   t           t          z  j        t          j        k    sJ t           t          z  j        t          k    sJ dt          z  t          z
  t          z
  t          t          j         k    sJ t          t          z  j        t          t          fk    sJ d S Nr=   )	r4   r5   rZ   	__class__r   r,   r6   rN   r\   rA   rB   rC   test_matexprrd   <   sw    aC;!'!!!!aC?f$$$$Q37Q;*ag.....aC;1a&      rB   c                  |   t          dt          t                    } t          dt          t                    }t          dt          t                    }|                     t          t                    j        t          t          fk    sJ | |z                      ||          | |z  k    sJ | |z                      t          t                    j        sJ t          ddd          t          ddd          t          dd	d          t          d
t          d                                        k    sJ t          d          }                    t          d          |          j        |ddfk    sJ d                                       d         k    sJ t          t          fd           d                                       d         k    sJ d                                       d         k    sJ t          t          fd           t          t          fd           t          d	dgddgg          } t          d	dgddgg          }t          ddd          t          ddd          }}||z                      || ||i          t          | |          k    sJ d S )Nr5   r6   r7   W   Xr=   Yr;   Zyr;   r;   c                  <     d                                         S )Nrl   subs)rh   ri   s   rC   rD   z#test_matexpr_subs.<locals>.<lambda>[       qw||Aq11 rB   rX   r=   r;   c                  <     d                                         S )Nr=   r=   rn   )rf   rj   s   rC   rD   z#test_matexpr_subs.<locals>.<lambda>b   rp   rB   c                  V     d                               t          d                    S )Nrs   r=   )ro   r   )rf   s   rC   rD   z#test_matexpr_subs.<locals>.<lambda>d   s    qw||AuQxx88 rB      r8   )r#   rN   r[   r\   ro   rZ   	is_squarer
   argsr.   
IndexErrorr$   r!   r   )	r5   r6   r7   rk   r8   rf   rh   ri   rj   s	        @@@@rC   test_matexpr_subsry   C   s   S!QAS!QAS!QA66!Q<<!Q''''aC::aqs""""aC::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0T7<<14((((
 :11111222T7<<14(((( T7<<14((((
:11111222
:8888999q!fq!f%&&AAA  AQ""La$;$;qAaC::q!Ql##va||333333rB   c                  J   t          dt          t                    t          dt          t                    } t          | z   t                    sJ | z   j        j        k    sJ t          z
  d| z  z   t                    sJ t          t          fd           t          t          fd           t          t          fd           t          t          t                    z   z
  t          t          t                    k    sJ t          t          d            d S )Nr5   r6   r=   c                       dz   S Nr;   rA   r5   s   rC   rD   ztest_addition.<locals>.<lambda>u       a!e rB   c                      d z   S N   rA   r}   s   rC   rD   ztest_addition.<locals>.<lambda>v   r~   rB   c                      d z
  S r   rA   r}   s   rC   rD   ztest_addition.<locals>.<lambda>w   r~   rB   c                  P    t          t          t                    t          j        z   S N)r,   rN   r[   r   ZerorA   rB   rC   rD   ztest_addition.<locals>.<lambda>z   s    jA..7 rB   )
r#   rN   r[   
isinstancer   rZ   r   r.   	TypeErrorr,   )r6   r5   s    @rC   test_additionr   m   s   S!QAS!QAa!eV$$$$$E=AG####a!eack6*****
9mmmm$$$
9mmmm$$$
9mmmm$$$z!Q!#z!Q'7'77777
97788888rB   c                     t          dt          t                    } t          dt          t                    t          dt          t                    }d| z  z  j        t          t          fk    sJ | dz  z  t          t          t                    k    sJ d| z  j        | j        k    sJ | t          t          t                    z  z  t          t          t                    k    sJ |t          t                    z  |j        z  t          t                    k    sJ dz  t          j	        z  k    sJ t          t          fd           t          dt          t                    } t          dt          t                    t          t                    | z   z  | z   k    sJ | dz  | z  | dz  k    sJ | dz  | j        dz  z  | j        k    sJ | dz  | j        dz  z  | k    sJ d S )Nr5   r6   r7   r=   r   c                      d z  S rb   rA   r6   s   rC   rD   z%test_multiplication.<locals>.<lambda>   s    ! rB   rg   )r#   rN   r[   r\   rZ   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77x{{?QS HQKK////Q3!&(????
,,,S!QAS!QAA;;!a% AE))))a46QT>>>>a4q=ACa4q=ArB   c                  T   t          dt          t                    } t          | d          }|j        dk    sJ |j        | k    sJ | t          z  j        t          k    sJ | dz  t          t                    k    sJ | dz  | k    sJ | dz  |k    sJ | dz  t          |           k    sJ | dz  dz  | k    sJ | dz  dz  | dz  k    sJ | t          j        z  t          |           k    sJ | t          dd          z  t          |           k    sJ t          t          d            d S )	Nr5   r=   r   r;   r?   rg      c                  *    t          ddd          dz  S )Nr6   rg   r=   r@   rA   rB   rC   rD   ztest_MatPow.<locals>.<lambda>   s    c1a)@)@!)C rB   )r#   rN   r    r   baser-   r   r   r   r   r   r   r.   r(   )r5   AAs     rC   test_MatPowr      s;   S!QA	1B6Q;;;;7a<<<<qD:????a48A;;a419999a42::::b5GAJJrEB;!qD191af9Qhq!nnQ''''
!C!CDDDDDrB   c                      t          d          \  t          d          } | j        fk    sJ t          t          fd           |                                 | k    sJ d S )Nzn,m,trh   c                  8     t          d                     S )Nrh   r@   )r[   rN   ts   rC   rD   z#test_MatrixSymbol.<locals>.<lambda>   s    5l3155a88 rB   )r   r#   rZ   r.   r   doit)rh   r[   rN   r   s    @@@rC   test_MatrixSymbolr      sy    gGAq!S!QA7q!f
98888889996688q======rB   c                       t          ddd           t                     t          dd fd          k    sJ t                     t          dd fd          k    sJ d S )Nrh   r=   c                     | |f         S r   rA   ijrh   s     rC   rD   z'test_dense_conversion.<locals>.<lambda>   s    AadG rB   c                     | |f         S r   rA   r   s     rC   rD   z'test_dense_conversion.<locals>.<lambda>   s    !AqD' rB   )r#   r   r!   )rh   s   @rC   test_dense_conversionr      sv    S!QA1A7K7K7K7K!L!LLLLL!99q!%9%9%9%9::::::::rB   c                  R    t           t          z  j        t           t          hk    sJ d S r   )r7   r8   free_symbolsrA   rB   rC   test_free_symbolsr      s$    aC!Q''''''rB   c                  l    t          t          j        t          ddd          z  t                    sJ d S )Nrh   r=   )r   r   r   r#   r"   rA   rB   rC   test_zero_matmulr      s1    af|CA666
CCCCCCCrB   c                      t          ddd          } t          t          | t          t	          t
                    dz  t          t
                    dz  z   gg                              t          | t          dgg                    k    sJ d S Nr5   r;   r=   )r#   r   r   r   r   r4   r   r!   r}   s    rC   test_matadd_simplifyr          S!QAF1oA	CFFAI0E/F.GHHIIJJq&1#--  ! ! ! ! ! !rB   c                      t          ddd          } t          t          | t          t	          t
                    dz  t          t
                    dz  z   gg                              t          | t          dgg                    k    sJ d S r   )r#   r   r   r   r   r4   r   r!   r}   s    rC   test_matmul_simplifyr      r   rB   c                  $   t          dt          t                    } t          dt          t                    }t          dt          t                    }t	          t                    t          t          t                    | t          | |          t          | |           t          |           t          |           t          |          t          |d          t          |d          t          |d          g}|D ]}| |j        |j         k    sJ d S )Nr5   r6   rh   r=   r?   r   )r#   rN   r[   r\   r-   r,   r   r   r%   r&   r   r    rc   rw   )r5   r6   rh   objsobjs        rC   test_invariantsr      s    S!QAS!QAS!QAQKKAq))1fQllF1aLLaLL'!**gajj&A,,q"1aLLD  / /mcmSX....../ /rB   c                  *   t          dt          t                    } | d          | t          t          f          | t          dz   t          dz   f          t          ddd          } t          dd          D ]}t          dd          D ]}| ||f           d S )Nr5   r;   r=   r;   r=   r?   )r#   rN   r[   r\   krange)r5   r   r   s      rC   test_matexpr_indexingr      s    S!QAdGGadGGa!eQUlOOS!QA2q\\  r1 	 	AadGGG	 rB   c                  R    t          ddd            d          d         k    sJ  t          d                    d         k    sJ  d          d         k    sJ t           d dd df                    d          d          d          d         gk    sJ t          t           fd	           t          t           fd
           t          dt
          t                    t          t          fd           t          dt
          d          d         d         k    sJ d S )Nr5   r=   rg   r;   rX   r;   r   rY   rl   c                       d         S )Nr   rA   r}   s   rC   rD   z&test_single_indexing.<locals>.<lambda>       qt rB   c                       t                    S r   rQ   r}   s   rC   rD   z&test_single_indexing.<locals>.<lambda>   s    qt rB   r6   c                       d         S r|   rA   r   s   rC   rD   z&test_single_indexing.<locals>.<lambda>   r   rB   )r#   intlistr.   rx   rN   r[   r5   r6   s   @@rC   test_single_indexingr      s   S!QAQ41T7????SVV9$Q41T7????"1"bqb&	??qw$4!D'BBBBB
:||||$$$
:||||$$$S!QA
:||||$$$S!QAQ41T7??????rB   c                  z    t           d         t           d         z  t           d         t           d         z  k    sJ d S )NrX   r   r}   rA   rB   rC   test_MatrixElement_commutativer      s1    T71T7?agago------rB   c                     t          ddd          } |                                                                 | d         | d         z  | d         z  | d         z  | d         | d         z  | d         z  | d         z  z
  | d         | d	         z  | d
         z  | d         z  z
  | d         | d	         z  | d         z  | d         z  z   | d         | d         z  | d
         z  | d         z  z   | d         | d         z  | d         z  | d         z  z
  | d         | d         z  | d         z  | d         z  z
  | d         | d         z  | d         z  | d         z  z   | d         | d	         z  | d         z  | d         z  z   | d         | d	         z  | d         z  | d         z  z
  | d         | d         z  | d         z  | d         z  z
  | d         | d         z  | d         z  | d         z  z   | d         | d         z  | d
         z  | d         z  z   | d         | d         z  | d         z  | d         z  z
  | d         | d         z  | d         z  | d         z  z
  | d         | d         z  | d         z  | d         z  z   | d         | d         z  | d         z  | d         z  z   | d         | d         z  | d
         z  | d         z  z
  | d         | d         z  | d
         z  | d         z  z
  | d         | d         z  | d         z  | d         z  z   | d         | d         z  | d         z  | d         z  z   | d         | d         z  | d         z  | d         z  z
  | d         | d	         z  | d         z  | d         z  z
  | d         | d	         z  | d
         z  | d         z  z   k    sJ t          ddd          }t          | |z                                             t          | |z             cxk    r| |z                                   k    sn J d S )Nr5   ru   rY   rl   rs   )rg   rg   )r=   rg   )rg   r=   r   rq   )rg   r;   )r;   rg   rX   r   )r=   r   rg   r   r   r=   )r   rg   r6   )r#   as_explicitr*   r)   r   r   s     rC   test_MatrixSymbol_determinantr      se   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q1u""$$AE

CCCCq1ukkmmCCCCCCCCrB   c                      t           d         t           d         z                      t           d                   t           d         k    sJ d S )Nr   rY   )r5   r   rA   rB   rC   test_MatrixElement_diffr     s;    dGAdGO!!!D'**ag555555rB   c                      t          ddd          } t          ddg          }| d                             | |                                          |d         k    sJ d S )Nur=   r;   rg   r   rY   )r#   r   ro   r   )r   vs     rC   test_MatrixElement_doitr     s]    S!QAAAT7<<1""$$$//////rB   c                     t          t                    } t          | d                                          | dz  k    sJ | t          z  | k    sJ t          | d                                          | dz  k    sJ | dz  | k    sJ t          | d                                          | dz  k    sJ t          d          }t          |d                                          |t          z  k    sJ t          |d                                          |k    sJ t          |d                                          |dz  k    sJ t          |d                                          |dz  k    sJ d S )Nrg   r   r=   r   ru   )r-   rN   r    r   )MNs     rC   test_identity_powersr     s[   A!Q<<!Q$&&&&a419999!Q<<!Q$&&&&b5A::::!R==1a4''''A!Q<<!Q$&&&&!Q<<!####!R==1a4''''!Q<<!Q$&&&&&&rB   c                      t          t          t                      dz   k    sJ t          t           fd            dz  t	          t                    k    sJ t           d                                           dz  k    sJ t          t           fd           t          dd          t          d                                          dz  k    sJ t          t          fd           dz  t          d                                          k    sJ dz  t	          d          k    sJ t          t          fd           d S )	Nru   c                       dz  S Nr   rA   z1s   rC   rD   z!test_Zero_power.<locals>.<lambda>"      b"f rB   r   r=   c                  H    t           d                                          S r   r    r   r   s   rC   rD   z!test_Zero_power.<locals>.<lambda>%      fRnn1133 rB   rg   c                       dz  S )NrA   z2s   rC   rD   z!test_Zero_power.<locals>.<lambda>(  r   rB   c                  H    t           d                                          S Nr?   r   r   s   rC   rD   z!test_Zero_power.<locals>.<lambda>+  r   rB   )r,   rN   r.   rU   r-   r    r   )r   r   s   @@rC   test_Zero_powerr     sJ   	Aq		Bq5B;;;;
:}}}}%%%q5HQKK"a==2q5((((
:3333444	Aq		B"a==2q5((((
:}}}}%%%q5F2qMM&&((((((q5HQKK
:333344444rB   c                  :   t          t          t          z  t          df         t          t          df                   } t          t          t          f                              t          t          t          f                   dk    sJ t          t          t          f                              t          d                   t          dt          dt          dz
  f          t          dt          d          z  k    sJ t          d          }|                     t          t          |t          dt          dz
  f          t          t          |f         z  |dt          dz
  f                    sJ | 
                                t          t          t          f         k    sJ d S )Nr   r;   rY   _i_1)r   r8   r:   r   pr   rN   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$B>RSUVX^C_C_$_____==D>>#nT1q!A#h??!T'
JTSTVWZ[V[L\]]^^^^^::<<1QT7""""""rB   c                     t          d          \  } }}}t          | |g||gg          t          d          \  }|f         }t          |t                    sJ t	          ddgddgg          }||f         }t          |t                    sJ dD ]S\  }}	|                    |||	i          ||	f         k    sJ |                    |||	i          |||	f         k    sJ Tt          ddd          }
|
d	                             |
          | k    sJ |
|f                             |
          |f         k    sJ |f                             |
          |
|f         k    sJ t          dz  dz
  |f         t                    sJ dz  dz
  |f                             d
|di          d         k    sJ t          df         t                    sJ df                             d          d	         k    sJ df                             d
          d         k    sJ |f                             |           t          d
dgddgg          |f         k    sJ t          t          fd           t          t          fd           t          t          fd           t          t          fd           d S )Nzx y z wzi, jr=   rg   ru   r   )rY   rX   r   rl   r5   rY   r;   r   r   rX   c                       df         S rb   rA   r   r   s   rC   rD   z0test_MatrixElement_with_values.<locals>.<lambda>Q      qAw rB   c                       df         S r   rA   r   s   rC   rD   z0test_MatrixElement_with_values.<locals>.<lambda>R  s    qBx rB   c                       df         S rb   rA   r   s   rC   rD   z0test_MatrixElement_with_values.<locals>.<lambda>S  r   rB   c                       df         S r   rA   r   s   rC   rD   z0test_MatrixElement_with_values.<locals>.<lambda>T  s    qQx rB   )
r   r!   r   r+   r$   ro   r#   r   r.   rU   )r4   rk   zr:   r   MijMsmsijoiojr5   r   r   s              @@rC   test_MatrixElement_with_valuesr   8  s*   ##JAq!QAA  A6??DAq
AqD'Cc=)))))	1v1v&	'	'Bad8DdM*****2 7 7BxxB2''1RV94444yy!RB((Br2vJ66666S!QAT7<<1""""QT7<<11a4((((QT7<<11a4((((a!a
m]33333QqS1WaZ=q!Ql++qw6666a1g}-----QT7<<14((((QT7<<14((((QT7<<??fq!fq!f%566q!t<<<<<
:'''
:'''''(((
:'''
:'''''(((((rB   c                  0   t          ddd          } |                                 | dz  k    sJ t          ddd                                          }|                                t          d|d         z  gg          k    sJ t          ddd                                          }|d         |d         z  |d	         |d
         z  z
  }t          |d         |d	          g|d
          |d         gg          |z  }|                                |k    sJ d S )Nr6   rg   r?   rh   r;   rY   r=   rl   rX   r   )r#   invr   r!   )r6   rh   detXinvXs       rC   test_invr   W  s   S!QA5577ae 	S!Q++--A5577fq4yk]++++++S!Q++--AT71T7?QtWQtW_,DQtWqwh'tWHqw') * *,01D5577d??????rB   c                  Z   t          dt          t                    } t          dt          t                    }| |z   t          t          z   z  }| t          z  |t          z  z   | t          z  z   |t          z  z   }||k    sJ t	          |          |k    sJ t          |          |k    sJ |dz  | dz  |dz  z  | dz  t          z  |dz  z  z
  dz  z  | dz  z  }t          t                    }t          |          |t          z
  |dz  | dz  |t          z
  z  |dz  z  dz  z  | dz  z  fv sJ d S )Nr5   r6   r?   )r#   rN   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!!!!%==E!!!!r7AGAGOa"gaiB&772>>q2wFDA$<<AE1b5!R%Q-2*=)B#B1b5#HIIIIIIIrB   c            	          	 ddl mm}  n# t          $ r t	          d           Y nw xY wt          ddd           t          dd          t          dd          gt          dd          t          dd          gg          } |            |          sJ  |  d          |          sJ t          t          d	          	                    d
          d                   dk    rt          t          fd           d S d S )Nr   )arrayarray_equalz?NumPy must be available to test creating matrices from ndarraysr5   r=   r;   Tcopynumpy.c                        d          S )NFr  rA   )r5   r  s   rC   rD   z'test_numpy_conversion.<locals>.<lambda>  s    %%"6"6"6 rB   )r  r  r  ImportErrorr0   r#   r+   r   r1   splitr.   r   )r  np_arrayr5   r  s     @@rC   test_numpy_conversionr  u  s_   P,,,,,,,,, P P PNOOOOOPS!QAu}Q1--}Q1/E/EF1a]1a3346 7 7H;uuQxx*****;uuQT***H55555
77!!#&&q)**a//y6666677777 0/s    ))c                  4   t          ddd          } | j        | z  j                                        t	          | j        | z  j        d         | j        | z  j        d         g| j        | z  j        d         | j        | z  j        d         gg          k    sJ d S )Nr5   r   r=   rY   rX   r   rl   )r#   Tr   r   r!   r}   s    rC   test_issue_2749r    s    S!QAC!G;""$$!#'T1BQS1WKPTDU0VcAg[qD)*0, )- )- - - - - - -rB   c                      t          ddd          } | j        | z                                  dz  t          | d         dz  gg          k    sJ d S )Nr4   r;   r?   rY   r   )r#   r  r   r!   )r4   s    rC   test_issue_2750r    sV    S!QACE  "$42/@(A(AAAAAAArB   c                  6   t          ddd          } t          ddd          }t          | |          dk    sJ t          | d         |d                   j        t          u sJ t          dd          } t          dd          }t          | |          dk    sJ d S )	Nr5   rg   r;   r6   r=   Fr   T)r#   r   funcr,   r   s     rC   test_issue_7842r    s    S!QAS!QAa88uafag#r))))1aA1aAa88trB   c                     t          d          }  t          d          |           }|                    |           }t          |          t          |          |z  z   }t	          |          t          |          |                    |           z  z   }t	          |          t	          |           z  |                    |                               |           z  }t          |g|g|gg          }t          |                    |          g|                    |          g|                    |          gg          }|                    |          |k    sJ d S )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q66CFF2IDq66CFFBGGAJJ''Dq66#a&&="''!****1---D'((A111?@@A66!99>>>>>>rB   c                     t          ddd          } t          ddd          }| |z  }t          |                                          }t          ddd          }|                    | | t          |z  z             }|d         |d         z  |d         |d         z  z   |d	         |d
         z  z   }|d                             t                    |k    sJ t          |d         t                                                    |k    sJ d S )Nr5   r=   rg   r6   r   rX   r   rl   rq   r   rY   )r#   r!   adjugatero   r4   r   r   )r5   r6   JJinvr   Jkexpecteds          rC   test_issue_24859r     s    S!QAS!QA	!A!99DS!QA	1a!A#g		Bwqw4401T71T7?BHd8==x''''4!!!##x//////rB   c                  r   t          d          } t          dd          }t          d|           t          | d          cxk    r| |fv sn J t          ddgddgg          }t          t          dt          z  gdt          z  dt          z  gg          }t          t          |          t          |t                    cxk    r|k    sn J t          ddd          }t          ||          t          ||          k    sJ t          ||          t          ||          k    sJ t          t          ||          }t          |t          |          }t          ||t                    }||cxk    r|cxk    rt          ||          k    sn J t          t          ||          }t          |t          |          }t          ||t                    }||cxk    r|cxk    rt          ||          k    sn J t          ||          |dz  k    sJ t          |||          t          ||dz            k    sJ t          |||          t          |dz  |          k    sJ t          |||          t          |||          k    sJ t          |t          ||t                    t          ||dz            k    sJ d S Nr=   r   r;   rg   ru   r5   )r   r,   r   r!   r4   r#   r   )r   r   r   Mxr5   abcs           rC   test_MatMul_postprocessorr'    s   aA	Aq		Bq!99Aq		,,,,aW,,,,,,AA  A	!QqSAaC1:&	'	'Bq!99Aq		''''R''''''S!QAq!99q!$$$$q!99q!$$$$Aq!AAq!AAq!A''''Q''''&Q--''''''Aq!AAq!AAq!A''''Q''''&B--''''''q!991q!Q<<6!QT??****q!Q<<6!Q$??****q!Q<<6!Q??****q!Q12q5!1!1111111rB   c                      t          d          } t          | t          j                  t          t          j        |           k    sJ d S rb   )r   r   r   NaN)r   s    rC   test_MatAdd_postprocessor_xfailr*    s:     	aAq!%==CqMM))))))rB   c                  "   t          d          } t          d|           t          | d          cxk    r| k    sn J t          t          j        |           }|t          | t          j                  k    sJ t	          |t                    sJ |j        t          j        | fk    sJ t          t          j        |           }|t          | t          j                  k    sJ t	          |t                    sJ |j        t          j        | fk    sJ t          | t          j                  }t	          |t                    sJ |j        t          j        | fk    sJ t          ddgddgg          }t          t          |          }|t          |t                    k    sJ t	          |t                    sJ |j        t          |fk    sJ t          ddd          }t          ||          t          ||          cxk    r	||z   k    sn J t          t          ||          }|t          |t          |          cxk    rkt          ||t                    cxk    rPt          t          ||          cxk    r5t          |t          |          cxk    rt          ||t                    k    sn J t	          |t                    sJ |j        t          ||z   fk    sJ t          ||          d|z  k    sJ t          |||          t          |||          cxk    r"t          |||          cxk    r|d|z  z   k    sn J t          |t          ||t                    }t	          |t                    sJ |j        dt          z  |d|z  z   fk    sJ d S r"  )r   r   r   Infinityr   rw   ComplexInfinityr)  r!   r4   r#   )r   r$  r   r5   s       rC   test_MatAdd_postprocessorr.    s   
 	aAq!99Aq		&&&&Q&&&&&&AJAAqz""""""a6aj!_$$$$Aq!!AAq())))))a6a'+++++AquAa6aeQZAA  AAq		AAq		>>>>a6aVS!QAq!99Aq		****QU****** 	Aq!AAq!\\\\Aq!\\\\Aq!\\\\Aq!\\\\PSTUWXZ[P\P\\\\\\\a6aQZq!99!q!Q<<3q!Q<<BBBB3q!Q<<BBBB1qs7BBBBBBAq!QAa6ac1qs7^######rB   c                     t          t          t          t          z  t          t          z  z                       t          k    sJ t          dt          z  t          z  dt          z  t          z  z             } t          |           t          k    sJ | j        dt          z  t          z  dt          z  t          z  fk    sJ d S )Nr=   ru   )typer   r7   r8   r   rw   )r$  s    rC    test_simplify_matrix_expressionsr1    s    	!A#!)$$%%////!A#a%!A#a%-  A77f6ac!eQqSU^######rB   c                  H   t          ddd          } t          ddd          }t          |           t          |          z  }t          |          t          |           z  }||k    sJ ||z
  dk    sJ t          |t                    rJ t          |t                    rJ d S )Nr5   r=   r6   r   )r#   r   r   )r5   r6   r   r   s       rC   test_expr3    s    S!QAS!QAFF3q66MEFF3q66MEE>>>>5=A%%%%%%%%%%%%%%rB   c                  2    t          t          d            d S )Nc                  $    t          ddd          S )Nr;   r=   r5   r@   rA   rB   rC   rD   z#test_invalid_args.<locals>.<lambda>  s    aC!8!8 rB   )r.   r   rA   rB   rC   test_invalid_argsr6    s    
<8899999rB   c                      t          dd          } t          | dd          }|                                }|                    dd          }|j        |j        k    sJ |j        d         |j        d         k    sJ d S )Nr5   T)complexr=   rg   r   )r	   r#   r   ro   rw   )A_labelr5   A_1A_2s       rC   test_matrixsymbol_from_symbolr<    s{    S$'''GWa##A
&&((C
&&A,,C8qv8A;!&)######rB   c                      t          ddd          } |                                 t          | d         | d         | d         g| d         | d         | d	         gg          k    sJ t          t          d
            d S )Nrj   r=   rg   rY   rX   r   r   rl   r   c                  4    t                                           S r   )r5   r   rA   rB   rC   rD   z"test_as_explicit.<locals>.<lambda>,  s    q}} rB   )r#   r   r   r.   rU   )rj   s    rC   test_as_explicitr?  &  s    S!QA==??o	
4!D'1T7#	
4!D'1T7#/       :../////rB   c                  Z   t          ddt          j                  j        dk    sJ j        t          j        k    sJ t          ddgddgg          v sJ t          dd          v sJ t          t          fd           t          t          fd           t          t          t          t          j                  t          v sJ t          t          fd	           t          t          fd
           t          ddh d          t          ddgddgg          t          ddgg          } v t          j        k    sJ | v t          j        k    sJ t          t          d            t          t          d            t          t          d            d S )Nr=   )setrs   r;   rg   ru   c                      t            v S r   r}   r   s   rC   rD   z test_MatrixSet.<locals>.<lambda>7      a1f rB   c                      d v S r|   rA   rC  s   rC   rD   z test_MatrixSet.<locals>.<lambda>8      a1f rB   c                      t            v S r   )r7   rC  s   rC   rD   z test_MatrixSet.<locals>.<lambda>;  rD  rB   c                       v S r   rA   )r   rh   s   rC   rD   z test_MatrixSet.<locals>.<lambda><  rF  rB   >   r;   r=   rg   c                  8    t          ddt          j                  S )Nr=   r   r'   r   RealsrA   rB   rC   rD   z test_MatrixSet.<locals>.<lambda>B  s    yB88 rB   c                  8    t          ddt          j                  S )Ng333333@r?   rJ  rA   rB   rC   rD   z test_MatrixSet.<locals>.<lambda>C  s    yb!':: rB   c                  $    t          ddd          S )Nr=   )r;   r=   rg   )r'   rA   rB   rC   rD   z test_MatrixSet.<locals>.<lambda>D  s    i1i88 rB   )r'   r   rK  rZ   rA  r!   r,   r.   r   rN   r[   r5   falserU   )ri   r   rh   s    @@rC   test_MatrixSetrO  /  s   !QAG$$$A7f5AGAA  A66661aA6666
9nnnn%%%
9nnnn%%%!QAG$$$A6666
9nnnn%%%
9nnnnn%%%!QIII&&&AAA  AAxAFqwFqw
:88999
:::;;;
98899999rB   c                  h   t          ddd          } t          ddd          }t          dd          }|  |z    | z
  |z   |k    sJ |  |z    | z
  |z                                   |k    sJ |  |z    | z
  |z                                   |k    sJ |  |z    | z
  |z   |z
                                  |k    sJ |  |z    | z
  |z   |z
                                  |k    sJ | | |z   z  || j        |j        z   z  z                                   | dz  | |z  z   || j        z  z   ||j        z  z   k    sJ d S )Nr5   r=   r6   )r#   r,   r   r   r  )r5   r6   rj   s      rC   test_matrixsymbol_solvingrQ  G  su   S!QAS!QA1aAR!V9q=1!!!!b1fIMA''))Q....b1fIMA%%''1,,,,b1fIMA!++--2222b1fIMA!))++q0000q1uI139%--//1a4!A#:!#3E!#3MMMM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   rN   r[   r\   r   r   r4   r5   r6   r7   r8   r9   r:   rV   r`   rd   ry   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'  r*  r.  r1  r3  r6  r<  r?  rO  rQ  rA   rB   rC   <module>rd     s   ) ) ) ) ) ) * * * * * * . . . . . . . . $ $ $ $ $ $ 2 2 2 2 2 2 2 2 2 2 C C C C C C & & & & & & ( ( ( ( ( (                  : : : : : : : : : : : : : : : : # # # # # #5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 ; : : : : : C C C C C C C C < < < < < < C C C C C C C C 4 4 4 4 4 4 4 4 4 4 & & & & & &T2221aAGCLLLaLaLaLaLaLa8 8 8$& & &! ! !'4 '4 '4T9 9 9   2E E E&  ; ; ;( ( (D D D! ! !! ! !/ / /    . . .D D D(6 6 60 0 0' ' '5 5 5# # #) ) )>   J J J8 8 8- - -B B B
  	 	 	
0 
0 
02 2 2: * * *,$ ,$ ,$^$ $ $& & &: : :$ $ $0 0 0: : :0	N 	N 	N 	N 	NrB   