
    \h                    &   S SK rS SKrS SKJr  S SKJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrIJJrJJKrKJLrL  S SKMJNrNJOrOJPrPJQrQJRrRJSrSJTrTJUrU  S SKVJWrWJXrX  S SKYJZrZ  S SK[J\r\J]r]J^r^  S SK_J`r`  S S	KaJbrbJcrcJdrd  S S
KeJfrf  S SKgJhrhJiriJjrjJkrkJlrlJmrm  S SKnJoroJprp  S SKqJrrr  \\%\\4rs\\%4rt\\4ruS rvS rwS rxS ryS rzS r{S r|S r}S r~S rS rS rS rS rS rS rS rS rS  rS! rS" rS# rS$ rS% rS& rS' rS( rS) rS* rS+ rS, rS- rS. rS/ rS0 rS1 rS2 rS3 rS4 rS5 rS6 rS7 rS8 rS9 rS: rS; rS< rS= rS> rS? rS@ rSA rSB rSC rSD rSE rSF rSG rSH rSI rSJ rSK rSL rSM rSN rSO rSP rSQ rSR rSS rST 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 rSr rSs rSt rSu rSv rSw r\lSx 5       rSy rSz rS{ rS| rS} rS~ rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS Gr S GrS GrS GrS GrS GrS GrS GrS GrS Gr	S Gr
S GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS Gr S Gr!S Gr"S Gr#S Gr$S Gr%S Gr&S Gr'S Gr(S Gr)S Gr*S Gr+S Gr,S Gr-S Gr.S Gr/S Gr0S Gr1S Gr2S Gr3S Gr4S Gr5S Gr6S Gr7\lS 5       Gr8S Gr9S Gr:S Gr;S Gr<S Gr=S Gr>S Gr?S Gr@S GrAS GrBS GrCS GrDS GrES GrFS GrGS GrHS GrIS GrJS GrKS GrLS GrMS GrNS GrOS GrP\k" S5      S 5       GrQS GrRS GrSg)    N)Hashable)GAbsAddArrayDeferredVectorEExpr	FiniteSetFloatFunctionGramSchmidtIImmutableDenseMatrixImmutableMatrixImmutableSparseMatrixIntegerKroneckerDeltaMatPowMatrixMatrixSymbolMaxMinMutableDenseMatrixMutableSparseMatrixPolyPowPurePolyQ
QuaternionRationalRootOfSSparseMatrixSymbolTupleWildbanded
casoratiancosdiagdiffexpexpandeyefloorhessian	integratelogmatrix_multiply_elementwisenanonesoopi
randMatrix	rot_axis1	rot_axis2	rot_axis3rot_ccw_axis1rot_ccw_axis2rot_ccw_axis3signsimpsimplifysinsqrtsstrsymbolssympifytantrigsimp	wronskianzeroscancel)abcdtxyz)
NumberKindUndefinedKind)_find_reasonable_pivot_naive)MatrixErrorNonSquareMatrixError
ShapeError)
MatrixKind)_dotprodsimp_state	_simplifydotprodsimp)ArrayDerivative)ignore_warningsraisesskipskip_under_pyodideslowwarns_deprecated_sympy)captureiterable)versionc                     [        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 )N      )   rh   ri            rj   rj   rl   rj   rk   rl   rm   rj   rh   ri   )rp   ro   rk   rm   )r   rowscolslistrP   s    \/var/www/auris/envauris/lib/python3.13/site-packages/sympy/matrices/tests/test_matrixbase.pytest__MinimalMatrixrv   #   sc   q!'(A66Q;;66Q;;Q4199T7a<<7((((!Q$=I%%%!Q$=QF"""!Q$=DG###QT7a<<!9>>9i()Q...9i()Q...9i()Q...()Q...AAA/0A5665    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 Nrj   rh   ri   rk   r   )r   kindrY   rS   rP   rT   r#    rw   ru   	test_kindr|   6   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Orw   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   rj   rj   r   rn   )rD   r   r   r   r   todok)rK   rL   rM   rN   m1m2m3m4s           ru   
test_todokr   @   s    JA!	aVaV,	-B	vv.	/B	qfqf-	.B	/	0B88: 5rxxz 5RXXZ 5q45 5 5 5 5rw   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 )Nrh   ri   rk   )	r"   OneHalfrP   rQ   ZerorR   r   tolist)lstflat_lstms      ru   test_tolistr   J   s    EE1661Q3'!Q1a41quufac1:M
NCqvvqsAFFAq!QT1quufac1MHq!XA88:rw   c                      [        [        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 )Nr   rj   r   rj   rh   )r   r"   r   r   rP   todod)r   dicts     ru   
test_tododr   Q   s[    
QK!Q01A155zq!&&kq!f5D779rw   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 )Nri   	rj   rh   ri   rk   rl   rm         	   c                  &   > T R                  S5      $ Nrl   row_deles   ru   <lambda>"test_row_col_del.<locals>.<lambda>Y       qyy|rw   c                  &   > T R                  S5      $ Nr   r   s   ru   r   r   Z       qyy}rw   c                  &   > T R                  S5      $ r   col_delr   s   ru   r   r   [   r   rw   c                  &   > T R                  S5      $ r   r   r   s   ru   r   r   \   r   rw   rh   rp   ro   rj   rk   rl   r   r   r   r   r   rm   r   )r   r_   
IndexErrorr   r   r   r   s   @ru   test_row_col_delr   W   s&   19: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Lrw   c                  F   [        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 Nrj   rh   ri   )r   rP   rQ   rR   get_diag_blocks)rK   rL   rM   s      ru   test_get_diag_blocks1r   e   s    AA AAA AAq	Aq!9q!Qi01A1#%%%1#%%%1#%%%rw   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   rP   rQ   rR   r*   rq   rr   r   )rK   rL   rM   ABCDs          ru   test_get_diag_blocks2r   n   sA   AA AAA AAq	Aq!9q!Qi01AaAQ1tA!}d1mKJA!qvvqvvq!Aqvvqvvq!Aqvvqvvq!Aqvvqvvq!A1)+++1)+++1)+++1)+++rw   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 )Nri   r   r   rj   rp   rj   rk   r   )r   rowcolr   s    ru   test_row_colr   ~   sO    q!01A558vaI....558vaI....rw   c                  ~    [        S5      R                  [        / SQ5      5      [        / SQ/ SQ/ SQ/5      :X  d   eg )Nri   r   r   r   )rj   r   r   r   )r   rj   r   r   )r   r   rj   r   )r.   row_joinr   r{   rw   ru   test_row_joinr      s;    q6??6),-<! "" " "rw   c                      [        S5      R                  [        / SQ/5      5      [        / SQ/ SQ/ SQ/ SQ/5      :X  d   eg )Nri   r   rj   r   r   r   rj   r   r   r   rj   )r.   col_joinr   r{   rw   ru   test_col_joinr      s@    q6??69+./9   rw   c                      [        / SQ/5      n [        SS5       HV  n/ SQnUR                  US5        [        S5      R	                  X5      R                  S5      R                  5       U:X  a  MV   e   g )Nrk   rk   rk   rl   r   rk   ri   r   )r   rangeinsertr.   
row_insertr   flat)r4ils      ru   test_row_insertr      sa    		B2q\	A1v  '++A.335::: rw   c                     [        / SQ5      n [        SS5       HV  n/ SQnUR                  US5        [        S5      R	                  X5      R                  S5      R                  5       U:X  a  MV   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   rl   r   r   r   rk   ri   r   rm   rh   )rj   r   r   rh   rh   r   r   r   )r   rj   r   rh   rh   r   r   r   )r   r   rj   rh   rh   r   r   r   )r   r   r   rh   rh   rj   r   r   )r   r   r   rh   rh   r   rj   r   )r   r   r   rh   rh   r   r   rj   )r   r   r   rI   
col_insertr   r   r.   )c4r   r   s      ru   test_col_insertr      s    			B2q\	AQx""1)--a05571<<< 
 q6QAAAAAQRTUPV'W XY++++++- .. . .rw   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 )Nrk   ri   c                     U S-  U-   $ Nri   r{   r   js     ru   r   test_extract.<locals>.<lambda>       !A#'rw   )r   rj   ri   r   rj   rh   )r   rj   ri   rk   r   
   r   r   rh   )r   r   rh   r   r      c                  ,   > T R                  S/S/5      $ )Nrk   r   extractr   s   ru   r   r          qyy!qc2rw   c                  ,   > T R                  S/S/5      $ )Nr   ri   r   r   s   ru   r   r      r   rw   )r   r   r   r_   r   r   s   @ru   test_extractr      s    q!)*A99YA'6!Q8K+LLLL99aVY'6!Q8K+LLLL99U1XuQx(A---
:23
:23rw   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 )Nrk   ri   c                     U S-  U-   $ r   r{   r   s     ru   r   test_hstack.<locals>.<lambda>   r   rw   c                     U S-  U-   $ r   r{   r   s     ru   r   r          1Q37rw   )	r   rj   rh   r   rj   rh   r   rj   rh   )	ri   rk   rl   ri   rk   rl   ri   rk   rl   )	rm   r   r   rm   r   r   rm   r   r   )	r   r   r   r   r   r   r   r   r   c                  (   > T R                  T T5      $ N)hstackr   r   s   ru   r   r          qxx2rw   r   rj   rh   rm   )r   r   r_   rX   rI   rq   rr   )M1M2M3M4r   r   s       @@ru   test_hstackr      s   q!)*A	1*	+B88Aq!aA 6 4&1111	B3 ;4 4 4 4 4 4
 :./==?fh&&& 
