
    \hD                        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  S SKJrJr  S SKJrJrJrJrJr  S SKJr  S S	KJrJr  S S
KJr  S SKJr  S SKJr  S SK J!r!J"r"  S SK#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/  S SK0J1r1  S SK2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>  S SK?J@r@  S SKAJBrB  S SKCJDrE  S SKFJGrGJHrHJIrI  S rJ\" 5           " S S\)\*\+5      rKSSS5        S rLS rM\" 5           " S S\)\*\,5      rNSSS5        S rOS  rP\" 5           " S! S"\)\*\-5      rQSSS5        S# rRS$ rS\" 5           " S% S&\)\*\.5      rTSSS5        S' rUS( rV\" 5           " S) S*\)\*\/5      rWSSS5        \" 5           " S+ S,\)\*\15      rXSSS5        S- rYS. rZS/ r[S0 r\S1 r]S2 r^S3 r_S4 r`S5 raS6 rbS7 rcS8 rdS9 reS: rfS; rgS< rhS= riS> rjS? rkS@ rlSA rmSB rnSC roSD rpSE rqSF rrSG rsSH rtSI ruSJ rvSK rwSL rxSM rySN rzSO r{SP r|SQ r}SR r~SS rST rSU rSV rSW rSX rSY rSZ rS[ rS\ rS] rS^ rS_ rS` rSa rSb rSc rSd rSe rSf rSg rSh rSi rSj rSk rSl rSm rSn rSo rSp rSq r\Sr 5       rSs rSt rSu rSv rSw rSx rSy rSz rS{ rg! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNx= f! , (       d  f       GNg= f! , (       d  f       GN\= f)|    )raisesXFAILwarns_deprecated_sympy)Q)Expr)Add)Function)
NumberKindUndefinedKind)IIntegeroopiRational)S)Symbolsymbols)Abs)exp)sqrt)cossin)
ShapeErrorNonSquareMatrixError)
MatrixKind)_MinimalMatrix_CastableMatrixMatrixShapingMatrixPropertiesMatrixOperationsMatrixArithmeticMatrixSpecial)MatrixCalculus)Matrixdiageyematrix_multiply_elementwiseoneszerosSparseMatrixbandedMutableDenseMatrixMutableSparseMatrixImmutableDenseMatrixImmutableSparseMatrix)Poly)flatten)ImmutableDenseNDimArray)xyzc                     SSK Jn JnJnJnJnJnJn  SSKJ	nJ
nJn	Jn
JnJn  SSKJnJnJnJn  U UUUUUUUUU	U
UU4nUUUU4nU Vs/ s H  nU" SS/SS//5      PM     nnS	nU HV  nU H(  n[)        5          [+        UU5      S
L d   e S S S 5        M*     [)        5          [+        UU5      SL d   e S S S 5        MX     g s  snf ! , (       d  f       Mj  = f! , (       d  f       M  = f)Nr   )MatrixRequiredr   r"   r   r    r!   MatrixCommon)MatrixDeterminantMatrixReductionsMatrixSubspacesMatrixEigenr#   MatrixDeprecated)r$   ImmutableMatrixr*   r/                TF)sympy.matrices.commonr7   r   r"   r   r    r!   r8   sympy.matrices.matricesr9   r:   r;   r<   r#   r=   sympyr$   r>   r*   r/   r   
isinstance)r7   r   r"   r   r    r!   r8   r9   r:   r;   r<   r#   r=   r$   r>   r*   r/   
all_mixinsall_matricesMMstmixins                          ^/var/www/auris/envauris/lib/python3.13/site-packages/sympy/matrices/tests/test_commonmatrix.py!test_matrix_deprecated_isinstancerO   '   s   
     	J  		L (4	4|!!aVaV
|B	4
AA')!!U+t333 *)  $%a'5000 &%	  
5
 *)%%s   C8C!C