a	B	a	B	a	B	a	Bbb%A66Q;166Q;&&;rw   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 )
Nrk   ri   c                     U S-  U-   $ r   r{   r   s     ru   r   test_vstack.<locals>.<lambda>   r   rw   c                     U S-  U-   $ r   r{   r   s     ru   r   r      r   rw   r   ri   rk   rl   rm   r   r   r   r   r   c                  (   > T R                  T T5      $ r   )vstackr   s   ru   r   r      r   rw   )r   r  r_   rX   r   s   @@ru   test_vstackr     s    q!)*A	1*	+B88Aq!aA 6 .& + + + + + + + + + + + +B- ;. . . . . . :./==?fh&&&rw   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rh   ri   rh   )r   rP   rQ   hasrR   r$   r   s    ru   test_hasr     sq    A A5588O8uuQxx<55===A AuuQxx<xrw   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b   eUR                  S	 S9b   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 )
NrP   rh   rj   Fri   r   Tr@   c                     U $ r   r{   rt   s    ru   r   (test_is_anti_symmetric.<locals>.<lambda>       !rw   )rD   r   is_anti_symmetricrQ   r-   r"   r   rs   )rP   r   s     ru   test_is_anti_symmetricr     sU   A!QA113u<<<q!aA!aa!eaZKAaC!aRT1MNA D(((.6664<<<q!!,!Qhhj!,-A.$666q!155'DGABK*?@*?Qhhj*?@AA E))) -@s   4E	E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 )Nrj   rh   Fr   r   is_hermitianrP   rK   s    ru   test_is_hermitianr     s    A!Q !A>>>1aA2q'"#A>>U"""A!Q !A>>!!!A!Q !A>>U"""rw   c                  X   [        [        [        /[        [        //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rj   rh   ri   rk   rl   rm   r   r   Frl   rm   r   rj   ri   rp   rh   )r   rP   is_symbolicr  s    ru   test_is_symbolicr    s   AA A==?d"""l+,A==?e###q!Ql+,A==?d"""Aq	{A==?d"""	{A==?e###aS1#A==?d"""aS1#A==?e###rw   c                      [        S/S//5      n [        SS/SS//5      nU R                  (       a   eUR                  (       d   eg Nrj   rh   )r   	is_squarer   s     ru   test_is_squarer    sC    aSzA	!Q!Q 	!B{{?<<<rw   c                      [        SS/ SQ5      n U R                  5       (       d   e[        SS/ SQ5      n U R                  5       (       a   eg )Nrh   r   rj   rj   r   r   rj   r   rj   )r   is_symmetricr   s    ru   test_is_symmetricr!    sG    q!\"A>>q!\"A~~rw   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ri   rk   rj   rh   rk   rl   r   ri   )	ri   rh   r   rk   rk   rj   rj   rl   rh   )	ri   rh   r   rk   rk   rj   rj   rl   rh   Fri   rj   rh   )r   is_upper_hessenbergis_lower_hessenbergr  s    ru   test_is_hessenbergr(     s    	9i01A    q!01A    q!12A  E)))  E)))	9i01A$$$$$rw   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 )	Nrh   r   rj   rh   ri   >   rj   rh   ri   rP   Trealr   rj   )setr   valuesr$   rt   s    ru   test_valuesr/  -  sv    vaL 

&( ! ! !sAvaQ1aL 

&(1v  rw   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   rl   rj   rh   r   rj   rh   )r   r   Tr   	conjugateHMs    ru   test_conjugater7  5  s    Aq	 	A 33&1a&a&a&" # # # # 33&1qb!*$& ' ' ' '33!++-33!##%%<<33&Aq'2q'q'# $ $ $ $rw   c                      [        [        [        [        SS9//5      n U S   S[        -  :w  d   eU R                  " 5       [        S[        -  //5      :X  d   eg )NFevaluater   rh   )r   r   rP   doitr  s    ru   	test_doitr<  G  sO    QE*+,-AQ41Q3;;668v!ug&&&rw   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 )Nrh   rj   rl   rm   c              3   t   >#    U  H-  nTR                   " 5       U   TU   R                  5       :H  v   M/     g 7fr   evalf.0r   rK   s     ru   	<genexpr>test_evalf.<locals>.<genexpr>O  s*     >Xqwwy|qtzz|+Xs   58c              3   x   >#    U  H/  nTR                   " S 5      U   TU   R                  S 5      :H  v   M1     g7frh   Nr?  rA  s     ru   rC  rD  P  s.     @x!qwwqz!}!

1-x   7:c              3   x   >#    U  H/  nTR                   " S 5      U   TU   R                  S 5      :H  v   M1     g7frF  nrA  s     ru   rC  rD  Q  s.     8x!qss1vayAaDFF1I%xrG  )r   rB   allr   r  s   @ru   
test_evalfrL  M  sj    q!d1gq\"A>U1X>>>>>@uQx@@@@@8uQx88888rw   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clsrh   c                    > T" X-   5      $ r   r{   r   r   Gs     ru   r   test_replace.<locals>.<lambda>V      !AC&rw   c                    > T" X-   5      $ r   r{   r   r   Fs     ru   r   rT  W  rU  rw   rD   r   r   replace)Kr6  NrX  rS  s      @@ru   test_replacer]  T  sI    6x(DAqq!()Aq!()A			!QA6M6rw   c            	        ^^ [        S[        S9u  mm[        SSU4S j5      n U R                  TTS5      u  pU[        SSU4S j5      :X  d   eUT" S5      T" S5      T" S5      T" S5      T" S5      T" S5      0:X  d   eg )	NrN  rO  rh   c                    > T" X-   5      $ r   r{   rW  s     ru   r   "test_replace_map.<locals>.<lambda>^  rU  rw   Tc                    > T" X-   5      $ r   r{   rR  s     ru   r   r`  `  s    !AC&rw   r   rj   rY  )r6  r\  rN   rX  rS  s      @@ru   test_replace_maprb  \  s    6x(DAqq!()A99Q4 DAq!011111qtQqT1Q41qt4444rw   c                  d  ^^  SSK JmJn   [        SS/SS//5      mT" SS/SS//5      nW " T" T5      U5      (       d   eU " T" TSS	9U5      (       d   e[        [        S
5      R                  S5      S   5      S:  a  [        [        UU4S j5        g g ! [         a    [	        S5         Nf = f)Nr   )arrayarray_equal?NumPy must be available to test creating matrices from ndarraysrj   rh   ri   rk   Tcopynumpy.c                     > T" T SS9$ )NFrg  r{   )r   rd  s   ru   r   'test_numpy_conversion.<locals>.<lambda>m  s    %"6rw   )ri  rd  re  ImportErrorr`   r   intrf   splitr_   	TypeError)re  np_arrayr   rd  s     @@ru   test_numpy_conversionrr  c  s    P, 	1!u~AqeaU^$HuQx****uQT*H5555
77!!#&q)*a/y67 0  PNOPs   B B/.B/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 )Nrj   rh   ri   rk   r   r   rm   ))rk   ri   rh   rj   r   r   ))rh   rk   rj   ri   )ri   rj   )rk   rh   )r   rot90r  s    ru   
test_rot90rz  o  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Nrw   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 )
Nrj   rk   rl   rh   r   r   rw  T)simultaneous)r   rP   subsrQ   r{   rw   ru   	test_subsr~  w  s   Aq6Aq6"#((A.&1a&1a&9I2JJJJAq6AE1:&',,q"g2w-?@B7RG$%& & &Aq6AE1:&',,q"g2w-?@B7RG$%& & &Aq6AE1:&',,aQ^<B7RG$%& & &AaC5'?AE1a!e 44HQUQUO$%&' ' 'rw   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 )Nri   rk   )rj   rh   ri   rk   rl   rm   r   r   r   r   r      c                  .   > T R                   " SS//5      $ )Nr   rl   )permuter  s   ru   r   test_permute.<locals>.<lambda>  s    qyy1a&2rw   c                  :   > T R                   " [        S5      5      $ )NrP   )r  r$   r  s   ru   r   r    s    qyy5rw   r   rh   rj   r  r   r   r   r  r  rr   )orientation)rh   ri   rj   rk   )rm   r   rl   r   )r   r   r   r  backward)	direction)r  r  )ri   rj   rh   rk   )r   rl   rm   r   )r   r   r   r  )rj   rh   r   ri   )Permutation)	r   r_   r   
ValueErrorpermute_rowsr  permute_colssympy.combinatoricsr  )rL   r  rK   s     @ru   test_permuter    s   q!<=A
:23
:56	AA'(A99q!fq!f%&! >v,;,;,;7= 0> > > > > >
 	
AA'(A99q!fq!f%6:a ."+++$- .. . . . . 	
AA':>A99q!fq!f%6ZPTU ."+++$- .. . . . . 99\"f,;,;,;.= '> > > >
 099[./6,;,;,;;= 4> > > >rw   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rj   rj   rj   rj   rh   r   r   rj   rj   r   r   r   rj   r   r   r   r   r   )r   rj   rj   rj   )r   upper_triangular)r   Rs     ru   test_upper_triangularr    s    	 	A 	
1A$$$$	     	
2A$$$$	     	
A$$$$	    rw   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  rj   r   r   r   rj   rj   r   r   rj   rj   rj   r   rh   r   r  )r   lower_triangularr   Ls     ru   test_lower_triangularr    s    $$$$	 	A 	
A$$$$	& ' ' ' ' 	
1A$$$$	     	
2A$$$$	    rw   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 )	Nrp   rh   rh   rk   rm   rk   rj   c                     > T T-   $ r   r{   r   rJ  s   ru   r   test_add.<locals>.<lambda>  	    q1urw   r   rP   rQ   rR   r_   rX   r  s   @@ru   test_addr        	Aq!9qsC1o67Aq5FI!QqS!A#1dAaCE8JKLLLLq!aVA
:}%rw   c                  2   [        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)Nrj   rh   ri   rk   z2 @ aza @ 2)r   
__matmul__NotImplemented__rmatmul__evalSyntaxErrorrp  r  s    ru   test_matmulr    s    AA A<<?n,,,==~---WW      s0   A# A> #
A;/	A;:A;>
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  Frn   r{   N)__name__
__module____qualname____firstlineno__	is_Matrixis_MatrixLikeshape__static_attributes__r{   rw   ru   foor    s    	rw   r  rj   rh   ri   rk   N)r	   r   )r  r   rL   s      ru   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0rw   c                  N    [        SSSS/5      n U * [        SSSS/5      :X  d   eg )Nrj   rh   r   r   r   rI  s    ru   test_negr    s1    q!aVA21r2h''''rw   c                  P    [        SSSS/5      n X -
  [        SSSS/5      :X  d   eg )Nrj   rh   r   r  rI  s    ru   test_subr    s1    q!aVA5F1a!Q((((rw   c            	          [        SSSS/5      n U S-  [        SS[        R                  [        S5      S-  /5      :X  d   eg r  )r   r"   r   rI  s    ru   test_divr  #  s@    q!aVAQ3&A!Q/0000rw   c                  L   [        [        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 )Nrh   rj   r   r   rj   rO  )rs   r   r.   typer{   rw   ru   test_eyer  (  st    

1a !\111

1,...

1&(((

1&)*f444rw   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 )Nrh   r  ri   rj   rj   rj   rO  )rs   r   r5   r  r{   rw   ru   	test_onesr  /  s    Aq!"l222A<///;;q!	9'= >>>>A6)))A6*+v555rw   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 )Nrh   r  ri   r   rO  )rs   r   rI   r  r{   rw   ru   
test_zerosr  7  s    Q"#|333Q L000<<1I(>!????Q F***QF+,666rw   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 )Nrj   rh   ri   )rj   rh   r   r   r   r   )rh   ri   r   r   r   r   r   )rj   rh   r   r   r   r   r   )rh   ri   r   r   r   r   r   rk   rl   rm   r   )r   r   r   r   r   r   )r   r   rj   rh   r   r   )r   r   ri   rk   r   r   )r   r   r   r   rl   rm   c                     > T" T STTSS9$ )Nr   rl   rq   r{   rK   rL   rM   r*   s   ru   r    test_diag_make.<locals>.<lambda>l  s    tAq!QQ7rw   r  )rr   )rq   rr   F)unpackrO  rp   rx  ru  r   r   rj   r   )r   r   r   rh   )
r   r*   rP   rQ   rR   r_   r  r  r  r5   r  s   @@@@ru   test_diag_maker  ?  sQ   ;;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=F"""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 -   rw   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 )Nri   r   r   )r   rk   r   rj   rj   rl   r   )ri   r   rh   rh   rn   c                  &   > T R                  S5      $ r   diagonalr   s   ru   r   test_diagonal.<locals>.<lambda>  s    qzz!}rw   c                  &   > T R                  S5      $ )Nrw  r  r   s   ru   r   r    s    qzz"~rw   c                  .   > T R                  [        5      $ r   )r  r7   r   s   ru   r   r    s    qzz"~rw   )r   r   r  tupler  r#   r_   r  r5   r'   rq   rr   rs   )rN   sr6  r   r   s       @ru   test_diagonalr    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                  |   [         R                  " SS5      [         R                  " SSS9s=:X  ai  [         R                  " SSS9s=:X  aO  [         R                  " SSSS9s=:X  a4  [         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 )Nri   rh   
eigenvalue)sizer  upper)band)r  eigenvalr  rh   rj   r   )r   rh   rj   r   lowerrh   r   r   r1  r   c                  .    [         R                  " S5      $ Nrh   r   jordan_blockr{   rw   ru   r   #test_jordan_block.<locals>.<lambda>  s    v2215rw   c                  0    [         R                  " SS5      $ )Ng      @rh   r  r{   rw   ru   r   r    s    v223:rw   c                  *    [         R                  " SS9$ )Nrh   r  r  r{   rw   ru   r   r    s    v22a@rw   c                  ,    [         R                  " SSS9$ )Nrh   rk   )r  r  r  r{   rw   ru   r   r    s    Fq"rw   )r  r  )r   r  r_   r  r{   rw   ru   test_jordan_blockr    s:   q!$(;(;A!(L ""a8""1ag6 ""q2
       q!'2f> 7       
 :56
::;
:@A
:"#
 A!4Q/0 0 0rw   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 )Nrj   rh   ri   rk   T	normalizerl   r   rm   r   )r   rj   r   )ri   rm   r   )r   rl   rh   r   r         r   rp   )rj   rk   rl   c                  0   > [         R                  " T SS06$ N	rankcheckTr   orthogonalizevecss   ru   r   $test_orthogonalize.<locals>.<lambda>      v33TJTJrw   ro   r   c                  0   > [         R                  " T SS06$ r  r  r   s   ru   r   r    r  rw   )r   r  rB   r    r_   r  )r   rJ  r  s     @ru   test_orthogonalizer    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Krw   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 )Nrj   )r   rj   r   rj   r   rj   )r   rj   rj   rj   rj   r   ri   )rw  rj   r   r   r   r   r   )rj   r   rj   r   r   r   r   )r   rj   r   rj   r   r   r   )r   r   rj   r   rj   r   r   )r   r   r   rj   rj   rj   r   )r   r   r   r   rj   rh   rj   )r   r   r   r   r   rj   ri   )ri   rj   r   r   r   r   r   )rj   rh   rj   r   r   r   r   )r   rj   rj   rj   r   r   r   )r   	wilkinson)wminuswpluss     ru   test_wilkinsonr    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 4rw   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[        SS[	        U 5      U -  4USS4SSU S-  S-   445      nUR                  U S5      [        SUSS4S	45      :X  d   eg )
Nx yrh   rj   rl   rk   r   r   )rj   rk   rj   )r   rl   rj   )rD   r   limitr    rA   )rP   rQ   r   r   s       ru   
test_limitr    s    5>DAq!ac1XA771a=F1a(1a.!)<====As1vax 1a)b!QTAX->?@A771a=FI1ay*#EFFFFrw   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 )Nrp   ro   r   r  c                     > T T-  $ r   r{   r6  vs   ru   r   "test_issue_13774.<locals>.<lambda>  	    acrw   c                     > TT -  $ r   r{   r  s   ru   r   r    r  rw   )r   r_   rp  r  s   @@ru   test_issue_13774r     s-    	9i01AA
9k"
9k"rw   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 )
NrP   rQ   c                  .    [         R                  " S5      $ Nrj   )r   	companionr{   rw   ru   r    test_companion.<locals>.<lambda>
  s    v//2rw   c                  F   > [         R                  " [        S/T 5      5      $ r  r   r  r   rt   s   ru   r   r    s    v//aS!=rw   c                  H   > [         R                  " [        SS/T 5      5      $ )Nrh   rj   r  rt   s   ru   r   r    s    v//aVQ@rw   c                  N   > [         R                  " [        T T-  T T/5      5      $ r   r  rP   rQ   s   ru   r   r    s    v//QqS1a&0ABrw   zc0:3rj   r   )r$   r_   r  rD   r   r  r   )c0c1c2rP   rQ   s      @@ru   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 8rw   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 zrp   rj   rh   ri   )rj   rj   rj   rj   rj   )rD   r   r}  zip)rP   rQ   rR   r   r   s        ru   test_issue_10589r)    s    hGA!	q		B	aAY	*	+B!qcA3((((	!a1q/A!?C	DB	aS1#	B/?KLLLLrw   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?r{   N)r  r  r  r  r   _op_priorityr  r{   rw   ru   Foor,  #  s    )66=rw   r.  rh   r  r   r         )r   r   
isinstance)r.  rK   rL   rM   s       ru   test_rmul_pr19860r2  "  sg    >" > 	q!\"AAq,A 	
AaB"b*++++rw   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 )Nrj   rh   ri   rk   c                     > TT -   $ r   r{   r   r   s   ru   r   "test_issue_18956.<locals>.<lambda>4  	    a!erw   c                     > T T-   $ r   r{   r5  s   ru   r   r6  5  r7  rw   )r   r   r_   rp  r5  s   @@ru   test_issue_18956r9  1  sD    1v1vA1qe}A
9m$
9m$rw   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>.Myi9  c              3      #    Sv   Sv   g 7fr  r{   selfs    ru   __iter__test__eq__.<locals>.My.__iter__:  s     GGs   
c                     [        U 5      U   $ r   )rs   )r?  r   s     ru   __getitem__"test__eq__.<locals>.My.__getitem__>  s    :a= rw   r{   N)r  r  r  r  r@  rC  r  r{   rw   ru   Myr<  9  s    		!rw   rE  rh   rj   c                       \ rS rSrS rSrg)test__eq__.<locals>.My_sympyiB  c                     [        U 5      $ r   r  r>  s    ru   _sympy_$test__eq__.<locals>.My_sympy._sympy_C  s    $<rw   r{   N)r  r  r  r  rI  r  r{   rw   ru   My_sympyrG  B  s    	 rw   rK  )objectr   )rE  rK   rK  s      ru   
test__eq__rM  8  sL    !V ! 	q!aVA99 2   
??rw   c                  2   [        [        5       GH  u  pUR                  SS5      nUR                  S:X  a!  [	        S UR                   5       5      (       d   eUR
                  S:X  a  [        UR
                  5      [        L d   eUR                  S:X  a  [        UR                  5      [        L d   eU S-  (       d0  [        UR                  5       5      [        [        [        4;   d   eM  [        UR                  5       5      [        L a  GM   e   g )Nri   rh   )ri   rh   c              3   D   #    U  H  n[        U5      [        L v   M     g 7fr   )r  rn  )rB  r   s     ru   rC  test_args.<locals>.<genexpr>L  s     (IAaCs    )	enumerateall_classesrI   r  rK  rq   r  rn  rr   r   rs   r  r%   r   r   )rJ  rP  r   s      ru   	test_argsrS  H  s    K(IIaOww& S(I(I%I%IIIvv{tAFF|s222vv{tAFF|s2221u>dE5%9999	?d*** )rw   c                     [         [        4 HJ  n U R                  SS5      n[        5          UR                  nS S S 5        WUR                  5       :X  a  MJ   e   [        [        4 HJ  n U R                  SS5      n[        5          UR                  nS S S 5        WUR                  5       :X  a  MJ   e   g ! , (       d  f       N= f! , (       d  f       N:= fNri   rh   )
r   r   rI   rc   _matr   r#   r   _smatr   )rP  r   matsmats       ru   test_deprecated_mat_smatrZ  U  s    &IIaO#%&&C &affh	 '
 22IIaO#%77D &qwwy   	 3 &%
 &%s   B6C6
C	
C	c                      [        SS[        [        /5      n U [        -  [        SS[        [        -  [        [        -  /5      :X  d   eg r  )r   rP   rQ   rR   )r  s    ru   test_divisionr\  b  s;    q!aVAQ3&A!QqSz****rw   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 )	Nrp   rh   r  r  rk   r  rj   c                     > T T-   $ r   r{   r  s   ru   r   test_sum.<locals>.<lambda>k  r  rw   r  r  s   @@ru   test_sumr`  g  r  rw   c                  *   [        SS/[        [        //5      n [        U 5      [        SS/[	        [        5      [	        [        5      //5      :X  d   e[        SSS[        /5      n [        SSS[	        [        5      /5      n[        U 5      U:X  d   eg )Nrj   r   rh   rw  ri   )r   rP   rQ   absr   r  s     ru   test_absrc  n  s~    B!Q !Aq6VaVc!fc!f%567777q!b!WAq!aQ[!Aq6Q;;rw   c                      [        S5      n [        S5      nX-   U R                  " U5      s=:X  a  [        SS/SS//5      :X  d   e   eg )N)rj   rh   rx  re  )ri   r   rh   rk   rm   rj   )r   addrK   rL   s     ru   test_additionri  v  sY      	A
 	  	A
 5AEE!H8AA'7 888888rw   c            
         [         [        4 GH  n U " SS[        S5      5      nXS S 2S S 24   :X  d   eUSS S 24   [        SS/ SQ5      :X  d   eUS S 2S4   [        / SQ5      :X  d   eUSS/S S 24   [        / SQ/ SQ/5      :X  d   eUSS/S4   USS/S/4   :X  d   eUSSS/4   US/SS/4   :X  d   eUS S 2SS/4   [        SS/SS	/S
S//5      :X  d   eUS   S:X  d   eUSS2S S 24   [        / SQ/ SQ/5      :X  d   eUS S 2SS24   [        SS/SS	/S
S//5      :X  d   eUS S S2S4   USS/S4   :X  d   eUSS S S24   USSS/4   :X  d   eU " SS[        S5      5      nU/ SQS S 24   [        / SQ/ SQ/ SQ/ SQ/ SQ/5      :X  d   eUS S 2/ SQ4   [        / SQ/ SQ/ SQ/5      :X  a  GM   e   [        R                  " S5      nSUS'   SUS'   S	US'   UR                  " SS/S/5      [        S/S//5      :X  d   eUR                  " SS// SQ5      [        / SQ/ SQ/5      :X  d   eUR                  " / SQ/ SQ5      [        / SQ/ SQ/ SQ/ SQ/5      :X  d   eg )Nri   r   rj   r   r   r   r   rh   rk   rm   r   r~   )r   rh   rj   rh   rj   r   )ri   rl   rk   rl   rk   )rm   r   r   r   r   re  r   rh   r   )rh   rh   rh   r   )rj   r   rj   rh   )rh   r   rj   r   rh   r   r   r   )r   r   ri   r   )r   rk   r   rk   )r   r#   r   rI   r   )r6  rK   s     ru   test_fancy_index_matrixrm    s   l#aE!HadG||Aw&Ay1111Aw&++++!Q|vy)&<====!Q|q!Q!~---QF|q!q!f~---QF|v1v1v1v&>????w!||1ayFIy#9::::AaCyFQFQFQF#;<<<<1ayAq!faiL(((CaCyAa!QiL(((aE!H!#$0 )  	  K F, %  	 + $4 	1AAdGAdGAdG99aVaS!VCC-	 &
 
 
 
 99aVY'63 ,    99\<0F	< 5   rw   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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[	        TU 5      nUTR
                  " 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/S[        //5      nUS-  U:X  d   e[        [        [        /SS//5      nUS-  [        [        [        /[        [        //5      :X  d   e[        [        SS5      5      n[        SS5      * n[        XUU/5      nUR                  U5      [        U/U/U//5      :X  d   eg )N)re  rx  r   rm   rf  c                     > TT -  $ r   r{   rh  s   ru   r   %test_multiplication.<locals>.<lambda>  s	    qsrw   c                     > T 0 -  $ r   r{   r  s   ru   r   rq    s	    adrw   r~   r   r   rh   r   rm   rn   rk     rt  r   rk   c                     > [        T T5      $ r   )r3   rh  s   ru   r   rq    s    :1a@rw   rP   ri   rl   r   r/  rj   )r   r_   rX   rp  r3   multiply_elementwiser$   r1  rP   r6   r4   r5   r    )	rM   hr%  r6  r   _hr   rK   rL   s	          @@ru   test_multiplicationrx    s8     	A 	  	A
 :{#
9l#	!AT7a<<T7a<<T7a<<T7a<<T7b==T7a<<	AAT7a<<T7a<<T7a<<T7a<<T7b==T7a<<#Aq)A&&q))))T7a<<T7a<<T7b==T7a<<T7a<<T7a<<
:@A	F3KAa    T7a<<T7ac>>T7ac>>T7a<<	
QB7N7	AAa    T7a<<T7c>>T7c>>T7a<<Q!R!"A6Q;;R1a&!"A6Vc3Z#s45555 	tAqzA
1a.B|A!!!$			0 )   rw   c                    ^ ^^^ [        [        S 5        [        SS/SS//5      m T S-  [        SS/SS	//5      :X  d   e[        / S
Q/ SQ/ SQ/5      m T S-  [        / SQ/ SQ/ SQ/5      :X  d   eT S-  [        S5      :X  d   eT S-  T :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      m T R                  SSS9T R                  SSS9:X  d   eT [	        S5      -  [        SS/SS//5      :X  d   e[        S5      S -  [        S5      :X  d   e[        SS/S!S"//5      m T [        R                  -  S S  / S#Q:X  d   e[        SS/S$S//5      m T [        R                  -  S-  T :X  d   e[        SS/SS//5      [        R                  -  [        SS/[        R                  S//5      :X  d   e[        SS/SS//5      S%-  [        SS/S%S//5      :X  d   eSS&KJ	m  [        S[        /SS//5      T-  [        S[        T-  /SS//5      :X  d   e[        [        [        /S[        //5      T-  [        [        T-  [        [        TS-
  -  -  T-  /S[        T-  //5      :X  d   e[        [        T-  [        TS-
  -  T-  [        T-  TS-  -  [        T-  T-  -
  S[        S-  -  -  /S[        T-  [        TS-
  -  T-  /SS[        T-  //5      (       d   e[        [        SS/S[        S/SS[        //5      T-  [        [        T-  [        TS-
  -  T-  S/S[        T-  S/SS[        T-  //5      :X  d   e[        SS/SS//5      m T R                  [        S5      5      T R                  S5      :X  d   e[        S//5      m T S-  [        S'//5      s=:X  a5  T R                  [        S5      5      s=:X  a  T R                  S5      :X  d   e   e[        / S(Q/ S)Q/ S*Q/ S+Q/ S,Q/5      m[        [        U4S- j5        [        [        S. 5        [        / S/Q/ S0Q/ S1Q/5      m T S2-  [        / S1Q/ S1Q/ S1Q/5      :X  d   e[        [        U 4S3 j5        [        [        U 4S4 j5        [        S5S/SS//5      m T S2-  [        S6S7/S8S9//5      :X  d   e[        / S0Q/ S0Q/ S0Q/5      m T S2-  [        / S0Q/ S0Q/ S0Q/5      :X  d   e[        / S/Q/ S0Q/ S0Q/5      m T S2-  [        / S0Q/ S0Q/ S0Q/5      :X  d   e[!        S:S;S<9m[#        T T-  [$        5      (       d   e[!        S:S;S;S=9m[        [        U U4S> j5        [!        S:S;S;S?9mT T-  [        ['        ST5      ['        ST5      ['        ST5      * ['        ST5      -
  S-   /S['        ST5      S['        ST5      -
  // S0Q/5      :X  d   eT TS-   -  [        / S0Q/ S0Q/ S0Q/5      :X  d   e[        [        U 4S@ j5        [        / S0Q/ SAQ/ SBQ/5      m T SC-  [        / SDQ/ SEQ/ SFQ/5      :X  d   eT SC-  T S-  :X  d   e[        / S/Q/ SGQ/ S1Q/5      m [!        S:5      mT T-  mTR)                  TS5      R+                  5       T S-  :X  d   e[        [        UU4SH j5        TT-  T ST-  -  :X  d   e[        / S1Q/ S1Q/ S1Q/5      m [!        S:S;S;SI9mT T-  T :X  d   e[!        S:S;S;S?9mT T-  [-        ST-  ST-  ST-  5      :X  d   eT T-  R)                  TS5      [        S5      :X  d   eT T-  R)                  TS5      [/        S5      :X  d   e[        / SJQ/ SKQ/ SLQ/5      m T SM-  [-        SNSNSN5      :X  d   eT [0        -  [-        S[0        -  S[0        -  S[0        -  5      :X  d   e[        / S/Q/ S0Q/ S0Q/5      m [        [        U 4SO j5        [        [        U 4SP j5        [        [        R                  [        R                  /[        R                  [        R                  //5      m T [        R                  -  T :X  d   e[        SS/SS//5      m T [        R                  -  [        [        R                  [        R                  /S[        R                  -  S[        R                  -  //5      :X  d   eg )QNc                      [        S5      S-  $ Nre  rh   r  r{   rw   ru   r   test_power.<locals>.<lambda>  s    ):rw   rh   ri   rk   rl   i  i  i,*  i7  )rh   rj   ri   )rk   rh   rk   )rm   r  rj   )i"  i     )i  i  ip  )i  i  i  r   rj   d   r~   r   r   r/  r0     cayleymethodmultiplyr   r     !   i 0   9   )rl   rh   rk   r   r   g      ?rI  i   )ri   r   r   r   rw  )r   rw  rw  r   ri   )r   ri   r   ri   r   )r   r   ri   r   ri   )ri   r   r   ri   r   c                  8   > T R                  [        S5      5      $ Nr   )_matrix_pow_by_jordan_blocksr"   r   s   ru   r   r|  %  s     > >qu Erw   c                  T    [        SS/SS//5      R                  [        S5      5      $ )Nrj   ri   )r   r  r"   r{   rw   ru   r   r|  (  s(    AA'7 8 U UVWX[V\ ]rw   r   r   r         $@c                     > T S-  $ N @r{   r  s   ru   r   r|  +  	    q#vrw   c                  "   > T [        SS5      -  $ rU  r    r  s   ru   r   r|  ,      q(1a.0rw   r   ihiO<iv0irJ  T)integer)r  negativec                     > T T-  $ r   r{   )r   rJ  s   ru   r   r|  6  s	    q!trw   )r  nonnegativec                  "   > T [        SS5      -  $ rU  r  r  s   ru   r   r|  =  r  rw   )ri   r   rj   )rk   ri   rj   g      @)   H   Y   )i#        )i<  i  iI  r   r   r   c                  D   > T R                  TS5      R                  5       $ )Nr   )r}  r;  )AnrJ  s   ru   r   r|  E  s    rwwq"~224rw   )r  positiver  )r   rh   r   r   r  gd%%@c                     > T S-  $ r  r{   r  s   ru   r   r|  T  r  rw   c                     > T [         -  $ r   r   r  s   ru   r   r|  U  s	    q!trw   )r_   rW   r   r.   r   powr"   r   	sympy.abcrJ  rK   rL   r  _eval_pow_by_recursionrV   r  r$   r1  r   r   r}  r;  r*   rI   r   )r   r  r   rJ  s   @@@@ru   
test_powerr    s   
!:;AA Aa46D$<%89999	9j12Aa46?O_MNNNNa43q6>>a4199QC5MS $'1c6111Aq6Aq6"#WQZ/6Ar7RH:M3NNNN1qe}A55H5%r*)EEEEgaj=FQGb"X#67777q68s1v%%%R2r(#$AqvvIq>\)))AQ !AqvvI>QAq6Aq6"#QVV+v1v{6K/LLLLAq6Aq6"#S(FQFS!H3E,FFFFAq6Aq6"#Q&&1ac(QF1C*DDDDAq6Aq6"#Q&&1a41qs8A2FAqD	1R*SSSS	
Aq1q5z!|ad1a4i!Q$q&01QT6:;q!ta!a%jl;!ad;= > > > > Aq!9q!Qi!Q34a76	
Aq1Q3xz1	
AqD!	
Aq!tC <   
 	AA A))!A$/13K3KA3NNNNuAb5FUG9% %)G)G")N %	  $% % % % % 	 "3_oWfghA
;EF ;]^	9i01Ad7fiI>????
:~&
:01AA Ad7fz95	97MNOOOO	9i01Ad7fiI>????	9i01Ad7fiI>????sD!AadF####sD40A
:|$sDd3Aa46	1	~a3nQ6J5J^\]_`Ma5ade5ef~a3QQ_`acdQeMeffh i i i i q1u:Iy ABBBB
:01	9i01Ac6V_oOPPPPc6QT>>	*Y/0AsA	
AB771a=1a4'''
:457a!A#h 	()AsD40Aa4199sDd3Aa441adAqD))))qD;;q!A&&&qD;;q!a((()*Ac6T6662222a44Aq!tQT****	9i01A
:~&
:|$ 166166"234Aaff9>>A1vAaff9!&&!&&!1AaffHah3G HIIIIrw   c            
         [        S[        -   S[        -
  /S[        -
  S[        -   //5      n [        S5         U R                  5       R	                  5       [        [        S[        -  5      [        S5      -   S-  [        S[        -  5      * [        S5      -   S-  /[        S[        -  5      * [        S5      -   S-  [        S[        -  5      [        S5      -   S-  //5      :X  d   e S S S 5        g ! , (       d  f       g = f)Nrj   Trh   )r   rP   r\   r,   r-   r5  s    ru   $test_issue_17247_expression_blowup_1r  \  s    1ac
QqS!A#J'(A	T	uuw~~61Q3x#a& !#s1Q3xi#a&&8!%;<1Q3xi#a& !#s1Q3x#a&'8!&;<+> $? ? 	? ? 
		s   B2C55
Dc                     [        S[        -   S[        -
  /S[        -
  S[        -   //5      n [        S5         U R                  5       u  pX-  UR	                  5       -  (       d   e S S S 5        g ! , (       d  f       g = fNrj   T)r   rP   r\   jordan_forminvr6  PJs      ru   $test_issue_17247_expression_blowup_2r  d  s_    1ac
QqS!A#J'(A	T	}}s1557{{ 
		s   /A22
B c            	      F   [        S[        -   S[        -
  /S[        -
  S[        -   //5      n [        S5         U S-  [        S[        S-  -  S-   SS[        S-  -  -
  /SS[        S-  -  -
  S[        S-  -  S-   //5      :X  d   e S S S 5        g ! , (       d  f       g = f)Nrj   Tr~  l                )r   rP   r\   r5  s    ru   $test_issue_17247_expression_blowup_3r  k  s    1ac
QqS!A#J'(A	T	#v+AsF25SSUs  wU  VW  Y\  V\  w\  V\  ]+.LQPSV.SSUstuwztzUz  ~\  V\  ]!^ _ _ 	_ _ 
		s   AB
B c                      [        [        S5      5      n [        S5         U S-  [        [        S5      5      :X  d   e S S S 5        g ! , (       d  f       g = f)Na1  [
        [             -3/4,       45/32 - 37*I/16,         1/4 + I/2,      -129/64 - 9*I/64,      1/4 - 5*I/16,      65/128 + 87*I/64],
        [-149/64 + 49*I/32, -177/128 - 1369*I/128,  125/64 + 87*I/64, -2063/256 + 541*I/128,  85/256 - 33*I/16,  805/128 + 2415*I/512],
        [          1/2 - I,         9/4 + 55*I/16,              -3/4,       45/32 - 37*I/16,         1/4 + I/2,      -129/64 - 9*I/64],
        [   -5/8 - 39*I/16,   2473/256 + 137*I/64, -149/64 + 49*I/32, -177/128 - 1369*I/128,  125/64 + 87*I/64, -2063/256 + 541*I/128],
        [            1 + I,         -19/4 + 5*I/4,           1/2 - I,         9/4 + 55*I/16,              -3/4,       45/32 - 37*I/16],
        [         21/8 + I,    -537/64 + 143*I/16,    -5/8 - 39*I/16,   2473/256 + 137*I/64, -149/64 + 49*I/32, -177/128 - 1369*I/128]]Tr   a  [
            [     7369525394972778926719607798014571861/604462909807314587353088 - 229284202061790301477392339912557559*I/151115727451828646838272,   -19704281515163975949388435612632058035/1208925819614629174706176 + 14319858347987648723768698170712102887*I/302231454903657293676544,      -3623281909451783042932142262164941211/604462909807314587353088 - 6039240602494288615094338643452320495*I/604462909807314587353088,    109260497799140408739847239685705357695/2417851639229258349412352 - 7427566006564572463236368211555511431*I/2417851639229258349412352, -16095803767674394244695716092817006641/2417851639229258349412352 + 10336681897356760057393429626719177583*I/1208925819614629174706176,    -42207883340488041844332828574359769743/2417851639229258349412352 - 182332262671671273188016400290188468499*I/4835703278458516698824704],
            [50566491050825573392726324995779608259/1208925819614629174706176 - 90047007594468146222002432884052362145*I/2417851639229258349412352,  74273703462900000967697427843983822011/1208925819614629174706176 + 265947522682943571171988741842776095421*I/1208925819614629174706176, -116900341394390200556829767923360888429/2417851639229258349412352 - 53153263356679268823910621474478756845*I/2417851639229258349412352, 195407378023867871243426523048612490249/1208925819614629174706176 - 1242417915995360200584837585002906728929*I/9671406556917033397649408,   -863597594389821970177319682495878193/302231454903657293676544 + 476936100741548328800725360758734300481*I/9671406556917033397649408, -3154451590535653853562472176601754835575/19342813113834066795298816 - 232909875490506237386836489998407329215*I/2417851639229258349412352],
            [   -1715444997702484578716037230949868543/302231454903657293676544 + 5009695651321306866158517287924120777*I/302231454903657293676544,     -30551582497996879620371947949342101301/604462909807314587353088 - 7632518367986526187139161303331519629*I/151115727451828646838272,           312680739924495153190604170938220575/18889465931478580854784 - 108664334509328818765959789219208459*I/75557863725914323419136,    -14693696966703036206178521686918865509/604462909807314587353088 + 72345386220900843930147151999899692401*I/1208925819614629174706176,  -8218872496728882299722894680635296519/1208925819614629174706176 - 16776782833358893712645864791807664983*I/1208925819614629174706176,      143237839169380078671242929143670635137/2417851639229258349412352 + 2883817094806115974748882735218469447*I/2417851639229258349412352],
            [   3087979417831061365023111800749855987/151115727451828646838272 + 34441942370802869368851419102423997089*I/604462909807314587353088, -148309181940158040917731426845476175667/604462909807314587353088 - 263987151804109387844966835369350904919*I/9671406556917033397649408,   50259518594816377378747711930008883165/1208925819614629174706176 - 95713974916869240305450001443767979653*I/2417851639229258349412352,  153466447023875527996457943521467271119/2417851639229258349412352 + 517285524891117105834922278517084871349*I/2417851639229258349412352,  -29184653615412989036678939366291205575/604462909807314587353088 - 27551322282526322041080173287022121083*I/1208925819614629174706176,   196404220110085511863671393922447671649/1208925819614629174706176 - 1204712019400186021982272049902206202145*I/9671406556917033397649408],
            [     -2632581805949645784625606590600098779/151115727451828646838272 - 589957435912868015140272627522612771*I/37778931862957161709568,     26727850893953715274702844733506310247/302231454903657293676544 - 10825791956782128799168209600694020481*I/302231454903657293676544,      -1036348763702366164044671908440791295/151115727451828646838272 + 3188624571414467767868303105288107375*I/151115727451828646838272,     -36814959939970644875593411585393242449/604462909807314587353088 - 18457555789119782404850043842902832647*I/302231454903657293676544,      12454491297984637815063964572803058647/604462909807314587353088 - 340489532842249733975074349495329171*I/302231454903657293676544,      -19547211751145597258386735573258916681/604462909807314587353088 + 87299583775782199663414539883938008933*I/1208925819614629174706176],
            [  -40281994229560039213253423262678393183/604462909807314587353088 - 2939986850065527327299273003299736641*I/604462909807314587353088, 331940684638052085845743020267462794181/2417851639229258349412352 - 284574901963624403933361315517248458969*I/1208925819614629174706176,      6453843623051745485064693628073010961/302231454903657293676544 + 36062454107479732681350914931391590957*I/604462909807314587353088,  -147665869053634695632880753646441962067/604462909807314587353088 - 305987938660447291246597544085345123927*I/9671406556917033397649408,  107821369195275772166593879711259469423/2417851639229258349412352 - 11645185518211204108659001435013326687*I/302231454903657293676544,     64121228424717666402009446088588091619/1208925819614629174706176 + 265557133337095047883844369272389762133*I/1208925819614629174706176]])r   r"   r\   r5  s    ru   $test_issue_17247_expression_blowup_4r  s  sb    8 	q K L 	MA 
T	"uq "H  I J J 	J J 
		s   A
Ac                     [        SSS 5      n [        S5         U R                  S5      [        [        S-  SS[
        -  -
  [        S-  -  -   S[
        -  [        S-  -  -   [        S	S
9:X  d   e S S S 5        g ! , (       d  f       g = f)Nrm   c                 $    SSX-   -  [         -  -   $ Nrj   r   r  r   s     ru   r   6test_issue_17247_expression_blowup_5.<locals>.<lambda>      !rQSk!m"3rw   TrP   rl   $   rk   EXdomain)r   r\   charpolyr   rP   r   r5  s    ru   $test_issue_17247_expression_blowup_5r    so    q!34A	T	zz#(1a42!8QT/+ABqDAI+MqY]"^^^^ 
		s   AA;;
B	c            	          [        SS[        S5       V s/ s H  n [        U -   PM     sn 5      n[        S5         UR	                  S5      S:X  d   e S S S 5        g s  sn f ! , (       d  f       g = f)Nr   @   Tbareissr   r   r   rP   r\   detr   r6  s     ru   $test_issue_17247_expression_blowup_6r    sZ    q!5":.:aac:./A	T	uuY1$$$ 
	 /		   AA!!
A/c                      [        SSS 5      n [        S5         U R                  S5      S:X  d   e S S S 5        g ! , (       d  f       g = f)Nrm   c                 $    SSX-   -  [         -  -   $ r  r  r   s     ru   r   6test_issue_17247_expression_blowup_7.<locals>.<lambda>  r  rw   T	berkowitzr   )r   r\   r  r5  s    ru   $test_issue_17247_expression_blowup_7r    s<    q!34A	T	uu[!Q&&& 
		s	   <
A
c            	          [        SS[        S5       V s/ s H  n [        U -   PM     sn 5      n[        S5         UR	                  S5      S:X  d   e S S S 5        g s  sn f ! , (       d  f       g = f)Nr   r  Tlur   r  r  s     ru   $test_issue_17247_expression_blowup_8r    sY    q!5":.:aac:./A	T	uuT{a 
	 /		r  c                  (   [        SS[        S5       V s/ s H  n [        U -   PM     sn 5      n[        S5         UR	                  5       [        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      S4:X  d   e S S S 5        g s  sn f ! , (       d  f       g = f)Nr   r  T)rj   r   r   r   rw  r   r   r  r   rj   rh   ri   rk   rl   rm   r   r   r   r   r   r   r   r   r   r   )r   r   rP   r\   rrefr  s     ru   $test_issue_17247_expression_blowup_9r    s    q!5":.:aac:./A	T	vvxF********$, - /56 6 	6 6 
	 /		s   A>:B
Bc                      [        SSS 5      n [        S5         U R                  SS5      S:X  d   e S S S 5        g ! , (       d  f       g = f)Nrm   c                 $    SSX-   -  [         -  -   $ r  r  r   s     ru   r   7test_issue_17247_expression_blowup_10.<locals>.<lambda>  r  rw   Tr   )r   r\   cofactorr5  s    ru   %test_issue_17247_expression_blowup_10r    s>    q!34A	T	zz!Q1$$$ 
		s	   =
Ac                      [        SSS 5      n [        S5         U R                  5       [        SSS/S-  5      :X  d   e S S S 5        g ! , (       d  f       g = f)Nrm   c                 $    SSX-   -  [         -  -   $ r  r  r   s     ru   r   7test_issue_17247_expression_blowup_11.<locals>.<lambda>  r  rw   Tr   r  )r   r\   cofactor_matrixr5  s    ru   %test_issue_17247_expression_blowup_11r    sK    q!34A	T	  "fQA3r6&:::: 
		s   &A


Ac                      [        SSS 5      n [        S5         U R                  5       SSS[        -  SSS0:X  d   e S S S 5        g ! , (       d  f       g = f)Nrm   c                 $    SSX-   -  [         -  -   $ r  r  r   s     ru   r   7test_issue_17247_expression_blowup_12.<locals>.<lambda>  r  rw   Trj   r   rk   )r   r\   	eigenvalsr   r5  s    ru   %test_issue_17247_expression_blowup_12r    sJ    q!34A	T	{{}AqsAq! 4444 
		s   $A
Ac            
         [        SS[        -
  [        S-   S[        -
  /S[        -
  [        S-   S[        S-   /SS[        -
  [        S-   S[        -
  /SSS[        -
  S//5      n U R                  5       nUS   SS[        / SQ5      /4:X  d   eUS   S   [        [        S5      [        S-
  -  -
  S-   :X  d   eUS   S   S:X  d   eUS   S   S   R	                  SSS9[        [        * [        S5      [        S-
  -  -   S-
  [        S-
  -  /S[        -  [        S-  S[        -  -
  S-   -  [        S-   [        [        S5      [        S-
  -  -
  S-   -  [        S-  S[        -  -
  S-   -  -   /[        * [        S5      [        S-
  -  -   S-
  [        S-
  -  /S//5      :X  d   eUS   S   [        [        S5      [        S-
  -  -   S-   :X  d   eUS   S   S:X  d   eUS   S   S   R	                  SSS9[        [        * [        S5      [        S-
  -  -
  S-
  [        S-
  -  /S[        -  [        S-  S[        -  -
  S-   -  [        S-   [        [        S5      [        S-
  -  -   S-   -  [        S-  S[        -  -
  S-   -  -   /[        * [        S5      [        S-
  -  -
  S-
  [        S-
  -  /S//5      :X  d   eg )	Nr   rj   rh   )r   r   r   rj   FT)deepnumerr   )r   rP   
eigenvectsrB   r-   )r6  evs     ru   %test_issue_17247_expression_blowup_13r    s   Aq1ua!e$	
QA1a!e$Aq1ua!e$A1q5!$	& 	'A 
Ba5QF=123333a58q47AE?*Q....a58q==a58A;55"tAwA

"QU	+,	Aq!taczA~	!a%!d1gq1uo*=*A!BAqD1Q3JQRN!S	ST"tAwA

"QU	+,	
	A :    a58q47AE?*Q....a58q==a58A;55"tAwA

"QU	+,	Aq!taczA~	!a%!d1gq1uo*=*A!BAqD1Q3JQRN!S	ST"tAwA

"QU	+,	
	A :   rw   c                     [        SSS[        -   S[        -
  /S-  S[        -
  S[        -   /S-  -   S-  5      n [        S5         U R                  5       [        [        S-   S[        -
  [        S-   S[        -
  [        S-   S[        -
  [        S-   S[        -
  /SS[        -  SS[        -  SS[        -  SS[        -  // SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      :X  d   e S S S 5        g ! , (       d  f       g = f)Nr   rj   rk   Tr   r  )r   rP   r\   echelon_formr5  s    ru   %test_issue_17247_expression_blowup_14r    s    q!qsAaCjlac1Q3Z\1145A	T	~~6UAE1q5!a%QAq1ua!eDacqAaCQ!A#1!DDDDDDD+F $G G 	G G 
		s   BC''
C5c                     [        SSS[        -   S[        -
  /S-  S[        -
  S[        -   /S-  -   S-  5      n [        S5         U R                  5       [        [        S-   S[        -
  [        S-   S[        -
  [        S-   S[        -
  [        S-   S[        -
  //5      [        SS[        -  SS[        -  SS[        -  SS[        -  //5      /:X  d   e S S S 5        g ! , (       d  f       g = f)Nr   rj   rk   Tr   )r   rP   r\   rowspacer5  s    ru   %test_issue_17247_expression_blowup_15r    s   q!qsAaCjlac1Q3Z\1145A	T	zz|QAq1ua!eQUAPQESTWXSXZ[^_Z_(`'a bdjmnpqrspsuvxyz{x{}~  AB  CD  AD  FG  IJ  KL  IL  mM  lN  eO   P  P  	P  P 
		s   BC  
C.c                  6   [        SSS[        -   S[        -
  /S-  S[        -
  S[        -   /S-  -   S-  5      n [        S5         U R                  5       [        [        S-   /S[        -
  /[        S-   /S[        -
  /[        S-   /S[        -
  /[        S-   /S[        -
  //5      [        S[        -
  /[        S-   /S[        -
  /[        S-   /S[        -
  /[        S-   /S[        -
  /[        S-   //5      /:X  d   e S S S 5        g ! , (       d  f       g = f)Nr   rj   rk   T)r   rP   r\   columnspacer5  s    ru   %test_issue_17247_expression_blowup_16r    s   q!qsAaCjlac1Q3Z\1145A	T	}}6AE7AE7AE7AE7APQE7TUXYTYSZ\]`a\a[bdehidicj*k#lntwx{|w|v}  @A  DE  @E  F  HI  LM  HM  GN  PQ  TU  PU  OV  XY  \]  X]  W^  `a  de  `e  _f  hi  lm  hm  gn  pq  tu  pu  ov  vw  ox  #y  y  	y  y 
		s   B;D


Dc                     [        SS[        S5       V s/ s H  n [        U -   PM     sn 5      n[        S5         UR	                  5       [        S/S/S/S/S/S/S/S//5      [        S/S/S/S/S/S/S/S//5      [        S	/S
/S/S/S/S/S/S//5      [        S/S/S/S/S/S/S/S//5      [        S/S/S/S/S/S/S/S//5      [        S/S/S/S/S/S/S/S//5      /:X  d   e S S S 5        g s  sn f ! , (       d  f       g = f)Nr   r  Trj   r   r   rh   rw  ri   r   rk   r   rl   r  rm   rv  )r   r   rP   r\   	nullspacer  s     ru   %test_issue_17247_expression_blowup_17r    sV   q!5":.:aac:./A	T	{{}QCaS!aS!aS!56QCaS!aS!aS!56QCaS!aS!aS!56QCaS!aS!aS!56QCaS!aS!aS!56QCaS!aS!aS!56!8 8 	8 8 
	 /		s   C7B3C<<
D
c                      [        SSS[        -   S[        -
  /S-  S[        -
  S[        -   /S-  -   S-  5      n [        S5         U R                  5       (       a   e S S S 5        g ! , (       d  f       g = f)Nrm   rj   ri   T)r   rP   r\   is_nilpotentr5  s    ru   %test_issue_17247_expression_blowup_18r    sd    q!qsAaCjlac1Q3Z\1145A	T	>>##### 
		s   A''
A5c                      [        [        S5      5      n [        S5         U R                  5       (       a   e S S S 5        g ! , (       d  f       g = f)Nay  [
        [             -3/4,                     0,         1/4 + I/2,                     0],
        [                0, -177/128 - 1369*I/128,                 0, -2063/256 + 541*I/128],
        [          1/2 - I,                     0,                 0,                     0],
        [                0,                     0,                 0, -177/128 - 1369*I/128]]T)r   r"   r\   is_diagonalizabler5  s    ru   %test_issue_17247_expression_blowup_19r     sI    q a b 	cA
 
T	&&((((( 
		s   A
Ac                     [        [        S-   S[        -
  SS/S[        -
  [        S-   S[        S-   /SS[        -
  [        S-   S/SSS[        S-   //5      n [        S5         U R                  5       [        SSS[        S-   [        S-
  -  // SQ/ SQ/ SQ/5      [        / SQSS[        -  SS/SS[        S-   S/SSS[        S-   //5      4:X  d   e S S S 5        g ! , (       d  f       g = f)	Nrj   r   T)rj   r   r   r   r  r  rl  rh   )r   rP   r\   diagonalizer5  s    ru   %test_issue_17247_expression_blowup_20r  *  s   UQU#UQUQU#	
QUQU#	
QU#	% 	&A
 
T	}}6AAA''''	+) $*
 "!"!QU"!AE"	$ %	#& 	& 		& 	& 
		s   #A1C
C,c                      [        [        S5      5      n [        S5         U R                  SS9[        [        S5      5      :X  d   e S S S 5        g ! , (       d  f       g = f)N  [
        [             -3/4,       45/32 - 37*I/16,                   0,                     0],
        [-149/64 + 49*I/32, -177/128 - 1369*I/128,                   0, -2063/256 + 541*I/128],
        [                0,         9/4 + 55*I/16, 2473/256 + 137*I/64,                     0],
        [                0,                     0,                   0, -177/128 - 1369*I/128]]TGEr  v  [
            [-26194832/3470993 - 31733264*I/3470993, 156352/3470993 + 10325632*I/3470993, 0, -7741283181072/3306971225785 + 2999007604624*I/3306971225785],
            [4408224/3470993 - 9675328*I/3470993, -2422272/3470993 + 1523712*I/3470993, 0, -1824666489984/3306971225785 - 1401091949952*I/3306971225785],
            [-26406945676288/22270005630769 + 10245925485056*I/22270005630769, 7453523312640/22270005630769 + 1601616519168*I/22270005630769, 633088/6416033 - 140288*I/6416033, 872209227109521408/21217636514687010905 + 6066405081802389504*I/21217636514687010905],
            [0, 0, 0, -11328/952745 + 87616*I/952745]]r   r"   r\   r  r5  s    ru   %test_issue_17247_expression_blowup_21r  =  a    q c d 	eA
 
T	uuDu!VA /: -; &< < 	< < 
		   (A
A c                      [        [        S5      5      n [        S5         U R                  SS9[        [        S5      5      :X  d   e S S S 5        g ! , (       d  f       g = f)Nr  TLUr  r  r  r5  s    ru   %test_issue_17247_expression_blowup_22r  K  r	  r
  c                      [        [        S5      5      n [        S5         U R                  SS9R	                  5       [        [        S5      5      :X  d   e S S S 5        g ! , (       d  f       g = f)Nr  TADJr  r  )r   r"   r\   r  r-   r5  s    ru   %test_issue_17247_expression_blowup_23r  Y  sj    q c d 	eA
 
T	uuEu"))+va 9: 7; 0< < 	< < 
		s   6A  
A.c                      [        [        S5      5      n [        S5         U R                  SS9[	        [        S5      5      :X  d   e S S S 5        g ! , (       d  f       g = f)Nr  TCHr  r  r#   r"   r\   r  r   r5  s    ru   %test_issue_17247_expression_blowup_24r  g  sa    Q c d 	eA
 
T	uuDu!VA /: -; &< < 	< < 
		r
  c                      [        [        S5      5      n [        S5         U R                  SS9[	        [        S5      5      :X  d   e S S S 5        g ! , (       d  f       g = f)Nr  TLDLr  r  r  r5  s    ru   %test_issue_17247_expression_blowup_25r  u  sa    Q c d 	eA
 
T	uuEu"fQ 0: .; '< < 	< < 
		r
  c                      [        [        S5      5      n [        S5         U R                  5       S:X  d   e S S S 5        g ! , (       d  f       g = f)Na  [
        [             -3/4,       45/32 - 37*I/16,         1/4 + I/2,      -129/64 - 9*I/64,      1/4 - 5*I/16,      65/128 + 87*I/64,         -9/32 - I/16,      183/256 - 97*I/128],
        [-149/64 + 49*I/32, -177/128 - 1369*I/128,  125/64 + 87*I/64, -2063/256 + 541*I/128,  85/256 - 33*I/16,  805/128 + 2415*I/512, -219/128 + 115*I/256, 6301/4096 - 6609*I/1024],
        [          1/2 - I,         9/4 + 55*I/16,              -3/4,       45/32 - 37*I/16,         1/4 + I/2,      -129/64 - 9*I/64,         1/4 - 5*I/16,        65/128 + 87*I/64],
        [   -5/8 - 39*I/16,   2473/256 + 137*I/64, -149/64 + 49*I/32, -177/128 - 1369*I/128,  125/64 + 87*I/64, -2063/256 + 541*I/128,     85/256 - 33*I/16,    805/128 + 2415*I/512],
        [            1 + I,         -19/4 + 5*I/4,           1/2 - I,         9/4 + 55*I/16,              -3/4,       45/32 - 37*I/16,            1/4 + I/2,        -129/64 - 9*I/64],
        [         21/8 + I,    -537/64 + 143*I/16,    -5/8 - 39*I/16,   2473/256 + 137*I/64, -149/64 + 49*I/32, -177/128 - 1369*I/128,     125/64 + 87*I/64,   -2063/256 + 541*I/128],
        [               -2,         17/4 - 13*I/2,             1 + I,         -19/4 + 5*I/4,           1/2 - I,         9/4 + 55*I/16,                 -3/4,         45/32 - 37*I/16],
        [     1/4 + 13*I/4,    -825/64 - 147*I/32,          21/8 + I,    -537/64 + 143*I/16,    -5/8 - 39*I/16,   2473/256 + 137*I/64,    -149/64 + 49*I/32,   -177/128 - 1369*I/128]]Trk   r   r"   r\   rankr5  s    ru   %test_issue_17247_expression_blowup_26r    sC    q z { 	|A 
T	vvx1}} 
		   A
Ac            	         [        SS[        -
  [        S-   S[        -
  /S[        -
  [        S-   S[        S-   /SS[        -
  [        S-   S[        -
  /SSS[        -
  S//5      n [        S5         U R                  5       u  pUR	                  5       [        [        S5      5      R	                  5       :X  d   eU[        [        S5      5      :X  d   e S S S 5        g ! , (       d  f       g = f)Nr   rj   Ta  [
            [    0,  4*x/(x**2 - 2*x + 1), -(-17*x**4 + 12*sqrt(2)*x**4 - 4*sqrt(2)*x**3 + 6*x**3 - 6*x - 4*sqrt(2)*x + 12*sqrt(2) + 17)/(-7*x**4 + 5*sqrt(2)*x**4 - 6*sqrt(2)*x**3 + 8*x**3 - 2*x**2 + 8*x + 6*sqrt(2)*x - 5*sqrt(2) - 7), -(12*sqrt(2)*x**4 + 17*x**4 - 6*x**3 - 4*sqrt(2)*x**3 - 4*sqrt(2)*x + 6*x - 17 + 12*sqrt(2))/(7*x**4 + 5*sqrt(2)*x**4 - 6*sqrt(2)*x**3 - 8*x**3 + 2*x**2 - 8*x + 6*sqrt(2)*x - 5*sqrt(2) + 7)],
            [x - 1, x/(x - 1) + 1/(x - 1),                       (-7*x**3 + 5*sqrt(2)*x**3 - x**2 + sqrt(2)*x**2 - sqrt(2)*x - x - 5*sqrt(2) - 7)/(-3*x**3 + 2*sqrt(2)*x**3 - 2*sqrt(2)*x**2 + 3*x**2 + 2*sqrt(2)*x + 3*x - 3 - 2*sqrt(2)),                       (7*x**3 + 5*sqrt(2)*x**3 + x**2 + sqrt(2)*x**2 - sqrt(2)*x + x - 5*sqrt(2) + 7)/(2*sqrt(2)*x**3 + 3*x**3 - 3*x**2 - 2*sqrt(2)*x**2 - 3*x + 2*sqrt(2)*x - 2*sqrt(2) + 3)],
            [    0,                     1,                                                                                            -(-3*x**2 + 2*sqrt(2)*x**2 + 2*x - 3 - 2*sqrt(2))/(-x**2 + sqrt(2)*x**2 - 2*sqrt(2)*x + 1 + sqrt(2)),                                                                                            -(2*sqrt(2)*x**2 + 3*x**2 - 2*x - 2*sqrt(2) + 3)/(x**2 + sqrt(2)*x**2 - 2*sqrt(2)*x - 1 + sqrt(2))],
            [1 - x,                     0,                                                                                                                                                                                               1,                                                                                                                                                                                             1]]a  [
            [0, 1,                       0,                       0],
            [0, 0,                       0,                       0],
            [0, 0, x - sqrt(2)*(x - 1) + 1,                       0],
            [0, 0,                       0, x + sqrt(2)*(x - 1) + 1]])r   rP   r\   r  r-   r"   r  s      ru   %test_issue_17247_expression_blowup_27r    s    Aq1ua!e$	
QA1a!e$Aq1ua!e$A1q5!$	& 	'A
 
T	}}xxzVA 'o %p q rx  rx  rz	z 	z z
 F1 I J K K 	K K 
		s   1A#C
C,c                      [        [        S5      5      n [        S5         U R                  5       [        S5      :X  d   e S S S 5        g ! , (       d  f       g = f)Nr  Ta  [
            sqrt(14609315/131072 + sqrt(64789115132571/2147483648 - 2*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3) + 76627253330829751075/(35184372088832*sqrt(64789115132571/4294967296 + 3546944054712886603889144627/(110680464442257309696*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3)) + 2*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3))) - 3546944054712886603889144627/(110680464442257309696*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3)))/2 + sqrt(64789115132571/4294967296 + 3546944054712886603889144627/(110680464442257309696*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3)) + 2*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3))/2),
            sqrt(14609315/131072 - sqrt(64789115132571/2147483648 - 2*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3) + 76627253330829751075/(35184372088832*sqrt(64789115132571/4294967296 + 3546944054712886603889144627/(110680464442257309696*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3)) + 2*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3))) - 3546944054712886603889144627/(110680464442257309696*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3)))/2 + sqrt(64789115132571/4294967296 + 3546944054712886603889144627/(110680464442257309696*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3)) + 2*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3))/2),
            sqrt(14609315/131072 - sqrt(64789115132571/4294967296 + 3546944054712886603889144627/(110680464442257309696*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3)) + 2*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3))/2 + sqrt(64789115132571/2147483648 - 2*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3) - 76627253330829751075/(35184372088832*sqrt(64789115132571/4294967296 + 3546944054712886603889144627/(110680464442257309696*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3)) + 2*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3))) - 3546944054712886603889144627/(110680464442257309696*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3)))/2),
            sqrt(14609315/131072 - sqrt(64789115132571/4294967296 + 3546944054712886603889144627/(110680464442257309696*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3)) + 2*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3))/2 - sqrt(64789115132571/2147483648 - 2*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3) - 76627253330829751075/(35184372088832*sqrt(64789115132571/4294967296 + 3546944054712886603889144627/(110680464442257309696*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3)) + 2*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3))) - 3546944054712886603889144627/(110680464442257309696*(25895222463957462655758224991455280215303/633825300114114700748351602688 + sqrt(1213909058710955930446995195883114969038524625997915131236390724543989220134670)*I/22282920707136844948184236032)**(1/3)))/2)])r   r"   r\   singular_valuesr5  s    ru   %test_issue_17247_expression_blowup_28r!    s]    q c d 	eA
 
T	  "a )c 'd d 	d d 
		s    A


Ac                      [        [        S5      5      n [        S5         U R                  5       S:X  d   e S S S 5        g ! , (       d  f       g = f)Na	  [
        [1+I,-19/4+5/4*I,1/2-I,9/4+55/16*I,-3/4,45/32-37/16*I,1/4+1/2*I,-129/64-9/64*I,1/4-5/16*I,65/128+87/64*I,-9/32-1/16*I,183/256-97/128*I,3/64+13/64*I,-23/32-59/256*I,15/128-3/32*I,19/256+551/1024*I],
        [21/8+I,-537/64+143/16*I,-5/8-39/16*I,2473/256+137/64*I,-149/64+49/32*I,-177/128-1369/128*I,125/64+87/64*I,-2063/256+541/128*I,85/256-33/16*I,805/128+2415/512*I,-219/128+115/256*I,6301/4096-6609/1024*I,119/128+143/128*I,-10879/2048+4343/4096*I,129/256-549/512*I,42533/16384+29103/8192*I],
        [-2,17/4-13/2*I,1+I,-19/4+5/4*I,1/2-I,9/4+55/16*I,-3/4,45/32-37/16*I,1/4+1/2*I,-129/64-9/64*I,1/4-5/16*I,65/128+87/64*I,-9/32-1/16*I,183/256-97/128*I,3/64+13/64*I,-23/32-59/256*I],
        [1/4+13/4*I,-825/64-147/32*I,21/8+I,-537/64+143/16*I,-5/8-39/16*I,2473/256+137/64*I,-149/64+49/32*I,-177/128-1369/128*I,125/64+87/64*I,-2063/256+541/128*I,85/256-33/16*I,805/128+2415/512*I,-219/128+115/256*I,6301/4096-6609/1024*I,119/128+143/128*I,-10879/2048+4343/4096*I],
        [-4*I,27/2+6*I,-2,17/4-13/2*I,1+I,-19/4+5/4*I,1/2-I,9/4+55/16*I,-3/4,45/32-37/16*I,1/4+1/2*I,-129/64-9/64*I,1/4-5/16*I,65/128+87/64*I,-9/32-1/16*I,183/256-97/128*I],
        [1/4+5/2*I,-23/8-57/16*I,1/4+13/4*I,-825/64-147/32*I,21/8+I,-537/64+143/16*I,-5/8-39/16*I,2473/256+137/64*I,-149/64+49/32*I,-177/128-1369/128*I,125/64+87/64*I,-2063/256+541/128*I,85/256-33/16*I,805/128+2415/512*I,-219/128+115/256*I,6301/4096-6609/1024*I],
        [-4,9-5*I,-4*I,27/2+6*I,-2,17/4-13/2*I,1+I,-19/4+5/4*I,1/2-I,9/4+55/16*I,-3/4,45/32-37/16*I,1/4+1/2*I,-129/64-9/64*I,1/4-5/16*I,65/128+87/64*I],
        [-2*I,119/8+29/4*I,1/4+5/2*I,-23/8-57/16*I,1/4+13/4*I,-825/64-147/32*I,21/8+I,-537/64+143/16*I,-5/8-39/16*I,2473/256+137/64*I,-149/64+49/32*I,-177/128-1369/128*I,125/64+87/64*I,-2063/256+541/128*I,85/256-33/16*I,805/128+2415/512*I],
        [0,-6,-4,9-5*I,-4*I,27/2+6*I,-2,17/4-13/2*I,1+I,-19/4+5/4*I,1/2-I,9/4+55/16*I,-3/4,45/32-37/16*I,1/4+1/2*I,-129/64-9/64*I],
        [1,-9/4+3*I,-2*I,119/8+29/4*I,1/4+5/2*I,-23/8-57/16*I,1/4+13/4*I,-825/64-147/32*I,21/8+I,-537/64+143/16*I,-5/8-39/16*I,2473/256+137/64*I,-149/64+49/32*I,-177/128-1369/128*I,125/64+87/64*I,-2063/256+541/128*I],
        [0,-4*I,0,-6,-4,9-5*I,-4*I,27/2+6*I,-2,17/4-13/2*I,1+I,-19/4+5/4*I,1/2-I,9/4+55/16*I,-3/4,45/32-37/16*I],
        [0,1/4+1/2*I,1,-9/4+3*I,-2*I,119/8+29/4*I,1/4+5/2*I,-23/8-57/16*I,1/4+13/4*I,-825/64-147/32*I,21/8+I,-537/64+143/16*I,-5/8-39/16*I,2473/256+137/64*I,-149/64+49/32*I,-177/128-1369/128*I]]Tr   r  r5  s    ru   test_issue_16823r#    sC    q F G 	HA 
T	vvx1}} 
		r  c                  r   [        / SQS[        S5      -   S[        S5      -   S[        S5      -
  [        S5      * S-
  SSSSS/	SS[        S5      -  -   SS[        S5      -  -
  SS[        S5      -  -
  SS[        S5      -  -   SSSSS/	S	[        S5      -  S-
  SS
[        S5      -  -
  SS
[        S5      -  -   SS
[        S5      -  -   SSSSS
/	SS[        S5      -  -
  S[        S5      -  S-   S[        S5      -  S-   SS[        S5      -  -
  SSSSS/	SS
[        S5      -  -   SS
[        S5      -  -   S	[        S5      -  S-
  SS
[        S5      -  -
  SSSSS
/	S	S[        S5      -  -   S	S[        S5      -  -
  S	S[        S5      -  -
  S	S[        S5      -  -   SSSSS/	S[        S5      -
  [        S5      * S-
  S[        S5      -   S[        S5      -   SSSSS/	/5      n [        S5         U R                  5       [        SSSSSSSS[	        S5      S-  /	SSSSSSSS[	        S5      * S-  /	SSSSSSSS[	        S5      S-  /	SSSSSSSS[	        S5      * S-  /	/ SQSSSSSSSS[	        S5      * S-  /	/ SQSSSSSSSS[	        S5      * S-  /	/5      S4:X  d   e S S S 5        g ! , (       d  f       g = f)N)	rj   rj   rj   rj   rj   r   rj   r   r   rj   rh   r   r   rv  r   r   rw  ri   r   rk   r  r  T)	r   r   r   r   rj   r   r   r   r   )	r   r   r   r   r   r   rj   r   r   r  )r   rB   r\   r  r"   r5  s    ru   test_issue_18531r%    s   #	
T!Wb47lAQK$q'Aq!RAN	aQiaQiaQiaQiQPRTVXYZ	DGaQtAwYQtAwYAd1gIr2qRTVWX	
QtAwY$q'	Aqay1}a!DG)mQQPRTUV	aQiQtAwY47
QAd1gIq"bRTVWX	aQiaQiaQiaQiQPRTVXYZ	
T!WtAwhlAQKd1gr1aAN	
 		A 
T	vvxF1aAq!ad1f-1aAq!adU1W-1aAq!ad1f-1aAq!adU1W-*1aAq!adU1W-*1aAq!adU1W-$/ 0 2JK K 	K K 
		s   .B0J((
J6c            	      
   [        [        S 5        [        [        S 5        [        [        S 5        [        [        5         S[        S5      S'   S S S 5        [        5       [        / 5      s=:X  a  [        SS/ 5      :X  d   e   e[        / /5      [        SS/ 5      :X  d   e[        / / /5      [        S	S/ 5      :X  d   e[	        5          [        S/S
//5      R                  5       S/S
//:X  d   e S S S 5        [	        5          [        S/S
//5      R                  R                  5       S//S
//:X  d   e S S S 5        [        S//5      n [	        5          [        R                  U S'   S S S 5        [        [        S/SS//5      nUnUR                  UR                  :X  d   eUR                  S	:X  d   eUS S  [        SSS/:X  d   e[        S	S	[        SSS/5      nUnUR                  UR                  :X  d   eUR                  S	:X  d   eUS S  [        SSS/:X  d   eX:X  d   e[        U5      U:X  d   e[        S	S[        SS5      5      n[        SS[        SS5      5      n[        XE/5      nUR                  S:X  d   eUR                  S:X  d   eUS S  / SQ:X  d   e[        [        S	5      5      [        S	5      :X  d   e[        [        [        S	5      5      5      [        [        S	5      5      :X  d   e[        U5      UR                  " 5       :X  d   e[        [        U5      5      [        U5      R!                  5       :X  d   eU[        U5      Ld   e[#        SS	5      [#        SS5      S	-  /[#        S	S5      S-  [#        S	S	5      S-  //n[        U5      n U [        / SQ/ SQ/ SQ/ SQ/ SQ/5      :X  d   eU R                  5       U:w  d   e[        USS9R                  5       U:X  d   e[%        SS	S	5      n[#        S	5      U/n[        U5      [        SS/SS/US   US   /US   US   //5      :X  d   e[	        5          [        USS9R                  5       U V	s/ s H  o/PM     sn	:X  d   e S S S 5        [        [#        S	5      [#        S5      /5      [        [#        S	5      /5      :X  d   e[        [        S 5        [        [        S 5        [        SS	/SS//5      n [        U S/5      n
U
[        SS	/SS/SS//5      :X  d   eg ! , (       d  f       GN= f! , (       d  f       GN@= f! , (       d  f       GN= f! , (       d  f       GN= fs  sn	f ! , (       d  f       N= f)Nc                  .    [        SS[        S5      5      $ )Nrl   r  )r   r   r{   rw   ru   r   test_creation.<locals>.<lambda>  s    vaE"I6rw   c                      [        SS/ 5      $ )Nrl   r   r  r{   rw   ru   r   r(    s    vaR0rw   c                      [        S5      S   $ r{  r  r{   rw   ru   r   r(    s    vf~a0rw   rl   re  ri   r   rj   rh   r  r~   r   r   r   rk   )rj   rj   rh   rh   rh   )ri   ri   ri   rk   rk   Fr9  r   r   r   rn   c                  B    [        [        S5      [        SS5      /5      $ )Nrh   r   ri   r   r5   r{   rw   ru   r   r(  '      vtAwQ
&;<rw   c                  B    [        [        S5      [        SS5      /5      $ )Nrh   ri   r   r,  r{   rw   ru   r   r(  (  r-  rw   )rl   rm   rm   )r_   r  r   r   rc   r   r2  r"   EmptySetrP   rr   rq   r   r.   r   as_immutable
as_mutabler5   r   )r6  rK   r   rL   c23c13rM   datr   r   r   s              ru   test_creationr5    s   
:67
:01
:01	
	vq 
 8vbz5VAq"%5555552$<6!Q++++2r(vaB//// 
 	!T{m$++-A3+>>> 
"		!T{m$&&--/aSED6?BBB 
"uA		!**$ 
" 	AA A	A66QVV66Q;;Q4Aq!Q<q!aAq\"A	A66QVV66Q;;Q4Aq!Q<6M6!9>>
AuQ{
#C
AuQ|
$CzA66Q;;66Q;;Q4....#a&>SV###?3q623s1v7NNNN1!1111/!$%);)F)F)HHHHF1I1ItAay{#d1Qik4!9Q;%?
@CsA     88:#&--/3666S!QA7A,C#;&AAtWagtWag	"    
 
 	!cE*113S7ISS7IIII 
" 47DG$%a	)::::
:<=
:<= 	AA A	F	B!Q!Q!Q01111W 
	 
"	!	!	! 
"	!h 8J 
"	!sN   T(T/3UUU*-U%9U*
T,/
T>
U
U"%U**
U8c                  $   [         R                  " S[        SS5      [        SS5      S-  [        SS5      S-  [        SS5      S-  [        SS5      S-  [        SS5      S-  [        SS5      S-  5      [        / SQ/ SQ/ S	Q/ S
Q/5      :X  d   eg )Nri   rh   rj   rk   rl   rm   r   )rj   rh   rh   rh   ri   ri   )rk   rh   rh   rh   rl   rl   )rm   rm   r   r   rl   rl   )r   	irregularr5   r{   rw   ru   test_irregular_blockr8  0  s    AtAay$q)A+tAay{Qq	!T!AYq[$q)A+tAay{<?E	G @  rw   c                     [        S5      n U S S2S S24   [        S5      :X  d   eU SS2SS24   [        S5      :X  d   e[        SSS 5      nUSS S 24   [        SSS5      :X  d   eUSS2S4   [        SSS5      :X  d   e[        / S	Q/ S
Q/ SQ/ SQ/5      nUS S 2S4   [        SS/ SQ5      :X  d   eUSS 2S S 24   [        / SQ/ SQ/5      :X  d   eg )Nrk   ri   rh   r   c                 
    X-   $ r   r{   r   s     ru   r   test_slicing.<locals>.<lambda>>      15rw   rj   r   r  r*  )rk   rl   rm   r   )r   r   r   r   )r        r/  r   )ri   r   r   r/  r   )r.   rI   r   )m0r   r   s      ru   test_slicingr@  9  s    	QBbqb"1"f:Qac1Q3h<58###	1(	)Bad8vaI....ac1f:1f----	|^=MN	OBae9q!^4444bc1f:1A BCCCCrw   c                     [        S5      n [        S5      U SS2SS24'   U [        S5      :X  d   e[        S5      U S S2S S24'   U [        S5      :X  d   e[        SSS5      U S S 2S4'   U [        S5      :X  d   e[        S5      U S S 2S S 24'   U [        S5      :X  d   e/ SQU S S 2S S 24'   U [        S5      :X  d   eSS/U S S2S4'   U [        S	5      :X  d   eg )
Nrk   rh   )r  r  r  r  rj   r  r   )r  )rh   rj   r   r   )ri   r   rj   r   )rk   r   r   rj   r  r  r  r=  r>  r/     ))r   rh   ri   rk   )r   rm   r   r   r  rC  )rI   r.   r   r   s    ru   test_submatrix_assignmentrE  G  s$   aAa&Aac1Q3hK & ' ' ' ' AAbqb"1"fIA;;Q<(AadG & ' ' ' ' AhAadGa==MAadG * + + + + 1vAbqb!eH * + + + +rw   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 )Nri   rj   r   )	rj   r   r   r   rj   r   r   r   rj   rk   c                 
    X-   $ r   r{   r   s     ru   r   test_reshape.<locals>.<lambda>f  r<  rw   )r   r%  )ri   rk   rh   r   rh   rm   ))r   rj   rh   ri   rj   rh   )ri   rk   rh   ri   rk   rl   )r.   reshaper   r?  r   s     ru   test_reshaperK  c  s    	QB::ava,GHHHH	1(	)B::	1DEF F F::av&NOOOOrw   c                      [        S5      n U R                  S 5      [        S5      S-  :X  d   eU R                  S 5      [        S5      :X  d   eg )Nri   c                     SU -  $ r  r{   rt   s    ru   r    test_applyfunc.<locals>.<lambda>n  s    !A#rw   rh   c                     gNr   r{   rt   s    ru   r   rN  o  s    !rw   )r.   	applyfuncrI   )r?  s    ru   test_applyfuncrR  l  sE    	QB<<&#a&(222<<$a000rw   c            	         [        [        [        [        -   -  S/[        [        -   [        -  [        -  [        [        [        [        [        -   -  -   -  //5      n U R                  5       nU[        [        [        -  [        S-  -   S/[        [        S-  -  [        [        S-  -  -   [        [        -  [        [        S-  -  -   [        S-  -   //5      :X  d   e[	        SSS9n[        [        [        U-  5      /5      R                  SS9[        [        U5      [        [        U5      -  -   /5      :X  d   e[        / SQ/ SQ/ S	Q/5      R                  5       [        S
S
[        SS5      // SQ/ SQ/5      :X  d   eg )Nrh   ri   rK   Tr+  )complexr   )r   r   r   r   rj   )r   rj   r   r   )
r   rP   rQ   r-   r$   r,   r   r)   rA   r    )r?  r   rK   s      ru   test_expandrU  r  sW   	!QU)QAE19a-A1q5	M1B!CD	EB	B
A#1*a1QT6AadF?AaC!AqD&L1a4,?@AC C C C 	sA3qs8*$$T$2A3q6!"#$ $ $ 9j)4599;v	
Ax1~G @   rw   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   rP   rB   rQ   refiner   r,  r  r  rJ  s     ru   test_refinerX    st   	#a&!)T!Q$Z(adCFAI%tAqDz#a&!)';<> 
?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9rw   c            	      j   [        SS5      n [        SSSS9n U [        SSSS9:X  d   e[        SSSS5      n [        SSSS9n U [        SSSS9:X  d   eU R                  5       nUR                  " 5         X:X  d   e[        R                  " S5      nU [        SSUS9:X  d   eS	 H(  nS
 H  n[        USXBS9n X R
                  :X  a  M   e   M*     [        SSSS9n Sn[        U R                  S   5       H3  n[        U R                  S   5       H  nXU4   S:X  d  M  US-  nM     M5     US:X  d   eg )Nri   )seedrk   r      T)rZ  	symmetric)r\  prng)r   r   )r~  F      )r\  percentr]  r   rj   r^  )minr`  r_  )r8   rh  r@   randomRandomr2  r   r  )r6  r"   rngr  r`  
zero_countr   r   s           ru   test_randomrf    sD   1aA1aa A
1aa((((1aC A11-A
115555	AJJL6M6
--
C
137777 $G44KA8O8 % 
 	21b)AJ1771:qwwqz"AAw!|a
 #  rw   c                    ^^ [        S5      n U R                  5       [        S5      :X  d   eU R                  SS9[        S5      :X  d   eU R                  SS9[        S5      :X  d   eU R                  SS9[        S5      :X  d   eU R                  SS9[        S5      :X  d   eU R                  SS9[        S5      :X  d   e[        / SQ/ S	Q/ S
Q/5      n U R                  5       nX-  [        S5      :X  d   eU R                  SS9U:X  d   eU R                  SS9U:X  d   eU R                  SS9U:X  d   eU R                  SS9U:X  d   eU R                  SS9U:X  d   e[        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ 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      nUR                  S%S9U-  [        UR                  S&   5      :X  d   e[        mT" / S'Q/ S(Q/ S)Q/5      m[        UU4S* jS+R                  5        5       5      (       d   e[        mT" / S'Q/ S(Q/ S)Q/5      m[        UU4S, jS+R                  5        5       5      (       d   eg )-Nrk   r  r  r  r  r  QR)rh   ri   rl   )ri   rm   rh   )r   ri   rm   ri   )r   r   r   r   rj   r   r   rj   r   rj   rj   rj   r   r   r   rj   rj   r   r   r   r   rj   rj   r   r   )rj   r   rj   r   r   rj   r   r   rj   r   rj   r   rj   rj   rj   r   rj   rj   r   r   r   r   r   rj   r   )rj   rj   rj   rj   r   rj   r   r   rj   rj   r   r   r   rj   rj   rj   rj   r   r   rj   rj   r   r   rj   rj   )rj   r   r   r   r   r   rj   rj   r   r   rj   rj   rj   r   r   r   r   r   r   rj   r   r   rj   r   r   )rj   r   r   rj   rj   rj   r   rj   r   r   rj   r   r   rj   rj   rj   r   rj   r   r   r   rj   r   r   r   )rj   r   r   r   r   r   r   r   rj   rj   rj   r   rj   r   rj   rj   rj   rj   r   r   r   rj   rj   r   rj   )r   rj   rj   rj   r   r   r   r   rj   rj   rj   r   rj   r   rj   r   rj   r   rj   r   rj   r   r   rj   r   )rj   rj   r   r   r   rj   rj   r   r   rj   rj   r   rj   rj   r   rj   rj   r   rj   r   rj   rj   r   rj   rj   )r   r   rj   rj   rj   r   r   rj   rj   r   rj   rj   r   rj   r   r   r   r   r   r   rj   r   rj   r   rj   )rj   r   rj   rj   rj   r   rj   r   r   rj   rj   r   rj   rj   r   rj   rj   rj   rj   r   rj   rj   rj   r   r   )r   rj   rj   r   r   r   r   rj   rj   r   rj   r   rj   r   rj   rj   r   r   rj   r   r   r   rj   rj   r   )rj   r   r   rj   r   rj   r   rj   rj   r   r   rj   r   rj   r   rj   r   rj   r   rj   r   rj   rj   r   r   )r   rj   rj   r   r   rj   rj   r   r   rj   rj   r   rj   r   r   r   rj   r   r   rj   r   rj   rj   r   rj   )rj   rj   rj   r   rj   r   r   rj   r   r   rj   r   rj   rj   r   r   rj   rj   rj   r   rj   r   rj   rj   r   )r   rj   r   r   r   r   rj   rj   r   rj   rj   r   r   r   r   rj   r   rj   rj   rj   r   r   rj   r   r   )rj   rj   rj   rj   r   rj   rj   rj   rj   rj   rj   r   r   r   rj   r   rj   r   rj   r   r   rj   r   r   r   )r   r   r   rj   r   rj   rj   r   rj   r   r   r   r   r   rj   r   rj   rj   r   rj   r   rj   rj   r   rj   )r   rj   r   rj   r   r   r   r   rj   rj   rj   r   r   rj   rj   rj   r   r   rj   r   rj   rj   r   rj   rj   )rj   r   rj   rj   r   rj   r   rj   rj   r   rj   rj   rj   r   rj   r   r   r   r   rj   r   r   rj   r   rj   )r   r   r   rj   r   r   rj   rj   r   rj   rj   r   rj   r   rj   rj   r   r   r   r   r   r   r   r   r   )rj   r   r   r   r   rj   r   rj   r   r   rj   rj   r   rj   r   rj   rj   rj   rj   r   rj   rj   rj   rj   rj   )r   r   rj   rj   r   rj   r   r   r   rj   r   r   rj   r   r   rj   r   r   r   rj   r   rj   r   rj   rj   )r   r   r   r   r   rj   rj   rj   r   rj   rj   rj   r   r   r   rj   r   rj   rj   r   rj   rj   r   r   r   )r   r   rj   r   rj   rj   r   rj   rj   rj   r   r   rj   r   rj   r   r   rj   r   rj   r   r   r   r   r   )r   r   r   rj   rj   r   rj   rj   rj   r   r   rj   r   rj   r   rj   rj   r   rj   rj   rj   r   r   rj   r   BLOCKr   )r  1      )r   G   ^   );      A   c              3   \   >#    U  H!  n[        TR                  U5      5      TL v   M#     g 7fr   r  r  rB  r  rP  r   s     ru   rC  test_inverse.<locals>.<genexpr>  $     L.KtAEE!H~$.K   ),zGE ADJ LU CH LDL QRc              3   \   >#    U  H!  n[        TR                  U5      5      TL v   M#     g 7fr   rr  rs  s     ru   rC  rt    ru  rv  )r.   r  r   r  r   rK  ro  r   )r   AinvAArP  r   s      @@ru   test_inverserz    sq   AA557c!f555Q'''555#a&(((555Q'''555#a&(((555Q'''	 	A 557D6SV555%%%555$&&&555%%%555$&&&555%%%	\WWWWWWWWWWWWWWWWWWWWWWWW1Y 
ZB2 666!B&#bhhqk*::::
C\ 	A L.C.I.I.KLLLLL
C\ 	A L.C.I.I.KLLLLLrw   c                     [        S5      u  pp#n[        S5      n[        SSSSSSU -  U-  SU-  U-  -
  SU -  SU-  -
  -  SU -  U-  SU -  SU-  -
  -  /SSSSSSU -  U-  SU-  U-  -   SU -  U-  SUS-  -  -
  -  S/SSU -  U-  SU-  U-  -
  SU -  SU-  -
  -  SU -  U-  SU -  SU-  -
  -  SSSS/SSU -  U-  SU-  U-  -   SU -  U-  SUS-  -  -
  -  SSSSS/SSSSU -  U-  SU-  U-  -
  SU -  SU-  -
  -  SU -  U-  SU -  SU-  -
  -  SS/SSSSU -  U-  SU-  U-  -   SU -  U-  SUS-  -  -
  -  SSS/SSU -  U-  U-  SU-  U -  SU-  U-  -
  -  SSU -  U-  U-  SU-  U -  SU-  U-  -
  -  SSU -  U-  U-  SU-  U -  SU-  U-  -
  -  S//5      nUR                  5       nXg-  [        S5      -
  R	                  [
        5      [        S5      :X  d   e[        S	 UR                  [        5       5       5      S
:  d   eg )Nz)Tau Tau_syn_in Tau_syn_ex C_m Tau_syn_gap__hr         ?       @      rh   r   c              3   8   #    U  H  n[        U5      v   M     g 7fr   rb  rB  fs     ru   rC  :test_inverse_symbolic_float_issue_26821.<locals>.<genexpr>       /!s1vv        @@)
rD   r   r  r.   rQ  rJ   rI   maxatomsr   )Tau
Tau_syn_in
Tau_syn_exC_mTau_syn_gapr|  r6  Mis           ru   'test_inverse_symbolic_float_issue_26821r    s   4;<g4h1CZk
%.C	
1QqCGCKJs 22SWS^5KLTRUXV`M`befibijmnxjxbxMyz	
1QqDHSLZ!33c#gj6HZYZ]IZ6Z[\_`	
CGCKJs**SWS^-CDT#XjEXZ]^aZabefpbpZpEqrstuvwxyz	
DHSLZ++c#gj.@ZQR]AR.RSTWXYZ[\]^_`	
1QCCOC//#c'#k/2IJ4PS8T_K_adehahilmxixaxKyz{|}~	
1QSS_S003s7;3Fs;XY>GY3YZ[^_`abc	T#Xj $c#gck#c'*2D&DEaSQ\H\]`H`befibijmbmnqrunu  wB  oB  cB  IC  DE  FJ  KN  FN  OY  FY  Z]  F]  _b  cf  _f  gj  _j  kn  or  kr  s}  k}  _}  F~  @  	A 	A 
BD3q6M$$V,a888 /rxx//#555rw   c                     [        S5      u  pp#n[        S5      n[        / SQSUS-  -  SU-  SSSSS// SQSSSUS-  -  SU-  SSS// S	QSSSSSUS-  -  SU-  S/S
U-  SS
U-  SS
U-  SSU -  //5      nXV-  R                  5       nUR                  U5      Xg-  -
  R	                  [
        5      [        S5      :X  d   e[        S UR                  [        5       5       5      S:  d   eg )Nz-Tau, Tau_syn_in, Tau_syn_ex, C_m, Tau_syn_gapr|  )r   r}  r   r   r   r   r   r   rh   r   r   )r   r   r   r}  r   r   r   )r   r   r   r   r   rj   r   rj   r   c              3   8   #    U  H  n[        U5      v   M     g 7fr   r  r  s     ru   rC  6test_matrix_exponential_issue_26821.<locals>.<genexpr>  r  r  r  )
rD   r   r,   r+   rQ  rJ   rI   r  r  r   )rK   rL   rM   rN   r   rO   r6  Mes           ru   #test_matrix_exponential_issue_26821r    s    KLMA!A;	AqD"Q$aAQ1;;Q1a4AQ1;;QaAr!Q$w1;qSQAaCA1Q31bd; 	A #BGGAJ((0E!H<<< /rxx//#555rw   c                     [        SS[        S-  [        -  S[        S-  -  [        [        -  -   /5      n [        [        /nU R                  U5      [        S[        -  [        -  [        S-  /[        S[        -  [        -   //5      :X  d   e[        SS[        [        S-  [        S-  -  /5      n U R                  U5      [        SS/S[        -  [        S-  -  [        S-  S-  [        S-  -  //5      :X  d   e[        S-  [        -  n[        [        /n[	        X!5      [        S[        -  S[        -  /S[        -  S//5      :X  d   e[        S-  [        S-  -  n[	        X!5      [        S[        S-  -  S[        -  [        S-  -  /S[        -  [        S-  -  S[        S-  -  [        -  //5      :X  d   e[
        [        [        S-  -  -   n[        S-  S[        S-  -  -   n[        SS[        -  /S[        -  S[        -  //5      nU[	        U[        [        [        /5      5      :X  d   eU[	        U[        [        [        /5      R                  5      :X  d   e[	        U[        [        4U/5      [        SS[        S-  -  S[        -  /S[        S-  -  S[        -  S[        -  /S[        -  S[        -  S//5      :X  d   eg )Nrj   rh   rk   ri   r   rm   )r   rP   rQ   jacobianr0   rR   r2  )r  symsr  ganss        ru   test_jacobian_hessianr    s   q!ad1fa1fqsl+,Aq6D::dv!Aq!t}q!A#'l&CDDDDq!aAad^$A::dv1v!AqD!Q$q&A+/F&GHHHH	1QAq6D1v!QqSzAaC8&<====	1QT	A11a41QT"QqSAXqAvax$89:; ; ; 	
AadF
A	1qAvA
1!*Q3!* C'!VQF^,,,,'!VQF^--....1q!fqc"f1a41	
1a4AaC1aCAaC1. '       rw   c                     [        [        [        5      [        [        5      /[        5      [        [        5      S-  [        [        5      S-  -   :X  d   e[        [	        [        5      [	        S[        -  5      /[        5      [	        S[        -  5      :X  d   e[        [	        [        5      [        /[        5      [	        [        5      [        [	        [        5      -  -
  :X  d   e[        S[        [        S-  /[        5      S:X  d   eS[	        [        5      -  [        [        5      -  [        -  S[        [        5      -  [	        [        5      -  [        S-  -  -   S[	        [        5      -  [        [        5      -  [        -  -
  [	        [        5      [        [        5      -  [        S-  -  -
  [	        [        5      [        [        5      -  [        S-  -  -   n [        [	        [        5      [        [        5      [        S-  /[        5      R                  5       U :X  d   e[        [	        [        5      [        [        5      [        S-  /[        SS9R                  5       U :X  d   e[        S-  * [        [        5      S-  -  [        S-  [        [        5      S-  -  -
  S[        -  [        [        5      S-  -  -
  S[        -  [        [        5      S-  -  -
  n[        [        [        5      [        [        5      [        S-  /[        5      R                  5       U:X  d   e[        [        [        5      [        [        5      [        S-  /[        SS9R                  5       U:X  d   e[        / [        5      S:X  d   eg )Nrh   ri   rj   r  rm   r  r  )rH   r)   rP   rA   r,   r-   )w1w2s     ru   test_wronskianr  4  s   c!fc!f%q)SVQYQ-BBBBc!fc!A#h'+s1Q3x777c!fa[!$A3q6(9999aAqD\1%***	CF3q6	!	aAhs1voad2	2Qs1vXc!f_Q5F	FAs1vad
 VCF]1a4/
0Bc!fc!fad+Q/668B>>>c!fc!fad+Q{CJJL  
Q$s1vqy1a4A	>	)AaCA	M	9AaCA	M	IBc!fc!fad+Q/668B>>>c!fc!fad+Q{CJJL  Rq   rw   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[         H:  n [        SS/SS//5      U R                  S5      R                  SS05      :X  a  M:   e   g )	Nrj   rk   rl   rh   r   r   rw  r   )r   rP   xreplacerQ   rR  r.   rO  s    ru   test_xreplacer  E  s    Aq6Aq6"#,,aV4AA ! ! !Aq6AE1:&'00!RB@Q"a!"# # #1v1v&'3771:+>+>1v+FFFF rw   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         U[        [        [        -   [        [        -  -  S[        -   /S[        -   SSS[        [        U -  5      -  -
  [        U -  -  -  //5      :X  d   eS[        -   S-  n[        U//5      nUR                  5         U[        U//5      :X  d   eUR                  [        S9  U[        UR                  [        S9//5      :X  d   e[        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[        [        [        [        5      S-  [        [        5      S-  -   //5      5      [        S//5      :X  d   e[        SS/SS//5      nSUR                  5       -  R                  5       [        SS	5      :X  d   eg )
NrJ  r  rj   rh   )ratior_  ri   rk   "   )r$   r   r   rP   rQ   r)   r7   r@   r6   r   rA   tracer    )rJ  r  r6  eqr   s        ru   test_simplifyr  N  s0   sAAQqS1Q3YQqSAHQ4!AaD&=!A$&QqS3q2v;q=-@(AB(FHJ 	KAJJL1q51q5/!a%I$%E1q1SAY;A.F+GIK L L L L
a%!BvAJJLvJJRJ2./01111sAAqS1Q3YQqSA@Q4!AaD&=!A$
QqS3q2v;q=%8 9B >@ 	A ::<6q51q5/!a%9E1q1SAY;A679#    
 a%!B"A::<6B4&>)))::B:6BKKbK,A+B*C#DDDDOc!fai#a&!)&;%<$=>?#aSE*+ + + 	Q!Q !AqwwyM##%!R888rw   c                     [        / SQ/ SQ/5      n U R                  [        SS/SS/SS/SS/SS/SS/SS/S	S	/S
S
/SS//
5      :X  d   eU R                  R                  U :X  d   eU R                  U R                  5       :X  d   eg )N)
rj   rh   ri   rk   rl   rm   r   r   r   r   rj   rh   ri   rk   rl   rm   r   r   r   r   )r   r2  	transposer5  s    ru   test_transposer  v  s    ..0 	1A33&QFFFFFFFFFF	% 	& 	& 	& 	& 3355A::33!++-rw   c            
      $   [        [        S 5        [        S[        [        [        /SS[        [        /SSS[        // SQ/5      n U R                  [        / SQ[        * SSS/[        * [        * SS/[        * [        * [        S//5      :X  d   eg )Nc                  ,    [        S5      R                  $ r   )r.   r   r{   rw   ru   r   !test_conj_dirac.<locals>.<lambda>  s    3q688rw   rj   r   r  r  r   )r_   AttributeErrorr   r   r   r5  s    ru   test_conj_diracr    s    
>+,Aq!Aq!Aq! 	A
 33&*2A*2r2*2rAr*, - - - -rw   c                  X    [        / SQ/ SQ/ SQ/5      n U R                  5       S:X  d   eg )Nr   )r   rl   r   )r   r   r   r>  r   r  r5  s    ru   
test_tracer    s-    	 	A 779??rw   c                      [        SSSS/5      n U R                  S:X  d   e[        [        SS/S[        S//5      nUR                  S:X  d   eg )Nrj   rh   r   re  r  )r   r  rP   rQ   )r   r6  s     ru   
test_shaper    sX    q!aVA77fAq	Aq	 	A77frw   c                     [        [        SS/S[        S//5      n U R                  SS 5        U [        [        SS/S[        S-   S//5      :X  d   eU R	                  SS 5        U [        [        S-   SS/S[        -   [        S-   S//5      :X  d   eU R                  S5      [        [        S-   SS//5      :X  d   eU R                  S5      nSUS'   U S   [        S-   :X  d   eU SS S	24   nSUS'   U S   [        S-   :X  d   eU R                  S5      nU[        [        S-   S[        -   /5      :X  d   eSUS'   U S   [        S-   :X  d   eU S S 2S4   nSUS'   U S   [        S-   :X  d   eg )
Nr   rj   c                     X-   S-   $ r  r{   )rr   s     ru   r   !test_col_row_op.<locals>.<lambda>  s
    QUQYrw   rh   ri   c                     U [         U-  -   $ r   )rQ   )rM   r   s     ru   r   r    s    QAXrw   *   r~   r   )r   rP   rQ   row_opcol_opr   r   )r6  r1r$  s      ru   test_col_row_opr    s   Aq	Aq	 	AHHQ&'1AE1' ( ( ( ( HHQ%&QAq)QAq)+ , , , ,
 558vAq!}o....	
qBBqET7a!e	
1crc6BBqET7a!e	
qBQA''''BqET7a!e	
1a4BBqET7a!erw   c                      [        / SQ/ SQ/5      n U R                  SS5        U S   S:X  d   eU S   S:X  d   eU S   S	:X  d   eg )
Nrp   ro   rj   ri   r   r  r~   re  rs  )r   row_multr5  s    ru   test_row_multr    sS     	AJJqOS6R<<S6Q;;S6R<<rw   c                      [        / SQ/ SQ/ SQ/5      n U R                  SSS5        U S   S:X  d   eU S	   S
:X  d   eU S   S:X  d   eg )Nrp   ro   r  rh   r   rl   r~   rm   r   rk   r   rh   r   )r   row_addr5  s    ru   test_row_addr    s[     	A IIa!S6Q;;S6Q;;S6Q;;rw   c                     [          H  n U R                  S5      nUR                  SSS 5        X" / SQ/ SQ/ SQ/5      :X  d   eU R                  S5      S-  nS	US
'   UR                  SSS 5        U  X" / SQ/ SQ/ SQ/5      :X  a  M   e   g )Nri   rj   r   c                     U SU-  -   $ r  r{   r  us     ru   r   !test_zip_row_op.<locals>.<lambda>      AaCrw   r   r  r   rh   r   r   c                     U SU-  -   $ r  r{   r  s     ru   r   r    r  rw   )rh   r   r   )rk   r   r   r   )mutable_classesr.   
zip_row_op)rP  r6  s     ru   test_zip_row_opr    s    GGAJ	Q/0C""$ % % 	% % GGAJqL$	Q/0!C##% & & 	& & rw   c                      [        / SQ5      n [        / SQ5      n[        / SQ5      nU S;  d   eU S;  d   eU S:w  d   eX:X  d   eX:w  d   eg )Nrp   )rh   rh   ri   r{   )rj   rj   r  )r   rK   rL   s      ru   test_issue_3950r    sU    yAyAyARS6M66M66M6rw   c                  h    " S S5      n  " S S5      nU " 5       nU" 5       n[        / SQ5      nXC   S:X  d   eSXC'   US   S:X  d   e[        / SQ/ S	Q/5      nXBU4   S
:X  d   eUSU4   S
:X  d   eXBS4   S
:X  d   eSXBU4'   US   S:X  d   eS
USU4'   US   S
:X  d   eSXBS4'   US   S:X  d   eg )Nc                       \ rS rSrS rSrg)test_issue_3981.<locals>.Index1i  c                     gr  r{   r>  s    ru   	__index__)test_issue_3981.<locals>.Index1.__index__      rw   r{   Nr  r  r  r  r  r  r{   rw   ru   Index1r        	rw   r  c                       \ rS rSrS rSrg)test_issue_3981.<locals>.Index2i  c                     gr  r{   r>  s    ru   r  )test_issue_3981.<locals>.Index2.__index__  r  rw   r{   Nr  r{   rw   ru   Index2r    r  rw   r  rp   ri   rl   rh   ro   rm   rj   rk   re  r   r  )r  r  index1index2r   s        ru   test_issue_3981r    s       XFXFyA9>>AIQ4199	9%&AV^!!!QY<1QY<1AfnT7a<<AaiLT7a<<AaiLT7a<<rw   c                      [        / SQ/5      n U R                  SL d   e[        S/S/S//5      n U R                  SL d   e[        SS5      n U R                  SL d   eg )Nrp   Trj   rh   ri   Frk   )r   is_upperrI   r  s    ru   test_is_upperr    se    	{A::aS1#A::aA::rw   c                      [        / SQ/5      n U R                  SL d   e[        S/S/S//5      n U R                  SL d   eg )Nrp   Frj   rh   ri   T)r   is_lowerr  s    ru   test_is_lowerr    sH    	{A::aS1#A::rw   c                      [        SS/ SQ5      n U R                  " 5       (       d   e[        SS/SS//5      n U R                  " 5       (       a   e[        / 5      n U R                  " 5       (       d   eg )Nrk   )r   rh   rj   rm   r   r   rj   rh   r   r   r   ri   r   r   r   r   rj   r   r   r  r  s    ru   test_is_nilpotentr    sj    q!EFA>>AA A~~r
A>>rw   c                     Su  p[        X5      nUR                  " S5        S[        X5      -  nX#:X  d   eUR                  UR                  s=:X  a  S:X  d   e   eUR                  UR                  s=:X  a  S:X  d   e   eUR
                  UR
                  s=:X  a  S:X  d   e   e[        S5      [        SS5      :X  d   e[        S5      [        SS5      :X  d   e[        SS5      [        SSS/S-  5      :X  d   e[        SS5      [        SSS/S-  5      :X  d   eUR                  " S5        U[        X5      :X  d   eg )N)ri   rl   rl   ri   rh   r   rm   rj   )rI   fillr5   rq   rr   r  r   )rJ  r   rK   rL   s       ru   test_zeros_ones_fillr  '  s)   DAaAFFAK	DJA6M666QVV q     66QVV q     77agg''''''8uQ{"""7d1aj   A;&As1u----1:1qc!e,,,,FF1Iarw   c                      [        S5      n U [        5       :X  d   e[        SS5      n U R                  S:X  d   eU R                  S:X  d   e[        SS5      n U R                  S:X  d   eU R                  S:X  d   eg )Nr   rh   )rI   r   rq   rr   r  s    ru   test_empty_zerosr  <  so    aA==aA66Q;;66Q;;aA66Q;;66Q;;rw   c                     [        [        S-  [        [        -  /[        [        [        5      -  [        [	        [        5      -  //5      n U R
                  " [        5      [        S[        -  [        /[        [        5      [	        [        5      //5      :X  d   e[        [        [        * [        S-  /[        [        5      S[        -  [        [        * 5      -
  [        S[        -  -   //5      R                  [        [        5      [        [        [        * [        /[        S[        //5      :X  d   e[        [        [        5      S-
  [        -  S[        -  [        [        -  -   [        [        -  /S[        -  [        [        5      [        [        [        S-   5      5      //5      R                  [        S5      [        / SQ[        S[        S5      //5      :X  d   eU R                  " [        5      [        [        SS5      [        S-  -  [        [        S-  -  S-  /[        S-  [        [        5      -  S-  [        S-  [	        [        5      -  S-  //5      :X  d   eg )Nrh   rj   r   r  ri   )r   rP   rQ   rA   r)   r+   r,   r  r6   rb  r1   r    r  s    ru   test_issue_3749r  G  s   AqsaAh#a&123A66!91a3q63q6*:;<<<<	
QB1	Q1sA2wAaC(* ++05B<bS"Ar{+,- - - 
a&1*a1qsAqD*	
1c!fc#a!e*o&( )).q!	B3q6?+,- - - ;;q>V	!Q1	a1fQh'	
Ac!fQ1SVA&%( ) ) ) )rw   c                      [        S5      n U R                  SS5        S H'  nU R                  US S9U R                  SS9:X  a  M'   e   g )	Nrk   r   rj   )r  r  c                     U S:H  $ rP  r{   rt   s    ru   r   %test_inv_iszerofunc.<locals>.<lambda>[  s    arw   )r  
iszerofuncr  r  )r.   col_swapr  )r   r  s     ru   test_inv_iszerofuncr  W  sQ    AAJJq!uuF/?u@EEE  	    rw   c                  $   [        S5      u  p[        U [        U5      -  U [        U5      -  /5      n[        X/5      nUR	                  U5      nXBR	                  UR
                  5      :X  d   eXBR
                  R	                  U5      :X  d   eXBR
                  R	                  UR
                  5      :X  d   eUR
                  [        UR                  S   5      -  U-  nUR                  [        5      nU[        SS/SU S-  //5      :X  d   eg )Nrho,phir   rj   rh   )
rD   r   r)   rA   r  r2  r.   r  rQ  rG   )rhophiXYr  r  s         ru   test_jacobian_metricsr  _  s    y!HCCHc#c(l+,AzA	

1A

133q!!!!qss####	C
OAA	HAACF,----rw   c                  :   [        S5      u  p[        U [        U5      -  U [        U5      -  U S-  /5      n[        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g )Nr  rh   r   )rD   r   r)   rA   r  )r  r  r  r   r  s        ru   test_jacobian2r  l  s    y!HCCHc#c(lCF34AzA	SC4C=!	SCCL!cEq! 	A
 ::a=Arw   c                     [        [        [        [        -   [        -   5      [        [        [        -   [        -   5      [        [        [        -   [        -   5      /5      n [        [        [        [        /5      n[        SS5       H  n[        SS5       Ho  nU S U2S S 24   nUS U2S S 24   nUR                  U5      nUR                  U:X  d   eUR                  U:X  d   e[        U5       H  nUS S 2U4   U:X  a  M   e   Mq     M     g Nrj   ri   )	r   r,   rP   rQ   rR   r   r  rq   rr   )r  r   r   r   X_sliceY_slicer  ks           ru   test_issue_4564r	  x  s    AEAIAEAIAEAI?@A1ayA1a[q!AAhGAhG  )A66Q;;66Q;;1XAw')))   rw   c                    ^ ^ [        [        [        [        -   [        -   5      [        [        [        -   [        -   5      /[        [        [        -   [        -   5      [        [        [        -   [        -   5      //5      m [        [        U 4S j5        T SS S 24   m [        [        [        /[        [        //5      m[        [        U U4S j5        [        [        U 4S j5        g )Nc                  V   > T R                  [        [        [        [        /5      5      $ r   r  r   rP   rQ   rR   r  s   ru   r   (test_nonvectorJacobian.<locals>.<lambda>  s    ajjAq	):;rw   r   c                  &   > T R                  T5      $ r   )r  r  r   s   ru   r   r    s    ajjmrw   c                  d   > T R                  [        [        [        /[        [        //5      5      $ r   r  r  s   ru   r   r    s     ajj1a&1a&0B)CDrw   )r   r,   rP   rQ   rR   r_   rp  r  s   @@ru   test_nonvectorJacobianr    s    QUQYQUQY0QUQYQUQY02 	3A
9;<	!Q$AAA A
9+,
9DErw   c                      [        SS/SS//5      n U R                  5       nUR                  S:X  d   e[        S5       H  nX   US-   :X  a  M   e   g Nrj   ri   rh   rk   )r   vecrr   r   )r   m_vecr   s      ru   test_vecr    sV    AA AEEGE::??1Xx1q5    rw   c                     [        SS/SS//5      n U R                  5       nUR                  S:X  d   e[        S5       H  nX   US-   :X  a  M   e   U R                  SS9nUS   S:X  d   e[        S[        [        [
        -   -  /[
        [        -  [        S-  -   S//5      n U R                  SS9nUS   [
        [        -  [        S-  -   :X  d   e[        S[        [        [
        -   -  /[
        [        -  S//5      n U R                  SSS9nUS   [
        [        -  :X  d   e[        [        S 5        [        [        S	 5        [        [        S
 5        [        [        S 5        g )Nrj   rh   ri   Fr  r   )r  check_symmetryc                  :    [        SS//5      R                  5       $ r  r   vechr{   rw   ru   r   test_vech.<locals>.<lambda>      v1vh/446rw   c                  @    [        SS/SS//5      R                  5       $ r  r  r{   rw   ru   r   r        v1v1v&67<<>rw   c                  :    [        SS//5      R                  5       $ r  r  r{   rw   ru   r   r    r  rw   c                  @    [        SS/SS//5      R                  5       $ r  r  r{   rw   ru   r   r    r   rw   )	r   r  rr   r   rP   rQ   r_   rX   r  )r   m_vechr   s      ru   	test_vechr$    sH   AA AVVXF;;!1XyAE!!! VVUV#F!9>>Aq1uI1q!tQ01AVVUV#F!9!ad
"""Aq1uI1a)*AVVU5V9F!9!
:67
:>?
:67
:>?rw   c                     ^  [        / SQ5      [        / SQ5      :X  d   eSSS//m [        [        U 4S j5        [        T SS9[        / SQ5      :X  d   eg )Nrp   rj   rh   ri   c                     > [        T 5      $ r   )r*   r   s   ru   r   test_diag.<locals>.<lambda>  s	    tAwrw   F)strict)r*   r   r_   r  r   s   @ru   	test_diagr)    sK    	?fY////	
AsA
:'% F9$5555rw   c                     [        SS/SS//5      n [        S[        /[        S//5      n[        S[        S/[        S[        /[        [        [        //5      n[	        XU5      nUR                  SS9[	        U R
                  " 5       UR
                  " 5       UR
                  " 5       5      :X  d   e[	        XU5      nUR                  SS9[	        U R
                  " 5       UR
                  " 5       UR
                  " 5       5      :X  d   e[	        XU5      nUR                  SS9[	        U R
                  " 5       UR
                  " 5       UR
                  " 5       5      :X  d   e[	        X XX 5      nUR                  SS9[	        U R
                  " 5       U R
                  " 5       UR
                  " 5       U R
                  " 5       UR
                  " 5       U R
                  " 5       5      :X  d   eUR                  SSS9[	        U R
                  " SS9U R
                  " SS9UR
                  " SS9U R
                  " SS9UR
                  " SS9U R
                  " SS95      :X  d   eg )	Nrj   rh   ri   T)try_block_diagr  )r+  r  r  )r   rP   rQ   rR   r*   r  )rK   rL   rM   r   s       ru   test_inv_blockr,    s   AA AAA AAq	Aq!9q!Qi01AQ1A555%aeegquuw)HHHHQ1A555%aeegquuw)HHHHQ1A555%aeegquuw)HHHHQ1A555%	!%%'1557AEEGQUUW*> > > >55U53t	UQUU%0!%%u2E	UQUU%0!%%u2E8G G G Grw   c                  f   [        [        S 5        [        [        S 5        [        [	        S5      5      [        S5      :X  d   e[        [        S5      5      [        S5      :X  d   e[        [        S 5        [        [	        S5      5      [        S5      :X  d   e[        [        S5      5      [        S5      :X  d   e[        [        S 5        [        [	        S5      [        S5      5      [        SS5      :X  d   e[        [        S 5        [        [        S 5        [        [        S	 5        g
)z[
Check that matrix dimensions can be specified using any reasonable type
(see issue 4614).
c                      [        SS5      $ )Nri   r   rI   r{   rw   ru   r   $test_creation_args.<locals>.<lambda>  s
    uQ|rw   c                      [        SSSS5      $ Nrj   rh   ri   rk   r/  r{   rw   ru   r   r0    s    eAq!Q/rw   ri   c                      [        S5      $ N      @r/  r{   rw   ru   r   r0    s    uRyrw   c                      [        S5      $ r4  r.   r{   rw   ru   r   r0    s    s2wrw   rk   c                      [        S5      $ r   r  r{   rw   ru   r   r0    s    fQirw   c                      [        SS5      $ r  r  r{   rw   ru   r   r0    s
    fQlrw   c                      [        SS//5      $ r  r  r{   rw   ru   r   r0    s    vq1#h/rw   N)r_   r  rp  rI   rn  r   r.   r5   r{   rw   ru   test_creation_argsr;    s    
 :+,
9/0Q=E!H$$$a(((
:()s1v;#a&   wqz?c!f$$$
:'A
#tAqz111
9'(
9*+
:/0rw   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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 )Nrh   r  Fr	  r  rj   ri   )	rj   r   r   r   rh   r   r   r   ri   ))rl   r   ro  r~   )rl   r   r   )r   rm   r   r   )r   is_diagonalr   r*   rI   rP   rQ   r-   r   s    ru   test_diagonal_symmetricalr?    s   q!\"A}}>>>>5>)))q!\"A==???Q1A==???>>q!01AQ1q!U1a[!A~~==???'(A==???%&A==???q!aA!aQUQJ1aAFGA>>~~u~---88:""E"222rw   c                  x  ^ [        SS[        -   /S[        -
  S//5      mTR                  5       (       d   e[        SS/ SQ5      mTR                  5       (       a   eTR                  5       (       a   e[	        [
        U4S j5        [        SSS5      mTR                  5       u  pU [        S5      :X  d   eUT:X  d   e[        SS/ SQ5      mTR                  5       (       d   eTR                  5       (       d   eTR                  5       u  pU R                  5       T-  U -  U:X  d   e[        SS/ SQ5      mTR                  5       (       d   eTR                  5       (       d   eTR                  5       u  pU R                  5       T-  U -  U:X  d   eU [        S5      :X  d   eUT:X  d   e[        SS/ SQ5      mTR                  5       (       d   eTR                  5       u  pU R                  5       T-  U -  U:X  d   e[        SS/ S	Q5      mTR                  5       (       d   eTR                  5       u  pU R                  5       T-  U -  U:X  d   eU  H  nUR                  5       S   S:X  a  M   e   [        SS/ S
Q5      mTR                  5       (       d   eTR                  5       (       d   eTR                  5       u  pU R                  5       T-  U -  U:X  d   eU [        SS/SS//5      :X  d   e[        SS/ SQ5      mTR                  S5      (       a   e[	        [        U4S j5        TR                  5       (       d   eTR                  5       u  pU R                  5       T-  U -  U:X  d   e[        SS/ SQ5      mTR                  5       (       a   e[	        [        U4S j5        [        SS/ SQ5      mTR                  5       (       a   e[	        [        U4S j5        [        S5      u  p4pV[        SSX5XT/5      mTR                  5       (       d   eTR                  5       (       d   eg )Nrj   rh   ri   rw  rj   rw  r  ri   r   c                  $   > T R                  5       $ r   r  r   s   ru   r   &test_diagonalization.<locals>.<lambda>	      rw   r  )rj   r   r   ri   r  )	rj   rh   r   r   ri   r   rh   r   rh   r  r   )r   rj   r   r   Tc                  &   > T R                  S5      $ )NTrC  r   s   ru   r   rD  /	  s    d 3rw   r   rj   r   r   c                  $   > T R                  5       $ r   rC  r   s   ru   r   rD  7	      rw   )	rw  rj   rw  r  ri   r   rh   r   rk   c                  $   > T R                  5       $ r   rC  r   s   ru   r   rD  ;	  rI  rw   za b c d)r   r   r  r   r_   rW   r*   r  r.   r  as_numer_denomr>  rV   rD   )r  r   r   rK   rL   rM   rN   r   s          @ru   test_diagonalizationrL    s   AaC1Q3(#$A    q!+,A""$$$$~~
!89 	Q1A]]_FQA;;6M6q!\"A>>    ]]_FQ557Q;?aq!\"A>>    ]]_FQ557Q;?aA;;6M6q!\"A    ]]_FQ557Q;?aq!12A    ]]_FQ557Q;?a!!$)))  	q!\"A==???    ]]_FQ557Q;?aAA'(((( 	q!]#A""4((((
;34    ]]_FQ557Q;?a 	q!\"A""$$$$
;/0q!56A""$$$$
;/0 #JA!q!aA\"A>>    rw   c                     ^  [        SS/SS//5      m T R                  " 5       SL d   eST S'   T R                  " 5       SL d   e[        SS/SS//5      m T R                  " 5         ST S'   [        [        U 4S j5        g )Nr   rj   Tr   Fc                  &   > T R                   " 5       $ r   rC  r  s   ru   r   "test_issue_15887.<locals>.<lambda>N	  s    rw   )r   r  r  r_   rV   r  s   @ru   test_issue_15887rP  D	  s    QFQF+,A D(((AdG E)))QFQF+,AMMOAdG
;/0rw   c            	        ^ [        SS/ SQ5      m[        [        U4S j5        [        SS/ SQ5      m[        SS/ SQ5      n TR                  5       u  pX:X  d   eU TR	                  5       S   :X  d   e[        SS/ SQ5      m[        SS/ S	Q5      n TR                  5       u  pX:X  d   e[        SS/ S
Q5      m[        SS/ SQ5      n TR                  5       u  pX:X  d   e[        SS/ SQ5      m[        SS/ SQ5      n TR                  5       u  pX:X  d   e[        SS/ SQ5      m[        SS/ SQ5      n TR                  5       u  pX:X  d   e[        SS/ SQ5      m[        SS/ SQ5      n TR                  5       u  pX:X  d   e[        SS/ SQ5      mTR                  5       (       a   e[        SS/ SQ5      n TR                  5       u  pX:X  d   e[        [        SSS9[        SSS9/[        SSS9[        SSS9//5      mTR                  5       u  pUR                  5        H,  n[        U[        5      (       d  M  UR                  S:X  a  M,   e   g )Nri   rh   rA  c                  $   > T R                  5       $ r   )r  r   s   ru   r   "test_jordan_form.<locals>.<lambda>T	  rE  rw   )	r   r  rm   r   ir   r  ir=  )	r   r   r   r   rj   r   r   r   rj   rj   	r   rj   r   r   rk   r   r   rj   rh   )	rh   rj   r   r   rh   r   r   r   rh   )	rh   rm   rj   rj   r   rj   rh   r  )	r   rj   r   r   r   r   r   r   r   )	rk   r   rh   rl   rv  ri   rm   rk   )	r   rj   r   r   r   r   r   r   rj   rk   )rm   rl   r   rw  rw  r   ri   ri   rh   rj   r   rw  r   rj   rl   rl   )rh   rj   r   r   r   rh   r   r   r   r   rh   rj   r   r   r   rh   )rm   rh   r  rw  rh   r   rm   rh   r   rW  r  r   r   ri   rk   )r   r   r   r   r   rh   rj   r   r   r   rh   r   r   r   r   rh   )rl   rk   rh   rj   r   rj   r   r   r   r   ri   r   rj   rj   r   rh   )rj   r   r   r   r   rh   r   r   r   r   rk   rj   r   r   r   rk   z1.0n   )	precisionz2.0z3.14159265358979323846264338327z4.0)
r   r_   rW   r  r  r  r   r.  r1  _prec)Jmustr  r  termr   s       @ru   test_jordan_formr]  Q	  sV   q!+,A
!89 	q!:;A1a56E==?DA::AMMOA&&&& 	q!23A 1a45E==?DA:: 	q!45A 1a78E==?DA:: 	q!34A1a45E==?DA::q!LMA1a  E
 ==?DA::q!LMA 1a ' (E ==?DA::q!JKA""$$$$1aIJE==?DA:: 	u,eES.IJ8CH%PUadJefh 	iA==?DA
dE""::$$$ rw   c            	      b   [        / SQ/ SQ/ SQ/ SQ/5      n SS[        -  -
  nSS[        -  -   n[        USSS/SUSS/SSUS/SSSU//5      n[        USSS/SUSS/SSUS/SSSU//5      nU R                  5       u  pVXc:X  d  Xd:X  d   e[        XV-  UR	                  5       -  5      U :X  d   eg )	N)rh   rk   rj   r   )r   rh   r   rj   )r   r   rh   rk   )r   r   r   rh   rh   rk   rj   r   )r   r   r  r@   r  )r   pqJmust1Jmust2r  r  s          ru   #test_jordan_form_complex_issue_9274rc  	  s        " 	#A 	
AaCA	AaCAaAq\Aq\Aq\Aq\# $F aAq\Aq\Aq\Aq\# $F ==?DA;!+%%ACK A%%%rw   c                      [        / SQ/ SQ/ SQ/ SQ/5      n U R                  5       u  pU[        / SQ/ SQ/ SQ/ SQ/5      :X  d   eU[        / S	Q/ SQ/ SQ/ SQ/5      :X  d   eg )
Nr  r  r  r  r  r  rG  r  r  )r   r  r  s      ru   test_issue_10220re  	  s     	A ==?DA$$$& ' ' ' ' $$$$	& ' ' ' 'rw   c                     [        / SQ/ SQ/ SQ/ SQ/5      n U R                  5       u  pUR                  5       [        [        * [        * S-  [        [        S-  /S[        -   SS[        -
  S/S[	        S5      * S-  [        S-  -
  S[	        S5      * S-  [        S-  -   // S	Q/5      :X  d   eU[        [        * SSS/S[        * SS/SS[        S/SSS[        //5      :X  d   eg )
Nr  )r   r   r   r   )r   r   r   r   )r   r   rh   rj   rh   r   r   rj   r  )r   r  r-   r   r"   )r   r  r  s      ru   test_jordan_form_issue_15858rg  	  s    	 	A
 ]]_FQ88:R1"Q$Q!A#6	aQQA6!A$q1Q3Q1a!A#66	!8 9 9 9 9
 
Q1	
QB1	
Aq!	
Aq!	    rw   c                  <   [        S5      u  pn[        U* U -
  US-  X-   -  -   X-  X-   -  /X-  X-   -  U* US-  X-   -  -   //5      nUR                  [        5      nU[	        [        S-  X-  X -  -   SU-  U-  -   X-   -  [        -  -   X-  U -  X-   -  -   [        SS9:X  d   e[        U5      [        L d   e[        SS/SS//5      nUR                  5       UR                  [        5      s=:X  a!  [        [        S-  [        -
  S-
  5      :X  d   e   e[        SS/[        S//5      nUR                  [        5      nUR                  [        :w  d   eUR                  5       R                  UR                  [        5      [        S-  S[        -  -
  :X  d   eg )	Nz
UA K_i K_wrh   zZZ(K_i,K_w,UA)r  rj   ri   r   rm   )
rD   r   r  rP   r   r  r   genas_exprr}  )UAK_iK_wr   r  r_  s         ru   test_Matrix_berkowitz_charpolyrn  	  s   <(LBS#S!VSY//sw	7JKGSY/#Q	8J1JKM 	NA zz!}HQTSVcf_quSy039=a??
CI !*:	<< < < >X%%%AA A::<1::a=BHQTAX\,BBBBBBAA A	

1A55A::99;AEE1%A!333rw   c            
         [        S5      n [        R                  " SU 5      nUR                  5       [        [	        U 5      //5      :X  d   e[        R                  " SU 5      nUR                  5       [        [	        U 5      [	        U 5      [	        U 5      S-  /S[	        U 5      [	        U 5      /SS[	        U 5      //5      :X  d   eg )Nlamdarj   ri   rh   r   )r$   r   r  _eval_matrix_exp_jblockr,   r   r   s     ru   test_exp_jordan_blockrs  	  s    wAAq!A$$&&3q6(*<<<<Aq!A$$&VSVSVAX&AA3q6N 	  rw   c            	         [        SS/SS//5      n [        [        S5      S[        S5      -  S-  S[        S5      -  S-  -   /S[        S5      //5      nU R                  5       U:X  d   e[        U 5      U:X  d   e[        SS/SS//5      n U R                  5       [        [        S/S[        //5      :X  d   e[        U 5      [        [        S/S[        //5      :X  d   e[        SS/SS//5      n U R                  5       [        [        [        S5      -  [        * [	        S5      -  /[        [	        S5      -  [        [        S5      -  //5      :X  d   eg )	Nri   rk   r   r   r   rl   rj   r   )r   r,   r   r)   rA   )r   m_exps     ru   test_exprv  	  s<   AB !ASVRBZ\Ac!fHQJ67!SWFGE557eq6U??AA A557fq!fq!f-....q6VaVaV,----B!Q !A557fqQx!CF3aAh#a&5IJKKKKrw   c                    ^ [        S5      n [        R                  " SU 5      mTR                  5       [        [	        U 5      //5      :X  d   e[        R                  " SU 5      mTR                  5       [        [	        U 5      SU -  SSU S-  -  -  SSU S-  -  -  /S[	        U 5      SU -  SSU S-  -  -  /SS[	        U 5      SU -  /SSS[	        U 5      //5      :X  d   e[        / SQ/ S	Q/ S
Q/5      m[        [        U4S j5        g )Nrp  rj   rk   r   rh   ri   r   r   r   r  c                  $   > T R                  5       $ r   )r2   r   s   ru   r   test_log.<locals>.<lambda>
  s    rw   )r$   r   r  _eval_matrix_log_jblockr2   r_   rV   rr  s    @ru   test_logr{  
  s   wAAq!A$$&&3q6(*<<<<Aq!A$$&Q1b!AqD&k1a1f:6CFAaCQq!tV-As1vqs#Aq#a&!		

 
 
 				A
 ;(rw   c            	          [        S5      n [        SSU [        U 5      S-  [        U 5      S-  -   [        R
                  /5      n[        U5      u  p#pEU[        R
                  :X  d   eg )NrP   ri   rj   rh   )r$   r   r)   rA   r"   r   rU   rP   columnpivot_offset	pivot_valpivot_assumed_nonzero
simplifieds         ru   :test_find_reasonable_pivot_naive_finds_guaranteed_nonzero1r  !
  s_     	sAAq1c!fai#a&!)3QVV<=F$V, ?L2rw   c            
          [        S5      n [        SSU [        U 5      S-  [        U 5      S-  -   U S-  -   [        U 5      S-  [        U 5      S-  -   /5      n[	        U[
        S9u  p#pEUS:X  d   eg )NrP   ri   rj   rh   simpfunc)r$   r   r)   rA   rU   r[   r}  s         ru   :test_find_reasonable_pivot_naive_finds_guaranteed_nonzero2r  .
  s~     	sAAqVQYs1vqy(A-VQYs1vqy(*+F
 	%Vi@ ?L2>>rw   c            
      f   [        S5      n [        SSU [        U 5      S-  [        U 5      S-  -   U -   [        U 5      S-  [        U 5      S-  -   /5      n[	        U[
        S9u  p#pE[        U5      S:X  d   eUS   S   S:X  d   eUS   S   SU -   :X  d   eUS   S   S:X  d   eUS   S   S:X  d   eg )NrP   ri   rj   rh   r  r   )r$   r   r)   rA   rU   r[   lenr}  s         ru   +test_find_reasonable_pivot_naive_simplifiesr  >
  s     	sAAqVQYs1vqy(*VQYs1vqy(*+F
 	%Vi@ ?L2 z?aa=q   a=qs"""a=q   a=q   rw   c                  V  ^ ^ [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [
        S 5        [        [        S	 5        [        [        S
 5        [        [        S 5        [        [        S 5        [        [
        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [
        S 5        [        [        S 5        [        [        S 5        [        [
        S 5        [        [        S 5        [        [
        S 5        [        [        S 5        [        [
        S 5        [        [
        S 5        [        [
        S  5        [        [        S! 5        [        [        S" 5        [        [        S# 5        [        [        S$ 5        [        [        S% 5        [        [        S& 5        [        [        S' 5        [        [        S( 5        [        S)5      m [        [        U 4S* j5        [        / S+Q/5      m[        / S,Q/ S-Q/ S.Q/5      m [        [        U U4S/ j5        [        / S,Q/ S-Q/ S.Q/5      m [        [        U U4S0 j5        g )1Nc                  "    [        SS/S//5      $ r  r  r{   rw   ru   r   test_errors.<locals>.<lambda>R
  s    v1vsm4rw   c                  $    [        SS//5      S   $ )Nrj   rh   )g333333?rl   r  r{   rw   ru   r   r  S
      v1vh/7rw   c                  $    [        SS//5      S   $ )Nrj   rh   )rj   g@r  r{   rw   ru   r   r  T
  r  rw   c                      [        SSSS9$ )Nri   rk   T)rM   r\  )r8   r{   rw   ru   r   r  U
  s    z!qDArw   c                  <    [        SS/5      R                  SS5      $ )Nrj   rh   rk   rm   )r   rI  r{   rw   ru   r   r  V
  s    vq!f~55a;rw   c                  ^    [        SS/SS//5      R                  SS/[        SS/5      5      $ ry   )r   copyin_matrixr{   rw   ru   r   r  X
  s/    AA'(661vvq!f~Nrw   c                  X    [        SS/SS//5      R                  SS/[        5       5      $ ry   )r   copyin_listr-  r{   rw   ru   r   r  Y
  s1    fq!fq!f%56BBADurw   c                  @    [        / SQ/ SQ/5      R                  5       $ )Nrp   )rh   ri   r   r   r  r{   rw   ru   r   r  [
  s    I0F)G)K)K)Mrw   c                  \    [        SSSS/5      R                  [        SS/SS//5      5      $ r2  )r   r   r{   rw   ru   r   r  ]
  s.    q!aV$--fq!fq!f5E.FGrw   c                  X    [        SS/5      R                  [        SS/SS//5      5      $ r2  )r   r   r{   rw   ru   r   r  _
  s)    FAq6N33FQFQF;K4LMrw   c                  X    [        S/5      R                  S[        SS/SS//5      5      $ r2  )r   r   r{   rw   ru   r   r  `
  6    vqc{55a!B1vA :  rw   c                  X    [        S/5      R                  S[        SS/SS//5      5      $ r2  )r   r   r{   rw   ru   r   r  b
  r  rw   c                  8    [        SS/5      R                  5       $ r  r  r{   rw   ru   r   r  d
  s    A)=)=)?rw   c                  8    [        S/5      R                  S5      $ r  )r   rQ  r{   rw   ru   r   r  e
  s    faSk33A6rw   c                  D    [        SS/SS//5      R                  SS5      $ Nrj   rh   ri   rk   rl   )r   minorr{   rw   ru   r   r  f
  s#    v1v1v&67==aCrw   c                  D    [        SS/SS//5      R                  SS5      $ r  )r   minor_submatrixr{   rw   ru   r   r  g
  s#    v1v1v&67GG1Mrw   c                  :    [        / SQ5      R                  S5      $ Nrp   rj   r   crossr{   rw   ru   r   r  h
  s    fY/55a8rw   c                  :    [        / SQ5      R                  S5      $ r  r   dotr{   rw   ru   r   r  i
  s    fY/33A6rw   c                  P    [        / SQ5      R                  [        SS/5      5      $ )Nrp   rj   rh   r  r{   rw   ru   r   r  j
  s    vi044VQF^Drw   c                  :    [        SS/5      R                  / 5      $ r  r  r{   rw   ru   r   r  k
  s    vq!f~11"5rw   c                  :    [        SS/5      R                  S5      $ )Nrj   rh   rK   r  r{   rw   ru   r   r  l
  s    faVn005rw   c                  >    [        SS/5      R                  / SQ5      $ )Nrj   rh   rp   r  r{   rw   ru   r   r  m
  s    vq!f~11)<rw   c                  8    [        / SQ5      R                  5       $ )Nrp   )r   r,   r{   rw   ru   r   r  n
  s    	):)>)>)@rw   c                  @    [        SS/SS//5      R                  5       $ r2  )r   
normalizedr{   rw   ru   r   r  o
      v1v1v&67BBDrw   c                  6    [        SS/5      R                  SS9$ )Nrj   rh   znot a methodr  r  r{   rw   ru   r   r  p
  s    vq!f~111Hrw   c                  8    [        SS/5      R                  5       $ r  r   
inverse_GEr{   rw   ru   r   r  q
      A)B)B)Drw   c                  @    [        SS/SS//5      R                  5       $ r  r  r{   rw   ru   r   r  r
  r  rw   c                  8    [        SS/5      R                  5       $ r  r   inverse_ADJr{   rw   ru   r   r  s
  s    A)C)C)Erw   c                  @    [        SS/SS//5      R                  5       $ r  r  r{   rw   ru   r   r  t
  s    v1v1v&67CCErw   c                  8    [        SS/5      R                  5       $ r  )r   
inverse_LUr{   rw   ru   r   r  u
  r  rw   c                  8    [        SS/5      R                  5       $ r  r  r{   rw   ru   r   r  v
  s    A)D)D)Frw   c                  8    [        SS/5      R                  5       $ r  r   r  r{   rw   ru   r   r  w
  s    A););)=rw   c                  >    [        SS/SS//5      R                  SS9$ )Nrj   rh   ri   rk   zNot a real methodr  r  r{   rw   ru   r   r  y
  s%    AA'(,,4G,Hrw   c                  J    [        / SQ/ SQ/ SQ/ SQ/5      R                  SS9$ )Nr  r  r  rC  zNot functionr  r  r{   rw   ru   r   r  {
  s*    l)+ ,,/C>C,JKrw   c                  J    [        / SQ/ SQ/ SQ/ SQ/5      R                  SS9$ )Nr  r  r  rC  Fr  r  r{   rw   ru   r   r  ~
  s*    l)+ ,,/C5C,ABrw   c                  V    [        [        SS/SS//5      [        SS/SS//5      5      $ r2  r0   r   r{   rw   ru   r   r  
  s/    AA/0&1a&1a&9I2JKrw   c                  8    [        [        SS/SS//5      / 5      $ r2  r  r{   rw   ru   r   r  
  s    wv1v1v.>'?Drw   c                  2    [        [        S5      S-  S5      $ )NrP   rh   rK   )r0   r$   r{   rw   ru   r   r  
  s    wvc{A~s;rw   c                      [        S5      S   $ )Nri   )rl   rh   r7  r{   rw   ru   r   r  
      s1vd|rw   c                      [        S5      S   $ )Nri   )rh   rl   r7  r{   rw   ru   r   r  
  r  rw   rB  c                  &   > T R                  S5      $ )Nzmethod=LU_decomposition())r  r5  s   ru   r   r  
  s    quu%@Arw   )r   r   r   rp   rh   ri   rk   r   c                  (   > T R                  ST5      $ )Ng@)r   r6  Vs   ru   r   r  
  s    q||C3rw   c                  (   > T R                  ST5      $ )Ng)r   r  s   ru   r   r  
  s    q||D!4rw   )r_   r  r   rX   rp  rW   r   r  s   @@ru   test_errorsr  Q
  sI   
:45
:78
:78
:AB
:;<
:NP
9  
!MN
:GI
MO
:  
:  
!?@
967
:CD
:MN
989
967
:DE
:56
956
:<=
!@A
:DE
:HI
!DE
:DE
!EF
:EF
!DE
!FG
!=>
:HJ
:	KL :	BC :KM
:DE
:;<
:+,
:+,NOA
:AB~A	9i01A
:34	9i01A
:45rw   c                     [        [        5       5      S:X  d   e[        [        SS//5      5      [        [        S/S//5      5      s=:X  a  S:X  d   e   e[        [        SSS 5      5      [        [        SSS 5      5      s=:X  a  S:X  d   e   e[        [        / SQ/ SQ/5      5      S:X  d   e[        S/5      [        S//5      :X  d   e[        5       (       a   e[        5       [        / 5      :X  d   eg )	Nr   rj   rh   c                     grP  r{   r   s     ru   r   test_len.<locals>.<lambda>
  s    rw   c                     grP  r{   r   s     ru   r   r  
  s    arw   r   r   rm   )r  r   r{   rw   ru   test_lenr  
  s    vx=Av1vh CaSz(:$;@q@@@@@vaN+,F1a()/-./ / / / /vy),-.!3331#;&1#-'''xx<8vbz!!!rw   c            
         [        SS[        4[        SS4SS[        S-  445      n U R                  [        5      [        [        S[        -  [        S-  S-  4[        [        -  S[        -  S[        -  4S[        -  S[        -  [        S-  S-  445      :X  d   eU R                  [        5      [        [        S[        -  [        [        -  4[        S-  S-  S[        -  S[        -  4S[        -  S[        -  [        [        S-  -  445      :X  d   e[        SS[        [        /5      nUR                  [        5      [        SS[        S-  S-  [        [        -  /5      :X  d   eg )Nrj   rk   rh   r   rl   ri   )r   rP   rQ   r1   )r   r   s     ru   test_integrater  
  s:   Aq	Aq!9r1adm45A;;q>AaCAa 1Q3!QqS/BqD!A#q!tAv3FGHI I I;;q>AaC11Q!QqS1BqD!A#qAv3FGHI I Iq!aVA;;q>VAq1a461Q3-8888rw   c            	      D   [        SS[        4[        SS4SS[        S-  S-   445      n [        U R	                  [        5      [        U 5      5      (       d   eU R	                  [        5      [        SSSSS[        -  445      :X  d   eU R	                  [        5      [        S	5      :X  d   e[	        U [        5      [        SSSSS[        -  445      :X  d   e[	        U [        5      [        S	5      :X  d   eU R                  5       n[        UR	                  [        5      [        U5      5      (       d   eUR	                  [        5      [        SSSSS[        -  445      :X  d   eUR	                  [        5      [        S	5      :X  d   e[	        U[        5      [        SSSSS[        -  445      :X  d   e[	        U[        5      [        S	5      :X  d   eU R	                  [        S
S9[        U [        S
S9:X  d   e[	        U [        S
S9[        U [        S
S9:X  d   eg )Nrj   rk   rh   r   rl   r   r   r   )r   r   r   Fr9  )	r   rP   rQ   r1  r+   r  r0  r   r]   )r   A_imms     ru   	test_diffr  
  s   Q1I1ay2q!Q$(2CDEAaffQia))))66!9*Iy1a1++NOOOO66!9*+LMMMM1:+Y	Aq!A#;,OPPPP1:+,MNNNNNNEejjmT%[1111::a=0)YAqQRs1TUUUU::a=01RSSSSq>19i!QPQRSPS2UVVVVq>12STTTT66!e6$1u(MMMM1u%A)NNNNrw   c                     [        [        [        /[        [        //5      n U R                  U 5      [        SS/SS//SS/SS///SS/SS//SS/SS////5      :X  d   e[        X 5      [        SS/SS//SS/SS///SS/SS//SS/SS////5      :X  d   eU R                  5       nUR                  U5      [        SS/SS//SS/SS///SS/SS//SS/SS////5      :X  d   e[        X5      [        SS/SS//SS/SS///SS/SS//SS/SS////5      :X  d   eU R                  [        5      [        SS/SS//5      :X  d   e[        [        [        /5      nU R                  U5      [        R                  " SSSS5      :X  d   eU R                  U 5      [        SS/SS//SS/SS///SS/SS//SS/SS////5      :X  d   eUR                  [        [        //5      nUR                  S:X  d   eU[        S/S//S/S///5      :X  d   e[        S5      nU" [        [        [        5      nUR                  [        [        [        //5      [        UR                  [        5      UR                  [        5      UR                  [        5      /5      :X  d   eUR                  [        [        [        /S45      [        UR                  [        S5      UR                  [        [        5      UR                  [        [        5      /UR                  [        [        5      UR                  [        S5      UR                  [        [        5      /UR                  [        [        5      UR                  [        [        5      UR                  [        S5      //5      :X  d   e[        [        5      [        [        5      -  nUR                  [        [        //5      [        [!        [        5      [        [        5      -  [        [        5      [        [        5      -  /5      :X  d   eUR                  [        [        [        445      [        [!        [        5      [        [        5      -  [        [        5      [        [        5      -  /5      :X  d   eUR                  [        [        [        445      [        [        [        5      * [        [        5      -  [!        [        5      [        [        5      -  /5      :X  d   eUR                  [        [        44[        [        //5      [        [!        [        5      [        [        5      -  [        [        5      * [        [        5      -  /[        [        5      [        [        5      -  [!        [        5      [        [        5      -  //5      :X  d   eUR                  [        5      R                  [        5      R                  [        5      UR                  [        [        [        44S5      S   :X  d   eUR                  [        5      R                  [        5      R                  [        5      UR                  [        [        [        44S5      S   :X  d   eUR                  [        [        [        //[        [        [        445      [        [        [        [        4 VVs/ s HB  n[        [        [        4 Vs/ s H"  oR                  U5      R                  U5      PM$     snPMD     snn5      :X  d   e[        R
                  " [#        [        [        //5      5      n	[%        U	[        5      (       d   eU	[#        SS//5      :X  d   e[        S-  R                  [#        [        [        //5      5      n	[%        U	[        5      (       d   eU	[#        S[        S-  -  S//5      :X  d   eg s  snf s  snnf )	Nrj   r   rh   )rh   rh   rj   r  ri   r   r  )r   rP   rQ   rR   rO   r+   r   r0  rK   r   rL   rI   r  r   rA   r,   r)   r   r1  )
r   r  r   dBr  fxyzexprr   r   ress
             ru   test_diff_by_matrixr  
  s    	QFQF+,A66!9!Q!Q 0Aq6Aq62BC1vPQSTvFVZ[]^Y_bcefagXhEijkkkk:1a&1a&!1QFQF3C DAQRTUPVGW[\^_Z`cdfgbhYiFjkllllNNE::e!Q!Q(8Aq6Aq6:J'KPQSTvXY[\W]N^bcefagjkmnio`pMq&r ssss1a&1a&)9QFQF;K(LQRTUPVYZ\]X^O_cdfgbhklnojpaqNr's!tttt 66!9*QFQF+;<<<<aV$A66!9Aq!Q////66!9!Q!Q 0Aq6Aq62BC1vPQSTvFVZ[]^Y_bcefagXhEijkkkk 
!Q	B88y   !qc
aS1#J/0000AQ1:D99q!Qi[!UDIIaL$))A,		RS+U%VVVV99q!Qi^$	1a$))Aq/499Q?;	1a$))Aq/499Q?;	1a$))Aq/499Q?;/ )    q6#a&=D99q!fX%QAAs1v(F"GGGG99Q!Q	"eSVCF]CF3q6M,J&KKKK99Q!Q	"ec!fWSV^SVCF],K&LLLL99q!fY!Q)USVCF]SVGCPQFN4SVYZ[V\]`ab]cVcehijeklopqlrerUs3t-uuuu 99Q<Q$$Q'499q!Qi\1+Eg+NNNN99Q<Q$$Q'499q!Qi\1+Eg+NNNN99q!Qi[Aq!9,/5noqrtumv9wmvhiZ[]^`aYb:cYbTU99Q<;L;LQ;OYb:cmv9w3xxxx &&!Q!
"Cc/0000&1a&""""a4++fq!fX&
'Cc/0000&1QT61+'''' ;d9ws   _$)___c            	         ^  [        SS[        4[        SS4SS[        S-  S-   445      m [        [        U 4S j5        [        T S5      " [        5      [        SS	S
S
S[        -  445      :X  d   eg )Nrj   rk   rh   r   rl   c                     > T R                   $ r   )nonexistantattributer  s   ru   r   test_getattr.<locals>.<lambda>
  s    1#9#9rw   r+   r   r   r   )r   rP   rQ   r_   r  getattrr  s   @ru   test_getattrr  
  sj    Aq	Aq!9r1adQh&789A
>9:1fa FIy1a1++N$OOOOrw   c                  H   [        / SQ/ SQ/ SQ/5      n U R                  (       d   eU R                  n U R                  (       d   eSU S'   U R                  SL d   e[        / SQ/ SQ/ SQ/5      n U R                  (       a   e[	        SS	5      n U R                  (       d   eg )
Nr#  r$  r   rj   )r   r   Fr%  rl   rh   )r   r&  r2  r'  rI   r  s    ru   test_hessenbergr  
  s    	9i01A    	A    AeH  E)))	9i01A$$$$aA    rw   c            	      L   [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        S[        -   S4S45      R                  S	S
9[        [        S[        -   5      S/SS//5      :X  d   e[        S5      n U R                  S	S
9nU[        SS/SS[        S5      -  [        -  //5      :X  d   eXR                  -  U :X  d   e[        S5      n U R                  5       nXR                  -  U :X  d   eUR                  (       d   eU[        / SQ/ SQ/ SQ/5      :X  d   e[        SS[        -  SS[        -  -   4S[        -  SS[        -   4SS[        -  -
  S[        -
  S445      n U R                  5       R                  5       [        S[        SS4S[        -
  SS445      :X  d   e[        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        S[        -   S4S45      R                  S	S
9[        [        S[        -   5      S/SS//5      :X  d   e[        S5      n U R                  S	S
9nU[        SS/SS[        S5      -  [        -  //5      :X  d   eXR                  -  U :X  d   e[        S5      n U R                  5       nXR                  -  U :X  d   eUR                  (       d   eU[        / SQ/ SQ/ SQ/5      :X  d   e[        SS[        -  SS[        -  -   4S[        -  SS[        -   4SS[        -  -
  S[        -
  S445      n U R                  5       [        S[        SS4S[        -
  SS445      :X  d   eg )Nc                  4    [        S5      R                  5       $ Nre  r   choleskyr{   rw   ru   r   test_cholesky.<locals>.<lambda>  s    )@)@)Brw   c                  4    [        S5      R                  5       $ Nre  )ri   rk   r  r{   rw   ru   r   r        v&67@@Brw   c                  J    [        S[        -   S4S45      R                  5       $ Nrl   r   r   )r   r   r  r{   rw   ru   r   r    s    vAqz6&:;DDFrw   c                  4    [        S5      R                  5       $ Nr  )rl   rj   r  r{   rw   ru   r   r  	  r  rw   c                  2    [        S5      R                  SS9$ Nr  F	hermitianr  r{   rw   ru   r   r  
  s    v&67@@5@Qrw   rl   r   r   Fr  rj   r  rh   rm   ))r  r/  r   )r/  rs  r   )r   r   r   r=  )ri   ri   r   )r   rj   ri   rk   r   r   r   r  ri   c                  4    [        S5      R                  5       $ r  r#   r  r{   rw   ru   r   r    s    f)=)F)F)Hrw   c                  4    [        S5      R                  5       $ r  r  r{   rw   ru   r   r        |,<=FFHrw   c                  J    [        S[        -   S4S45      R                  5       $ r  )r#   r   r  r{   rw   ru   r   r    s    |a!eQZ,@AJJLrw   c                  4    [        S5      R                  5       $ r  r  r{   rw   ru   r   r    r  rw   c                  2    [        S5      R                  SS9$ r  r  r{   rw   ru   r   r    s    |,<=FFQVFWrw   )r_   rW   r  r   r   r  rB   r2  r  r-   r#   r  s     ru   test_choleskyr    sc   
!BC
:BC
:FG
:BC
:QRAE1:v&'0050AV	a!ea1a&M" F# # # # A	

U
#AAAd1gIaK 012222SS5A::78A	

Ass7a<<:::	9j9::::BqD!ac'"QqS!R!V$4q1Q3wQ6KLMA::< FI1ay1q5!Q-+P$QQQQ
!HI
:HI
:LM
:HI
:WX!a%V,-666G6	a!ea1a&S" L# # # #%&A	

U
#AAAd1gIaK 012222SS5A::=>A	

Ass7a<<:::	9j9::::q"Q$AaC(1Q326*:Q1Wb1fb<QRSA::<69q!Qi!a%A"GHHHHrw   c            	      L   [        SSS9n [        [        U 5      [        U 5      /5      n[	        UR                  S5      5      S:X  d   eUR                  S5      [        [        U 5      S-  [        U 5      S-  -   [        SS5      5      :X  d   e[        S[        SS5      //5      nUR                  5       [        S	[        S
S5      -   [        R                  5      :X  d   eUR                  [        5      [        U5      :X  d   eUR                  [        * 5      [        U5      :X  d   e[        SS/SS//5      nUR                  S5      S:X  d   eUR                  S5      S:X  d   eUR                  S5      S:X  d   e[        S5      R                  S5      [        S5      R                  S5      s=:X  a  S:X  d   e   eUR                  [        5      S:X  d   e[        S[        [        /U [        R                  [        * //5      nUR                  S5      [!        [        SS5      S[#        [        5      S-  -  -   [        S-  -   U S-  -   5      :X  d   e[        / SQSS[        SS5      //5      nUR                  S5      [!        [        SS5      [!        S5      S-  -   5      :X  d   eUR                  S5      [        R$                  L d   eUR                  S5      [!        S5      S-  :X  d   e[        SS/SS//5      n[        SS/SS//5      n[        S[&        * /[&        S//5      n[        SS/SS//5      nX#XE/n[        SSS9nS H  n[)        S5      R                  U5      [        R$                  L d   eU HK  n	U HB  n
U	R                  U5      U
R                  U5      -   X-   R                  U5      -
  nUS:  a  MB   e   MM     X#XE4 HE  n[+        X|-  R                  U5      [#        U5      UR                  U5      -  -
  5      nUS:X  a  ME   e   M     [        SSS[&        -  -
  S/5      n[        [        R                  S[&        -  S/5      n[        / SQ5      n[        SS[&        /5      n[        [-        S5      [        SS5      S/5      nXUUU/n[        SSS9nSSSS[        R.                  [        R0                  [        4 GH  nUS:  a/  [        / SQ5      R                  U5      [        R$                  L d   eUS:  aj  U Hd  n	U H[  n
U	R                  U5      U
R                  U5      -   X-   R                  U5      -
  n[+        US:  5      [        R2                  L a  M[   e   Mf     USSSS[        R.                  [        R0                  4;   d  M  U HE  n	[+        Xy-  R                  U5      [#        U5      U	R                  U5      -  -
  5      nUS:X  a  ME   e   GM!     [        SS/ SQ5      nUR                  S5      S:X  d   eg )NrP   Tr+  rh   rj   r   rl   ri   r  r   rk   r   r   	frobeniusfro%   )rj   rh   rw  r=  i  r   iI3 r   alpha)r
  rh   r   rw  )r   r   r   g      Y@r   )	rj   ri   r   r   r   r   ri   r   rm   )r$   r   r)   rA   rG   normr   r    r"   r   r6   r  ra  r.   rQ   r7   rB   rb  r   r   rI   r@   r   InfinityNegativeInfinitytrue)rP   r  r   r   r   r   r  r  orderr  r   difr6  rK   rL   rM   rN   r   s                     ru   test_matrix_normr  -  s~    	sAAA AAFF1I!###66":SVRZ#a&"*4hq"oFFFF 	HQN#$%A668s2A.777766":Q662#;#a&    	AA A66!9>>66":??66+!###r7<<?c"gll2.3!3333366":?? 	Aq	Aqvvs+,-AFF5M8B?Qs1vqy[02q581a4?@A B A 	
Q8B?345A66!9Xc1-UA=>>>>66":66+$s)A+---
 	AA AAQ !AQB!Q !AAB !A	
qA7&EQx}}U#qvv---Avve}qvve}4ULL'(q!   AEG>>%0J./ 0C!8O8   $ 	1qs7B A!Q A|A1ayAhq#.23A	
q!QA7&EQB

A,>,>C19)$))%0AFF:::A:A66%=166%=8U+,C#C1H-777   Q2r1::q/A/ABB~~e4Z!&&-/ 1 2axx  D& 	q!23A66!9??rw   c                    ^^ [        SSS9m[        S5      n SU S'   [        SS5      U S'   U R                  5       S	:X  d   eTU S
'   U R                  5       [	        S[        T5      5      [        [        SS5      [        T5      5      -  :X  d   e[        [        T5      [        T5      /[        T5      * [        T5      //5      nUR                  5       m[        UU4S j[        SS5      [        R                  [        SS5      [        S-  [        [        [        SS5      -  4 5       5      (       d   e[        / 5      R                  5       S:X  d   eg )NrP   Tr+  ri   r   r~   rj   rh   rh   r~  rn   c              3      >#    U  H=  n[        S 5      R                  TR                  TU5      R                  5       5      v   M?     g7f)r}  N)r   
epsilon_eqr}  r@  )rB  valMcrP   s     ru   rC  (test_condition_number.<locals>.<genexpr>  s@      QO BEuRy##BGGAsO$9$9$;<<Os   AArl   rh   r   rk   r   )r$   r.   r    condition_numberr   r   r   r   r)   rA   rK  r"   r   r7   )r   r6  r  rP   s     @@ru   test_condition_numberr    s3   sAAAAdGq"oAdG3&&&AdG3r3q6?S!R#a&5Q#QQQQQQ CF7CF"345A	
			B Q	!Q!R"Q$Bx1~<MOQ Q Q Q Q ":&&(A---rw   c                      [        S5      n [        S5      nX S S 2S S 24   :X  d   eX S S 2S S 24   :w  a   eX:X  a   eX:w  d   eU S:w  d   eU S:X  a   e[        S5      n[        S5      nX#:X  d   eX#:w  a   eg )N)rp   ro   r   ))r   r   r   )rm   rl   rk   )ri   rh   rj   r   )r   r   r   )r   r#   )r   r   r   r   s       ru   test_equalityr    s    01A01A!Q$<<adG|v:6M67N7Bw; 	67A01A6M6v:vrw   c                  8   [        SS/5      R                  5       [        [        SS5      [        SS5      /5      :X  d   e[        / SQ5      R                  5       [        / SQ5      :X  d   e[        / SQ5      n U R                  S S9[        / SQ5      :X  d   eg )Nri   rk   rl   r   )r   r   g0.++c                 8    U R                   " SSS9R                  $ )Nr   T)rJ  chop)r@  is_zerort   s    ru   r   !test_normalized.<locals>.<lambda>  s    2D199rw   r  )r   r  r    r   s    ru   test_normalizedr$    s    1a&>$$&AA/01 1 1 )'')VI->>>> 	}A<<9  			  rw   c                  L    [        S 5      S:X  d   e[        S 5      S:X  d   eg )Nc                  4    [        S5      R                  5       $ r   r.   print_nonzeror{   rw   ru   r   $test_print_nonzero.<locals>.<lambda>  s    3q6//1rw   z[X  ]
[ X ]
[  X]
c                  6    [        S5      R                  S5      $ )Nri   rj  r'  r{   rw   ru   r   r)    s    3q6//4rw   z[.  ]
[ . ]
[  .]
)rd   r{   rw   ru   test_print_nonzeror+    s8    12     45     rw   c                     [         R                  " S5      [        S5      :X  d   e[         R                  " S5      [        S5      :X  d   e[        SS5      [        SSS/S-  5      :X  d   e[        SS/SS//5      n [        SS/SS//5      n[         Hu  nUR                  S5      nX:X  d   eU [        SUS9:X  d   e[        U5      U:X  d   eUR                  S5      nX:X  d   eU[        SUS9:X  d   e[        U5      U:X  a  Mu   e   g )Nri   rk   rj   r  r   rh   rO  )r   r.   rI   r5   rR  r  )r   rR   rP  r   s       ru   test_zeros_eyer-    s   ::a=CF"""<<?eAh&&&1:1qc"f----AA AAA AGGAJvvCsO###Aw#~~IIaLvvE!%%%%Aw#~~ rw   c                     [        5       R                  (       d   e[        SS/SS//5      R                  (       d   e[        SS5      R                  (       d   e[        S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//5      R                  S :X  d   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   ri   rk   rj   FrK   T)nonzero)	r   is_zero_matrixrI   r.   rP   r#   r   r   r$   r  s    ru   test_is_zeror1    sL   8""""Aq6Aq6"#2222A;%%%%1v$$$$Aq6Aq6"#22d:::!Q!Q()88D@@@QFQF+,;;tCCC 1a&1a&!12AATIIIAq6Aq6"#22e;;;sD!AAq6Aq6"#22e;;;rw   c                  h   [         S-  n [        U 5      n[        U * 5      n[        U 5      n[        U * 5      n[        U 5      n[        U * 5      nX!-  [	        S5      -  [	        S5      :X  d   eXC-  [	        S5      -  [	        S5      :X  d   eXe-  [	        S5      -  [	        S5      :X  d   eUR                  5       SS[        U 5      -  -   :X  d   eUR                  5       SS[        U 5      -  -   :X  d   eUR                  5       SS[        U 5      -  -   :X  d   e[        S5      [	        S5      :X  d   e[        S5      [	        S5      :X  d   e[        S5      [	        S5      :X  d   e[        R                  " / SQ[         S-  5      n[        R                  " / SQ[         S-  5      n[        R                  " / SQ[         S-  5      n	[        [         * S-  5      UR                  5       :X  d   e[        [         * S-  5      UR                  5       :X  d   e[        [         * S-  5      U	R                  5       :X  d   e[        [         7S-  5      UR                  5       :X  d   e[        [         7S-  5      UR                  5       :X  d   e[        [         7S-  5      U	R                  5       :X  d   eg )Nri   rj   rh   r   r   r   r   )r7   r;   r:   r9   r.   r  r)   r   from_axis_angleto_rotation_matrixr<   r=   r>   )
thetar3_plusr3_minusr2_plusr2_minusr1_plusr1_minusq1q2q3s
             ru   test_rotation_matricesr?    s`   qDEG% HG% HG% HCF"c!f,,,CF"c!f,,,CF"c!f,,, ==?a!CJ,....==?a!CJ,....==?a!CJ,.... Q<3q6!!!Q<3q6!!!Q<3q6!!! 
	#	#IrAv	6B		#	#IrAv	6B		#	#IrAv	6BrTAX""7"7"9999rTAX""7"7"9999rTAX""7"7"99992"b&;&;&====2"b&;&;&====2"b&;&;&====rw   c                     [        [        S5      S   5      S:X  d   e[        [        S5      5      [        S5      :X  d   e[        [        S 5        [        [        S5      5      S:X  d   e[        [        S5      5      S:X  d   eg )Nvectorrk   z	vector[4]rN   c                      [        S5      S   $ )NrN   r   )r   r{   rw   ru   r   %test_DeferredVector.<locals>.<lambda>  s    ~c226rw   testzDeferredVector('test'))strr   rE   r_   r   reprr{   rw   ru   test_DeferredVectorrG    sx    ~h'*+{:::>#&'>#+>>>>
:67~c"#s***v&'+CCCCrw   c                  :    [        [        S5      5      (       a   eg )Nr  )re   r   r{   rw   ru    test_DeferredVector_not_iterablerI    s    s+,,,,,rw   c                  &    [        [        S 5        g )Nc                  *    [        [        S5      5      $ )Nr  )r   r   r{   rw   ru   r   ,test_DeferredVector_Matrix.<locals>.<lambda>  s    f^C%89rw   r_   rp  r{   rw   ru   test_DeferredVector_MatrixrN    s    
99:rw   c            
         [         n [        SSSS/5      n[        SSSS/5      n[        X/5      [        SSSS/5      [        SSU " S5      S-  U " S5      S-  /5      /:X  d   e[        UR                  UR                  /5      [        SSSS/5      [        SSU " S5      S-  U " S5      S-  /5      /:X  d   e[        [        SS/5      [        SS/5      /S5      [        S[	        S5      -  S-  [	        S5      S-  /5      [        [	        S5      * S-  S[	        S5      -  S-  /5      /:X  d   e[        [        S/5      5      n[        U5      [        S//5      /:X  d   eg )Nrj   rh   ri   rl   r   Tr   )r    r   r   r2  rB   r
   )r  r   r   r  s       ru   test_GramSchmidtrP    s{   A	1q!f	B	1q!f	Bx 	1q!f	vaQqT!VQrU1W,=>?@ @ @bdd|$	1q!f	vaQqT!VQrU1W,=>?@ @ @ 1v1v7>$r(
2tBx{+,b	"aRjm,-C/ / / / 	&!+Aq>fqcUm_,,,rw   c                  R    [        / SQS5      S:X  d   e[        / SQSSS9S:X  d   eg )Nr  rj   r   F)zero)r(   r{   rw   ru   test_casoratianrS  )  s.    lA&!+++lAE2a777rw   c                      [        5       [        SS5      -  R                  S:X  d   e[        SS5      [        SS5      -  [        SS5      :X  d   e[        SS5      [        SS5      -  [        5       :X  d   eg )Nr   ri   )r   ri   )r   rI   r  r{   rw   ru   test_zero_dimension_multiplyrU  .  si    HU1a[ ''6111A;uQ{"eAqk111A;uQ{"fh...rw   c                    ^  [        SS[        S5      5      m T SS S 24   [        SS//5      :X  d   eT SS S 24   [        SS//5      :X  d   eT S S 2S4   [        SS//5      R                  :X  d   eT S S 2S4   [        SS//5      R                  :X  d   e[        [        U 4S j5        [        [        U 4S j5        g )Nrh   rk   rj   ri   r   c                     > T SS S 24   $ r  r{   r   s   ru   r   'test_slice_issue_2884.<locals>.<lambda>:  s    qAwrw   c                     > T S   $ )Nr  r{   r   s   ru   r   rX  ;  s	    qwrw   )r   r   r2  r_   r   r   s   @ru   test_slice_issue_2884rZ  4  s    q!U1XAQT7fq!fX&&&&RU8v1vh''''QT7fq!fX&(((((QU8v1vh')))))
:'
:'rw   c                      [        SS5      S S 2S4   R                  S:X  d   e[        SS5      SS S 24   [        SS/ 5      :X  d   eg )Nr   ri   r   r   rj   )rI   r  r   r{   rw   ru   test_slice_issue_3401r\  >  sK    A;q"u##v---A;q!tq!R 0000rw   c                     [        SS5      n SU S'   U S S 2S4   [        / SQ5      :X  d   eU S   S:X  d   eU SS S/:X  d   eSU S'   U S   S:X  d   eU SSS 24   [        SS//5      :X  d   e[        SS	//5      U SSS 24'   U SS S 24   [        / S
Q/5      :X  d   eSS//U SSS 24'   U SS S 24   [        / SQ/5      :X  d   eSU S'   U S S 2S S24   [        / SQ5      :X  d   e/ SQU S'   U S S 2S4   [        / SQ5      :X  d   e[        / SQ5      U S'   U S S 2S4   [        / SQ5      :X  d   e[        / SQ5      U S'   U S S 2S4   [        / SQ5      :X  d   eg )Nri   rj   r   r   rk   r  rn   rl   rm   )rj   rl   rm   +   )rj   r  r^     r~   )r_  rj   r   r  )rI   r   r#   )r  s    ru   test_copyinr`  C  s   aAAaDQT7fY''''Q4199Q7qc>>AdGT7b==QU8vAwi((((1vhAaeHQT7fi[))))RzAaeHQT7fk]++++AdGQU8vj))))AdGQT7fY''''YAdGQT7fY''''9%AdGQT7fY''''rw   c                  .  ^  [        SS/SS//5      R                  5       [        SS/SS//5      S4:X  d   e[        [        S 5        [        / SQ[        SS/S[        S//5      m [        T R                  5       S   5      T R                  :w  d   eT R                  5       S   [        S5      :w  d   eT R                  [        S	9S   [        S5      :w  d   e[        [        U 4S
 j5        [        [        U 4S j5        [        [        U 4S j5        g )Nrj   rh   r   )r   c                  @    [        SS/SS//5      R                  5       $ r  r  r{   rw   ru   r   'test_invertible_check.<locals>.<lambda>^  s    v1v1v&67;;=rw   )r   r   r   r   ri   r	  c                  "   > T R                  SS9$ )Nr  r  r  r   s   ru   r   rc  i  s    quuEu2rw   c                  "   > T R                  SS9$ )Nr  r  re  r   s   ru   r   rc  j      quuDu1rw   c                  "   > T R                  SS9$ )Nr  r  re  r   s   ru   r   rc  k  rg  rw   )	r   r  r_   r  rP   r  rq   r.   r?   r   s   @ru   test_invertible_checkri  Z  s     Aq6Aq6"#((*v1v1v6F/G.NNNN
:=>
a!
a 	A
 qvvx{qvv%%% 668A;#a&   6686$Q'3q6111
:23
:12
:12rw   c                      [        S5      u  pX-  nUR                  U [        / SQ5      5      [        / SQ5      U-  :X  d   eg )Nzx, y)ri   rl   ri   )rD   r}  r   )rP   rQ   r   s      ru   test_issue_3959rk  n  s<    6?DA	A66!VI&'6)+<Q+>>>>rw   c                  D    [        [        SS/SS//5      5      S:X  d   eg )Nrj   rh   ri   rk   zMatrix([[1, 2], [3, 4]]))rE  r   r{   rw   ru   test_issue_5964rm  t  s(    v1v1v&'(,FFFFrw   c                  p    [        S5      u  p[        [        U SU-  /US-  U S-   //5      5      S:X  d   eg )Nr  rh   ri   z'Matrix([
[   x,   2*y],
[y**2, x + 3]]))rD   rC   r   r"  s     ru   test_issue_7604ro  x  sE    5>DAAaC1a4Q-01234 4 4rw   c            
      Z   [        S5      R                  (       d   e[        S5      R                  5       R                  (       d   e[        S5      R                  (       a   e[	        S5      R                  (       a   e[        / SQ/5      R                  (       a   e[        SSSSSS.5      R                  (       d   e[        SS[        S5      5      R                  (       a   e[        SSSSS.5      R                  (       a   e[        SSSSSSSS.5      R                  (       a   eg )	Nri   r   rj   )r~   rn   r  rh   rm   )r~   rn   )r~   rn   r  r   r  )r.   is_Identityr0  rI   r5   r   r#   r   r{   rw   ru   test_is_Identityrr  ~  s    q6q6 ,,,,Qx####Aw""""yk"....!AQa89EEEEAaq*6666Aa!34@@@@Aa!1A!NO[[[[[rw   c                  ~   [        SS5      R                  [        SS5      5      S:X  d   e[        SS5      R                  / SQ5      S:X  d   e[        / SQ5      R                  [        / SQ5      5      S:X  d   e[        SSS[        -  /5      R                  [        [        SS[        -  /5      5      S[        -   :X  d   e[        SSS[        -  /5      R                  [        [        SS[        -  /5      SS	9S[        -   :X  d   e[        SSS[        -  /5      R                  [        [        SS[        -  /5      S
S	9S[        -   :X  d   e[        SSS[        -  /5      R                  [        [        SS[        -  /5      S
SS9S[        -
  :X  d   e[        SSS[        -  /5      R                  [        SS[        -  S/5      S
SS9SS[        -  -   :X  d   e[        SSS[        -  /5      R                  [        SS[        -  S/5      S
SS9SS[        -  -
  :X  d   e[        [        S[        -  /5      R                  [        [        S[        -  /5      SSS9S:X  d   e[        [        S[        -  /5      R                  [        [        S[        -  /5      SS9S:X  d   e[	        [
        S 5        g )Nrj   ri   r  rp   r>  rh   r   Fr  Tr=  physicsr  conjugate_conventionrk   rl   rm   rightr   left)rv  c                  P    [        SS/5      R                  [        SS/5      SSS9$ )Nrj   rh   ri   rk   TrD  ru  r  r{   rw   ru   r   test_dot.<locals>.<lambda>  s'    vq!f~11&!Q.Dgm1nrw   )r5   r  r   r   r_   r  r{   rw   ru   test_dotr{    s   1:>>$q!*%***1:>>)$))))  	!23r9991a1+""61a1+#6726AAA1a1+""61a1+#6%"HBQRFRRR1a1+""61a1+#6$"G2PQ6QQQ1a1+""61a1+#6$]f"gkmpqkqqqq1a1+""61ac1+#6$]d"eijmnopmpipppp1a1+""61ac1+#6$]c"dhilmnolohoooo1ac(1Q3x 0EX^_ceeee1ac(1Q3x 0vNRSSSS
:norw   c            	         [        SSS9u  pp#pE[        SX4U4U* SX!* 4U* U* SU 4U* X* S445      n[        SU * U* U* 4U SXT* 4X* SU4X$U* S445      nUR                  5       R                  U5      (       d   e[	        S5      R                  5       R                  [        S5      5      (       d   eUR                  5       R                  5       R                  U* 5      (       d   eg )NzB_x B_y B_z E_x E_y E_zTr+  r   ri   )rD   r   dualequalsr.   rI   )B_xB_yB_zE_xE_yE_zrX  Fds           ru   	test_dualr    s   #*!$. CcC 
!c4 
tC 
Ta 	 	A 
sdSD3$	S$	dq3	SDQ	 
B 668??2q6;;=a))))668==?!!1"%%%%rw   c                  (   [        SS/5      R                  5       SL d   e[        SSS[        S-  S[        -  -   S-   [        [        S-   S-  * S[        [        -  [        * [        * [        -  S/	5      n U R                  5       SL d   eU R                  SS9b   eU R                  S S9b   eU S	   * U S	'   U R                  5       b   eU S	   * U S	'   U R	                  5       n U R                  SS9SL d   eSU S
'   U R                  5       SL d   eg )Nrj   rh   Fri   r   Tr	  c                     U $ r   r{   rt   s    ru   r   %test_anti_symmetric.<locals>.<lambda>  r  rw   rt  r~   )r   r  rP   rQ   r-   r   s    ru   test_anti_symmetricr    s/   1a&>++-666q!aA!aa!eaZKAaC!aRT1MNA D(((.6664<<< whAdG (((whAdG	
A.$666AdG E)))rw   c                     [        S5      n U R                  SS9u  pXR                  -  UR                  U-  s=:X  a  [        UR                  5      :X  d   e   eU R                  SSS9u  pXR                  -  UR                  U-  s=:X  a  [        UR                  5      :X  d   e   eX-  UR                  5       -  U :X  d   eg )N)re  rt  Tr  )r  sort)r   r  r2  r.   rr   r  )r   r  r   s      ru   #test_normalize_sort_diogonalizationr    s     A==4=(DASS5ACCE(S[(((((==4d=3DASS5ACCE(S[(((((3quuw;!rw   c                  &    [        [        S 5        g )Nc                  6    [        / SQ[        SS/ 5      /5      $ )Nrp   r   rj   r  r{   rw   ru   r   !test_issue_5321.<locals>.<lambda>  s    vy&Ar2B&CDrw   )r_   r  r{   rw   ru   test_issue_5321r    s    
:DErw   c            	         [         R                  " [        S5      S[        S5      -  5      [        / SQ/ SQ/5      :X  d   e[         R                  " [        S5      S[        S5      -  5      [        SS/SS/SS/SS//5      :X  d   e[        n U R                  U " [        S5      5      U " S[        S5      -  5      5      [        / SQ/ SQ/5      :X  d   eg )Nrh   )rj   r   rh   r   )r   rj   r   rh   rj   r   )r   r   r.   r  r#   rO  s    ru   test_issue_5320r    s    ==Q3q6*f6 /    ==Q3q6*f	
A	
A	
A	
A	6 /    C::c#a&k3qQx=1V= 6   rw   c                      [        S//5      n [        U 5      n[         R                  " X5      [        SS//5      :X  d   e[         R                  " X5      [        S/S//5      :X  d   eg r  )r   rE   r   r  )r   AIms     ru   test_issue_11944r    s^    uA
!*C== FQF8$4444== FQC!:$6666rw   c                    ^ / SQn / SQn[        / SQ5      nUR                  nU4S jn[         H  mT" U 5      nT" U5      nU" UR                  U5      U5        U" UR                  UR                  5      U5        U" UR                  R                  UR                  5      U5        U" UR                  R                  U5      U5        M     [	        [
        S 5        g )Nrp   r   )r   rk   r   c                 6   > X:X  d   e[        U 5      T:X  d   eg r   )r  )r6  r  rP  s     ru   rD  test_cross.<locals>.test  s    xxAw#~~rw   c                  X    [        SSSS/5      R                  [        SSSS/5      5      $ r  r  r{   rw   ru   r   test_cross.<locals>.<lambda>  s*    q!aV""6!QA#78rw   )r   r2  rR  r  r_   rX   )rK   rL   r   r   rD  r   r   rP  s          @ru   
test_crossr    s    AA

C
%%C FFQWWQZQWWQSS\3QSSYYqss^S!QSSYYq\3  : 9 :rw   c                  N   [        [        [        [        /5      n [        [        [
        [        /5      nU R                  5       U-  U R                  U5      :X  d   eU R                  5       R                  5       (       d   eU R                  5       R                  5       U :X  d   eg r   )r   rP   rQ   rR   rK   rL   rM   hatr  r  vee)v1v2s     ru   test_hat_veer    sw    	Aq		B	Aq		B668b=BHHRL(((668%%''''668<<>Rrw   c                  0   [          HY  n U R                  S5      U R                  S5      1n[        U5      S:X  a%  UR                  5       U R                  S5      :X  a  MY   e   [         H)  n [        U R                  S5      [        5      (       d  M)   e   g r  )immutable_classesr.   r  popr  r1  r   )rP  r  s     ru   	test_hashr    ss     WWQZ$1v{quuw#''!*444 ! cggaj(3333 rw   c                      S[         /SS//n [        SS/[         * S//5      n[         H  nX" U 5      R                  5       :X  a  M   e   g Nr   rj   )r   r   rR  adjoint)r4  r  rP  s      ru   test_adjointr    sR    q6Aq6
C
1a&A2q'"
#Cc#h&&(((( rw   c                     [        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 r  )r   rP   r  r"   r   NegativeOner$   r   s    ru   
test_atomsr    sb    AA!G%&A779qtAMM15555776?qc!!!rw   c            	        ^	 [        [        [        /[        [        //5      n [        U R                  SS95      [        U R                  5       5      :X  d   e[        SS/SS/SS//5      [        / S	Q/ S
Q/5      [        [        [        /5      /nU Hd  nUR                  SS9nX#-  nX2-  n[        XB-  5      U:X  d   e[        XS-  5      U:X  d   eUR                  U:X  d   eUR                  U:X  a  Md   e   U Hm  n[        UR                  SS95      nX#-  nX2-  n[        XB-  5      U:X  d   e[        XS-  5      U:X  d   eUR                  U:X  d   eUR                  U:X  a  Mm   e   SSK	J
m	  U R                  SS9nU R                  5       n[        S[        S[        S[        S0n[        U	4S j[        UR                  U5      UR                  U5      5       5       5      (       d   eg )NRDr  r=  h   i  ri   rw  rl   )rj   r   r   )r   r_     EDr   )compi_ib,  i  ij  c              3   r   >#    U  H,  u  pT" UR                  5       UR                  5       5      v   M.     g 7fr   rI  )rB  r   r   r  s      ru   rC  test_pinv.<locals>.<genexpr>A  s0      
3DA 	QSSUACCE3s   47)r   rK   rL   rM   rN   r@   pinvr  r4  sympy.core.numbersr  rK  r(  r}  )
A1Asr   A_pinvAApApAr`  wrepsr  s
            @ru   	test_pinvr    s   	!Q!Q 	!BBGG4G()Xbffh-???? 2s)dAYQ0
1
)\*
+
!Q.
B t$jj A%%%%///uu||uu||  !&&&-.jj A%%%%///uu||uu||  (
tA
Avq%E1e4D 
taffTl3
 
 
 
 
rw   c            	          [        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      /n U  HI  nUR                  SS9nX-  nX!-  nUR                  U:X  d   eS	 nU" UR                  U5      (       a  MI   e   g )
N)=   r  7   r  rl  r   )>   `   U   r  rD  r   )E   8   r_  rk   6   r   )r   r  [   )   rl  r   )r   r_  r   r  Z   r   )r   r   r   r   r   r   r  r  c                     U R                  [        5      nU Vs0 s H  o3UR                  5       _M     nnX-
  R                  U5      R                  5       n[	        S U 5       5      $ s  snf )Nc              3   >   #    U  H  n[        U5      S :  v   M     g7f)g|=Nr  )rB  r   s     ru   rC  Xtest_pinv_rank_deficient_when_diagonalization_fails.<locals>.allclose.<locals>.<genexpr>h  s     ;{!s1v~{s   )r  r!   r@  r  rK  )r   r   rootofsr  rootofs_approxdiff_approxs         ru   allcloseEtest_pinv_rank_deficient_when_diagonalization_fails.<locals>.allclosed  s]    hhv&G4;<GqlGN<7,,^<BBDK;{;;; =s   A))r   r  r4  )r  r   r  r  r  r  s         ru   3test_pinv_rank_deficient_when_diagonalization_failsr  G  s    
 	#####  	!
B t$jjuu||	< s####- rw   c                      [        SS5      [        SS5      -   [        SS/ 5      :X  d   e[        SS5      [        SS5      -   [        SS/ 5      :X  d   eg r  )r5   r   r{   rw   ru   test_issue_7201r  m  sR    1:Q
"fQ2&66661:Q
"fQ2&6666rw   c                      [         [        [        [        4 H(  n U " [        /S//5      R
                  [        1:X  a  M(   e   g rP  )r   r   r   r#   rP   free_symbolsr5  s    ru   test_free_symbolsr  r  s9    3V\I1#s}))aS000 Jrw   c                    ^   SSK Jm   [	        T " / SQ5      5      [	        / SQ5      :X  d   e[	        T " / SQ/5      5      [	        / SQ/5      :X  d   e[	        T " / SQ/ SQ/5      5      [	        / SQ/ SQ/5      :X  d   e[	        T " [
        [        [        /5      5      [	        [
        [        [        /5      :X  d   e[        [        U 4S j5        [	        T " SS/5      T " S	S
/5      /5      [	        SS/S	S
//5      :X  d   e[	        T " SS/5      S	S
//5      [	        SS/S	S
//5      :X  d   e[	        T " / 5      T " / 5      /5      [	        SS/ 5      s=:X  a  [	        / 5      :w  d   e   eg! [         a    [        S5         GN|f = f)zSee issue 7465.r   rd  rf  rp   ro   c                  B   > [        T " SS/SS//SS/SS///5      5      $ )	Nrj   rh   ri   rk   rl   rm   r   r   r  r  s   ru   r   #test_from_ndarray.<locals>.<lambda>  s.    u1v1v.!Q!Q0@ABCrw   rj   rh   ri   rk   N)
ri  rd  rm  r`   r   rP   rQ   rR   r_   NotImplementedErrorr  s   @ru   test_from_ndarrayr  w  sv   P %	"#vi'8888%$%)<<<<%I./0	9%&' ' '%Aq	"#vq!Qi'8888
CE5!Q=%A-01VaVaV<L5MMMM5!Q=1a&)*fq!fq!f5E.FFFF59eBi()VAq"-=KKKKKK  PNOPs   E- -FFc                  r   SSK Jn    SSKJnJn  U " W" SS/SS//5      5      nUS   S:X  d   e[        U5      / S	Q:X  d   e[        [        5         U " W" SS/SS//5      5      nS S S 5        US   S:X  d   e[        U5      / S	Q:X  d   eg ! [
         a    [        S5         Nf = f! , (       d  f       NH= f)
Nr   
_matrixify)rd  matrixzPNumPy must be available to test indexing matrixified NumPy ndarrays and matricesrj   rh   ri   rk   r  )
sympy.matrices.commonr  ri  rd  r  rm  r`   rs   r^   PendingDeprecationWarning)r  rd  r  r   s       ru   test_17522_numpyr    s    0a' 	51a&1a&)*+AQ41997l"""	2	3v1v1v./0 
4Q41997l"""  a_`a 
4	3s   B B(B%$B%(
B6c                      SSK Jn    SSKJn  U " W" SS/SS//5      5      nUS   S	:X  d   e[        U5      / S
Q:X  d   eg ! [         a    [        S5         NJf = f)Nr   r  )r  zEmpmath must be available to test indexing matrixified mpmath matricesrj   rh   ri   rk         @)r}  r~  r5  r  )r  r  mpmathr  rm  r`   rs   )r  r  r   s      ru   test_17522_mpmathr    sk    0V! 	6Aq6Aq6*+,AQ43;;7****  VTUV   A AAc                      SSK Jn    SSKJn  U " W" SS/SS//5      5      nUS   S:X  d   e[        U5      / S	Q:X  d   eg ! [         a    [        S5         NJf = f)
Nr   r  )
csr_matrixzJSciPy must be available to test indexing matrixified SciPy sparse matricesrj   rh   ri   rk   r  )r  r  scipy.sparser  rm  r`   rs   )r  r  r   s      ru   test_17522_scipyr    sj    0[+ 	:1v1v./0AQ41997l"""  [YZ[r  c                     [        S[        /[        * S//5      n U R                  (       d   eS[        -  U S'   U R                  SL d   e[        U S'   U R                  b   eU S   [        -  U S'   U R                  SL d   eg )Nrj   rh   r~   Fr   r   r  r  s    ru   test_hermitianr    s    A!Q !A>>>cAdG>>U"""AdG>>!!!gaiAdG>>U"""rw   c                    ^^ [        / SQ/ SQ/ SQ/5      n U R                  S5        U [        / SQ/ SQ/5      :X  d   e[        / SQ/ SQ/ SQ/5      nUR                  S5        U[        / SQ/ SQ/5      :X  d   e[        / SQ/ SQ/ SQ/5      nUR                  S5        U[        / SQ/ SQ/5      :X  d   e[        / SQ/ SQ/ SQ/5      m[        [        U4S	 j5        [        / SQ/ SQ/ SQ/5      m[        [        U4S
 j5        [        / SQ/ SQ/ SQ/5      n U R	                  S5        U [        SS/SS/SS//5      :X  d   e[        / SQ/ SQ/ SQ/5      nUR	                  S5        U[        SS/SS/SS//5      :X  d   e[        / SQ/ SQ/ SQ/5      m[        [        U4S j5        [        / SQ/ SQ/ SQ/5      m[        [        U4S j5        g )Nrp   r  r   rj   r   )rl   rm   r   r   r   c                  &   > T R                  S5      $ r  r   r  s   ru   r   +test_issue_9457_9467_9876.<locals>.<lambda>  r   rw   c                  (   > T R                   " S5      $ Nr  r   r   s   ru   r   r        qyy~rw   ri   rh   rk   rl   c                  &   > T R                  S5      $ r  r   r  s   ru   r   r    r   rw   c                  (   > T R                   " S5      $ r  r   r  s   ru   r   r    r  rw   )r   r   r_   r   r   )r6  r\  Or  r   s      @@ru   test_issue_9457_9467_9876r    s   	9i01AIIaL	9-....	9i01AIIbM	9-....	9k23AIIbM	9-....	9i01A
:,-	9i01A
:-. 		9i01AIIaLAAA/0000	9i01AIIbMAAA/0000	9i01A
:,-	9i01A
:-.rw   c                  ,   [        SSS9u  p[        S5      u  p#[        S5      n[        SSXU[        /5      nX-  U-  X-  U-  :w  d   eX2-  U-  X#-  U-  :X  d   eX-  XP-  :w  d   eX%-  XR-  :X  d   eX-  U-  [        X-  S/SX-  //5      :X  d   eg )Nr  F)commutativeza brh   r   )rD   r.   r   rR   )rP   rQ   rK   rL   r6  r   s         ru   test_issue_9422r     s    5e,DA5>DAAA	1qQl	#B3q5ACE>>3q5ACE>>424<<424<<3q5FQS!Hq!#h/0000rw   c                  :   [        / 5      n SS/[        / SQ5      4nSS/US   R                  4nSS/[        SS/SS	//5      4nXU4 HO  u  pEU HD  n[        X5      nS
U;   a  U" U5      OU" SU5      nX:X  a  [        U5      [        U5      :w  a  MD   e   MQ     g )Nr   r   )r   rm   ri   r   r   rj   rh   ri   rk   joinr  )r   r2  r  id)	r6  rK   rL   rM   opsr   opr  news	            ru   test_issue_10770r    s    r
A	z"F9$55A	z"AaDFF*A	|$fq!fq!f-=&>>A)BA B,!A$Ab!HC832a5 000  rw   c                  r   [        / SQ/ SQ/ SQ/5      n U R                  / SQ/ SQ5      [        SS/SS	/S
S//5      :X  d   eU R                  / SQ/ SQ5      [        S/S/S
//5      :X  d   eU R                  / SQ/ SQ5      [        / SQ/5      :X  d   eU R                  / SQ/ SQ5      [        / SQ/ SQ/5      :X  d   eU R                  / SQ/ SQ5      [        SS/ 5      :X  d   eU R                  / SQ/ SQ5      [        SS/ 5      :X  d   eU R                  / SQ/ SQ5      [        S/S//5      :X  d   eg )Nrp   ro   r   r   )TTFrj   rh   rk   rl   r   r   )TFF)TFT)FFFri   r   )FTF)r   r   r  s    ru   test_issue_10658r	    s8   	9i01A99Y 34AAA'() ) )99Y 45!qcA39PPPP99)959LLLL99()4	9%&' ' '99Y 56&Ar:JJJJ99*I6&Ar:JJJJ99(*>?aSz  rw   c                     [        SS[        S5      -  -   S/S[        S5      -  S-  S-   S[        S5      -  S-  //5      n U R                  5       S:X  d   e[        SS[        S5      -  [        -  -   S/SSS[        S5      -  [        -  -   //5      n [	        U R                  5       S	   [        SSSS[        S5      -  [        -  -   -  /S	S	//5      -
  5      [        SS5      :X  d   e[        S
5      u  pp4pVpxpp[        XX-  X+-  S	/X4X;-  XK-  S	/XVX[-  Xk-  S/XxX{-  X-  S/XSU	-  U-  X-  -
  SU
-  U-  X-  -
  S	//5      n U R                  5       S:X  d   eg )Nr   rl   rh   rj   ri   rV  rk   rw  r   z/a_x a_y b_x b_y c_x c_y d_x d_y e_x e_y t_0 t_1)r   rB   r  r   r@   r  rI   rD   )r   axaybxbycxcydxdyexeyt0t1s                ru   !test_opportunistic_simplificationr    s    	aQi$r$q'z!|a'7DGA&FGHA668q== 	1T!W9Q;#Qr!DG)A+~$678AAFFHQK&1b!aQik/.B*CaV)L"MMNRWXY[\R]]]] +22c*d'B"bB"ruRU1%rRU25&;R25q<QSUY[Y^_a_defRgikopqsostvovwyw|o|}~  @B  ~B  CE  ~E  FH  FK  ~K  LM  iN  O  	PA668q==rw   c                     [        / SQ/ SQ/5      n U R                  5       S   [        / SQ/ SQ/5      -
  R                  5       S:  d   e[        / SQ/ SQ/ S	Q/5      n[        / S
Q/ SQ/ SQ/5      n[        / SQ/ SQ/ S	Q/5      nUR                  5       U-
  R                  5       S:  d   eUR                  5       U-
  R                  5       S:  d   eg )N)g~jth?gRM@g(\M@)gDl)@gQgp=
cG@r   )r}  r   r  )r   r}  r}  V瞯<)q7K<r}  rk   )r  r   r   r   )r  r}  r  )r                 @)r  r  r}  )r   r  r  )r}  r  g      )r   r  r  r  )mmm_mixedm_floatm_invs       ru   test_partial_pivotingr!    s    
 $&;<=BGGIaL6#3#3#5 6 67;tvF F F o%%' (G ''') *G (((* +E
 KKME!'')E111KKME!'')E111rw   c                      [        / SQ/ SQ/ SQ/5      n U R                  S S9S   n[        / SQ/ SQ/ S	Q/5      nX-
  nUR                  5       S
:  d   eUS   S:X  d   eg)zWhen doing numerical computations, all elements that pass
the iszerofunc test should be set to numerically zero if they
aren't already. )?皙gɿr   )皙r#  gٿr   )r$  r%  g333333?r   c                     [        U 5      S:  $ )Ng [n<r  rt   s    ru   r   *test_iszero_substitution.<locals>.<lambda>2  s    Qrw   r  r   )r}  r   g4iҤIӿr   )r   r}  glٲer   r  r  r  N)r   r  r  )r   m_rref	m_correctm_diffs       ru   test_iszero_substitutionr+  +  sp     	$%9:NOPAVV5V6q9F9:[\}~IF;;=5   #;!rw   c            	         SSK Jn   S[        [        [	        SS5      -  5      -  [        [        [	        SS5      -  5      [        S5      -   -  nS[        S5      -  [        [        [	        SS5      -  5      S-  -  S	[        [        [	        SS5      -  5      -  -   S
[        [        [	        SS5      -  5      S-  -   -  nU " SS5      nU " S[        S5      * 5      nU " X5      n[        U[        U5      -
  U[        U5      -
  /5      n[        X5-
  XE-
  /5      n[        [        X5-
  5      [        XE-
  5      /5      nS n	UR                  SU	S9S:X  d   eUR                  SU	S9S:X  d   eUR                  SU	S9S:X  d   eg )Nr   )Pointr   r=  -   ri   rW  rh   r  rw  rj   c                 <    [        U R                  " 5       5      S:  $ )Ng#B;)rb  rJ  rt   s    ru   r   "test_issue_11238.<locals>.<lambda>H  s    #acce*u$rw   T)r@   r  )	sympy.geometry.pointr-  rF   r7   r    rB   r   r@   r  )
r-  xxyyp1p2p0r   r   r   Zs
             ru   test_issue_11238r8  :  sx   *	
3r(2r""#	#SHR,<)<%=Q%G	HB
T!W*SHR,,-q0
02c"Xb"=M:M6N3N
NQSVYZ\]efhjl]mZmVnpqVqQq	rB	q!B	q47(	B	rB	hrl"B"$56	7B	"'"	#B	"'"HRW$56	7B
 	%A77DQ7/144477DQ7/144477DQ7/1444rw   c                     [        SS/ SQ5      n U [        R                  -  nX-   n[         HO  nU" U5      R	                  5       u  pE[        U5      [        U 5      :X  d   e[        U5      [        U 5      :X  a  MO   e   g )Nrh   r  )r   r"   ImaginaryUnitrR  as_real_imagrs   )r   r   r   klsrK   rL   s         ru   test_as_real_imagr=  N  so    	!I	B	AOO	B	B"g""$Aw$r("""Aw$r(""" rw   c                      [        SS/ SQ5      n U R                  5       u  pUS   [        SSS/5      :X  d   eUS   [        SS/ SQ5      :X  d   eg )Nri   rT  rj   rh   r   )rh   rj   r   rh   )r   jordan_cells)r   r  Jcellss      ru   test_deprecatedrA  Y  sY    
 	q!23A IA!9q!aS))))!9q!\2222rw   c                      SSK Jn   [        / SQ5      n[        / SQ5      nU " US5      [        / SQ5      :X  d   eU " US5      [        / SQ5      :X  d   eg )	Nr   )Mod)r   rj   rh   )r   r  rU  ri   )rh   rj   rh   rk   )rh   r   rj   )sympy.core.modrC  r   )rC  r   r   s      ru   test_issue_14489rE  d  sK    "zA}Aq!9y))))q!9y))))rw   c                       SSK Jn   [	        SS/SS//5      nW " U[
        S9R                  R                  S	:X  d   eg ! [         a    [        S5         NNf = f)
Nr   r  rf  rj   rh   ri   rk   )dtypefloat64)ri  rd  rm  r`   r   floatrG  name)rd  r6  s     ru   test_issue_14943rK  m  s`    P 	1!u~A% &&++y888	  PNOPs   ? AAc                  f    [        SSS5      n [        S5      nU S   S:  n[        U5      S:X  d   eg )Nr   rj   rK   r~   r   zm[0, 0] > 0)r   r$   rE  )r   rK   s     ru   test_case_6913rM  x  s8    S!QAsA	$	Aq6]"""rw   c                  d    [        SSS5      n [        S5      nU R                  U5      X0:X  d   eg )Nr   ri   rK   )r   r&   match)r   rK   s     ru   test_issue_11948rP    s1    S!QAS	A771:!rw   c                  j   [        S[        /5      [        S[        * /5      /n [         R                  " U 6 [        S/[        //5      [        S/[        * //5      /:X  d   e[        S[        S/5      [        [        S[        * /5      /n [         R                  " U 6 [        S/[        /S//5      [        [        S-  /[        S5      S-  /[        * //5      /:X  d   e[        S[        /S[        * //5      nUR	                  5       u  p#X"R
                  -  [         R                  " S5      :X  d   eg )Nrj   r   rh   )r   r   r  r"   QRdecompositionr4  r.   )r  rX  r   r  s       ru   test_gramschmidt_conjugate_dotrS    s#   Aq6NFAr7O,D&	!qc
	VaSA2$K012 2 2 Aq!9vq!aRj12D&	!qcA3	 &1Q3%!A$q&QB4)@"ABC C C 1a&1qb'"
#C DAss7fjjm###rw   c                      [        [        SSS5      5      n [        [        SSS5      5      nU R                  " U5      n[        X S   5      n[        X0S   5      nX1S   :X  d   eUS:X  d   eg )NrK   ri   rj   rL   r~   r   )r   r   r  r+   )rK   rL   rM   rN   r   s        ru   test_issue_8207rU    sj    |CA&'A|CA&'A	aAQ$AQ$A$<<6M6rw   c            	        ^ SSK Jn   [        SS/SS//5      mTR                  [	        [
        [        -  5      [
        5      [        [	        [        5      [	        S[        -  5      [	        [        5      -
  /S[	        S[        -  5      //5      :X  d   e[        SS/SS//5      m[        T-  S-  R                  [        [
        5      [
        5      [        [        S5      S-  [        S5      * S-  /[        S5      * S-  [        S5      S-  //5      :X  d   e[        [        S 5        [        [        U4S	 j5        [        / S
Q/ S
Q/ SQ/ SQ/5      mTR                  [        [
        5      [
        5      TR                  5       :X  d   e[        [        U4S j5        [        SS/SS//5      m[        TR                  [        [
        5      [
        5      S-  5      T:X  d   e[        / SQ/ SQ/ SQ/5      m[        TR                  U " [
        S5      [
        5      S-  5      T:X  d   e[        / SQ/ SQ/ SQ/ SQ/5      mTR                  [        [
        5      [
        5      TR                  5       :X  d   e[        / SQ/ SQ/ SQ/ SQ/5      mTR                  [        [
        [        -  5      [
        5      [        [        T[        -  R                  5       5      5      :X  d   eg )Nr   )nthrootrj   rh   ri   rm   rk   c                  Z    [        S5      R                  [        [        5      [        5      $ r   )rI   analytic_funcr2   rP   r{   rw   ru   r   test_func.<locals>.<lambda>  s    a 6 6s1vq Arw   c                  X   > T [         -  R                  [        [         5      [         5      $ r   )rP   rY  r2   r  s   ru   r   rZ    s    1 3 3CFA >rw   )r   r   r   ri   )r   rj   r   r   )r   r   r   rj   c                  J   > T R                  [        [        5      [        5      $ r   )rY  rB   rP   r  s   ru   r   rZ    s    Q ;rw   r  r  r  )ri   r  rk   )r   r   r   )r   rl   r   rl  )rj   rh   r   r   )r   rj   ri   r   )r   r   rj   ri   )r   rh   rj   rm   )r   r   rj   rh   )r   r   r   ri   r  )sympy.simplify.simplifyrW  r   rY  rA   rP   rO   r7   r)   rB   r_   r  r,   r@   r-   )rW  r   s    @ru   	test_funcr^    sD   /A1vA??3qs8Q'6CFC!Hs1v<M3NQRTWXYZ[X[T\P]2^+____A1vAFQJ%%c!fa0FT!WQYaQR
<SW[\]W^V^_`V`bfghbijkbkUl;m4nnnn :AB
:>?}MNA??3q61%000
:;<R"b"#AAOODGQ/23q888[+67AAOOGAqM15q89Q>>>lL,GHA??3q61%000lL,GHA??3qs8Q'6(AaC99;2G+HHHHrw   z$Cannot create threads under pyodide.c                     S n [        S5         [        R                  R                  5        nUR	                  U 5      nUR                  5       (       d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nc                  R    [         R                  S :X  d   e[        S//5      n X -  n gr  )rZ   stater   r   s    ru   r  test_issue_19809.<locals>.f  s-    !''4///QC5MErw   T)r\   
concurrentfuturesThreadPoolExecutorsubmitresult)r  executorfutures      ru   test_issue_19809rj    s`     
T	224__Q'F==??"? 5 
	44 
	s"   A:)A)A:)
A7	3A::
Bc                      [        [        [        /5      n [        U [        SS4[        SS45      [        [        R
                  /[        R
                  //5      :X  d   eg r  )r   rP   rQ   r1   r"   r   r5  s    ru   test_issue_23276rl    sT    1vAQAq	Aq!9-	
	
9 2   rw   c                  &    [        [        S 5        g )Nc                  .    [        [        / SQ5      5      $ )Nr  )r/   r   r{   rw   ru   r   "test_issue_27225.<locals>.<lambda>  s    uVI%67rw   rM  r{   rw   ru   test_issue_27225rp    s    
978rw   (T  concurrent.futuresrc  rb  collections.abcr   sympyr   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/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   r  rK   rL   rM   rN   rO   rP   rQ   rR   sympy.core.kindrS   rT   sympy.matrices.determinantrU   sympy.matrices.exceptionsrV   rW   rX   sympy.matrices.kindrY   sympy.matrices.utilitiesrZ   r[   r\   $sympy.tensor.array.array_derivativesr]   sympy.testing.pytestr^   r_   r`   ra   rb   rc   sympy.utilities.iterablesrd   re   importlib.metadatarf   rR  r  r  rv   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r!  r(  r/  r7  r<  rL  r]  rb  rr  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r&  r)  r2  r9  rM  rS  rZ  r\  r`  rc  ri  rm  rx  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%  r5  r8  r@  rE  rK  rR  rU  rX  rf  rz  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?  rL  rP  r]  rc  re  rg  rn  rs  rv  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r+  r-  r1  r?  rG  rI  rN  rP  rS  rU  rZ  r\  r`  ri  rk  rm  ro  rr  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+  r8  r=  rA  rE  rK  rM  rP  rS  rU  r^  rj  rl  rp  r{   rw   ru   <module>r}     s     $
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( 
( - , , 5 C3 3 * O O @  8 &|_6KL<($&;< 7&P5M&, /";. 4'*'**#$" 
%$$'95
8O	'">HD@&21 (
)
1
567L^0(0>L,4BG#8 M,% 
+
!+
&9)XGT_JD?_*JZ_%' 6%;58GPy	8$)&&<<<<<K(d&K0O2dD+8P1&
:>7Mt6. 6 6* 8!"G&9P "-:& >*)  
.	*F!@.6G$1&3@E!P
1H%V&('$&4.L)2
 !&;6|"9O*4(nP!%IPZz.&" $<">JD-;-"8
/(1
(.3(?G4\p&(*&F$7:( 4)"*
Z "$ "$J7
1
L&#"	+	##/:	1	1"225(#3*9# $I< :;# <#9rw   