C
C'	c                       \ rS rSrSrg)ShapingOnlyMatrixi   rC   N__name__
__module____qualname____firstlineno____static_attributes__rC       rN   rQ   rQ   i       rY   rQ   Nc                     [        X S 5      $ )Nc                     [        X:H  5      $ Nintijs     rN   <lambda>eye_Shaping.<locals>.<lambda>n   s
    AFrY   rQ   ns    rN   eye_Shapingrh   m   s    Q#;<<rY   c                     [        X S 5      $ )Nc                     gNr   rC   r`   s     rN   rc   zeros_Shaping.<locals>.<lambda>r   s    rY   re   rf   s    rN   zeros_Shapingrm   q   s    Q>22rY   c                       \ rS rSrSrg)PropertiesOnlyMatrixv   rC   NrS   rC   rY   rN   ro   ro   v   rZ   rY   ro   c                     [        X S 5      $ )Nc                     [        X:H  5      $ r]   r^   r`   s     rN   rc    eye_Properties.<locals>.<lambda>{   
    3qv;rY   ro   rf   s    rN   eye_Propertiesrv   z       &>??rY   c                     [        X S 5      $ )Nc                     grk   rC   r`   s     rN   rc   "zeros_Properties.<locals>.<lambda>       1rY   ru   rf   s    rN   zeros_Propertiesr|   ~       n55rY   c                       \ rS rSrSrg)OperationsOnlyMatrix   rC   NrS   rC   rY   rN   r   r      rZ   rY   r   c                     [        X S 5      $ )Nc                     [        X:H  5      $ r]   r^   r`   s     rN   rc    eye_Operations.<locals>.<lambda>   rt   rY   r   rf   s    rN   eye_Operationsr      rw   rY   c                     [        X S 5      $ )Nc                     grk   rC   r`   s     rN   rc   "zeros_Operations.<locals>.<lambda>   r{   rY   r   rf   s    rN   zeros_Operationsr      r}   rY   c                       \ rS rSrSrg)ArithmeticOnlyMatrix   rC   NrS   rC   rY   rN   r   r      rZ   rY   r   c                     [        X S 5      $ )Nc                     [        X:H  5      $ r]   r^   r`   s     rN   rc    eye_Arithmetic.<locals>.<lambda>   rt   rY   r   rf   s    rN   eye_Arithmeticr      rw   rY   c                     [        X S 5      $ )Nc                     grk   rC   r`   s     rN   rc   "zeros_Arithmetic.<locals>.<lambda>   r{   rY   r   rf   s    rN   zeros_Arithmeticr      r}   rY   c                       \ rS rSrSrg)SpecialOnlyMatrix   rC   NrS   rC   rY   rN   r   r      rZ   rY   r   c                       \ rS rSrSrg)CalculusOnlyMatrix   rC   NrS   rC   rY   rN   r   r      rZ   rY   r   c                     [        SS/ SQ5      n U R                  S:X  d   eU R                  S:X  d   eU S   S:X  d   eU S   S:X  d   e[        U 5      / SQ:X  d   e[        U SS S 24   5      / SQ:X  d   e[        U S S 2S4   5      SS/:X  d   e[        U S S 2S S 24   5      [        U 5      :X  d   eU S S 2S S 24   U :X  d   e[        U 5      U :X  d   e[        / SQ/ SQ/5      U :X  d   e[        / SQ/ SQ45      U :X  d   e[        SS/5      U :X  d   e[        S	5      U :X  d   e[        SS/SS
/SS//5      U :X  a   eg )Nr@   rA   )r?   r@   rA   rB         r?   r?   r   r?   rB   r   r   r?   r@   rA   )r   r   rB   r   )r   rowscolslistr3   s    rN   test__MinimalMatrixr      sf   q!/0A66Q;;66Q;;Q4199T7a<<7((((!Q$=I%%%!Q$=QF"""!Q$=DG###QT7a<<!!!!9i01Q6669i01Q6669i01Q66601Q666AAA78A=>>=rY   c                     [        SS/SS//5      R                  [        [        5      :X  d   e[        SS/SS//5      R                  [        [        5      :X  d   e[        SS/ 5      R                  [        [        5      :X  d   e[        [        //5      R                  [        [        5      :X  d   e[        S[        S//5      //5      R                  [        [
        5      :X  d   e[        S//5      R                  [        [        5      :X  d   e[        S[        S//5      //5      R                  [        [
        5      :X  d   eg )Nr?   r@   rA   rB   r   )r$   kindr   r
   r3   r   r*   rC   rY   rN   	test_kindr      s   Aq6Aq6"#((Jz,BBBBAq6Aq6"#((Jz,BBBB!Q  Jz$::::A3%=J!7777Avse}%&',,
=0IIII!##z*'====!VaSE]+,-22j6OOOOrY   c                      [        SS/ SQ5      n U R                  5       nUR                  S:X  d   e[        S5       H  nX   US-   :X  a  M   e   g )Nr@   )r?   rA   r@   rB   r?   rB   )rQ   vecr   range)mm_vecra   s      rN   test_vecr      sM    !Q-AEEGE::??1Xx1q5    rY   c                  N   [        S5      u  pp#[        X/X#//5      n[        X/X#//5      n[        X/X#//5      n[	        X/X#//5      nUR                  5       UR                  5       s=:X  a4  UR                  5       s=:X  a  UR                  5       s=:X  a
  XX#S.:X  d   e   eg )Nza:d)r   r   r   r?   r?   r   r   )r   r,   r.   r-   r/   todok)abcdm1m2m3m4s           rN   
test_todokr      s    JA!	aVaV,	-B	vv.	/B	qfqf-	.B	/	0B88: 5rxxz 5RXXZ 5q45 5 5 5 5rY   c                      [         R                  [         R                  [        [        -  [         R
                  /[        [        [        [        S-  /[        [         R                  * [        [        -  S//n [         R                  [         R                  [        [        -  [         R
                  [        [        [        [        S-  [        [         R                  * [        [        -  S/n[        SSU5      nUR                  5       U :X  d   eg )Nr@   rA   rB   )	r   OneHalfr3   r4   Zeror5   rQ   tolist)lstflat_lstr   s      rN   test_tolistr      s    EE1661Q3'!Q1a41quufac1:M
NCqvvqsAFFAq!QT1quufac1MH!Q)A88:rY   c                      [        SS[        R                  S/S[        R                  /[        S//5      n S[        R                  0S[        R                  0S[        0S.nU R                  5       U:X  d   eg )NrA   r@   r   r?   r   r?   r@   )rQ   r   r   r   r3   todod)r   dicts     rN   
test_tododr      s_    !Q!%%a[1a& ABA155zq!&&kq!f5D779rY   c                    ^  [        SS/ SQ5      m [        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        T R                  S5      T R                  S5      s=:X  a  [	        / S	Q/ S
Q/5      :X  d   e   eT R                  S5      T R                  S5      s=:X  a  [	        SS/SS/SS//5      :X  d   e   eT R                  S5      T R                  S5      s=:X  a  [	        / S	Q/ SQ/5      :X  d   e   eT R                  S5      T R                  S5      s=:X  a  [	        SS/SS/SS//5      :X  d   e   eg )NrA   	r?   r@   rA   rB   r   r         	   c                  &   > T R                  S5      $ Nr   row_deles   rN   rc   "test_row_col_del.<locals>.<lambda>       qyy|rY   c                  &   > T R                  S5      $ Nr   r   s   rN   rc   r          qyy}rY   c                  &   > T R                  S5      $ r   col_delr   s   rN   rc   r      r   rY   c                  &   > T R                  S5      $ r   r   r   s   rN   rc   r      r   rY   r@   r   r   r?   rB   r   r   r   r   r   r   r   r   )rQ   r   
IndexErrorr   r$   r   r   s   @rN   test_row_col_delr      s&   !Q ;<A
:+,
:,-
:+,
:,-99Q<199R=JFIy3I,JJJJJJ99Q<199R=LFQFQFQF3K,LLLLLL99Q<199R=JFIy3I,JJJJJJ99Q<199R=LFQFQFQF3K,LLLLLLrY   c                  @   [        SS/SS//5      n [        S[        /[        S//5      n[        S[        S/[        S[        /[        [        [        //5      nU R	                  5       U /:X  d   eUR	                  5       U/:X  d   eUR	                  5       U/:X  d   eg Nr?   r@   rA   )r$   r3   r4   r5   get_diag_blocks)r   r   r   s      rN   test_get_diag_blocks1r      s    AA AAA AAq	Aq!9q!Qi01A1#%%%1#%%%1#%%%rY   c                     [        SS/SS//5      n [        S[        /[        S//5      n[        S[        S/[        S[        /[        [        [        //5      n[	        XU5      [	        XU5      [	        XU5      [	        X"U5      4u  p4pV[        UR                  UR                  U5      n[        UR                  UR                  U5      n[        UR                  UR                  U5      n[        UR                  UR                  U5      nUR                  5       XU/:X  d   eUR                  5       XU/:X  d   eUR                  5       XU/:X  d   eUR                  5       X"U/:X  d   eg r   )	r$   r3   r4   r5   r%   rQ   r   r   r   )r   r   r   ABCDs          rN   test_get_diag_blocks2r      sA   AA AAA AAq	Aq!9q!Qi01AaAQ1tA!}d1mKJA!!&&!&&!,A!&&!&&!,A!&&!&&!,A!&&!&&!,A1)+++1)+++1)+++1)+++rY   c                  F    [        SSSS/5      n U R                  S:X  d   eg )Nr?   r@   r   r?   r@   )rQ   shaper   s    rN   
test_shaper     s&    !QA'A77frY   c                      [        S5      n U R                  SS5      [        SSS5      :X  d   e[        SSS 5      nUR                  SS5      [        S5      :X  d   eUR                  SS	5      [        S
5      :X  d   eg )NrA   r?   r   )	r?   r   r   r   r?   r   r   r   r?   rB   c                 
    X-   $ r]   rC   r`   s     rN   rc   test_reshape.<locals>.<lambda>  s    aerY   )r   rA   r?   r@   )rA   rB   r@   rA   rB   r   r@   r   ))r   r?   r@   rA   r?   r@   )rA   rB   r@   rA   rB   r   )rh   reshaper$   rQ   m0r   s     rN   test_reshaper     s    	QB::ava,GHHHH	1a!3	4B::	1DEF F F::av&NOOOOrY   c                      [        SS/ SQ5      n U R                  S5      [        SS/ SQ5      :X  d   eU R                  S5      [        SS/ SQ5      :X  d   eg )NrA   r   r   r?   r   )r?   rB   r   )rQ   rowr$   colr   s    rN   test_row_colr     sO    !Q ;<A558vaI....558vaI....rY   c                  ~    [        S5      R                  [        / SQ5      5      [        / SQ/ SQ/ SQ/5      :X  d   eg )NrA   r   r   r   )r?   r   r   r   )r   r?   r   r   )r   r   r?   r   )rh   row_joinr$   rC   rY   rN   test_row_joinr    s=    q>""6)#45<! "" " "rY   c                      [        S5      R                  [        / SQ/5      5      [        / SQ/ SQ/ SQ/ SQ/5      :X  d   eg )NrA   r  r?   r   r   )r   r?   r   )r   r   r?   )rh   col_joinr$   rC   rY   rN   test_col_joinr  #  sB    q>""69+#679   rY   c                      [        / SQ/5      n [        SS5       H_  n/ SQnUR                  US5        [        [	        S5      R                  X5      R                  S5      R                  5       5      U:X  a  M_   e   g )NrB   rB   rB   r   r  rB   rA   r   )r$   r   insertr1   rh   
row_insertr   r   )r4ra   ls      rN   test_row_insertr  +  sf    		B2q\	A{1~007;;A>EEGHAMMM rY   c                     [        / SQ5      n [        SS5       H_  n/ SQnUR                  US5        [        [	        S5      R                  X5      R                  S5      R                  5       5      U:X  a  M_   e   [        S5      R                  S[        S	S	/S	S	/S	S	/S	S	/S	S	/S	S	//5      5      [        / S
Q/ SQ/ SQ/ SQ/ SQ/ SQ/5      :X  d   eg )Nr
  r  r   r   r   r   rB   rA   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@   r@   r?   r   r   )r   r   r   r@   r@   r   r?   r   )r   r   r   r@   r@   r   r   r?   )	r$   r   r  r1   rm   
col_insertr   r   rh   )c4ra   r  s      rN   test_col_insertr  3  s    			B2q\	A}Q'2219==a@GGIJaOOO 
 q>$$QAAAAQRTUPVYZ\]X^/_(`a++++++- .. . .rY   c                  j  ^  [        SSS 5      m T R                  / SQSS/5      [        SS/ SQ5      :X  d   eT R                  SS// S	Q5      [        SS/ S
Q5      :X  d   eT R                  [        S5      [        S5      5      T :X  d   e[	        [
        U 4S j5        [	        [
        U 4S j5        g )NrB   rA   c                     U S-  U-   $ NrA   rC   r`   s     rN   rc   test_extract.<locals>.<lambda>D      QqS1WrY   )r   r?   rA   r   r?   r@   )r   r?   rA   rB   r   
   r   r   r@   )r   r   r@   r   r      c                  ,   > T R                  S/S/5      $ )NrB   r   extractr   s   rN   rc   r  H      qyy!qc2rY   c                  ,   > T R                  S/S/5      $ )Nr   rA   r  r   s   rN   rc   r  I  r!  rY   )rQ   r   r$   r   r   r   r   s   @rN   test_extractr#  C  s    !Q 45A99YA'6!Q8K+LLLL99aVY'6!Q8K+LLLL99U1XuQx(A---
:23
:23rY   c                    ^^ [        SSS 5      m[        SSS 5      mTTR                  T5      :X  d   eTR                  TTT5      [         R                  TTT5      s=:X  a  [        / SQ/ SQ/ SQ/ SQ/5      :X  d   e   e[        [        UU4S	 j5        [        R                  " 5       [        5       :X  d   e[        R
                  " S
S
5      n [        R
                  " S
S5      n[        R
                  " S
S5      n[        R
                  " S
S5      n[         R                  XX#5      mTR                  S
:X  a  TR                  S:X  d   eg )NrB   rA   c                     U S-  U-   $ r  rC   r`   s     rN   rc   test_hstack.<locals>.<lambda>M  r  rY   c                     U S-  U-   $ r  rC   r`   s     rN   rc   r&  N      acAgrY   )	r   r?   r@   r   r?   r@   r   r?   r@   )	rA   rB   r   rA   rB   r   rA   rB   r   )	r   r   r   r   r   r   r   r   r   )	r   r  r  r   r  r  r   r  r  c                  (   > T R                  T T5      $ r]   )hstackr   r   s   rN   rc   r&  U      qxx2rY   r   r?   r@   r   )rQ   r*  r$   r   r   r)   r   r   )M1M2M3M4r   r   s       @@rN   test_hstackr1  L  s%   !Q 45A	1a!5	6B88Aq! 1 8 8Aq A 4V1111	M3 F4 4 4 4 4 4
 :./==?fh&&& 
a	B	a	B	a	B	a	B  0A66Q;166Q;&&;rY   c                    ^ ^ [        SSS 5      m [        SSS 5      mT T R                  T 5      :X  d   eT R                  T T T 5      [         R                  T T T 5      s=:X  a4  [        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      :X  d   e   e[        [        U U4S	 j5        [        R                  " 5       [        5       :X  d   eg )
NrB   rA   c                     U S-  U-   $ r  rC   r`   s     rN   rc   test_vstack.<locals>.<lambda>b  r  rY   c                     U S-  U-   $ r  rC   r`   s     rN   rc   r4  c  r(  rY   r   r   )r   r   r   )r   r  r  c                  (   > T R                  T T5      $ r]   )vstackr+  s   rN   rc   r4  r  r,  rY   )rQ   r7  r$   r   r   r+  s   @@rN   test_vstackr8  a  s    !Q 45A	1a!5	6B88Aq! 1 8 8Aq A .V + + + + + + + + + + + +M- F. . . . . . :./==?fh&&&rY   c            
         [        SSSS[        SS[        -  -
  /5      n U R                  5       [        R                  [        S5      [        R
                  [        1:X  d   eU R                  [        5      [        1:X  d   eg Nr@   r?   )ro   r3   atomsr   r   NegativeOner   r   s    rN   
test_atomsr=  w  sb    QAq!Q1W#56A779!ammQ7777776?qc!!!rY   c                  T    [        [        /S//5      R                  [        1:X  d   eg rk   )ro   r3   free_symbolsrC   rY   rN   test_free_symbolsr@  }  s%    !qc
+88QC???rY   c                  8   [        [        [        4S45      n U R                  [        5      (       d   eU R                  [        5      (       a   eU R                  [
        5      (       d   e[        S[        4S45      n U R                  [        5      (       a   eg )N)r@   rA   r@   )ro   r3   r4   hasr5   r   r   s    rN   test_hasrD    sq    q!ff-.A5588O8uuQxx<55===q!ff-.AuuQxx<xrY   c                     [        S5      n [        SSSS/5      R                  5       SL d   e[        SSSU S-  SU -  -   S-   [        U S-   S-  * SU [        -  [        * U * [        -  S/	5      nUR                  5       SL d   eUR                  SS9SL d   eUR                  S	 S9SL d   e[        SSU V s/ s H  o R                  " 5       PM     sn 5      nUR                  SS9SL d   e[        SS[
        R                  /[        U5      SS  -    V s/ s H  o R                  " 5       PM     sn 5      nUR                  5       SL d   eg s  sn f s  sn f )
Nr3   r@   r?   FrA   r   Tsimplifyc                     U $ r]   rC   r   s    rN   rc   (test_is_anti_symmetric.<locals>.<lambda>  s    !rY   )r   ro   is_anti_symmetricr4   expandr   r   r   )r3   r   s     rN   test_is_anti_symmetricrL    s_   A1q!f-??AUJJJQAq!taczA~qAEA:+q!A#PQrTUSUVWSWYZ#[\A D(((.%7774===Q#:1HHJ#:;A.$666Q$q'!"+8M#N8M1HHJ8M#NOA E))) $;#Ns   8EEc                     [        SS/ SQ5      n U R                  5       (       a   eU R                  5       (       d   eU R                  SS9(       d   e[        SS/ SQ5      n U R                  5       (       d   e[        SS[        SSS5      5      n U R                  5       (       d   eU R                  5       (       d   e[        SS/ SQ5      n U [        SSS5      :X  d   e[        SS[	        SS5      5      n U R                  5       (       a   eU R                  5       (       d   e[        S	5      n U R                  5       (       d   e[        S
5      n U R                  5       (       d   e[        SSS[        S-  S[        -  -   S-   [        [        S-   S-  SS[        SS/	5      n U R                  5       (       d   eU R                  SS9(       a   eU R                  5       R                  SS9(       d   eg )Nr@   r   r?   r?   r   FrF  r?   r   r   r?   rA   r?   )	r?   r   r   r   r@   r   r   r   rA   ))r   r   r   r   r   ))r   r   r   )r   r   r   r   )	ro   is_diagonalis_symmetricr%   r)   r$   r3   r4   rK  r   s    rN   test_diagonal_symmetricalrS    s   Q<0A}}>>>>5>)))Q<0A==???Q41a=1A==???>>Q#>?AQ1Q5A;/A~~==???56A==???34A==???q!aA!aQUQJ1aAFGA>>~~u~---88:""E"222rY   c                  r   [        S[        /[        * S//5      n U R                  (       d   e[        S[        -  [        /[        * S//5      n U R                  SL d   e[        [        [        /[        * S//5      n U R                  b   e[        [        S/[        * S//5      n U R                  SL d   eg )Nr?   r@   F)ro   r   is_hermitianr3   r   s    rN   test_is_hermitianrW    s    q!fr1g./A>>>qsAh!Q01A>>U"""q!fr1g./A>>!!!q!fr1g./A>>U"""rY   c                     [        S5      R                  (       d   e[        [        S5      5      R                  (       a   e[        [	        S5      5      R                  (       a   e[        / SQ/5      R                  (       a   eg )NrA   r  )rv   is_Identityro   r)   r(   rC   rY   rN   test_is_IdentityrZ    s_    !((((#E!H-9999#DG,8888#YK0<<<<<rY   c                  J   [        [        [        /[        [        //5      n U R                  5       SL d   e[        / SQ/ SQ/5      n U R                  5       SL d   e[        / SQSS[        S//5      n U R                  5       SL d   e[        S[        S	//5      n U R                  5       SL d   e[        / S
Q/5      n U R                  5       SL d   e[        S/[        /S	//5      n U R                  5       SL d   e[        S/S/S	//5      n U R                  5       SL d   eg )NTr?   r@   rA   rB   r   r   r   r   Fr   r   r   r?   rA   r   r@   )ro   r3   is_symbolicrV  s    rN   test_is_symbolicr_    s   q!fq!f-.A==?d"""lL9:A==?e###lQ1aL9:A==?d"""q!Qi[)A==?d"""i[)A==?e###qcA3_-A==?d"""qcA3_-A==?e###rY   c                      [        / SQ/5      n U R                  SL d   e[        S/S/S//5      n U R                  SL d   eg )Nr   Tr?   r@   rA   F)ro   is_upperrV  s    rN   test_is_upperrb    sH    i[)A::qcA3_-A::rY   c                      [        / SQ/5      n U R                  SL d   e[        S/S/S//5      n U R                  SL d   eg )Nr   Fr?   r@   rA   T)ro   is_lowerrV  s    rN   test_is_lowerre    sH    i[)A::qcA3_-A::rY   c                      [        S/S//5      n [        SS/SS//5      nU R                  (       a   eUR                  (       d   eg Nr?   r@   )ro   	is_squarer+  s     rN   test_is_squareri    sC    qcA3Z(A	1v1v.	/B{{?<<<rY   c                      [        SS/ SQ5      n U R                  5       (       d   e[        SS/ SQ5      n U R                  5       (       a   eg )Nr@   rN  )r   r?   r   r?   )ro   rR  r   s    rN   test_is_symmetricrk    sG    Q<0A>>Q<0A~~rY   c                  F   [        / SQ/ SQ/ SQ/5      n U R                  (       d   e[        SS/ SQ5      n U R                  (       d   e[        SS/ SQ5      n U R                  SL d   eU R                  SL d   e[        / SQ/ SQ/ SQ/5      n U R                  (       a   eg )	N)rA   rB   r?   )r@   rB   r   r   rA   )	rA   r@   r   rB   rB   r?   r?   r   r@   )	rA   r@   r   rB   rB   r?   r?   r   r@   Fr   )ro   is_upper_hessenbergis_lower_hessenbergrC  s    rN   test_is_hessenbergro    s    iI>?A    Q#>?A    Q#?@A  E)))  E)))iI>?A$$$$$rY   c                     [        SS/ 5      R                  (       d   e[        SS/SS//5      R                  (       d   e[        [        SS5      5      R                  (       d   e[        [        S5      5      R                  (       a   e[        [        S/SS//5      R                  S :X  d   e[        [        S/SS//5      R                  S:X  d   e[        SSS9n [        U S/SS//5      R                  S:X  d   eg )	Nr   rA   rB   r?   Fr   T)nonzero)ro   is_zero_matrixr)   r&   r3   r   rV  s    rN   test_is_zerors    s    1b)8888!Q!Q 01@@@@a,;;;;#CF+::::!Q!Q 01@@DHHH!Q!Q 01@@EIIIsD!A!Q!Q 01@@EIIIrY   c            
          [        [        SS/ SQ5      R                  5       5      1 Sk:X  d   e[        SSS9n [        [        SSU SSS/5      R                  5       5      U S1:X  d   eg )	Nr@   )r   r?   r@   rA   >   r?   r@   rA   r3   Trealr   r?   )setro   valuesr   r   s    rN   test_valuesry    sx    #Aq, 

&( ! ! !sA#Aq1aA, 

&(1v  rY   c                      [        [        S5      5      n U R                  S 5      [        S5      S-  :X  d   eU R                  S 5      [        S5      :X  d   eU R                  S 5      [	        S5      :X  d   eg )NrA   c                     SU -  $ Nr@   rC   r   s    rN   rc    test_applyfunc.<locals>.<lambda>  s    !A#rY   r@   c                     grk   rC   r   s    rN   rc   r}        !rY   c                     gNr?   rC   r   s    rN   rc   r}    r  rY   )r   r&   	applyfuncr)   r(   )r   s    rN   test_applyfuncr    se    	c!f	%B<<&#a&(222<<$a000<<$Q///rY   c                      S[         /SS//n [        SS/[         * S//5      nUR                  5       [        U 5      :X  d   eg )Nr   r?   )r   r   adjointr$   )datanss     rN   test_adjointr  !  sE    q6Aq6
C
A!Q0
1C;;=F3K'''rY   c            
         [        SS/ SQ5      n [        SSS[        R                  -   SS[        R                  -  -   SS[        R                  -  -   SS[        R                  -  -   /5      nUR                  5       u  p#X :X  d   eX0:X  d   eg )Nr@   r\  r?   rA   rB   )r   r   ImaginaryUnitas_real_imag)r   r   r   r   s       rN   test_as_real_imagr  '  s    	aL	1B	a	
Q__	a!AOO"33	Aaooq1Q__#44	6
7B ??DA7N77N7rY   c                     [        S[        S// SQ/5      n U R                  [        SS/[        S/SS//5      :X  d   eU R                  [        S[        * S// SQ/5      :X  d   eU R                  U R                  5       :X  d   eU R                  U R                  R                  :X  d   eU R                  [        SS/[        * S/SS//5      :X  d   eg )Nr   r   r?   r@   r   r?   r@   )r   r   Tr$   r   	conjugateHrJ   s    rN   test_conjugater  2  s    q!Qi 	A 33&1a&a&a&" # # # # 33&1qb!*$& ' ' ' '33!++-33!##%%<<33&Aq'2q'q'# $ $ $ $rY   c                      [        [        [        [        SS9//5      n U S   S[        -  :w  d   eU R                  5       [	        S[        -  //5      :X  d   eg )NF)evaluater   r@   )r   r   r3   doitr$   rV  s    rN   	test_doitr  D  sO    s1a%89:;AQ41Q3;;668v!ug&&&rY   c                    ^  [        SS[        S5      S/5      m [        U 4S j[        S5       5       5      (       d   e[        U 4S j[        S5       5       5      (       d   e[        U 4S j[        S5       5       5      (       d   eg )Nr@   r?   r   r   c              3   r   >#    U  H,  nTR                  5       U   TU   R                  5       :H  v   M.     g 7fr]   evalf.0ra   r   s     rN   	<genexpr>test_evalf.<locals>.<genexpr>L  s*     >Xqwwy|qtzz|+Xs   47c              3   v   >#    U  H.  nTR                  S 5      U   TU   R                  S 5      :H  v   M0     g7fr@   Nr  r  s     rN   r  r  M  s.     @x!qwwqz!}!

1-x   69c              3   v   >#    U  H.  nTR                  S 5      U   TU   R                  S 5      :H  v   M0     g7fr  rf   r  s     rN   r  r  N  s.     8x!qss1vayAaDFF1I%xr  )r   r   allr   rV  s   @rN   
test_evalfr  J  sj    QDGQ<0A>U1X>>>>>@uQx@@@@@8uQx88888rY   c            	         [        [        [        [        -   -  S/[        [        -   [        -  [        -  [        [        [        [        [        -   -  -   -  //5      n U R                  5       nU[	        [        [        -  [        S-  -   S/[        [        S-  -  [        [        S-  -  -   [        [        -  [        [        S-  -  -   [        S-  -   //5      :X  d   e[        SSS9n[        SS[        [        U-  5      /5      R                  SS9[	        [        U5      [        [        U5      -  -   /5      :X  d   eg )Nr@   rA   r   Tru  r?   )complex)
r   r3   r4   rK  r$   r   r   r   r   r   )r   r   r   s      rN   test_expandr  Q  s   	1q5	1~!a%Aq!aQi-?P/QR	SB	B
A#1*a1QT6AadF?AaC!AqD&L1a4,?@AC C C C 	sA1s1Q3xj1888F3q6Ac!fH$%&' ' 'rY   c            	      :   [        [        [        5      S-  [        [        S-  5      /[        [        S-  5      [        [        5      S-  -  [        [        S-  5      [        [        5      S-  -  //5      n U R                  [        R                  " [        5      [        R                  " [        5      -  5      nU[        [        S-  [        [        5      /[        S-  [        [        5      -  [        S-  [        [        5      -  //5      :X  d   eU R                  [        R                  " [        5      [        R                  " [        5      -  5      nU[        [        S-  [        /[        [        S-  -  [        S-  [        -  //5      :X  d   eU R                  [        R                  " [        5      [        R                  " [        5      -  5      nU[        [        S-  [        * /[        * [        S-  -  [        S-  * [        -  //5      :X  d   eg r|  )r   r   r3   r   r4   refiner   rv  r$   positivenegativer   s     rN   test_refiner  ^  su   	A	41:6q!t*SVQY&QT
3q619(<=? 
@B	166!9qvvay(	)B!Q$A!Q$s1v+q!tCF{)CDEEEE	1::a=1::a=0	1B!Q$Qq!tVQT!V$456666	1::a=1::a=0	1B!Q$qbAg1uQw%789999rY   c                     ^^ [        S[        S9u  mm[        SSU4S j5      n [        SSU4S j5      nUR                  TT5      nX :X  d   eg )NF, Gclsr@   c                    > T" X-   5      $ r]   rC   )ra   rb   Gs     rN   rc   test_replace.<locals>.<lambda>m      !#rY   c                    > T" X-   5      $ r]   rC   ra   rb   Fs     rN   rc   r  n  r  rY   r   r	   r   replace)KrJ   Nr  r  s      @@rN   test_replacer  k  sI    6x(DAqQ#67AQ#67A			!QA6M6rY   c                  P  ^ [        S[        S9u  mn [        SSU " S5      T" S5      U " S5      04U " S5      T" S5      U " S5      04U " S5      T" S5      U " S5      04U " S5      T" S5      U " S5      04/5      n[        SSU4S j5      nUR                  TU S5      nX1:X  d   eg )Nr  r  r@   r   r?   c                    > T" X-   5      $ r]   rC   r  s     rN   rc   "test_replace_map.<locals>.<lambda>w  r  rY   Tr  )r  r  rJ   r  r  s       @rN   test_replace_mapr  s  s    6x(DAqQQqTAaD!A$<$81Q4!A$!:NQRSTQUXYZ[X\PQRSPTXV QWYZ[\Y]`abc`dfghifj_kXl$n 	oAQ#67A			!QA6M6rY   c                  \   [        SS/SS//5      n X R                  S5      s=:X  a  U R                  S5      :X  d   e   eU R                  S5      U R                  S5      s=:X  a&  U R                  S5      s=:X  a  [        S5      :X  d   e   eU R                  S5      U R                  S	5      s=:X  a&  U R                  S
5      s=:X  a  [        S5      :X  d   e   eU R                  5       U R                  S5      s=:X  a&  U R                  S5      s=:X  a  [        S5      :X  d   e   eg )Nr?   r@   rA   rB   r   r   r   ))rB   rA   r@   r?   r   r   ))r@   rB   r?   rA   i)rA   r?   )rB   r@   )r$   rot90rC  s    rN   
test_rot90r  |  s    AA A
(aggaj(((((771:N
Nf=M6NNNNNN771:N
Nf=M6NNNNNN779Nqwwr{Nf=M6NNNNNNrY   c                     [        S5      n [        S5      n[        S[        -  S[        -  -   [        [        [        -  -   [        -  /U" [        5      [        U" [        5      -  -   U" [        5      -  SSU -  [        U [        -  5      U -  -
  -  [        -  //5      nUR                  5       [        [        [        -   [        [        -  -  S[        -   /S[        -   SSS[        [        U -  5      -  -
  [        U -  -  -  //5      :X  d   eS[        -   S-  n[        U//5      nUR                  5       [        U//5      :X  d   eUR                  [        S9[        UR                  [        S9//5      :X  d   e[        SS/SS//5      nSUR                  5       -  R                  5       [        SS	5      :X  d   eg )
Nrg   fr?   r@   )ratio   rA   rB   "   )r   r	   r   r3   r4   r   r   rG  r$   r   tracer   )rg   r  rJ   eqr   s        rN   test_simplifyr    s   sAA1Q319q1Q3wRSmVQ4!AaD&=!A$&QqS3q2v;q=-@(AB(FHJ 	KA::<6a!ea!e_QQRU#T$%E1q1SAY;A.F+GI#K L L L L
a%!BrdV$A::<6B4&>)))::B:6BKKbK,A+B*C#DDDD 	Q!Q !AqwwyM##%!R888rY   c                  4   [        S[        /[        S//5      R                  [        S5      [        SS/SS//5      :X  d   e[        [        S/[        [        -   S//5      R                  [        S/[        S//5      [        SS/SS//5      :X  d   e[        [        S/[        [        -   S//5      R                  [        S4[        S4/5      [        SS/SS//5      :X  d   e[        [        S/[        [        -   S//5      R                  [        S[        S05      [        SS/SS//5      :X  d   e[        [        [        -  //5      R                  [        [        S-
  [        [        S-
  0SS	9[        [        S-
  [        S-
  -  //5      :X  d   eg )
Nr?   rB   r   r@   r   r   r  T)simultaneous)r   r3   subsr$   r4   rC   rY   rN   	test_subsr    s   !Q!Q 0166q!<AQRTUPVGW@XXXX!Q!a% 45::QGaW;MNB7RG$%& & &!Q!a% 45::QGaW;MNB7RG$%& & &!Q!a% 45::Ar1b>JB7RG$%& & &!A#(--q!a%AE.BQU-VQUQUO$%&' ' 'rY   c                  X    [        / SQ/ SQ/ SQ/5      n U R                  5       S:X  d   eg )Nr  )r   r   r   )r   r   r      )r   r  r  s    rN   
test_tracer    s-    i 	A 779??rY   c                  *   [        S[        /[        S//5      R                  [        S05      [        SS/SS//5      :X  d   e[        [        S/[        [        -   S//5      R                  [        S[        S05      [        SS/SS//5      :X  d   eg )Nr?   rB   r   r@   r   r   r  )r   r3   xreplacer$   r4   rC   rY   rN   test_xreplacer    s    !Q!Q 01::Aq6BAq6Aq6"#$ $ $!Q!a% 45>>2q"~NB7RG$%& & &rY   c                    ^ [        SS/ SQ5      m[        [        U4S j5        [        [        U4S j5        TR	                  SS/SS//5      n TR                  SS/SS//5      U s=:X  a  [        / S	Q/ S
Q/ SQ/5      :X  d   e   eTR                  SS/SS//5      n TR                  SS/SS//SS9U s=:X  a  [        / SQ/ SQ/ SQ/5      :X  d   e   eTR                  SS/SS//SS9n TR                  SS/SS//SSS9U s=:X  a  [        / SQ/ SQ/ SQ/5      :X  d   e   eTR                  / SQ5      [        / S	Q/ S
Q/ SQ/5      :X  d   eSSKJ	n  TR                  U" / SQ5      5      [        / S	Q/ S
Q/ SQ/5      :X  d   eg )NrA   rB   )r?   r@   rA   rB   r   r   r   r   r   r  r     c                  ,   > T R                  SS//5      $ )Nr   r   )permuterV  s   rN   rc   test_permute.<locals>.<lambda>  s    qyy1a&2rY   c                  8   > T R                  [        S5      5      $ )Nr3   )r  r   rV  s   rN   rc   r    s    qyy5rY   r   r@   r?   r]  )r   r  r  r  r\  r   )orientation)r@   rA   r?   rB   )r   r   r   r   )r  r  r   r  backward)	direction)r  r  )rA   r?   r@   rB   )r   r   r   r   )r  r   r  r  )r?   r@   r   rA   )Permutation)
r   r   r   
ValueErrorpermute_rowsr  r$   permute_colssympy.combinatoricsr  )r   r  r   s     @rN   test_permuter    s   Q#JKA
:23
:56	AA'(A99q!fq!f%&! >v,;,;,;7= 0> > > > > >
 	
AA'(A99q!fq!f%69:a ."+++$- .. . . . . 	
AA':>A99q!fq!f%6Z9PTU ."+++$- .. . . . . 99\"f,;,;,;.= '> > > >
 099[./6,;,;,;;= 4> > > >rY   c                  D   [        / SQ/ SQ/ SQ/ SQ/5      n U R                  S5      nU[        / SQ/ SQ/ SQ/ SQ/5      :X  d   eU R                  S5      nU[        / SQ/ SQ/ SQ/ SQ/5      :X  d   eU R                  5       nU[        / SQ/ SQ/ SQ/ SQ/5      :X  d   eg )Nr?   r?   r?   r?   r@   )r   r   r?   r?   )r   r   r   r?   r   r   r   r   r   )r   r?   r?   r?   )r   upper_triangular)r   Rs     rN   test_upper_triangularr    s    	 	A 	
1A$$$$$	&     	
2A$$$$$	&     	
A$$$$$	&    rY   c                  D   [        / SQ/ SQ/ SQ/ SQ/5      n U R                  5       nU[        / SQ/ SQ/ SQ/ SQ/5      :X  d   eU R                  S5      nU[        / SQ/ SQ/ SQ/ SQ/5      :X  d   eU R                  S5      nU[        / SQ/ SQ/ SQ/ SQ/5      :X  d   eg )Nr  )r?   r   r   r   )r?   r?   r   r   )r?   r?   r?   r   r@   r   r  )r   lower_triangularr   )r   Ls     rN   test_lower_triangularr    s    $$$$	 	A 	
A$$$$$	&& ' ' ' ' 	
1A$$$$$	&     	
2A$$$$$	&    rY   c                      [        SS/[        [        //5      n [        U 5      [        SS/[	        [        5      [	        [        5      //5      :X  d   eg )Nr?   r   r@   )r   r3   r4   absr   r   s    rN   test_absr    sG    q"g1v./Aq6)Aq6CFCF3C*DEEEErY   c            	      J  ^ ^ [        / SQ[        [        [        /S[        -  S[        [        -  //5      m T T -   [        / SQS[        -  S[        -  S[        -  /S[        -  SS[        -  [        -  //5      :X  d   e[        SSSS/5      m[	        [
        U U4S j5        g )	Nr   r@   i)r@   rB   r   rB   ir?   c                     > T T-   $ r]   rC   r   rg   s   rN   rc   test_add.<locals>.<lambda>  s	    q1urY   )r   r3   r4   r5   r   r   r  s   @@rN   test_addr    s    i!QQqS#qsODEAq5()ac1Q3!_qsDRSTURUVWRWFX)YZZZZQAq6*A
:}%rY   c                    ^^ [        S5      m[        S5      m[        [        UU4S j5        [        [        U4S j5        TT-  n U S   S:X  d   eU S   S:X  d   eU S	   S
:X  d   eU S   S
:X  d   eU S   S:X  d   eU S   S:X  d   e [	        S5        U S   S:X  d   eU S   S:X  d   eU S	   S
:X  d   eU S   S
:X  d   eU S   S:X  d   eU S   S:X  d   e TR                  U 5      nU[        TU 5      :X  d   eUS   S:X  d   eUS   S:X  d   eUS	   S:X  d   eUS   S
:X  d   eUS   S:X  d   eUS   S:X  d   e[        [        UU4S j5        T[        S5      -  n [        U [         5      (       d   eU S   [        :X  d   eU S   S[        -  :X  d   eU S	   S[        -  :X  d   eU S   S:X  d   e[        T-  nX:X  d   eST-  n [        U [         5      (       d   eU S   S:X  d   eU S   S:X  d   eU S	   S:X  d   eU S   S:X  d   e [	        S5        [        U [         5      (       d   eU S   S:X  d   eU S   S:X  d   eU S	   S:X  d   eU S   S:X  d   e [        [        SS5      5      n[        SS5      * n[        XDU/5      nUR                  U5      [        U/U/U//5      :X  d   eg ! [
         a     GNf = f! [
         a     Nsf = f)N)r   r  rP  )r   )rA   r   c                     > TT -  $ r]   rC   r   r   s   rN   rc   %test_multiplication.<locals>.<lambda>-  s	    qsrY   c                     > T 0 -  $ r]   rC   rV  s   rN   rc   r  .  s	    adrY   r   r   r   r@   r   r   r   )r@   r      r  r   z	c = a @ brB   c                  &   > T R                  T5      $ r]   )multiply_elementwiser  s   rN   rc   r  L  s    q55a8rY   r3   rA   r   r     z	c = 5 @ br?   )r   r   r   	TypeErrorevalSyntaxErrorr  r'   r   rG   r3   r$   r(   r   )r   hc2r   _hr   r   r   s         @@rN   test_multiplicationr  !  sk     	A 	  	A
 :{#
9l#	!AT7a<<T7a<<T7a<<T7a<<T7b==T7a<<
[ w!||w!||w!||w!||w"}}w!||	q!A+Aq1111T7a<<T7a<<T7b==T7a<<T7a<<T7a<<
:89	F3KAa-....T7a<<T7ac>>T7ac>>T7a<<	
QB7N7	AAa-....T7a<<T7c>>T7c>>T7a<<	[ !12222w!||w#~~w#~~w!|| 	tAqzA
1a.B|A!!!$			0 )   i  N  s$   
J3 K 3
K K
KKc                  .   [        SS/SS//5      n U R                  S5      [        :X  d   eU R                  S5      [        :X  d   e [	        S5         [	        S5        g ! [
         a     N[         a     N$f = f! [
         a     g [         a     g f = f)Nr?   r@   rA   rB   z2 @ aza @ 2)r$   
__matmul__NotImplemented__rmatmul__r  r  r  rV  s    rN   test_matmulr  t  s    AA A<<?n,,,==~---WW      s0   	A! A< !
A9-	A98A9<
B	BBc                       " S S[         5      n [        SS/SS//5      nU " 5       nX!-  [        USU-  /SU-  SU-  //5      :X  d   eX-  [        USU-  /SU-  SU-  //5      :X  d   eg)zX
Test that if explicitly specified as non-matrix, mul reverts
to scalar multiplication.
c                        \ rS rSrSrSrSrSrg)test_non_matmul.<locals>.fooi  Fr   rC   N)rT   rU   rV   rW   	is_Matrixis_MatrixLiker   rX   rC   rY   rN   foor    s    	rY   r  r?   r@   rA   rB   N)r   r$   )r  r   r   s      rN   test_non_matmulr    s    
d 
 	AA AA3&1ac(QqS!A#J/00003&1ac(QqS!A#J/0000rY   c                     [        [        S 5        [        SS/SS//5      n U S-  S S  S:X  d   e[        / SQ/ SQ/ S	Q/5      n U S-  S S  S
:X  d   eU S-  [        S5      :X  d   eU S-  U :X  d   e[        S//5      S-  S   SS-  :X  d   e[        SS/SS//5      [	        S5      -  [        SS/SS//5      :X  d   e[        SS/SS//5      n U R                  SSS9U R                  SSS9:X  d   eg )Nc                      [        S5      S-  $ )Nr   r@   r$   rC   rY   rN   rc   test_power.<locals>.<lambda>  s    ):rY   r@   rA   rB   r   )i  i  i,*  i7  )r@   r?   rA   )rB   r@   rB   )r   r  r?   )	i"  i     i  i  ip  i  i  i  r   r?   d   r   r   r  r        cayley)methodmultiply)r   r   r   r&   r   r$   powrC  s    rN   
test_powerr$    s-   
!:;q!fq!f-.AqD!92222iJ?@AqD!9EEEEa43q6>>a4199 1#'3.5C???!Q!Q 0171:=AUXY[]W^aceg`hViAjjjj1qe}A55H5%r*)EEEErY   c                  N    [        SSSS/5      n U * [        SSSS/5      :X  d   eg )Nr?   r@   r   r   r   rf   s    rN   test_negr&    s2    QAq6*A2%aRH5555rY   c                  P    [        SSSS/5      n X -
  [        SSSS/5      :X  d   eg )Nr?   r@   r   r   rf   s    rN   test_subr(    s2    QAq6*A5(A1v6666rY   c            	          [        SSSS/5      n U S-  [        SS[        R                  [        S5      S-  /5      :X  d   eg rg  )r   r   r   rf   s    rN   test_divr*    sA    QAq6*AQ3&q!affad1f-=>>>>rY   c                  D   [        [        R                  SS5      5      / SQ:X  d   e[        [        R                  S5      5      / SQ:X  d   e[        [        R                  S5      5      [        :X  d   e[        [        R                  S[        S95      [        :X  d   eg )Nr@   rO  r  )r   r   r&   typer$   rC   rY   rN   test_eyer-    s    !%%a+,<<<!%%a()\999!%%a()->>>>!%%aV%45???rY   c                     [        [        R                  SS5      5      / SQ:X  d   e[        [        R                  S5      5      / SQ:X  d   e[        R                  SS5      [        / SQ/ SQ/5      :X  d   e[	        [        R                  S5      5      [        :X  d   e[	        [        R                  S[        S95      [        :X  d   eg )Nr@   r  rA   r?   r?   r?   r  )r   r   r(   r$   r,  rC   rY   rN   	test_onesr0    s    !&&q!,-===!&&q)*l:::!!!Q'69i2H+IIII!&&q)*.????!&&qf&56&@@@rY   c                     [        [        R                  SS5      5      / SQ:X  d   e[        [        R                  S5      5      / SQ:X  d   e[        R                  SS5      [        / SQ/ SQ/5      :X  d   e[	        [        R                  S5      5      [        :X  d   e[	        [        R                  S[        S95      [        :X  d   eg )Nr@   r  rA   r  r  )r   r   r)   r$   r,  rC   rY   rN   
test_zerosr2    s    !''1-.,>>>!''*+|;;;""1a(FIy3I,JJJJ!''*+/@@@@!''v'676AAArY   c                  	  ^ ^^^ [         R                  m[        SS/SS//5      m [        S[        /[        S//5      m[        S[        S/[        S[
        /[        [        [
        //5      mT" T TT5      [        / SQ/ SQSSS[        SS/SS[        SSS/SSSSS[        /SSSS[        S//5      :X  d   eT" T TT5      [        / SQ/ SQSSS[        SSS/SS[        SSSS/SSSSS[        S/SSSS[        S[
        /SSSS[        [        [
        //5      :X  d   eT" T TT5      [        / SQ/ SQSSS[        SSS/SS[        S[
        SS/SS[        [        [
        SS/SSSSSS[        /SSSSS[        S//5      :X  d   e[        [        [        [
        /5      m [        SS/SS	//5      m[        S
S//5      mT" T STT5      [        [        SSSSS/[        SSSSS/[
        SSSSS// SQ/ SQ/ SQ/ SQ/5      :X  d   e[        [        U UUU4S j5        T" S5      [        S//5      :X  d   eT" SSS9[        SS/SS//5      :X  d   eT" SSS9[        SS/SS//5      :X  d   eT" SSSS9[        SS/SS/SS//5      :X  d   eT" SS/6 [        SS/SS//5      :X  d   eT" [        SS/5      5      [        S/S//5      :X  d   eT" SSS/S	/SS9T" S/SS/S	//SS9s=:X  a  [        SS/SS/S	S//5      :X  d   e   e[        T" S5      5      [         :X  d   e[        T" S[        S95      [        :X  d   e[        R                  " / SQ5      [        R                  " SSS5      :X  d   e[        R                  " / SQSS9R                  S:X  d   e[        R                  " / SQ/5      R                  S:X  d   e[        R                  " / SQ/SS9R                  S:X  d   e[        R                  " / SQ//5      R                  S:X  d   e[        R                  " [        SS5      SS5      [        / SQ/ SQ/5      :X  d   e[        R                  " [        SS5      SS5      [        SS/SS/SS/SS//5      :X  d   eg )Nr?   r@   rA   )r?   r@   r   r   r   r   )r@   rA   r   r   r   r   r   )r?   r@   r   r   r   r   r   )r@   rA   r   r   r   r   r   rB   r   r   r   )r   r   r   r   r   r   )r   r   r?   r@   r   r   )r   r   rA   rB   r   r   )r   r   r   r   r   r   c                     > T" T STTSS9$ )Nr   r   r   rC   r   r   r   r%   s   rN   rc    test_diag_make.<locals>.<lambda>  s    tAq!QQ7rY   r5  )r   )r   r   F)unpackr  r   r  r  )r   r   r?   r   )r   r   r   r@   )r   r%   r$   r3   r4   r5   r   r  r,  r   r(   r6  s   @@@@rN   test_diag_maker9    sT   !!DAA AAA AAq	Aq!9q!Qi01A1a=F	
Aq!Q	
Aq!Q	
Aq!Q	
Aq!Q$     1a=F	
Aq!Q1	
Aq!Q1	
Aq!Q1	
Aq!Q1	
Aq!Q1$     1a=F	
Aq!Q1	
Aq!Q1	
Aq!Q1	
Aq!Q1	
Aq!Q1$     	1ayAAA AAxA 1av	
Aq!Q	
Aq!Q	
Aq!Q'      :787fqcUm###?fq!fq!f%56666?fq!fq!f%56666"fq!fq!fq!f-E&FFFF!Q=F	
A	
A$     1v6	
	
+ $    QFAu-1#1vs#E26<	
A	
A	
A> 7    
 Q=----QF#$...;;y!V[[Aq%9999;;y/55???;;	{#))V333;;	{51776AAA;;}%++v555;;tAqz1a(F4 -    ;;tAqz1a(F	
A	
A	
A	
A	4 -   rY   c                    ^ [        SS[        S5      5      mTR                  5       n U TR                  S5      :X  d   e[        U 5      S:X  d   e[        TR                  S5      5      S:X  d   e[        TR                  S5      5      S:X  d   e[        TR                  S	5      5      S
:X  d   e[	        TR                  5       5      [	        T5      :X  d   e[        SSSS05      n[	        UR                  5       5      [	        U5      :X  d   e[	        T5      [	        U5      :w  d   e[        [        U4S j5        [        [        U4S j5        [        [        U4S j5        [        S	S5      n[        [        SUR                  -
  UR                  5       Vs0 s H  nU[        UR                  U5      5      _M      sn5      U:X  d   eg s  snf )NrA   r   r   )r   rB   r   r?   )r?   r   r   )rA   r   r@   )r@   r   c                  &   > T R                  S5      $ r  diagonalr   s   rN   rc   test_diagonal.<locals>.<lambda>,  s    qzz!}rY   c                  &   > T R                  S5      $ )Nr  r<  r   s   rN   rc   r>  -  s    qzz"~rY   c                  .   > T R                  [        5      $ r]   )r=  r   r   s   rN   rc   r>  .  s    qzz"~rY   )r$   r   r=  tupler,  r*   r   r  r(   r+   r   r   r   )r   srJ   ra   r   s       @rN   test_diagonalrC     s   q!U1XA	

A

18y   A6)))B F***A4'''

a(((QFA;'A

a(((7d1g
:,-
:-.
:-.Q
Aqx(*(A d1::a=))(* +./0 0 0 *s   %Gc                  l   [         R                  SS5      [         R                  SSS9s=:X  af  [         R                  SSS9s=:X  aM  [         R                  SSSS9s=:X  a3  [         R                  SSSS9s=:X  a  [        / SQ/ S	Q/ S
Q/5      :X  d   e   e[         R                  SSSS9[        / SQ/ SQ/ SQ/5      :X  d   e[        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [         R                  SSS9[         R                  SSS9:X  d   eg )NrA   r@   
eigenvalue)sizerF  upper)band)rG  eigenvalrF  )r@   r?   r   )r   r@   r?   r  lower)r@   r   r   r  r   c                  ,    [         R                  S5      $ r|  r   jordan_blockrC   rY   rN   rc   #test_jordan_block.<locals>.<lambda>D  s    0==a@rY   c                  .    [         R                  SS5      $ )Ng      @r@   rM  rC   rY   rN   rc   rO  F  s    0==c1ErY   c                  (    [         R                  SS9$ )Nr@   rE  rM  rC   rY   rN   rc   rO  H  s    0===KrY   c                  *    [         R                  SSS9$ )Nr@   rB   )rF  rJ  rM  rC   rY   rN   rc   rO  K  s    **q + "rY   )rG  rJ  )r   rN  r$   r   r  rC   rY   rN   test_jordan_blockrS  4  sV   ))!Q/3D3Q3QRS`a3Q3b  --1-C --a-A !--q . 2
       ))!QW)=I B       
 :@A
:EF
:KL
:"#
 ))qQ)?&&A&:; ; ;rY   c            	        ^ [        SS/SS//5      n U R                  [        S/S//5      5      [        S/S//5      /:X  d   eU R                  [        S/S//5      SS9[        S[        S5      -  S-  /[        S5      S-  //5      /:X  d   eU R                  [        S/S//5      [        S/S//5      5      [        S/S//5      [        [        S	S5      /[        S
S5      //5      /:X  d   eU R                  [        S/S//5      [        S/S//5      5      [        S/S//5      /:X  d   eU R                  [        S/S//5      5      / :X  d   e[        / SQ/ SQ/ SQ/5      n[        S/S//5      [        S/S//5      [        S/S//5      /mUR                  " T6 [        S/S//5      [        [        SS5      /[        SS5      //5      /:X  d   e[        / SQ5      [        / SQ5      [        / SQ5      /m[	        [
        U4S j5        [        / SQ5      [        / SQ5      [        / SQ5      /m[	        [
        U4S j5        g )Nr?   r@   rA   rB   T)	normalizer   r   ir   r   )r   r?   r   )rA   r   r  )r   r   r@   r   r         r  r   )r?   rB   r   c                  0   > [         R                  " T SS06$ N	rankcheckTr$   orthogonalizevecss   rN   rc   $test_orthogonalize.<locals>.<lambda>d      v33TJTJrY   r   r   c                  0   > [         R                  " T SS06$ rY  r[  r]  s   rN   rc   r_  g  r`  rY   )r$   r\  r   r   r   r  )r   rg   r^  s     @rN   test_orthogonalizerb  S  s^   AA A??6A3*-.6A3*3E2FFFF??6A3*-?>	!DG)A+a,	-./ / /??6A3*-vtaSk/BC	!qc
	VhsA&6%7(1a.9I$JKLM M M??6A3*-vtaSk/BC	"s	  ??6A3*-."444	:y12ARD1#;"s!4frdRD\6JKD??D!	"s	fx2&7(2r:J9K%LMNO O O 9vi0&2CDD
:JK9vi0&2CDD
:JKrY   c                  d   [         R                  " S5      u  pU [        / SQ/ SQ/ SQ/5      :X  d   eU[        / SQ/ SQ/ SQ/5      :X  d   e[         R                  " S5      u  pU [        / SQ/ SQ/ S	Q/ S
Q/ SQ/ SQ/ SQ/5      :X  d   eU[        / SQ/ SQ/ SQ/ S
Q/ SQ/ SQ/ SQ/5      :X  d   eg )Nr?   )r   r?   r   )r?   r   r?   )r   r?   r?   )r?   r?   r   rA   )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   r?   r?   r?   r   )r   r   r   r   r?   r@   r?   )r   r   r   r   r   r?   rA   )rA   r?   r   r   r   r   r   )r?   r@   r?   r   r   r   r   )r   r?   r?   r?   r   r   r   )r$   	wilkinson)wminuswpluss     rN   test_wilkinsonrg  i  s    $$Q'MFV * ) )+ , , , , F%%%' ( ( ( (
 $$Q'MFV 8 7 7 7 7 7         F11111113 4 4 4 4rY   c                      [        S5      u  p[        SSX/5      nUR                  U 5      [        SSSS/5      :X  d   eg )Nx yr@   r?   r   )r   r   diffr$   r3   r4   r   s      rN   	test_diffrl    s@    5>DA1a!(A66!9q!aV,,,,rY   c                      [        S5      u  p[        SSX/5      nUR                  U 5      [        SSU S-  S-  X-  /5      :X  d   eg )Nri  r@   r?   )r   r   	integrater$   rk  s      rN   test_integratero    sJ    5>DA1a!(A;;q>VAq1a4613-8888rY   c            	        ^^ [        S5      u  p[        SSU [        U5      -  U [        U5      -  U S-  /5      n[        SSX/5      n[	        [        U5      U * [        U5      -  /[        U5      U [        U5      -  /SU -  S//5      nUR                  U5      U:X  d   e[        SS/ SQ5      m[        SS/ SQ5      m[        [        U4S j5        [        [        UU4S	 j5        g )
Nzrho,phirA   r?   r@   r   r\  rB   c                  <   > T R                  [        SS/5      5      $ rg  )jacobianr$   r   s   rN   rc    test_jacobian2.<locals>.<lambda>  s    ajjA8rY   c                  &   > TR                  T 5      $ r]   )rr  r+  s   rN   rc   rs    s    bkk!nrY   )r   r   r   r   r$   rr  r   r  )rhophiXYJr   r   s        @@rN   test_jacobian2rz    s    y!HC1a#c#h,CHc1f!EFA1a#,A	SC4C=!	SCCL!cEq! 	A
 ::a=A1a.A	Aq,	/B
989
9,-rY   c            	          [        S5      u  p[        SSSU -  U/5      nUR                  U S5      [        SS[	        SS5      U/5      :X  d   eg )Nri  r@   r?   r   )r   r   limitr$   r   rk  s      rN   
test_limitr}    sO    5>DA1a!A#q*A771a=F1a(1a.!)<====rY   c                     ^ ^ [        / SQ/ SQ/ SQ/5      m / SQm[        [        U U4S j5        [        [        U U4S j5        g )Nr   r   r   r/  c                     > T T-  $ r]   rC   rJ   vs   rN   rc   "test_issue_13774.<locals>.<lambda>  	    acrY   c                     > TT -  $ r]   rC   r  s   rN   rc   r    r  rY   )r$   r   r  r  s   @@rN   test_issue_13774r    s-    	9i01AA
9k"
9k"rY   c                  F  ^^ [        S5      m[        S5      m[        [        S 5        [        [        U4S j5        [        [        U4S j5        [        [        UU4S j5        [        S5      u  pn[        R
                  " [        SU /T5      5      [	        U * /5      :X  d   e[        R
                  " [        SX/T5      5      [	        S	U * /SU* //5      :X  d   e[        R
                  " [        SX!U /T5      5      [	        S	S	U * /SS	U* /S	SU* //5      :X  d   eg )
Nr3   r4   c                  .    [         R                  " S5      $ r  )r$   	companionrC   rY   rN   rc    test_companion.<locals>.<lambda>  s    v//2rY   c                  F   > [         R                  " [        S/T 5      5      $ r  r$   r  r0   r   s   rN   rc   r    s    v//aS!=rY   c                  H   > [         R                  " [        SS/T 5      5      $ r:  r  r   s   rN   rc   r    s    v//aVQ@rY   c                  N   > [         R                  " [        T T-  T T/5      5      $ r]   r  )r3   r4   s   rN   rc   r    s    v//QqS1a&0ABrY   zc0:3r?   r   )r   r   r  r   r$   r  r0   )c0c1r	  r3   r4   s      @@rN   test_companionr    s   sAsA
:23
:=>
:@A
:BCJBBD!R!,-">>>D!Ra01RC1rc(#$% % %D!RR!45AsaRC[1a"+678 8 8rY   c            	      B   [        S5      u  pn[        XU/5      nUR                  [        XU// SQ5      5      nU[        S/S/S//5      :X  d   e[        X X U /X X U /X X U //5      nUR                  [        U /S/5      5      nU[        / SQ/ SQ/ SQ/5      :X  d   eg )Nzx, y zr   r?   r@   rA   )r?   r?   r?   r?   r?   )r   r$   r  zip)r3   r4   r5   r-  r.  s        rN   test_issue_10589r    s    hGA!	q		B	aAY	*	+B!qcA3((((	!a1q/A!?C	DB	aS1#	B/?KLLLLrY   c                       " S S[         5      n [        SS/ SQ5      nU " SS/ SQ5      nX-  n[        X05      (       d   eU[        SS/SS//5      :X  d   eg )	Nc                   2    \ rS rSr\R
                  S-   rSrg)test_rmul_pr19860.<locals>.Fooi  g{Gz?rC   N)rT   rU   rV   rW   r,   _op_priorityrX   rC   rY   rN   Foor    s    )66=rY   r  r@   r\  r   r  r  r  )r.   r$   rG   )r  r   r   r   s       rN   test_rmul_pr19860r    sg    >" > 	q!\"AAq,A 	
AaB"b*++++rY   c                     ^ ^ [        SS/SS//5      m [        SS/SS//5      m[        [        U U4S j5        [        [        U U4S j5        g )Nr?   r@   rA   rB   c                     > TT -   $ r]   rC   r   r   s   rN   rc   "test_issue_18956.<locals>.<lambda>  	    a!erY   c                     > T T-   $ r]   rC   r  s   rN   rc   r    r  rY   )Arrayr$   r   r  r  s   @@rN   test_issue_18956r    sD    1v1vA1qe}A
9m$
9m$rY   c                       " S S[         5      n [        SSSS/5      nX" 5       :w  d   e " S SU 5      nX" 5       :X  d   eg )Nc                        \ rS rSrS rS rSrg)test__eq__.<locals>.Myi  c              3      #    Sv   Sv   g 7frg  rC   selfs    rN   __iter__test__eq__.<locals>.My.__iter__  s     GGs   
c                     [        U 5      U   $ r]   )r   )r  ra   s     rN   __getitem__"test__eq__.<locals>.My.__getitem__  s    :a= rY   rC   N)rT   rU   rV   rW   r  r  rX   rC   rY   rN   Myr    s    		!rY   r  r@   r?   c                       \ rS rSrS rSrg)test__eq__.<locals>.My_sympyi  c                     [        U 5      $ r]   r  r  s    rN   _sympy_$test__eq__.<locals>.My_sympy._sympy_  s    $<rY   rC   N)rT   rU   rV   rW   r  rX   rC   rY   rN   My_sympyr    s    	 rY   r  )objectr$   )r  r   r  s      rN   
test__eq__r    sL    !V ! 	q!aVA99 2   
??rY   )sympy.testing.pytestr   r   r   sympy.assumptionsr   sympy.core.exprr   sympy.core.addr   sympy.core.functionr	   sympy.core.kindr
   r   sympy.core.numbersr   r   r   r   r   sympy.core.singletonr   sympy.core.symbolr   r   $sympy.functions.elementary.complexesr   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   sympy.matrices.exceptionsr   r   sympy.matrices.kindr   rD   r   r   r   r   r    r!   r"   rE   r#   sympy.matricesr$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   sympy.polys.polytoolsr0   sympy.utilities.iterablesr1   #sympy.tensor.array.dense_ndim_arrayr2   r  	sympy.abcr3   r4   r5   rO   rQ   rh   rm   ro   rv   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  r8  r=  r@  rD  rL  rS  rW  rZ  r_  rb  re  ri  rk  ro  rs  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-  r0  r2  r9  rC  rS  rb  rg  rl  ro  rz  r}  r  r  r  r  r  r  rC   rY   rN   <module>r     s>   G F     ( 5 ; ; " - 4 6 9 = F *7 7 7 3    ' - P  :1B NO]  
=3 ~@P  
@6 ~@P  
@6 ~@P  
@6 NO]  
 ^_n  
?&P!5
M&, 
P/"N. 4'*',"@*3@#=$" 
%J0($$'9
'
:O9$	'&">HBBF
&Pf21 F6
7
?
@ABL^0(;>L,4D - -9.">#8M,%{#     
 sH   	I;,JJ2J1K2K;
J

J
J.1
K 
K
K$