
    KhsE                       S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r
SSK	JrJrJrJrJrJrJrJr  SSKJr  SSKJr  SSK	JrJrJrJr  SSK	Jr  SSKJrJrJrJ r J!r!  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.   SSK/r	S r1\)r2SS jr)S r3S r4S r51 Skr6 " S S5      r7S r8\
Rr                  Ru                  S5        / r;\;\8" S\7" S\" SS/SS//\S9\" SS/\S95      \7" S\" SS/SS//\S9\" SS/\S95      \7" S\" SS/SS//\S9\" / SQ/ SQ/\S95      \7" S \" S!S"/S#S$//\S9\" S%S!/\S95      \7" S&\" S!S"/S#S$//\S9\" S%S!/\S95      \7" S'\" S!S"/S#S$//\S9\" / S(Q/ S)Q/\S95      \7" S*\
Rx                  " S+\S9\
Rx                  " S,\S9S-1S.9\7" S/\
Rr                  R{                  S0S05      \
Rr                  R{                  S05      5      \7" S1\
Rr                  R{                  S2S25      \
Rr                  R{                  S25      5      \7" S3S2S4/S5S6//S4S2/5      /
5      -  r;\;\8" S7\7" S8\" / S9Q/ SQ/\S9\" SS/\S95      \7" S:\" SS/SS/S;S<//\S9\" / S=Q\S95      \7" S>\" / S9Q/ SQ/\S9\" SS/\S95      \7" S?\" SS/SS/S;S<//\S9\" / S=Q\S95      \7" S@\" / SAQ/ SBQ/\S9\" S%S!/\S95      \7" SC\" SDSE/SFSG/SHSI//\S9\" / SJQ\S95      \7" SK\" / SAQ/ SBQ/\S9\" S%S!/\S95      \7" SL\" SDSE/SFSG/SHSI//\S9\" / SJQ\S95      \7" SM\" / SAQ/ SBQ/\S9\" S%S!/SNSO//\S95      \7" SP\" SDSE/SFSG/SHSI//\S9\" S%S!/SNSO/SNSO//\S95      \7" SQ\
Rr                  R{                  S0SR5      \
Rr                  R{                  S05      5      \7" SS\
Rr                  R{                  S2ST5      \
Rr                  R{                  S25      5      \7" SU\
Rr                  R{                  STS25      \
Rr                  R{                  ST5      5      \7" SV\
Rr                  R{                  SS65      \
Rr                  R{                  S5      S-1S.9\7" SW\
Rr                  R{                  S6S5      \
Rr                  R{                  S65      S-1S.9/5      -  r;\;\8" SX\7" SY\" SS/SS//\S9S5      \7" SZ\" SS/SS//\S9S5      \7" S[\" SS"/S\S2//\S9S5      \7" S]\" SS"/S\S2//\S9S5      \7" S^\
Rx                  " S+\S9SS-1S.9\7" S_S2S4/S4S2//S5      \7" S`\" SS/SS//5      S5      \7" Sa\
Rr                  R{                  S2S25      S5      /5      -  r;Sb r>\;\>" 5       -  r;Sc r?Sd r@\;\@" 5       -  r; " Se Sf5      rA " Sg Sh\A5      rB " Si Sj\A5      rC " Sk Sl\A5      rD " Sm Sn\A5      rE " So Sp\A5      rF " Sq Sr\A5      rGSs rH " St Su\B\E5      rI " Sv Sw\I5      rJ " Sx Sy\B\E5      rK " Sz S{\K5      rL " S| S}\B\E5      rM " S~ S\M5      rN " S S\B\E5      rO " S S\O5      rP " S S5      rQ " S S\B\E5      rR " S S\R\Q5      rS " S S\D\G5      rT " S S\T\Q5      rU " S S\B\E5      rV " S S\V5      rW " S S\B\C\E\F5      rX " S S\X5      rY " S S\D\G5      rZ " S S\Z5      r[S r\ " S S\B\E5      r] " S S\]5      r^ " S S\B\C5      r_ " S S\_5      r`\R                  R                  SS V s/ s H  n \
R                  U 5      PM     sn 5       " S S5      5       rd " S S\D\G5      re " S S5      rf " S S\D\G5      rg " S S5      rh " S S5      ri " S S\i5      rj " S S\i5      rk " S S\k\j5      rl " S S5      rm " S S\i5      rn " S S\i5      ro " S S\i5      rp " S S\l\n5      rq " S S\l\o5      rr " S S\l\p5      rs " S S5      rtS ru " S S5      rv " S S5      rw " S S5      rxS ry\R                  R                  \.SS9S 5       r{\R                  R                  \R                  " 5       S2:  SS9S 5       r}\R                  R                  \.SS9\R                  R                  S 5       5       r " S S5      r " S S5      r " S S5      rS r\R                  GR	                  SS9S 5       r\R                  GR                  \-(       + SS9S 5       rS rS rS rS rS rS rS rS rg! \0 a     GNnf = fs  sn f )z"Test functions for linalg module

    N)arraysingledoublecsinglecdoubledotidentitymatmul)swapaxes)	AxisError)multiply
atleast_2dinfasarray)linalg)matrix_powernormmatrix_rank	multi_dotLinAlgError)_multi_dot_matrix_chain_order)
assert_assert_equalassert_raisesassert_array_equalassert_almost_equalassert_allclosesuppress_warningsassert_raises_regexHAS_LAPACK64IS_WASMc                     [        U 5      [        U[        R                  5      (       a  [        U5      L $ [        R                  L $ N)type
isinstancenpndarray)outin_s     P/var/www/html/env/lib/python3.13/site-packages/numpy/linalg/tests/test_linalg.pyconsistent_subclassr+   #   s<     9jbjj&A&Ac * * jj* *    c                     [        U 5      R                  R                  [        [        4;   a  UnOUn[        X4SU0UD6  g )Ndecimal)r   dtyper$   r   r   old_assert_almost_equal)absingle_decimaldouble_decimalkwr.   s         r*   r   r   -   s;    qz 11  A8'8R8r,   c                 \    [         [         [        [        [        [         [        [        0U    $ r#   )r   r   r   r   r/   s    r*   get_real_dtyper8   5   s&    FFFVWf..35 5r,   c                 \    [         [        [        [        [        [        [        [        0U    $ r#   )r   r   r   r   r7   s    r*   get_complex_dtyper:   :   s&    GVWWgw0057 7r,   c                 &    U [         [        4;   a  gg)Ngh㈵>gdy=)r   r   r7   s    r*   get_rtolr<   ?   s    !!r,   >   squarestrided	hermitian	nonsquaregeneralizedsize-0c                   6    \ rS rSr\" 5       4S jrS rS rSrg)
LinalgCaseN   c                 z    [        [        U[        5      5        Xl        X l        X0l        [        U5      U l        g)z
A bundle of arguments to be passed to a test case, with an identifying
name, the operands a and b, and a set of tags to filter the tests
N)r   r%   strnamer1   r2   	frozensettags)selfrH   r1   r2   rJ   s        r*   __init__LinalgCase.__init__O   s-    
 	
4%&	dO	r,   c                 P    U" U R                   U R                  U R                  S9  g)z>
Run the function `do` on this test case, expanding arguments
rJ   N)r1   r2   rJ   )rK   dos     r*   checkLinalgCase.checkZ   s     	466466		*r,   c                 "    SU R                    S3$ )Nz<LinalgCase: >)rH   rK   s    r*   __repr__LinalgCase.__repr__`   s    tyyk++r,   )r1   r2   rH   rJ   N)	__name__
__module____qualname____firstlineno__setrL   rQ   rV   __static_attributes__ r,   r*   rD   rD   N   s    (+ 	$+,r,   rD   c                 d    U [         ;   d   S5       eU H  nUR                  U 1-  Ul        M     U$ )zR
Add the given tag (a string) to each of the cases (a list of LinalgCase
objects)
zInvalid tag)all_tagsrJ   )tagcasescases      r*   	apply_tagrd   d   s6    
 (?)M)?II%	 Lr,     r=   r         ?       @      @      @r7   r   double_2)rg   rf   ri   )rh   ri         @r         ?       @y       @      @y      @      @y      @      @       @      ?r   	cdouble_2)rm   rl   y      ?      @)y      ?       y      ?      y      ?      0x0r   r   r   rB   rO   8x8   1x1   nonarray         r@   single_nsq_1)rf   rg   rh   single_nsq_2g      @rk   )rg   rf   rh   double_nsq_1double_nsq_2csingle_nsq_1)      ?      ?       @       @      @      )y      @      y      @      "@y      @       @csingle_nsq_2r   r   r   y      @      "y      @      y      @       @)rm   rl   r   cdouble_nsq_1cdouble_nsq_2cdouble_nsq_1_2y      ?      y       @       cdouble_nsq_2_28x11   1x5   5x10x44x0r?   hsinglehdoublehcsingley       @      hcdoublehempty	hnonarraymatrix_b_onlyhmatrix_1x1c                     / n [          GHs  n[        UR                  [        R                  5      (       d  M/  [        R
                  " UR                  SUR                  -  SUR                  -  /5      nUR                  c  S nOdUR                  R                  S:X  a  UR                  nO=[        R
                  " UR                  SUR                  -  SUR                  -  /5      n[        UR                  S-   X#UR                  S1-  S9nU R                  U5        [        R
                  " UR                  /S-  S-  5      R                  S	UR                  R                  -   5      nUR                  c  S nOUR                  R                  S:X  aa  [        R
                  " UR                  /S-  S-  UR                  S
   -  5      R                  S	UR                  R                  SS  -   5      nOM[        R
                  " UR                  /S-  S-  5      R                  S	UR                  R                  -   5      n[        UR                  S-   X#UR                  S1-  S9nU R                  U5        GMv     U $ )Nrw   rx   ru         _tile3rA   rO   rx   rw   _tile213)CASESr%   r1   r&   r'   r   r2   ndimrD   rH   rJ   appendreshapeshape)	new_casesrc   r1   r2   new_cases        r*   _make_generalized_casesr      s   I$&&"**--HHdffa$&&j!dff*5666>AVV[[AA$&&!dff*a$&&j9:Adii(2A#'99#>@"HHdffX\A%&..v/DE66>AVV[[A$&&A)AGGBK7876DFFLL$556  $&&A)*226DFFLL3HIAdii*4a#'99#>@"3 6 r,   c              #     #    [        U [        R                  5      (       d  U S4v   gS/U R                  -  nSUS'   U R                  S:  a  SUS'   U R                  S:  a  S	US
'   [        R
                  " [        U5      6  GHe  n[        U R                  U5       VVs/ s H  u  p4[        X4-  5      PM     nnn[        U Vs/ s H  n[        SSU5      PM     sn5      n[        R                  " XPR                  S9nUR                  [        R                  5      R                  S5        X   nXS'   UR                  U R                   5      n[#        [        R$                  " X:H  5      5        USSR'                  U V	s/ s H  n	SU	-  PM
     sn	5      -   4v   U R                  S:  aZ  U R                  S   S:X  aG  [)        U R*                  5      n
SU
S'   [        R,                  R.                  R1                  X
S9nUS4v   U R                  S:  aZ  U R                  S   S:X  aG  [)        U R*                  5      n
SU
S'   [        R,                  R.                  R1                  X
S9nUS4v   U R                  S:  d  GM  U R                  SS S:X  d  GM  [)        U R*                  5      n
SU
S'   SU
S'   [        R,                  R.                  R1                  X
S9nUS4v   GMh     gs  snnf s  snf s  sn	f 7f)z4
Generate cartesian product of strides for all axes
nopNru   )ru   rx   r   ru   r   rw   )ru   r   r7   l   >[= .stride__z%+dr   )stridesstride_xxx_0stride_xxx_0_xru   ru   stride_xxx_0_0)r%   r&   r'   r   	itertoolsproducttuplezipr   abssliceemptyr/   viewuint32fill	__class__r   alljoinlistr   libstride_tricks
as_strided)x
stride_setrepeatsr1   r2   	new_shaperepeatslicesxijss              r*   _stride_comb_iterr     sy    
 a$$h!&&JJrNvvz#
2vvz 
2$$eJ&78,/,AB,ADASZ,A	BHfdD&1HI XXiww/
		
+Z3WWQ[[!rw )chh7'C7a	7'CDDDD 66Q;1772;!+QYYAAbE%%000>Bn$$66Q;1772;!+QYYAAbE%%000>B&&&66Q;1773B<61QYYAAbEAbE%%000>B&&&; 9BH (Ds9   BK?!K/:K?K5
B(K?K:C.K?K?A"K?c            
         / n [          H  n[        UR                  5       Hc  u  p#[        UR                  5       HE  u  pE[	        UR
                  S-   U-   S-   U-   X$UR                  S1-  S9nU R                  U5        MG     Me     M     U $ )Nr   r>   rO   )r   r   r1   r2   rD   rH   rJ   r   )r   rc   r1   a_labelr2   b_labelr   s          r*   _make_strided_casesr   K  s    I+DFF3JA/7
%dii#o&?#&E&OQR+/99	{+BD  * 8 4  r,   c                   :    \ rS rSr\r\" 5       \" 5       4S jrSrg)LinalgTestCasei\  c                 2   U R                    HJ  nUR                  U-  U:w  a  M  UR                  U-  (       a  M.   UR                  U R                  5        ML     g! [         a0  nSU< S3nU[
        R                  " 5       -  n[        U5      UeSnAff = f)z`
Run func on each of the cases with all of the tags in require, and none
of the tags in exclude
zIn test case: z

N)
TEST_CASESrJ   rQ   rP   	Exception	traceback
format_excAssertionError)rK   requireexcluderc   emsgs         r*   check_casesLinalgTestCase.check_cases_  s    
 OODyy7"g-yy7"1

477# $  1&thd3y++--$S)q01s   A
B&+BBr^   N)	rX   rY   rZ   r[   r   r   r\   r   r]   r^   r,   r*   r   r   \  s    J"%% 1r,   r   c                        \ rS rSrS rS rSrg)LinalgSquareTestCaseis  c                 *    U R                  S1SS1S9  g )Nr=   rA   rB   r   r   r   rU   s    r*   test_sq_cases"LinalgSquareTestCase.test_sq_casesu  s!    ("/!: 	 	<r,   c                 *    U R                  SS1S1S9  g )Nr=   rB   rA   r   r   rU   s    r*   test_empty_sq_cases(LinalgSquareTestCase.test_empty_sq_casesy  s!    (H!5"/ 	 	2r,   r^   N)rX   rY   rZ   r[   r   r   r]   r^   r,   r*   r   r   s      <2r,   r   c                        \ rS rSrS rS rSrg)LinalgNonsquareTestCasei~  c                 *    U R                  S1SS1S9  g )Nr@   rA   rB   r   r   rU   s    r*   test_nonsq_cases(LinalgNonsquareTestCase.test_nonsq_cases  !    +"/!: 	 	<r,   c                 *    U R                  SS1S1S9  g )Nr@   rB   rA   r   r   rU   s    r*   test_empty_nonsq_cases.LinalgNonsquareTestCase.test_empty_nonsq_cases  !    +x!8"/ 	 	2r,   r^   N)rX   rY   rZ   r[   r   r   r]   r^   r,   r*   r   r   ~  r   r,   r   c                        \ rS rSrS rS rSrg)HermitianTestCasei  c                 *    U R                  S1SS1S9  g )Nr?   rA   rB   r   r   rU   s    r*   test_herm_cases!HermitianTestCase.test_herm_cases  r   r,   c                 *    U R                  SS1S1S9  g )Nr?   rB   rA   r   r   rU   s    r*   test_empty_herm_cases'HermitianTestCase.test_empty_herm_cases  r   r,   r^   N)rX   rY   rZ   r[   r   r   r]   r^   r,   r*   r   r     r   r,   r   c                       \ rS rSr\R
                  R                  S 5       r\R
                  R                  S 5       rSr	g)LinalgGeneralizedSquareTestCasei  c                 *    U R                  SS1S1S9  g )NrA   r=   rB   r   r   rU   s    r*   test_generalized_sq_cases9LinalgGeneralizedSquareTestCase.test_generalized_sq_cases  s!    -!:"* 	 	-r,   c                 &    U R                  1 SkS9  g )N>   r=   rA   rB   r   r   rU   s    r*   test_generalized_empty_sq_cases?LinalgGeneralizedSquareTestCase.test_generalized_empty_sq_cases  s    !DEr,   r^   N)
rX   rY   rZ   r[   pytestmarkslowr   r  r]   r^   r,   r*   r   r     s>    [[- - [[F Fr,   r   c                       \ rS rSr\R
                  R                  S 5       r\R
                  R                  S 5       rSr	g)"LinalgGeneralizedNonsquareTestCasei  c                 *    U R                  SS1S1S9  g )NrA   r@   rB   r   r   rU   s    r*   test_generalized_nonsq_cases?LinalgGeneralizedNonsquareTestCase.test_generalized_nonsq_cases  !    -!="* 	 	-r,   c                 &    U R                  1 SkS9  g )N>   r@   rA   rB   r  r   rU   s    r*   "test_generalized_empty_nonsq_casesELinalgGeneralizedNonsquareTestCase.test_generalized_empty_nonsq_cases  s    !GHr,   r^   N)
rX   rY   rZ   r[   r  r  r  r  r  r]   r^   r,   r*   r	  r	    s>    [[- - [[I Ir,   r	  c                       \ rS rSr\R
                  R                  S 5       r\R
                  R                  S 5       rSr	g)HermitianGeneralizedTestCasei  c                 *    U R                  SS1S1S9  g )NrA   r?   rB   r   r   rU   s    r*   test_generalized_herm_cases8HermitianGeneralizedTestCase.test_generalized_herm_cases  r  r,   c                 *    U R                  1 SkS1S9  g )N>   r?   rA   rB   noner   r   rU   s    r*   !test_generalized_empty_herm_cases>HermitianGeneralizedTestCase.test_generalized_empty_herm_cases  s    !G"( 	 	+r,   r^   N)
rX   rY   rZ   r[   r  r  r  r  r  r]   r^   r,   r*   r  r    s<    [[- - [[+ +r,   r  c                     [        U 5      n U R                  S:  aF  [        R                  " U R                  U R
                  S9n[        U R                  S   5      US'   U$ [        U R                  S   5      $ )Nrx   r7   r   .r   )r   r   r&   r   r   r/   r	   )r1   rs     r*   identity_like_generalizedr    s\    
Avv{HHQWWAGG,!''"+&#
##r,   c                       \ rS rSrS rSrg)
SolveCasesi  c                 D   [         R                  " X5      n[        R                  " U5      R                  S:X  a<  [        XS   5      S   n[        [        R                  " X%R                  5      U5        O[        X5      n[        X%5        [        [        XB5      5        g )Nru   ).N.r   )r   solver&   r   r   r
   r   broadcast_tor   r   r+   )rK   r1   r2   rJ   r   adotxs         r*   rP   SolveCases.do  sq    LL88A;q  1	l+F3E;; ?G1LE)#A)*r,   r^   NrX   rY   rZ   r[   rP   r]   r^   r,   r*   r  r    s    
+r,   r  c                   r    \ rS rSr\R
                  R                  S\\\	\
/5      S 5       rS rS rS rSrg)		TestSolvei  r/   c                     [         R                  " SS/SS//US9n[        [        R                  " X"5      R
                  U5        g Nru         ?r7   )r&   r   r   r   r!  r/   rK   r/   r   s      r*   
test_typesTestSolve.test_types  s8    HHq#ha)7V\\!'--u5r,   c                     " S S[         R                  5      n[         R                  " S5      R                  SSS5      n[         R                  " S5      R	                  U5      n[
        R                  " X#5      nUR                  S:X  d   e[         R                  " S5      R                  SS5      R	                  U5      n[
        R                  " X#5      nUR                  S:X  d   e[         R                  " S5      R                  SS5      R	                  U5      n[        [        [
        R                  X#5        g )	Nc                       \ rS rSrSrg))TestSolve.test_1_d.<locals>.ArraySubclassi  r^   NrX   rY   rZ   r[   r]   r^   r,   r*   ArraySubclassr0        r,   r2  rs   rw   rw   rw   ry   )rw   rw   rw   ru   )
r&   r'   aranger   r   r   r!  r   r   
ValueError)rK   r2  r1   r2   results        r*   test_1_dTestSolve.test_1_d  s    	BJJ 	IIaL  Aq)IIaLm,a#||v%%% IIaL  A&++M:a#||y(((IIaL  A&++M:j&,,5r,   c           
          " S S[         R                  5      n[         R                  " S5      R                  SSS5      n[         R                  " S5      R                  SSS5      R	                  U5      n[
        R                  " X#5      S S 2SS2S S 24   n[
        R                  " US S 2SS2SS24   US S 2SS2S S 24   5      n[        XT5        [        [        XQ5      5        [        [
        R                  [
        R                  US S 2SS2SS24   U5        [        [        [
        R                  X#S S 2SS2S S 24   5        [         R                  " S5      R                  SSS5      n[        [        [
        R                  X#5        [        [        [
        R                  USS USS 5        [         R                  " S5      R	                  U5      n[
        R                  " X#5      S S 2SS24   n[
        R                  " US S 2SS2SS24   USS 5      n[        XT5        [        [        XQ5      5        [         R                  " S5      R                  SS5      n[        [        [
        R                  X#5        [        [        [
        R                  USS USS 5        [        [        [
        R                  US S 2SS2SS24   U5        g )	Nc                       \ rS rSrSrg),TestSolve.test_0_size.<locals>.ArraySubclassi  r^   Nr1  r^   r,   r*   r2  r<    r3  r,   r2  rs   rw   r   ru   rx   r   )r&   r'   r5  r   r   r   r!  r   r   r%   r   r   r6  rK   r2  r1   r2   expectedr7  s         r*   test_0_sizeTestSolve.test_0_size  s-   	BJJ 	 IIaL  Aq)IIaL  Aq)..}=<<%a1ai0a1Q3!na1Q3	l;6,
612 	f((&,,!QqS!A#+Jj&,,Q!QY<@ IIaL  Aq)j&,,5j&,,!A!A? IIaLm,<<%a1f-a1Q3!na!f56,
612IIaL  A&j&,,5j&,,!A!A?j&,,!QqS!A#+Br,   c                     " S S[         R                  5      n[         R                  " S5      R                  SSS5      n[         R                  " S5      R                  SSS5      R	                  U5      n[
        R                  " X#5      S S 2S S 2SS24   n[
        R                  " X#S S 2S S 2SS24   5      n[        XT5        [        [        XQ5      5        [
        R                  " X#5      S S 2SS2SS24   n[
        R                  " US S 2SS2SS24   US S 2SS2SS24   5      n[        XT5        [        [        XQ5      5        g )	Nc                       \ rS rSrSrg).TestSolve.test_0_size_k.<locals>.ArraySubclassi  r^   Nr1  r^   r,   r*   r2  rC    r3  r,   r2  ry   ru   rw   r   rx   r   )
r&   r'   r5  r   r   r   r!  r   r   r%   r=  s         r*   test_0_size_kTestSolve.test_0_size_k
  s   	BJJ 	IIaL  Aq)IIaL  Aq)..}=<<%aAaCi0a1a19.6,
612 <<%a1ack2a1Q3!na1Q3!n=6,
612r,   r^   N)rX   rY   rZ   r[   r  r  parametrizer   r   r   r   r,  r8  r?  rD  r]   r^   r,   r*   r'  r'    s@    [[Wvvw&HI6 J66"CB3r,   r'  c                       \ rS rSrS rSrg)InvCasesi  c                     [         R                  " U5      n[        [        X5      [	        U5      5        [        [        XA5      5        g r#   )r   invr   r
   r  r   r+   )rK   r1   r2   rJ   a_invs        r*   rP   InvCases.do  s4    

1F1,5a8	:#E-.r,   r^   Nr%  r^   r,   r*   rH  rH    s    /r,   rH  c                   f    \ rS rSr\R
                  R                  S\\\	\
/5      S 5       rS rSrg)TestInvi&  r/   c                     [         R                  " SS/SS//US9n[        [        R                  " U5      R
                  U5        g r)  )r&   r   r   r   rJ  r/   r+  s      r*   r,  TestInv.test_types'  s7    HHq#ha)7VZZ]((%0r,   c                     " S S[         R                  5      n[         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      n[        UR                  R                  [         R                  L 5        [        UR                  UR                  5        [        [        X15      5        [         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      n[        UR                  R                  [         R                  L 5        [        UR                  UR                  5        [        [        X15      5        g )Nc                       \ rS rSrSrg)*TestInv.test_0_size.<locals>.ArraySubclassi.  r^   Nr1  r^   r,   r*   r2  rS  .  r3  r,   r2  r   ru   ru   r7   rp   )r&   r'   zerosint_r   r   rJ  r   r/   r$   float64r   r   r%   	complex64rK   r2  r1   ress       r*   r?  TestInv.test_0_size,  s    	BJJ 	HHYbgg.33MBjjm		"**,-QWWcii(
3./HHV2<<055mDjjm		",,./QWWcii(
3./r,   r^   NrX   rY   rZ   r[   r  r  rF  r   r   r   r   r,  r?  r]   r^   r,   r*   rN  rN  &  s4    [[Wvvw&HI1 J10r,   rN  c                       \ rS rSrS rSrg)EigvalsCasesi=  c                 v    [         R                  " U5      n[         R                  " U5      u  pV[        XE5        g r#   )r   eigvalseigr   )rK   r1   r2   rJ   evevaluesevectorss          r*   rP   EigvalsCases.do?  s(    ^^A"JJqMB(r,   r^   Nr%  r^   r,   r*   r^  r^  =  s    )r,   r^  c                   f    \ rS rSr\R
                  R                  S\\\	\
/5      S 5       rS rSrg)TestEigvalsiE  r/   c                 *   [         R                  " SS/SS//US9n[        [        R                  " U5      R
                  U5        [         R                  " SS/SS//US9n[        [        R                  " U5      R
                  [        U5      5        g Nru   r*  r7   r   )r&   r   r   r   r`  r/   r:   r+  s      r*   r,  TestEigvals.test_typesF  st    HHq#ha)7V^^A&,,e4HHq#hQ(6V^^A&,,.?.FGr,   c                     " S S[         R                  5      n[         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      n[        UR                  R                  [         R                  L 5        [        SUR                  5        [        [        U[         R                  5      5        [         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      n[        UR                  R                  [         R                  L 5        [        SUR                  5        [        [        U[         R                  5      5        g )Nc                       \ rS rSrSrg).TestEigvals.test_0_size.<locals>.ArraySubclassiO  r^   Nr1  r^   r,   r*   r2  rm  O  r3  r,   r2  rT  r7   r   ru   rp   rq   )r&   r'   rU  rV  r   r   r`  r   r/   r$   rW  r   r   r%   rX  rY  s       r*   r?  TestEigvals.test_0_sizeM  s    	BJJ 	HHYbgg.33MBnnQ		"**,-VSYY'
3

+,HHV2<<055mDnnQ		",,./T399%
3

+,r,   r^   Nr\  r^   r,   r*   rg  rg  E  s6    [[Wvvw&HIH JH-r,   rg  c                       \ rS rSrS rSrg)EigCasesi`  c           	      :   [         R                  " U5      nUR                  UR                  pe[	        [        X5      [        R                  " U5      [        R                  " U5      SS S S 24   -  [        UR                  5      S9  [        [        Xa5      5        g )N.rtol)r   ra  eigenvalueseigenvectorsr   r
   r&   r   r<   r/   r   r+   )rK   r1   r2   rJ   rZ  ru  rv  s          r*   rP   EigCases.dob  st    jjm$'OOS5E5E\q/

<02::k3J3PTVW<3XX%k&7&78	: 	#L45r,   r^   Nr%  r^   r,   r*   rq  rq  `  s    6r,   rq  c                   f    \ rS rSr\R
                  R                  S\\\	\
/5      S 5       rS rSrg)TestEigik  r/   c                    [         R                  " SS/SS//US9n[         R                  R                  U5      u  p4[	        UR
                  U5        [	        UR
                  U5        [         R                  " SS/SS//US9n[         R                  R                  U5      u  p4[	        UR
                  [        U5      5        [	        UR
                  [        U5      5        g ri  )r&   r   r   ra  r   r/   r:   rK   r/   r   wvs        r*   r,  TestEig.test_typesl  s    HHq#ha)7yy}}QQWWe$QWWe$HHq#hQ(6yy}}QQWW/67QWW/67r,   c                 :    " S S[         R                  5      n[         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      u  p4[        UR                  R                  [         R                  L 5        [        UR                  R                  [         R                  L 5        [        UR                  UR                  5        [        SUR                  5        [        [        U[         R                  5      5        [         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      u  p4[        UR                  R                  [         R                  L 5        [        UR                  R                  [         R                  L 5        [        UR                  UR                  5        [        SUR                  5        [        [        U[         R                  5      5        g )Nc                       \ rS rSrSrg)*TestEig.test_0_size.<locals>.ArraySubclassiz  r^   Nr1  r^   r,   r*   r2  r  z  r3  r,   r2  rT  r7   rn  rp   rq   )r&   r'   rU  rV  r   r   ra  r   r/   r$   rW  r   r   r%   rX  rK   r2  r1   rZ  res_vs        r*   r?  TestEig.test_0_sizex  s<   	BJJ 	HHYbgg.33MBZZ]
  BJJ./		"**,-QWWekk*VSYY'
1bjj)*HHV2<<055mDZZ]
  BLL01		",,./QWWekk*T399%
1bjj)*r,   r^   Nr\  r^   r,   r*   ry  ry  k  s4    [[Wvvw&HI	8 J	8+r,   ry  c                   d    \ rS rSrSr\R                  R                  S\\	\
\/5      S 5       rSrg)SVDBaseTestsi  Fr/   c                    [         R                  " SS/SS//US9n[        R                  " U5      nUR                  UR
                  UR                  pen[        UR                  U5        [        UR                  [        U5      5        [        UR                  U5        [        R                  " USU R                  S9n[        UR                  [        U5      5        g )Nru   r*  r7   F
compute_uvr?   )r&   r   r   svdUSVhr   r/   r8   r?   )rK   r/   r   rZ  r  r  r  r   s           r*   r,  SVDBaseTests.test_types  s    HHq#ha)7jjm55#%%bQWWe$QWWnU34RXXu%JJqUdnnEQWWnU34r,   r^   N)rX   rY   rZ   r[   r?   r  r  rF  r   r   r   r   r,  r]   r^   r,   r*   r  r    s4    I[[Wvvw&HI5 J5r,   r  c                       \ rS rSrS rSrg)SVDCasesi  c                 f   [         R                  " US5      u  pEn[        U[        [        R
                  " U5      [        R
                  " U5      SS S S 24   -  [        R
                  " U5      5      [        UR                  5      S9  [        [        XA5      5        [        [        Xa5      5        g )NF.rs  )
r   r  r   r
   r&   r   r<   r/   r   r+   )rK   r1   r2   rJ   ur   vts          r*   rP   SVDCases.do  s~    ::a'b6"**Q-"**Q-T12M"M+-::b>;%agg.	0 	#A)*#B*+r,   r^   Nr%  r^   r,   r*   r  r    s    ,r,   r  c                        \ rS rSrS rS rSrg)TestSVDi  c                    [         R                  " S5      n[        R                  " USU R                  S9u  p#n[        UR                  S5        [        UR                  S5        [        U[         R                  " S5      5        [         R                  " S5      n[        R                  " USU R                  S9u  p#n[        UR                  S5        [        UR                  S5        [        U[         R                  " S5      5        g)	z5Empty input should put an identity matrix in u or vh )ry   r   Tr  ry   ry   rp   ry   )r   ry   N)r&   r   r   r  r?   r   r   eye)rK   r   r  r   vhs        r*   test_empty_identityTestSVD.test_empty_identity  s    HHV::aDDNNKbQWWf%RXXv&Qq	"HHV::aDDNNKbQWWf%RXXv&R#r,   c                     [         R                  " SS/SS//5      n[        R                  " USU R                  S9n[        R
                  " U5      n[        X#5        g )Nru   r*  Fr  )r&   r   r   r  r?   svdvalsr   )rK   r   
s_from_svds_from_svdvalss       r*   test_svdvalsTestSVD.test_svdvals  sI    HHq#ha)*ZZet~~N
*J7r,   r^   N)rX   rY   rZ   r[   r  r  r]   r^   r,   r*   r  r    s    $8r,   r  c                       \ rS rSrS rSrg)SVDHermitianCasesi  c                 R   [         R                  " USSS9u  pEn[        U[        [        R
                  " U5      [        R
                  " U5      SS S S 24   -  [        R
                  " U5      5      [        UR                  5      S9  S n[        [        R                  " XG" U5      5      [        R                  " [        R                  " UR                  S   5      UR                  5      5        [        [        R                  " Xg" U5      5      [        R                  " [        R                  " UR                  S   5      UR                  5      5        [        [        R                  " U5      SS S S24   U5        [        [        XA5      5        [        [        Xa5      5        g )NFTr?   .rs  c                     [        [        U R                  5      5      nUS   US   sUS'   US'   [        R                  " [        R
                  " XS95      $ )Nr   r   axes)r   ranger   r&   conj	transpose)matr  s     r*   r?   'SVDHermitianCases.do.<locals>.hermitian  sH    chh(D!%b48DHd2h772<<788r,   r   )r   r  r   r
   r&   r   r<   r/   r   r"  r  r   r   sortr   r+   )rK   r1   r2   rJ   r  r   r  r?   s           r*   rP   SVDHermitianCases.do  s"   ::a$7b6"**Q-"**Q-T12M"M+-::b>;%agg.	0	9
 	BIIa16qwwWY{H[]^]d]d8efBIIb)B-8"//"&&QSQYQYZ\Q]J^`b`h`h:ijRWWQZTrT	*A.#A)*#B*+r,   r^   Nr%  r^   r,   r*   r  r    s    ,r,   r  c                       \ rS rSrSrSrg)TestSVDHermitiani  Tr^   N)rX   rY   rZ   r[   r?   r]   r^   r,   r*   r  r    s    Ir,   r  c                       \ rS rSrS rSrg)	CondCasesi  c           	         [        U5      nSU;   a   [        [        [        R                  U5        g [        R
                  " USS9n[        [        R                  " U5      US   US   -  SSS9  [        [        R                  " US	5      US   US   -  SSS9  [        [        R                  " US
5      US   US   -  SSS9  [        R                  R                  U5      n[        [        R                  " US5      [        U5      R                  S
5      R                  S5      [        U5      R                  S
5      R                  S5      -  SSS9  [        [        R                  " US5      [        U5      R                  S
5      R                  S5      [        U5      R                  S
5      R                  S5      -  SSS9  [        [        R                  " U[        R                  5      [        U5      R                  S5      R                  S5      [        U5      R                  S5      R                  S5      -  SSS9  [        [        R                  " U[        R                  * 5      [        U5      R                  S5      R                  S5      [        U5      R                  S5      R                  S5      -  SSS9  [        [        R                  " US5      [        R                  " [        U5      S	-  R                  S5      R                  S5      [        U5      S	-  R                  S5      R                  S5      -  5      SSS9  g )NrB   F)r  r   ).r   r   r   r3   r4   rw   r   ru   r   fro)r   r   r   r   condr  r   r&   rJ  r   summaxminr   sqrt)rK   r1   r2   rJ   cr   cinvs          r*   rP   CondCases.do  s   AJt+v{{A6 JJqU+KKNAfI'
2R	1 	KK1qy1W:5R	1 	KK2'
QvY 6R	1
 yy}}QKK1FJJrNr"SY]]2%6%:%:2%>>R	1 	KK2FJJrNr"SY]]2%6%:%:2%>>R	1 	KK266"FJJrNr"SY]]2%6%:%:2%>>R	1 	KKBFF7#FJJrNr"SY]]2%6%:%:2%>>R	1 	KK5!GGSVQYOOB'++B/4y!|((,0045 6R		1r,   r^   Nr%  r^   r,   r*   r  r    s    (1r,   r  c                   h    \ rS rSrS rS r\R                  R                  SSSS9S 5       r	S	 r
S
rg)TestCondi  c                    [        / SQ/ SQ/ SQ/5      n[        [        R                  " U[        5      S5        [        [        R                  " U[        * 5      S5        [        [        R                  " US5      S5        [        [        R                  " US5      S5        [        [        R                  " US	5      [
        R                  " S
5      5        g )N)rf   r   ru   )r   g       r   )r   r   rh   ry   gUUUUUU?ru   r   r*  r  gUUUUU6@)r   r   r   r  r   r&   r  rK   As     r*   test_basic_nonsvdTestCond.test_basic_nonsvd  s    :{J78FKK3/3FKKC40#6FKK1-q1FKK2.4FKK5127783DEr,   c                 X   [         R                  " S5      [         R                  " S5      /n/ SQnSS/n[        R                  " X5       H'  u  pE[        [        R                  " XE5      S:  5        M)     [        R                  " X5       H  u  pE[        R                  " XE5        M     g )Nr4  Nru   rw   r  r   r     4&kC)r&   rU  onesr   r   r   r   r  )rK   Asp_posp_negr  ps         r*   test_singularTestCond.test_singular  s     hhv0#R%%b0DA FKK%,- 1 %%b0DAKK 1r,   TFz/Platform/LAPACK-dependent failure, see gh-18914)runreasonc                    / SQn/ SQn[         R                  " S5      n[         R                  US'   U H[  n[        R                  " X45      n[        [        U[         R                  5      5        [        [         R                  " U5      5        M]     [         R                  " S5      n[         R                  US'   U H  n[        R                  " X45      n[        [         R                  " US   5      5        XB;   a$  [        US   S	:  5        [        US
   S	:  5        Md  [        [         R                  " US   5      (       + 5        [        [         R                  " US
   5      (       + 5        M     g )N)Nru   r   rw   r   r  r  r4  rn  )rx   rw   rw   ru   r   ru   ru   r   r  rw   )	r&   r  nanr   r  r   r%   rW  isnan)rK   psr  r  r  r  s         r*   test_nanTestCond.test_nan  s    
 )#GGFO#AA!AJq"**-.BHHQK  
 GGI66%AA!ABHHQqTN#z!t$!t$BHHQqTN*+BHHQqTN*+ r,   c                    [         R                  R                  S5        [         R                  R                  SSSS5      nSUS'   SUS'   S H  n[        R
                  " X5      n[        US   [         R                  5        [        US   [         R                  5        [        [         R                  " US   5      5        [        [         R                  " US   5      5        M     g )	Nre   rw   r   rp   r   )Nru   rw   r  r   r   rn  ru   r   )
r&   randomseedrandr   r  r   r   r   isfinite)rK   r  r  r  s       r*   test_stacked_singularTestCond.test_stacked_singular7  s     			tIINN1aA&##,AA!A3(3(BKK#'(BKK#'( -r,   r^   N)rX   rY   rZ   r[   r  r  r  r  xfailr  r  r]   r^   r,   r*   r  r    sC    F [[t-  .,.,0)r,   r  c                       \ rS rSrS rSrg)	PinvCasesiG  c                     [         R                  " U5      n[        n[        U" U" X5      U5      USSS9  [	        [        XA5      5        g )Nr   r   r  r   pinvr
   r   r   r+   rK   r1   r2   rJ   a_ginvr   s         r*   rP   PinvCases.doL  s<    QCA2AaXZ[#F./r,   r^   Nr%  r^   r,   r*   r  r  G  s    
0r,   r  c                       \ rS rSrSrg)TestPinviT  r^   Nr1  r^   r,   r*   r  r  T      r,   r  c                       \ rS rSrS rSrg)PinvHermitianCasesiX  c                     [         R                  " USS9n[        n[        U" U" X5      U5      USSS9  [	        [        XA5      5        g )NTr  r   r   r  r  r  s         r*   rP   PinvHermitianCases.doZ  s?    Q$/CA2AaXZ[#F./r,   r^   Nr%  r^   r,   r*   r  r  X  s    0r,   r  c                       \ rS rSrSrg)TestPinvHermitianib  r^   Nr1  r^   r,   r*   r  r  b  r  r,   r  c                  n   [         R                  " / SQ/ SQ/ SQ/5      n [        [         R                  R	                  U SS9[         R                  R	                  U SS95        [
        R                  " [        SS9   [         R                  R	                  U SSS	9  S S S 5        g ! , (       d  f       g = f)
Nru   rw   rx   )ry   ru   ru   )rw   rx   ru   r*  rcondrs  z%`rtol` and `rcond` can't be both set.)match)r  rt  )r&   r   r   r   r  r  raisesr6  )r1   s    r*   test_pinv_rtol_argr  f  s    
)Y	23A
		q$
		qs#
 
B
 			q#.
 
 
s   = B&&
B4c                       \ rS rSrS rSrg)DetCasesit  c                    [         R                  " U5      n[         R                  " U5      nUR                  UR                  pv[        U5      R                  R                  [        [        4;   a  [        U5      R                  [        5      nO[        U5      R                  [        5      n[         R                  " U5      n	[        U[        R                  " U	SS95        [        U[         R"                  " U5      -  [        R                  " U	SS95        [         R$                  " U5      n[         R$                  " U5      nUS:g  n
[        [         R&                  " Xj   5      S5        [)        Xz)    [*        * 5        g )Nr   axisr   ru   )r   detslogdetsign	logabsdetr   r/   r$   r   r   astyper   r`  r   r   reducer&   exp
atleast_1dr   r   r   )rK   r1   r2   rJ   drZ  r   ldadrb  ms              r*   rP   DetCases.dov  s    JJqMnnQ#--21:  VV$44""6*B""7+B^^BAxr;<Ar
NHOOBR,HIMM!]]2!VBFF14L!,RVcT"r,   r^   Nr%  r^   r,   r*   r  r  t  s    #r,   r  c                   l    \ rS rSrS r\R                  R                  S\\	\
\/5      S 5       rS rSrg)TestDeti  c                 |   [        [        R                  " S//5      S5        [        [        [        R                  " S//5      5      [        5        [        [        R                  " S//5      S5        [        [        [        R                  " S//5      5      [
        5        [        [        R                  " S//5      S[        * 45        [        [        [        R                  " S//5      S   5      [        5        [        [        [        R                  " S//5      S   5      [        5        [        [        R                  " S//5      S[        * 45        [        [        [        R                  " S//5      S   5      [
        5        [        [        [        R                  " S//5      S   5      [        5        g )N        y                r   ru   )r   r   r   r$   r   r   r  r   rU   s    r*   	test_zeroTestDet.test_zero  s&   VZZ#(#.T&**seW-.7VZZ$)3/T&**tfX./9V^^cUG,sSDk:T&..3%1!45v>T&..3%1!45v>V^^dVH-sd|<T&..4&2156@T&..4&2156?r,   r/   c                 L   [         R                  " SS/SS//US9n[        [         R                  R	                  U5      R
                  U5        [         R                  R                  U5      u  p4[        UR
                  [        U5      5        [        UR
                  U5        g r)  )r&   r   r   r   r   r/   r  r8   )rK   r/   r   phr   s        r*   r,  TestDet.test_types  ss    HHq#ha)7RYY]]1%++U3		!!!$QWWnU34RXXu%r,   c                    [         R                  " S[         R                  S9n[        R                  " U5      n[        US5        [        UR                  R                  [         R                  L 5        [        R                  " U5      n[        US5        [        US   R                  R                  [         R                  L 5        [        US   R                  R                  [         R                  L 5        [         R                  " S[         R                  S9n[        R                  " U5      n[        US5        [        UR                  R                  [         R                  L 5        [        R                  " U5      n[        US5        [        US   R                  R                  [         R                  L 5        [        US   R                  R                  [         R                  L 5        g )Nrp   r7   rf   r  r   ru   )r&   rU  rX  r   r   r   r   r/   r$   r  float32rW  )rK   r1   rZ  s      r*   r?  TestDet.test_0_size  s6   HHV2<<0jjmS"		",,./nnQS&!A!!R\\12A!!RZZ/0HHV2::.jjmS"		"**,-nnQS&!A!!RZZ/0A!!RZZ/0r,   r^   N)rX   rY   rZ   r[   r  r  r  rF  r   r   r   r   r,  r?  r]   r^   r,   r*   r  r    s<    @ [[Wvvw&HI& J&1r,   r  c                       \ rS rSrS rSrg)
LstsqCasesi  c                     [         R                  " U5      nUR                  u  pV[        R                  " US5      u  pxn	[        R
                  " XSS9u  ppUS:X  a  [        U
S:H  R                  5       5        XV::  a!  [        U[        X5      5        [        X5        O[        X5        [        XR                  U5      5        X:X  a  XV:  a  [         R                  " [        [         R                  " X5      U-
  5      5      S-  R                  SS9n[         R                  " U5      n[         R                  " U5      R                  S:X  a'  SUl        [        UR                  UR                  5        O.[         R                  " / 5      R!                  [#        U
5      5      n[        X5        [        [         R$                  " UR&                  [         R(                  5      5        [        [+        X5      5        [        [+        X5      5        g )	NFr   r  r   rw   r  ru   r   )r&   r   r   r   r  lstsqr   r   r   r   r   __array_wrap__r   r  r   r   r   r$   
issubdtyper/   floatingr+   )rK   r1   r2   rJ   arrr  nr  r   r  r   	residualsranksvexpect_residss                  r*   rP   LstsqCases.do  si   jjmyy::a'b!'a"!=d6Q!VLLN#63q9-!!B 1 1! 459

3rvva|a/01Q6 JJ}5Mzz!}!!Q&&*#Y__m.A.ABHHRL--d1g6MI5ioor{{;<#A)*#I12r,   r^   Nr%  r^   r,   r*   r  r    s    3r,   r  c                   l    \ rS rSrS r\R                  R                  / SQ/ SQ5      S 5       rS r	Sr
g)		TestLstsqi  c                 r   [         R                  " / SQ/ SQ/ SQ/ SQ/5      R                  n[         R                  " / SQ5      n[        R                  " XSS9u  p4pV[        US:H  5        [        R                  " X5      u  p4pV[        US	:H  5        [        R                  " XS S9u  p4pV[        US	:H  5        g )
N)r  rf   r  rf   rg   r  )r  rg   r  r  rf   r  )rf   r  rf   r  r  ri   )r  r  r  rg   rh   r  )ru   r   r   r   r   r   r   r  ry   rx   )r&   r   Tr   r  r   )rK   r1   r2   r   r"  r#  r   s          r*   
test_rcondTestLstsq.test_rcond  s    HH22224 5 67Q 	

 HH'( &Q <d	 &Q 2d	 &Q >d	r,   )r  r!  n_rhs))ry   rw   rw   )r   ry   ru   )r   ry   rw   )ry   r   ru   )ry   r   rw   )ry   rw   r   r   r   r   c                 F   [         R                  " X-  5      R                  X5      n[         R                  " X45      n[        R
                  " XES S9u  pgpUS:X  a  [        US:H  R                  5       5        [        UR                  X#45        [        UR                  X:  a  U4OS5        X:  a:  US:  a4  U[         R                  " XF5      -
  n
[        XzU
-  R                  SS95        [        U[        X5      5        [        U	R                  [        X5      45        g )Nr  r   rq   r   r  )r&   r5  r   r  r   r  r   r   r   r   r   r   r  r  )rK   r  r!  r-  r1   r2   r   r"  r#  r   r  s              r*   test_empty_a_bTestLstsq.test_empty_a_b  s     IIae$$Q*GGQJ &Q >d6Q!VLLN#QWWqj)Y__15xdD5UQYBFF1L A	E;;B;+?@T3q9%QWWs1yl+r,   c                 `   [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " U[         R                  " [	        U5      5      /5      R
                  n[        [        S5         [        R                  " X2S S9  S S S 5        g ! , (       d  f       g = f)N)r   ru   rw   rx   )r   g?g?g @gffffff
@zIncompatible dimensionsr  )
r&   r   vstackr  lenr*  r   r   r   r  )rK   r   yr  s       r*   test_incompatible_dims TestLstsq.test_incompatible_dims  sj    HH\"HH-.IIq"''#a&/*+-- .GHLLT* IHHs    B
B-r^   N)rX   rY   rZ   r[   r+  r  r  rF  r0  r6  r]   r^   r,   r*   r(  r(    s7     [[0 3 ,,+r,   r(  dtz?bBhHiIqQefdgFDGOc                      \ rS rSr\R
                  " S5      r\/ SQ   r\/ SQ   r\/ SQ   r	\\\\	/r
\" SS/SS//5      r\R                  " \///S-  5      r\\R                   " S	5      \R                   " S
5      \R                   " S5      /rS rS rS rS rS rS rS r\R4                  R7                  \SS9S 5       rSrg)TestMatrixPoweri  ry   )rx   r   ru   rw   )rw   rx   r   ru   )ru   rw   rx   r   ru   r   rw   r   gGc                    U R                   R                  U5      n[        [        USS-  S-   S-   S-   5      U R                  5        [        [        USS-  S-   S-   S-   5      U R                   5        [        [        USS-  S-   S-   S-   5      U R
                  5        [        [        USS-  S-   S-   S-   5      U R                  5        g )Nrw   d   i       r   ru   rx   )rshft_1r  r   r   rshft_0rshft_2rshft_3)rK   r8  rshfts      r*   test_large_power TestMatrixPower.test_large_power  s    ##B'3 5 9:DLL	J3 5 9:DLL	J3 5 9:DLL	J3 5 9:DLL	Jr,   c                     S nU R                    HG  nU" UR                  U5      5        U[        :w  d  M&  U" U R                  R                  U5      5        MI     g )Nc                     [        U S5      n[        U[        U 5      5        [        UR                  U R                  5        g )Nr   )r   r   r  r/   )Mmzs     r*   tz.TestMatrixPower.test_power_is_zero.<locals>.tz  s0    a#B6q9:177+r,   	rshft_allr  objectstackedrK   r8  rK  r  s       r*   test_power_is_zero"TestMatrixPower.test_power_is_zero  sE    	,
 >>Cszz"~V|4<<&&r*+ "r,   c                     S nU R                    HG  nU" UR                  U5      5        U[        :w  d  M&  U" U R                  R                  U5      5        MI     g )Nc                 r    [        U S5      n[        X5        [        UR                  U R                  5        g )Nru   )r   r   r/   )r  rJ  s     r*   rK  -TestMatrixPower.test_power_is_one.<locals>.tz&  s(    c1%B!399-r,   rM  rQ  s       r*   test_power_is_one!TestMatrixPower.test_power_is_one%  sE    	.
 >>Cszz"~V|4<<&&r*+ "r,   c                     S nU R                    HG  nU" UR                  U5      5        U[        :w  d  M&  U" U R                  R                  U5      5        MI     g )Nc                     [        U S5      nU R                  [        :w  a  [        O[        n[        X" X 5      5        [        UR                  U R                  5        g )Nrw   )r   r/   rO  r
   r   r   )r  rJ  mmuls      r*   rK  -TestMatrixPower.test_power_is_two.<locals>.tz1  s@    c1%B YY&06cDT#^,399-r,   rM  rQ  s       r*   test_power_is_two!TestMatrixPower.test_power_is_two0  sE    	. >>Cszz"~V|4<<&&r*+ "r,   c                     S nU R                    H+  nXR                  ;  d  M  U" UR                  U5      5        M-     g )Nc                     [        U S5      nU R                  [        :w  a  [        O[        n[        U" X5      [        U 5      5        g Nr   )r   r/   rO  r
   r   r   r  )r  invmatr[  s      r*   rK  3TestMatrixPower.test_power_is_minus_one.<locals>.tz=  s9    !#r*F YY&06cDV!#<S#ACr,   )rN  dtnoinvr  rQ  s       r*   test_power_is_minus_one'TestMatrixPower.test_power_is_minus_one<  s2    	C >>C%3::b>" "r,   c                     U R                   R                  U5      n[        [        [        US5        [        [        [        US/5        g )Ng      ?ru   )rA  r  r   	TypeErrorr   rK   r8  r  s      r*   test_exceptions_bad_power)TestMatrixPower.test_exceptions_bad_powerG  s4    ll!!"%isC8isQC8r,   c                    [        [        [        [        R                  " S/U5      S5        [        [        [        [        R                  " S/S//U5      S5        [        [        [        [        R
                  " SU5      S5        g )Nru   rw   )ry   rx   rw   )r   r   r   r&   r   r  )rK   r8  s     r*   test_exceptions_non_square*TestMatrixPower.test_exceptions_non_squareL  sW    k<1#r1BAFk<A3*b1I1Mk<B1GKr,   fp errors don't work in wasmr  c                     XR                   ;   a  g U R                  R                  U5      n[        [        [
        US5        g ra  )rd  noninvr  r   r   r   ri  s      r*   test_exceptions_not_invertible.TestMatrixPower.test_exceptions_not_invertibleQ  s1    kk  $k<b9r,   r^   N)rX   rY   rZ   r[   r&   r  rA  r@  rB  rC  rN  r   rr  blockrP  rO  r/   rd  rE  rR  rW  r]  re  rj  rm  r  r  skipifr!   rs  r]   r^   r,   r*   r:  r:    s     ffQiGl#Gl#Gl#G'7G4IQFQF#$Fhh'}Q'Grxx}bhhsmRXXc]CG	J	,	,
,	#9
L
 [[(FG: H:r,   r:  c                       \ rS rSrS rSrg)TestEigvalshCasesiY  c                 "   [         R                  " US5      n[         R                  " U5      u  pVUR                  SS9  [	        XE[        UR                  5      S9  [         R                  " US5      n[	        Xu[        UR                  5      S9  g )NLr   r  rs  r  )r   eigvalshra  r  r   r<   r/   )rK   r1   r2   rJ   rb  rc  rd  ev2s           r*   rP   TestEigvalshCases.do[  sh     __Q$"JJqM"(288*<=ooa%8BHH+=>r,   r^   Nr%  r^   r,   r*   rx  rx  Y  s    	?r,   rx  c                   r    \ rS rSr\R
                  R                  S\\\	\
/5      S 5       rS rS rS rSrg)	TestEigvalshig  r/   c                     [         R                  " SS/SS//US9n[         R                  R                  U5      n[	        UR
                  [        U5      5        g r)  )r&   r   r   r{  r   r/   r8   )rK   r/   r   r|  s       r*   r,  TestEigvalsh.test_typesh  sF    HHq#ha)7IIq!QWWnU34r,   c                 N   [         R                  " SS/SS//[         R                  S9n[        [        [         R
                  R                  USS9  [        [        [         R
                  R                  US5        [        [        [         R
                  R                  US5        g Nru   r*  r7   lrongUPLOlowerupper)r&   r   r  r   r6  r   r{  rK   r   s     r*   test_invalidTestEigvalsh.test_invalidn  sk    HHq#ha)<j"))"4"4agFj"))"4"4aAj"))"4"4aAr,   c                    [         R                  " SS/SS//[         R                  S9n[         R                  " SS/SS//[         R                  S9n[         R                  " SS/[         R                  S9n[        [         R                  5      n[         R                  R                  U5      n[        XSUS9  [         R                  R                  USS9n[        XSUS9  [         R                  R                  USS9n[        XSUS9  [         R                  R                  US	S9n[        XSUS9  [         R                  R                  US
S9n[        XSUS9  g Nr   ru   r7   r   rs  rz  r  lr  r  )r&   r   r   r<   r   r{  r   )rK   KloKuptgtrt  r|  s         r*   	test_UPLOTestEigvalsh.test_UPLOt  s   hhAA'ryy9hhAA'ryy9hhAwbii0		" IIs#T*IIs-T*IIs-T*IIs-T*IIs-T*r,   c                     " S S[         R                  5      n[         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      n[        UR                  R                  [         R                  L 5        [        SUR                  5        [        [        U[         R                  5      5        [         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      n[        UR                  R                  [         R                  L 5        [        SUR                  5        [        [        U[         R                  5      5        g )Nc                       \ rS rSrSrg)/TestEigvalsh.test_0_size.<locals>.ArraySubclassi  r^   Nr1  r^   r,   r*   r2  r    r3  r,   r2  rT  r7   rn  rp   rq   )r&   r'   rU  rV  r   r   r{  r   r/   r$   rW  r   r   r%   rX  r  rY  s       r*   r?  TestEigvalsh.test_0_size  s    	BJJ 	HHYbgg.33MBooa 		"**,-VSYY'
3

+,HHV2<<055mDooa 		"**,-T399%
3

+,r,   r^   NrX   rY   rZ   r[   r  r  rF  r   r   r   r   r,  r  r  r?  r]   r^   r,   r*   r  r  g  s?    [[Wvvw&HI5 J5
B+,-r,   r  c                       \ rS rSrS rSrg)TestEighCasesi  c                    [         R                  " U5      nUR                  UR                  pe[         R                  " U5      u  pxUR                  SS9  [        XW5        [        [        X5      [        R                  " U5      SS S S 24   [        R                  " U5      -  [        UR                  5      S9  [         R                  " US5      u  p[        X5        [        [        X5      [        R                  " U	5      SS S S 24   [        R                  " U
5      -  [        UR                  5      [        U5      S9  g )Nr   r  .rs  r  )rt  err_msg)r   eighru  rv  ra  r  r   r   r
   r&   r   r<   r/   repr)rK   r1   r2   rJ   rZ  rb  evcrc  rd  r|  evc2s              r*   rP   TestEighCases.do  s     kk!n//3#3#3C"JJqM"B(q

2sD!|4rzz#F%bhh/	1 KK3'	C)q

3T15

48HH%bhh/a	Br,   r^   Nr%  r^   r,   r*   r  r    s    Br,   r  c                   r    \ rS rSr\R
                  R                  S\\\	\
/5      S 5       rS rS rS rSrg)	TestEighi  r/   c                     [         R                  " SS/SS//US9n[         R                  R                  U5      u  p4[	        UR
                  [        U5      5        [	        UR
                  U5        g r)  )r&   r   r   r  r   r/   r8   r{  s        r*   r,  TestEigh.test_types  sT    HHq#ha)7yy~~a QWWnU34QWWe$r,   c                 N   [         R                  " SS/SS//[         R                  S9n[        [        [         R
                  R                  USS9  [        [        [         R
                  R                  US5        [        [        [         R
                  R                  US5        g r  )r&   r   r  r   r6  r   r  r  s     r*   r  TestEigh.test_invalid  se    HHq#ha)<j"))..!'Bj"))..!W=j"))..!W=r,   c                    [         R                  " SS/SS//[         R                  S9n[         R                  " SS/SS//[         R                  S9n[         R                  " SS/[         R                  S9n[        [         R                  5      n[         R                  R                  U5      u  pV[        XSUS9  [         R                  R                  USS9u  pV[        XSUS9  [         R                  R                  USS9u  pV[        XSUS9  [         R                  R                  US	S9u  pV[        XSUS9  [         R                  R                  US
S9u  pV[        XSUS9  g r  )r&   r   r   r<   r   r  r   )rK   r  r  r  rt  r|  r}  s          r*   r  TestEigh.test_UPLO  s   hhAA'ryy9hhAA'ryy9hhAwbii0		" yy~~c"T*yy~~c~,T*yy~~c~,T*yy~~c~,T*yy~~c~,T*r,   c                 :    " S S[         R                  5      n[         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      u  p4[        UR                  R                  [         R                  L 5        [        UR                  R                  [         R                  L 5        [        UR                  UR                  5        [        SUR                  5        [        [        U[         R                  5      5        [         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      u  p4[        UR                  R                  [         R                  L 5        [        UR                  R                  [         R                  L 5        [        UR                  UR                  5        [        SUR                  5        [        [        U[         R                  5      5        g )Nc                       \ rS rSrSrg)+TestEigh.test_0_size.<locals>.ArraySubclassi  r^   Nr1  r^   r,   r*   r2  r    r3  r,   r2  rT  r7   rn  rp   rq   )r&   r'   rU  rV  r   r   r  r   r/   r$   rW  r   r   r%   rX  r  r  s        r*   r?  TestEigh.test_0_size  s<   	BJJ 	HHYbgg.33MB[[^
  BJJ./		"**,-QWWekk*VSYY'
1bjj)*HHV2<<055mD[[^
  BLL01		"**,-QWWekk*T399%
1bjj)*r,   r^   Nr  r^   r,   r*   r  r    s>    [[Wvvw&HI% J%>+,+r,   r  c                   ,    \ rS rSrSrSr\S 5       rSrg)_TestNormBasei  Nc                 .   [        U R                  R                  [        R                  5      (       a+  [        UR                  U R                  R                  5        g [        [        UR                  R                  [        R                  5      5        g r#   )	
issubclassr/   r$   r&   inexactr   realr   r  )r   rZ  s     r*   check_dtype_TestNormBase.check_dtype  sN    aggllBJJ//AFFLL1 Jsyy~~r{{;<r,   r^   )	rX   rY   rZ   r[   r8  decstaticmethodr  r]   r^   r,   r*   r  r    s    	B
C= =r,   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	_TestNormGenerali  c                     [        [        / 5      S5        [        [        [        / U R                  S95      S5        [        [        [	        [        / U R                  S95      5      S5        g )Nr  r7   )r   r   r   r8  r   rU   s    r*   
test_empty_TestNormGeneral.test_empty  sI    T"Xs#T%$''23S9T*U2TWW%=>?Er,   c                 ~   [         R                  " / SQ5      n[         R                  S   n[         R                  S   nX#-   nU GH  nUR                  U5      n[	        U[         R
                  * 5      nU R                  Xg5        [        US5        [        5        nUR                  [        S5        [	        US5      nU R                  Xg5        [        US5        S S S 5        [	        US5      nU R                  Xg5        [        US5        [	        US	5      nU R                  Xg5        [        US
5        [	        US5      nU R                  Xg5        [        XwR                  R                  S
5      UR                  R                  S5      -  5        [	        US5      nU R                  Xg5        [        XwR                  R                  S
5      UR                  R                  S5      -  5        [	        U[         R
                  5      nU R                  Xg5        [        US5        GM     g ! , (       d  f       GNX= f)Nr  
AllIntegerAllFloatr  divide by zero encounteredr   r   rw   ru   rg   r*  ry   g      ?rf   )r&   r   	typecodesr  r   r   r  r   r   filterRuntimeWarningr/   r$   	rK   r1   exact_typesinexact_types	all_types	each_typeatansups	            r*   test_vector_return_type(_TestNormGeneral.test_vector_return_type  s   HHYll<0Z0/	"I)$Bb266'"BR$C("$

>+GH"b\  (#B,	 % b!BR$A&b!BR$C(b!BR$HHMM#$6g8N$NOb!BR$HHMM#$6g8N$NOb"&&!BR$C(? # %$s   A H--
H<	c                    ^  / SQn/ SQn/ SQnU 4S jnXU4 H  nU" U5        M     [        UT R                  S9[        UT R                  S9[        UT R                  S94 H  nU" U5        M     g )N)ru   rw   rx   ry   )r   r   r   r   )r   rw   r   ry   c                 F  > [         R                  R                  [        U 5      STR                  S9  [         R                  R                  [        U [
        5      STR                  S9  [         R                  R                  [        U [
        * 5      STR                  S9  [         R                  R                  [        U S5      STR                  S9  [         R                  R                  [        U S5      STR                  S9  [         R                  R                  [        U S	5      STR                  S9  [         R                  R                  [        U S
5      STR                  S9  [         R                  R                  [        U S5      STR                  S9  g )Ng6ҭ@r.   ri   rf   ru         $@r   gQ?rw   r   gsc?r   ry   )r&   testingr   r   r  r   )r}  rK   s    r*   _test+_TestNormGeneral.test_vector.<locals>._test1  sD   JJ**47I3788 + =JJ**43<3788 + =JJ**4C4=#3788 + =JJ**41:t3788 + =JJ**42;	3788 + =JJ**41:y3788 + =JJ**42;9M3788 + =JJ**41:q3788 + =r,   r7   )r   r8  )rK   r1   r2   r  r  r}  s   `     r*   test_vector_TestNormGeneral.test_vector,  sl    	=$ A!H  )5$''+B)+A!H+r,   c                    [        / SQ/ SQ/U R                  S9nS SSSSS[        R                  [        R                  * 4 H  n[	        UR
                  S   5       Vs/ s H  n[        US S 2U4   US	9PM     nn[        [        XSS
9U5        [	        UR
                  S   5       Vs/ s H  n[        XS S 24   US	9PM     nn[        [        XSS
9U5        M     [        R                  " SSU R                  S9R                  SSS5      nUR                  nS SSSS[        R                  [        R                  * S4 GH  n[        R                  " [	        U* U5      S5       H  nUu  pU	S:  a  X-  n	U
S:  a  X-  n
X:X  a  [        [        [        XbUS
9  M6  [        XbUS
9nXyU
-   -
  nX:  aA  [	        UR
                  U   5       Vs/ s H  n[        US S  R                  X<S9US	9PM     nnOJ[	        UR
                  U   5       Vs/ s H'  n[        US S  R                  X<S9R                   US	9PM)     nn[        X5        M     GM     g s  snf s  snf s  snf s  snf )Nr  ry   r   r   r7   r   r   ru   rw   rx   ordr  r     ry   r   r  r  )r   r8  r&   r   r  r   r   r   r5  r   r   r   combinationsr   r6  taker*  )rK   r  orderk	expected0	expected1Bndr  row_axiscol_axisr!  k_indexr>  s                 r*   	test_axis_TestNormGeneral.test_axisJ  sD    9i(8B1aBFFRVVG<E;@;LM;Laa1g51;LIMQ :IF;@;LM;Laa1g51;LIMQ :IF	 = IIa477+33Aq!<VVB2q"&&266'5AE!..ubS"~qA%)"a<NHa<NH'!*dAtLQ5A !x$78G*-217773C-D$F-D %)11)C$O-D ! $F .317773C-D$F-D %)11)C)E)E5$Q-D ! $F'4) B B NM,$F$Fs   I*I$I.I#c                 <   [         R                  " SSU R                  S9R                  SSS5      nSnSn[	        US S S	9n[	        US S S
S9n[        [         R                  " U5      UUR                  S S 5      S9  Sn[        UR                  U:H  UR                  UR                  US S 5      5        S SSSSS[         R                  [         R                  * 4 H  n[        UR                  5       H  n[	        XUS	9n[	        XUS
S9n[        [         R                  " U5      UUR                  Xx5      S9  [        UR                  5      nSXh'   [        U5      n[        UR                  U:H  UR                  UR                  XgU5      5        M     M     S SSSS[         R                  [         R                  * SS4	 H  n[        R                   " [        UR                  5      S5       H  n[	        XUS	9n[	        XUS
S9n[        [         R                  " U5      UUR                  Xx5      S9  [        UR                  5      nSXhS   '   SXhS   '   [        U5      n[        UR                  U:H  UR                  UR                  XgU5      5        M     M     g )Nru   r  r7   rw   rx   ry   zorder {0}, axis = {1}z;Shape mismatch found {0}, expected {1}, order={2}, axis={3}r  T)r  r  keepdims)r  )ru   ru   ru   r   r   r   r  nuc)r&   r5  r8  r   r   r   squeezeformatr   r   r   r  r   r   r   r   permutations)	rK   r  allclose_err	shape_errr>  foundexpected_shaper  r  s	            r*   test_keepdims_TestNormGeneral.test_keepdimso  sH   IIa477+33Aq!<.Q	 t$/QDtd;

5)8 , 3 3D$ ?	A"~-  ndDI	K B1aBFFRVVG<E166]15QDA

5 18(4(;(;E(EG!%agg$%!!&~!6~5!((nQOQ # = B2q"&&266'5%HE++E!&&M1=15QDA

5 18(4(;(;E(EG!%agg'(t$'(t$!&~!6~5!((nQOQ > Ir,   r^   N)
rX   rY   rZ   r[   r  r  r  r  r  r]   r^   r,   r*   r  r    s    F
')R<#5J(Qr,   r  c                   J    \ rS rSr\R
                  rS rS rS rS r	S r
Srg)	_TestNorm2Di  c           	      `    [        [        U R                  / /U R                  S95      S5        g )Nr7   r  )r   r   r   r8  rU   s    r*   test_matrix_empty_TestNorm2D.test_matrix_empty  s$    T$**bT*9:C@r,   c                    U R                  / SQ/ SQ/5      n[        R                  S   nSnX#-   nU GH  nUR                  U5      n[	        U[        R
                  * 5      nU R                  Xg5        [        US5        [        5        nUR                  [        S5        [	        US5      nU R                  Xg5        [        US5        S S S 5        [	        US	5      nU R                  Xg5        [        US5        [	        US
5      nU R                  Xg5        [        US5        [	        US5      nU R                  Xg5        [        US5        [	        U[        R
                  5      nU R                  Xg5        [        US5        [	        US5      nU R                  Xg5        [        US5        [	        US5      nU R                  Xg5        [        R                  R                  USSS9  GM     g ! , (       d  f       GN,= f)Nr  rT  r  fdFDrg   r  r   rf   ru   rw   gLXz?r   r  r  gU&,t=@r   r  )r   r&   r  r  r   r   r  r   r   r  r  r  r  s	            r*   test_matrix_return_type#_TestNorm2D.test_matrix_return_type  s   JJ	9-.ll<0
 /	"I)$Bb266'"BR$C("$

>+GH"b\  (#B,	 % b!BR$C(b!BR$N3b"BR$C(b"&&!BR$C(b%BR$C(b%BR$ JJ**2/A1*MK # %$s   
A G//
G>	c                 d   U R                  SS/SS//U R                  S9n[        [        U5      S5        [        [        US5      S5        [        [        US5      S	5        [        [        U[        5      S
5        [        [        U[        * 5      S5        [        [        US5      S	5        [        [        US5      S5        [        [        US5      S5        [        [        US5      S5        [        [        [        US5        [        [        [        US5        [        [        [        US5        g )Nru   rx   r   r   r7   gT"@r  r  r  g      (@ri   r   rk   rw   gW?"@r   gїʄ?nofror   r   )r   r8  r   r   r   r   r6  r  s     r*   test_matrix_2x2_TestNorm2D.test_matrix_2x2  s    JJAA'twwJ7DGY/DENI6DEND1DCL$/DSDM3/DAJ-DBK-DAJ(:;DBK)<=j$73j$2.j$1-r,   c                    SU R                  / SQ/ SQ/ SQ/U R                  S9-  n[        [        U5      S5        [        [        US5      S5        [        [        US5      S	5        [        [        U[        5      S
5        [        [        U[        * 5      S5        [        [        US5      S5        [        [        US5      S5        [        [        US5      S5        [        [        US5      S5        g )Ng?r  )r   r   r   )rx   rw   ru   r7   grj=Q0?r  r  gB+pc?g?g333333?ru   rf   r   g?rw   g&.d?r   gܸՠ?)r   r8  r   r   r   r  s     r*   test_matrix_3x3_TestNorm2D.test_matrix_3x3  s    
 JJ	9i8JHIDG%9:DEN,@ADEN,>?DCL#.DSDM3/DAJ,DBK-DAJ(;<DBK)<=r,   c                    U R                  / SQ/ SQ/U R                  S9n[        R                  " SSU R                  S9R	                  SSS5      n[        [        [        US	S
5        [        [        [        USS
5        [        [        [        SS/S	S 5        [        [        [        SS/SS 5        [        [        [        SS/SS 5        S HE  n[        [        [        XS 5        [        [        [        XS5        [        [        [        X#S5        MG     [        [        [        US S5        [        [        [        US S5        [        [        [        US S5        g )Nr  r  r7   ru   r  rw   rx   ry   r  r   r  testr   rx   rn  )ru   rw   rw   rx   r   ru   rw   )	r   r8  r&   r5  r   r   r6  r   r   )rK   r  r  r  s       r*   test_bad_args_TestNorm2D.test_bad_args  s
    JJ	9-TWWJ=IIa477+33Aq!<
 	j$5!4j$5!4j$At<j$At<j$A= E*dAd;*dAf=*dAf=  	iq$2iq$7j$4;r,   r^   N)rX   rY   rZ   r[   r&   r   r  r  r  r  r  r]   r^   r,   r*   r  r    s)     HHEA1Nf. >"<r,   r  c                       \ rS rSrSrg)	_TestNormi  r^   Nr1  r^   r,   r*   r  r    r  r,   r  c                   &    \ rS rSrS rS rS rSrg)TestNorm_NonSystematici  c                 p    [         R                  " S[         R                  S9n[        [	        USS9SSS9  g )N
   r7   rx   r  gL)@rw   r  )r&   r5  
longdoubler0   r   r  s     r*   test_longdouble_norm+TestNorm_NonSystematic.test_longdouble_norm  s*     IIb.QAqAr,   c                 r    [         R                  " S/[         R                  S9n[        [	        USS9SSS9  g )Ni   r7   rx   r  l        r   r  )r&   r   int32r0   r   r  s     r*   test_intmin"TestNorm_NonSystematic.test_intmin  s,     HHhZrxx0QACr,   c                    [         R                  " S[         R                  S9nSUS'   SUS'   Sn[        [         R                  R                  USS	9US
S9  UR                  [         R                  5      n[        [         R                  R                  USS	9USS9  UR                  [         R                  5      n[        [         R                  R                  USS	9USS9  g )Nrw   r7   y      @      @r   y            @ru   gV;'@rx   r  r  r  	   r   )	r&   r   clongdoubler0   r   r   r  
complex128rX  )rK   r  rZ  s      r*   test_complex_high_ord,TestNorm_NonSystematic.test_complex_high_ord$  s    HHT0!!		qa 8#rJHHR]]#		qa 8#qIHHR\\"		qa 8#qIr,   r^   N)rX   rY   rZ   r[   r  r  r  r]   r^   r,   r*   r  r    s    BD
Jr,   r  c                   0    \ rS rSr\R
                  rSrSrg)_TestNormDoubleBasei2     r^   N)	rX   rY   rZ   r[   r&   r   r8  r  r]   r^   r,   r*   r"  r"  2  s    	B
Cr,   r"  c                   0    \ rS rSr\R
                  rSrSrg)_TestNormSingleBasei7  r   r^   N)	rX   rY   rZ   r[   r&   r  r8  r  r]   r^   r,   r*   r%  r%  7  s    	B
Cr,   r%  c                   0    \ rS rSr\R
                  rSrSrg)_TestNormInt64Basei<  r#  r^   N)	rX   rY   rZ   r[   r&   int64r8  r  r]   r^   r,   r*   r'  r'  <  s    	B
Cr,   r'  c                       \ rS rSrSrg)TestNormDoubleiA  r^   Nr1  r^   r,   r*   r*  r*  A  r  r,   r*  c                       \ rS rSrSrg)TestNormSingleiE  r^   Nr1  r^   r,   r*   r,  r,  E  r  r,   r,  c                       \ rS rSrSrg)TestNormInt64iI  r^   Nr1  r^   r,   r*   r.  r.  I  r  r,   r.  c                        \ rS rSrS rS rSrg)TestMatrixRankiM  c                     [        S[        [        R                  " S5      5      5        [        R                  " S5      nSUS'   [        [        U5      S5        [        [        [        R                  " S5      5      S5        [        [        / SQ5      S5        [        [        [        R                  " S	5      5      S5        [        [        S/5      S5        [        R
                  " U[        R                  " S5      [        R                  " S5      /5      n[        [        U5      [        R
                  " / S
Q5      5        [        [        S5      S5        [        [        S5         [        USSS9  S S S 5        g ! , (       d  f       g = f)Nry   r  r   r   rx   r  r   )ru   r   r   r   ru   )ry   )rx   ry   r   z#`tol` and `rtol` can't be both set.g{Gz?)tolrt  )r   r   r&   r  rU  r   r   r6  )rK   Imss      r*   test_matrix_rankTestMatrixRank.test_matrix_rankO  s   QBFF1I./FF1I&	[^Q'[&!12A6[.2[$0!4[!%q)XXq"&&)RXXe_56[_bhhy&9:[^Q' >
 t$/
 
 
s   *E??
Fc           	         [        S[        [        R                  " S5      SS95        [        S[        [        R                  " S5      SS95        [        S[        [        R
                  " S5      SS95        [        R                  " S5      nSUS'   [        S	[        USS95        S
US'   [        S[        USSS95        [        S	[        USSS95        g )Nry   Tr  ru   r  r   r  r2  rx   g:0yE>g|"BE>)r?   r3  g;䡈E>)r   r   r&   r  r  rU  )rK   r4  s     r*   test_symmetric_rank"TestMatrixRank.test_symmetric_rankh  s    QBFF1I>?QBGGFOtDEQBHHV$4EFFF1I&	QA67&	QA7CDQA7CDr,   r^   N)rX   rY   rZ   r[   r6  r9  r]   r^   r,   r*   r0  r0  M  s    02Er,   r0  c                  @   [         R                  R                  S5      n [        S5       Hp  nU R	                  SS9nUS S 2S4   US S 2S4   -   US S 2S4'   [        [        U5      S5        US S 2S	4   US S 2S
4   -   US S 2S4'   [        [        U5      S5        Mr     g )Ni3r>  )(   r  sizeru   rw   r   r  ry   r   rx   rs   )r&   r  RandomStater  normalr   r   )rngiXs      r*   test_reduced_rankrD  v  s    
))


)C3ZJJHJ%AqD'AadG#!Q$[^Q'AqD'AadG#!Q$[^Q' r,   c            	          \ rS rSr\R
                  rS r\R                  R                  SS// SQ5      S 5       r
S rS rS	 r\R                  R                  S
/ SQ5      \R                  R                  S/ SQ5      \R                  R                  S\R                  \R                  \R                   \R"                  /5      S 5       5       5       rSrg)TestQRi  c                    [        U5      nUR                  nUR                  u  pE[        XE5      n[        R
                  " USS9nUR                  UR                  p[        UR                  U:H  5        [        U	R                  U:H  5        [        [        X5      5        [        [        X5      5        [        UR                  XD4:H  5        [        U	R                  XE4:H  5        [        [        X5      U5        [        [        UR                  R                  5       U5      [        R                  " U5      5        [        [        R                   " U	5      U	5        [        R
                  " USS9u  p[        U
R                  U:H  5        [        UR                  U:H  5        [        [        X5      5        [        [        X5      5        [        U
R                  XF4:H  5        [        UR                  Xe4:H  5        [        [        X5      U5        [        [        U
R                  R                  5       U
5      [        R                  " U5      5        [        [        R                   " U5      U5        [        R
                  " USS9n[        UR                  U:H  5        [        [        X5      5        [        X5        g )Ncompletemodereducedr  )r$   r/   r   r  r   qrQRr   r%   r   r   r*  r  r&   r  triu)rK   r1   a_typea_dtyper  r!  r  rZ  rM  rN  q1r1r2s                r*   check_qrTestQR.check_qr  s    a''wwI ii
+uucee17"#7"#
1%&
1%&A6!"A6!"CIq)C
A.q	:BGGAJ* 19-G#$G#$
2&'
2&'QF"#QF"#CK+C		R0"&&)<BGGBK, YYqs#G#$
2&'B#r,   r  r!  )rx   r   r  rp   c                    [        X5      n[        R                  " X45      nU R                  U5        [        R                  R                  USS9u  pV[        UR                  [        R                  5        [        UR                  [        R                  5        [        UR                  X!45        [        UR                  U45        g )NrawrI  )
r  r&   r   rU  r   rL  r   r/   r   r   )rK   r  r!  r  r1   htaus          r*   test_qr_emptyTestQR.test_qr_empty  s     IHHaVaae,QWWbii(SYY		*QWWqf%SYY%r,   c                    U R                  SS/SS/SS//[        R                  S9n[        R                  " USS	9u  p#[        UR                  [        R                  :H  5        [        UR                  [        R                  :H  5        [        UR                  S
:H  5        [        UR                  S:H  5        [        R                  " UR                  SS	9u  p#[        UR                  [        R                  :H  5        [        UR                  [        R                  :H  5        [        UR                  S:H  5        [        UR                  S:H  5        g )Nru   rw   rx   ry   r   r   r7   rY  rI  r	  r  r   )	r   r&   r   r   rL  r   r/   r   r*  )rK   r1   rZ  r[  s       r*   test_mode_rawTestQR.test_mode_raw  s     JJAAA/ryyJA 15)299$%		RYY&'6!"		T!"133U+299$%		RYY&'6!"		T!"r,   c                    U R                  SS/SS//5      nU R                  SS/SS/SS//5      nS Hb  nUR                  U5      nUR                  U5      nU R                  U5        U R                  U5        U R                  UR                  5        Md     S Hn  nSSUR                  U5      -  -   nSSUR                  U5      -  -   nU R                  U5        U R                  U5        U R                  UR                  5        Mp     g )	Nru   rw   rx   ry   r   r   fd              ?)r   r  rU  r*  )rK   r1   r2   r8  m1m2s         r*   test_mode_all_but_economic!TestQR.test_mode_all_but_economic  s    JJAA'(JJAAA/0B"B"BMM"MM"MM"$$  BR!((2,&&BR!((2,&&BMM"MM"MM"$$ r,   c           	         [        U5      nUR                  nUR                  SS  u  pE[        XE5      n[        R
                  " USS9u  px[        UR                  U:H  5        [        UR                  U:H  5        [        [        Xr5      5        [        [        X5      5        [        UR                  SS  XD4:H  5        [        UR                  SS  XE4:H  5        [        [        Xx5      U5        [        R                  " UR                  S   5      n	[        R                  " U	UR                  S S UR                  S   4S-  -   5      n
[        [        [        USS5      R                  5       U5      U
5        [        [        R                  " USS S 2S S 24   5      U5        [        R
                  " USS9u  p[        UR                  U:H  5        [        UR                  U:H  5        [        [        X5      5        [        [        X5      5        [        UR                  SS  XF4:H  5        [        UR                  SS  Xe4:H  5        [        [        X5      U5        [        R                  " UR                  S   5      n	[        R                  " U	UR                  S S UR                  S   4S-  -   5      n
[        [        [        USS5      R                  5       U5      U
5        [        [        R                  " USS S 2S S 24   5      U5        [        R
                  " USS9n[        UR                  U:H  5        [        [        X5      5        [        X5        g )	Nr   rH  rI  r   rw   .rK  r  )r$   r/   r   r  r   rL  r   r%   r   r
   r&   r	   r"  r   r  rO  )rK   r1   rP  rQ  r  r!  r  qr  I_matstack_I_matrR  rS  rT  s                 r*   check_qr_stackedTestQR.check_qr_stacked  s    a''wwrs|I yy,7"#7"#
1%&
1%&&'&'F1L!,AGGBK(ooe~a'779F8Ar2#6#;#;#=qA;OBGGAc1aiL115 19-G#$G#$
2&'
2&'!'(!'(F2NA.BHHRL)ooe""(99;F8BB#7#<#<#>C'	)BGGBsAqyM2B7 YYqs#G#$
2&'B#r,   r>  ))rx   ry   )ry   rx   r  rW  r  
outer_size)r4  r  )rw   rx   ry   r8  c                    [         R                  R                  S5      nUR                  X-   S9R	                  U5      nUR                  X-   S9R	                  U5      nU R                  U5        U R                  USU-  -   5        g )N{   r=  rc  )r&   r  default_rngr@  r  rl  )rK   rn  r>  r8  rA  r  r  s          r*   test_stacked_inputsTestQR.test_stacked_inputs  sx     ii##C(JJJ-J.55b9JJJ-J.55b9a a#a%i(r,   r^   N)rX   rY   rZ   r[   r&   r   rU  r  r  rF  r\  r_  rf  rl  r   r   r   r   rr  r]   r^   r,   r*   rF  rF    s    HHE%$P [[c3Z * 

&

&#, "+$Z [[V &  [[\ ,! "[[T
		299


BJJ$  !)!")r,   rF  c                   @   \ rS rSr\R
                  R                  S/ SQ5      \R
                  R                  S\R                  \R                  \R                  \R                  45      \R
                  R                  SSS/5      S 5       5       5       rS	 rS
 rSrg)TestCholeskyi%  r   )r   r4  rx   rx   )2   rw  )rx   r  r  r/   r  FTc                 h   [         R                  R                  S5        [         R                  R                  " U6 n[         R                  " U[         R
                  5      (       a#  US[         R                  R                  " U6 -  -   n[        [        [        U5      5      5      nSUSS & [         R                  " UR                  U5      R                  5       U5      n[         R                  " XBS9n[         R                  R                  XCS9nU(       a5  [         R                  " UR                  U5      R                  5       U5      nO3[         R                  " XfR                  U5      R                  5       5      nSUR                  S   -  [         R                   " U5      R"                  -  n[%        XtX S	U S
U S
U 3S9  [         R&                  " USSS9n	[)        [         R*                  " [         R,                  " U	5      5      5        [)        [         R*                  " U	S:  5      5        g )Nru   rc  )r   r   r   r7   r  i  r    
)atolr  r   )axis1axis2)r&   r  r  randnr  complexfloatingr   r  r4  r
   r  r  r   r   choleskyr   finfoepsr   diagonalr   r   isreal)
rK   r   r/   r  r1   tr  r2   r|  r  s
             r*   test_basic_property TestCholesky.test_basic_property'  s    			qIIOOU#== 2 233Bryy...As5z"#"#IIakk!n))+Q/JJq&IIq. 		!++a.--/3A		![[^0023AQWWQZ"((5/"5"5547!E7"QCr!1MN KK2.ryy|$%qAvr,   c                     " S S[         R                  5      n[         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      n[        UR                  UR                  5        [        UR                  R                  [         R                  L 5        [        [        U[         R                  5      5        [         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      n[        UR                  UR                  5        [        UR                  R                  [         R                  L 5        [        [        U[         R                  5      5        g )Nc                       \ rS rSrSrg)/TestCholesky.test_0_size.<locals>.ArraySubclassiL  r^   Nr1  r^   r,   r*   r2  r  L  r3  r,   r2  rT  r7   )ru   r   r   )r&   r'   rU  rV  r   r   r  r   r   r   r/   r$   rW  r%   rX  rY  s       r*   r?  TestCholesky.test_0_sizeK  s    	BJJ 	HHYbgg.33MBooa QWWcii(		"**,-
3

+,HHYbll388Gooa QWWcii(		",,./
3

+,r,   c                 8   [         R                  " SS/SS//5      n[        [        R                  " U5      [        R                  " USS95        [        [        R                  " USS9[        R                  " U5      R
                  R                  5       5        g )Ny      ?        y               y               @y      @        Fry  T)r&   r   r   r   r  r*  r  )rK   r1   s     r*   test_upper_lower_arg!TestCholesky.test_upper_lower_arg[  sl    HHtTlT4L12V__Q'%)HIOOAT*OOA  %%'	
r,   r^   N)rX   rY   rZ   r[   r  r  rF  r&   r  rW  rX  r  r  r?  r  r]   r^   r,   r*   ru  ru  %  s    [[@ [["**bjj",,F [[%    8- 	
r,   ru  c                   |   \ rS rSr\R
                  " S5      r\R
                  " S5      r\R                  " / SQ/ SQ/ SQ/5      r	\
" \R                  R                  \\5      \	5        \" \S5         \R                  R                  \SS2\R                  4   \5        SSS5        Srg! , (       d  f       Srg= f)		TestOuterig  rx   r.  r
  )r   rw   ry   z$Input arrays must be one-dimensionalNr^   )rX   rY   rZ   r[   r&   r5  arr1arr2r   r>  r   r   outerr   r6  newaxisr]   r^   r,   r*   r  r  g  s    99Q<D99Q<Dxx				H ryytT2H=	:
 			Q

]+T2
 
 
 
s   2.B++
B;r  c                  r   [         R                  S:X  a  Sn OSn [        R                  [        R                  4 H  n[        R
                  " SUS9nUR                  UR                  R                  U 5      5      nUR                  UR                  R                  S5      5      R                  5       n[        UR                  R                  S5        [        R                  [        R                  [        R                  4 H-  nU" U5      n[        Xe" U5      5        [        Xe" U5      5        M/     M     g )Nlittle<rT   ry   r7   r  =)sys	byteorderr&   r  rW  r  r   r/   newbyteorderbyteswapr   r   rJ  r   r  r   )nativedttr   n_arrsw_arrroutinerZ  s          r*   test_byteorder_checkr  x  s    
}} 

BJJ'ffQc"//78#))0056??ASYY((#.

FJJ<G#,CsGEN3sGFO4 = (r,   ro  rp  c                  :   [         R                  " SS/SS//5      n [         R                  " SS/SS//5      n[         R                  " / SQ5      SS S2   nXS'   XS'   [        [         R                  R
                  [         R                  R                  U5        g )Nru   rw   rx   ry   )ry   ry   rw   rw   .rp   )r&   r   rU  r   r   r   rJ  )
invertiblenon_invertibler   s      r*    test_generalized_raise_multiloopr    s    
 Aq6Aq6*+JXX1v1v./N
qt!t$AcFdG"))'':r,   z?skipping test that uses fork because there are multiple threadsc                     Sn  [         R                  " 5       nWS:X  a  [         R                  " S5        [         R                  " S5        SS KnUR                  UR                  S5         [        R                  R                  R                  5          [        R$                  " S//5      n[        R                  R                  R'                  SSSUSX3SS5	        [         R                   " [         R"                  5        g [         R*                  " 5       u  p[         R,                  " U5      U :w  a  [        R
                  " S5        g g ! [        [        4 a    [        R
                  " S5         GN[f = f! [         a     N[         a(    [         R                   " [         R"                  5         GN f = f! [         a0  nS[)        U5      ;   a  [         R                   " U 5         S nAGNS nAff = f)	N   zNot POSIX or fork failed.r   ru   rp   rf   zDORGQR parameter number 5zNumpy xerbla not linked in.)osforkOSErrorAttributeErrorr  skipcloseresource	setrlimitRLIMIT_COREr&   r   lapack_litexerblar6  r   _exit	EX_CONFIGr   dorgqrrG   waitWEXITSTATUS)	XERBLA_OKpidr  r1   r   statuss         r*   test_xerbla_overrider    sm    I1ggi
 ax

8//8	#II!!((*
	$2$ AII!!((1aa 	 ggi>>&!Y.KK56 /I ^$ 1/01  	 	#HHR\\"	#  	$*c!f4 #		$sB   E ,(E8 AF8 &E54E58
F5-F54F58
G2%G--G2zCannot start subprocessc                  *   SS/n [         R                  " S5      nU  Hs  nUR                  SSUS9n[        R                  " [
        R                  SU/5        UR                  SSUS9n[        R                  " [
        R                  SU/5        Mu     g )	NzPyQt5.QtWidgetsIPythonz
    import sys
    {before}
    try:
        import {bad_lib}
    except ImportError:
        sys.exit(0)
    {after}
    x = np.ones(2, dtype=np.float32)
    sys.exit(0 if np.allclose(x.dot(x), 2.0) else 1)
    zimport numpy as np )beforeafterbad_libz-c)r  r  r  )textwrapdedentr  
subprocess
check_callr  
executable)bad_libstemplater  codes       r*   test_sdot_bug_8577r    s     "9-H 
  
	H &:"'.  0s~~tT:; %9"'.  0s~~tT:; r,   c                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)TestMultiDoti  c           
         [         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[        [        XU/5      UR	                  U5      R	                  U5      5        [        [        XU/5      [         R                  " U[         R                  " X#5      5      5        g Nr   rw   rw   r   r&   r  r   r   r   )rK   r  r  Cs       r*   (test_basic_function_with_three_arguments5TestMultiDot.test_basic_function_with_three_arguments  s     IIV$IIV$IIV$IqQi0!%%(,,q/BIqQi0"&&BFF1L2IJr,   c                    [         R                  R                  S5      n[         R                  R                  S5      n[        [        X/5      UR	                  U5      5        [        [        X/5      [         R                  " X5      5        g r  r  )rK   r  r  s      r*   &test_basic_function_with_two_arguments3TestMultiDot.test_basic_function_with_two_arguments  s\    IIV$IIV$Iqf-quuQx8Iqf-rvva|<r,   c                    [         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[        [        XX4/5      UR	                  U5      R	                  U5      R	                  U5      5        g )Nr  r  rw   ru   r  )rK   r  r  r  Ds        r*   9test_basic_function_with_dynamic_programming_optimizationFTestMultiDot.test_basic_function_with_dynamic_programming_optimization  s     IIV$IIV$IIV$IIV$IqQl3QUU1X\\!_5H5H5KLr,   c                 >   [         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[        [        XX4/5      R                  S5        g )Nrw   r  r  r4  r  r&   r  r   r   r   )rK   A1dr  r  r  s        r*   test_vector_as_first_argument*TestMultiDot.test_vector_as_first_argument  sm    iiq!IIV$IIV$IIV$ 	Y~.44d;r,   c                 >   [         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[        [        XX4/5      R                  S5        g )Nr  r  rw   )r   r  )rK   r  r  r  D1ds        r*   test_vector_as_last_argument)TestMultiDot.test_vector_as_last_argument  sm    IIV$IIV$IIV$iiq! 	Ya~.44d;r,   c                 >   [         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[        [        XX4/5      R                  S5        g )Nrw   r  r  r^   r  )rK   r  r  r  r  s        r*   &test_vector_as_first_and_last_argument3TestMultiDot.test_vector_as_first_and_last_argument$  sn    iiq!IIV$IIV$iiq! 	Y/066;r,   c           
         [         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[         R                  " S5      n[        XU/US9nXEL d   e[	        XAR                  U5      R                  U5      5        [	        U[         R
                  " U[         R
                  " X#5      5      5        g )Nr  r  r(   r&   r  rU  r   r   r   )rK   r  r  r  r(   rets         r*   test_three_arguments_and_out)TestMultiDot.test_three_arguments_and_out.  s     IIV$IIV$IIV$hhvq	s+zzCqa1C266!<!89r,   c                 B   [         R                  R                  S5      n[         R                  R                  S5      n[         R                  " S5      n[        X/US9nX4L d   e[	        X1R                  U5      5        [	        U[         R
                  " X5      5        g )Nr  r  )r   r   r  r  )rK   r  r  r(   r  s        r*   test_two_arguments_and_out'TestMultiDot.test_two_arguments_and_out;  sr    IIV$IIV$hhvC(zzCq*C.r,   c                    [         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[         R                  " S5      n[        XX4/US9nXVL d   e[	        XQR                  U5      R                  U5      R                  U5      5        g )Nr  r  r  )r   ru   r  r  )rK   r  r  r  r  r(   r  s          r*   -test_dynamic_programming_optimization_and_out:TestMultiDot.test_dynamic_programming_optimization_and_outE  s     IIV$IIV$IIV$IIV$hhvq#.zzCqa!4!4Q!78r,   c           	      ,   [         R                  R                  S5      [         R                  R                  S5      [         R                  R                  S5      [         R                  R                  S5      [         R                  R                  S5      [         R                  R                  S5      /n[         R                  " / SQ/ SQ/ S	Q/ S
Q/ SQ/ SQ/5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/[        S9nUS-  n[	        USS9u  pE[        [         R                  " US S2SS 24   5      [         R                  " US S2SS 24   5      5        [        [         R                  " U5      [         R                  " U5      5        g )N)   #   )r     )r  r   )r   r  )r     )r  r  )r  g     @g     þ@g    O@g    1@g    @)r  r  g     @g     @g     ջ@g     @)r  r  r  g     p@g     @g     @)r  r  r  r  g     @@g     X@)r  r  r  r  r  g     @)r  r  r  r  r  r  )r   ru   ru   rx   rx   rx   )r   r   rw   rx   rx   rx   )r   r   r   rx   rx   rx   )r   r   r   r   ry   r   )r   r   r   r   r   r   )r   r   r   r   r   r   r7   ru   T)return_costsr   )r&   r  r   intr   r   rO  )rK   arrays
m_expected
s_expectedr   r  s         r*   test_dynamic_programming_logic+TestMultiDot.test_dynamic_programming_logicQ  sA    ))""8,))""8,))""7+))""7+))""8,))""8,. XXIIIIIIK L
 XX6666668
 @CD
 	a
,V$G 	BGGAcrc12gJ/GGJssABw$78	:BGGAJ
(;<r,   c                     [        [        [        / 5        [        [        [        [        R                  R	                  S5      /5        g )Nrv  )r   r6  r   r&   r  rU   s    r*   test_too_few_input_arrays&TestMultiDot.test_too_few_input_arrayso  s,    j)R0j)bii.>.>v.F-GHr,   r^   N)rX   rY   rZ   r[   r  r  r  r  r  r  r  r  r  r  r  r]   r^   r,   r*   r  r    s<    K=M<<<:/
9=<Ir,   r  c                   :   \ rS rSr\R
                  R                  S\R                  " S5      S4\R                  " S5      S4/5      S 5       r	\R
                  R                  SS	S
/5      S 5       r
\R
                  R                  SSS/5      S 5       rS rSrg)TestTensorinvit  zarr, indry   r   rs   rw   rw   rx   rx   rw   ru   c                 ~    [        [        5         [        R                  " XS9  S S S 5        g ! , (       d  f       g = f)Nind)r   r   r   	tensorinv)rK   r   r  s      r*   test_non_square_handling&TestTensorinv.test_non_square_handlingv  s&    
 ;'S* (''s   .
<z
shape, ind)ry   r   rs   rx   rw   )   rs   rx   ru   c                     [         R                  " S5      nXl        [        R                  " X2S9nUR                  US  UR                  S U -   nUR                  n[        Xe5        g )Nr  r1   r  )r&   r  r   r   r  r   )rK   r   r  r1   ainvr>  actuals          r*   test_tensorinv_shape"TestTensorinv.test_tensorinv_shape~  sU     FF2J!-7734=1774C=0V&r,   r  r   r   c                     [         R                  " S5      nSUl        [        [        5         [
        R                  " X!S9  S S S 5        g ! , (       d  f       g = f)Nr  r  r  )r&   r  r   r   r6  r   r  )rK   r  r1   s      r*   test_tensorinv_ind_limit&TestTensorinv.test_tensorinv_ind_limit  s:     FF2J:&q* '&&s   A
Ac                    [         R                  " S5      nSUl        [        R                  " USS9n[         R
                  " S5      n[        [         R                  " X#S5      [         R                  R                  X5      5        g )Nr  r  ru   r  )	r&   r  r   r   r  r  r   	tensordottensorsolve)rK   r1   r  r2   s       r*   test_tensorinv_result#TestTensorinv.test_tensorinv_result  sY    FF2Jq)GGBKTa0"))2G2G2MNr,   r^   N)rX   rY   rZ   r[   r  r  rF  r&   r  r  r  r  r  r]   r^   r,   r*   r  r  t  s    [[Z		"		Q*
 +	+ [[\,
 
'
' [[U	2%
 ++Or,   r  c                       \ rS rSr\R
                  R                  S\R                  " S5      S4\R                  " S5      S4/5      S 5       r	\R
                  R                  S/ S	Q5      S
 5       r
Srg)TestTensorsolvei  za, axesr  Nr	  )r   rw   c                     [        [        5         [        R                  " UR                  S S 5      n[
        R                  " XUS9  S S S 5        g ! , (       d  f       g = fNrw   r  )r   r   r&   r  r   r   r  )rK   r1   r  r2   s       r*   r  (TestTensorsolve.test_non_square_handling  s@    
 ;'$Aq$/ (''s   9A
A r   ))rw   rx   r   )rx   ry   ry   rx   )r   rx   rx   r   c           	      &   [         R                  R                  " U6 n[         R                  " UR                  S S 5      n[         R
                  R                  X#5      n[        [         R                  " X$[        UR                  5      S9U5        g r$  )
r&   r  r  r  r   r   r  r   r  r4  )rK   r   r1   r2   r   s        r*   test_tensorsolve_result'TestTensorsolve.test_tensorsolve_result  s_     IIOOU#GGAGGBQK II!!!'QAGG=qAr,   r^   )rX   rY   rZ   r[   r  r  rF  r&   r  r  r'  r]   r^   r,   r*   r"  r"    sv    [[Y		%		V$)
 0	0
 [[W/BBr,   r"  c                      [         R                  " SS/SS//SS9n [        [        S5         [        R
                  " U 5        S S S 5        g ! , (       d  f       g = f)Nru   r   rw   r   float16r7   zunsupported in linalg)r&   r   r   rh  r   r  )r   s    r*   test_unsupported_commontyper+    sC    
((QGaV$I
6C	Y(?	@ 
A	@	@s   A
Az,Bad memory reports lead to OOM in ci testingc                      Sn [         R                  " SU /[         R                  S9n[         R                  " SS/[         R                  S9nSUS'   [         R                  " X!5      n[        US   S5        g )N        ru   r7   )r   r   )r&   rU  r  r  r   r   )r!  r1   r2   r  s       r*   test_blas64_dotr.    s[    A
!Qrzz*A
Abjj)AAdG
qA4!r,   z*Numpy not compiled with 64-bit BLAS/LAPACKc            
         [         R                  n [         R                  R                  R                  nSnSnUn[         R
                  " SS/U S9n[         R
                  " S/U S9n[         R
                  " S/U S9nU" X#XTXvSS5      n[        US   S5        [        US   U5        [        US   U5        [        UR                  5       5      n	[        S	U	s=:  =(       a
    S
:  5        g s  5        g )Nl       ru   r7   r   r   infor  r!  r-  l        )
r&   rW  r   r  dgeqrfrU  r   r  itemr   )
r/   lapack_routiner  r!  ldar1   workr[  resultslworks
             r*   !test_blas64_geqrf_lwork_smoketestr8    s     JJEYY**11NAA
C 	!Qu%A88QCu%D
((A3e
$C Q13b!<G!$q!q! 		EEE!!E!"!"r,   c                      [         R                  " S5      R                  S5      n [         R                  R	                  U 5      n[         R
                  " / SQ/ SQ/ SQ/5      n[        X5        g )N<   rx   ry   r   )r   r   r#     )r     r?  &   )r<  .   4   :   )r&   r5  r   r   r  r   r   r   r  r>  s      r*   test_diagonalrC    sV     			"i(AYY"Fxx	
H "r,   c                      [         R                  " S5      R                  S5      n [         R                  R	                  U 5      n[         R
                  " / SQ5      n[        X5        g )Nr:  r;  )$   t      )r&   r5  r   r   tracer   r   rB  s      r*   
test_tracerI    sD     			"i(AYY__QFxx'H"r,   c                     [         R                  " S5      R                  S5      n [         R                  R	                  X S-   5      n[         R
                  " / SQ/ SQ/ SQ/5      n[        X5        / SQn/ SQn[         R                  R	                  X45      n[        / SQ5      n[        X5        [        [        S5         U S S 2SS 24   n[         R                  R	                  XU5        S S S 5        g ! , (       d  f       g = f)	Nr  rv  ru   )r   rw   r   r  r  )r   r   r   z8input arrays must be \(arrays of\) 3-dimensional vectors)	r&   r5  r   r   crossr   r   r   r6  )r   r  r>  r  r}  x_2dims         r*   
test_crossrM    s    
		!V$AYY__QA&Fxx H " 	AAYY__Q"F\"H"	C
 1ab5
		'
 
 
s   +C55
Dc                      [         R                  " S5      R                  S5      n [         R                  R	                  X 5      S:X  d   e[         R                  R	                  X SS/S9S:X  d   eg )Nr   r	  7   rn  r  )r&   r5  r   r   r  )r   s    r*   test_tensordotrP  	  s^    
		!V$A99q$***99q66*:;rAAAr,   c                      [         R                  " S5      R                  S5      n [         R                  R	                  X R
                  5      n[         R                  " SS/SS//5      n[        X5        g )Nr   r	  r      rw  )r&   r5  r   r   r
   r*  r   r   rB  s      r*   test_matmulrS  !	  sW     			!V$AYYa%Fxx!R2r(+,H"r,   c                  Z   [         R                  " S5      R                  S5      n [         R                  R	                  U 5      nU R
                  n[        X5        [        [        S5         [         R                  R	                  U S S 2S4   5        S S S 5        g ! , (       d  f       g = f)Nr   r	  z$array must be at least 2-dimensionalr   )	r&   r5  r   r   matrix_transposer*  r   r   r6  rB  s      r*   test_matrix_transposerV  +	  sy    
		!V$AYY''*FssH"	:
 			""1QT7+
 
 
s   ,'B
B*c                  H   [         R                  " S5      R                  S5      n [         R                  R	                  U 5      n[        U[         R                  " S5      SS9  [         R                  R	                  U SS9n[        U[         R                  " S//5      SS9  g )Nr  rv  ^)ː,@rx   r4   Tr  )r&   r5  r   r   matrix_normr   rW  r   )r   r  s     r*   test_matrix_normr\  8	  su    
		!V$AYY""1%F

7 3AFYY""1t"4F7) 5aHr,   c                     [         R                  " S5      R                  S5      n [         R                  R	                  U 5      n[        U[         R                  " S5      SS9  [         R                  R	                  U SS9n[        U[         R                  " / SQ5      SS9  [         R                  R	                  U S	S
9n[         R                  " SSSS9n[        UR                  UR                  5        [        XSS9  g )Nr  rv  rX  rx   rY  r   r  )g|a2@gsh|? @gDioI#@TrZ  r   rW  r7   )r&   r5  r   r   vector_normr   rW  r   fullr   r   rB  s      r*   test_vector_normr`  C	  s    
		!V$AYY""1%F

7 3AFYY""11"-F01! YY""1t"4Fwwvwi8Hx~~.;r,   )r   r#  )__doc__r  r  r   	threadingr   r  r  r  numpyr&   r   r   r   r   r   r   r	   r
   numpy._corer   numpy.exceptionsr   r   r   r   r   r   numpy.linalgr   r   r   r   r   numpy.linalg._linalgr   numpy.testingr   r   r   r   r   r   r   r   r    r!   numpy.linalg.lapack_liteImportErrorr+   r0   r8   r:   r<   r`   rD   rd   r  r  r   r   r  r   r   r   r   r   r   r   r   r	  r  r  r  r'  rH  rN  r^  rg  rq  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r(  r  rF  r/   r:  rx  r  r  r  r  r  r  r  r  r"  r%  r'  r*  r,  r.  r0  rD  rF  ru  r  r  rv  r  active_countr  r  r  r  r  r"  r+  r  r.  r  r8  rC  rI  rM  rP  rS  rV  r\  r`  )r  s   0r*   <module>rl     s   
 
        P P P   & 4 4  P P >  
	#* . 95
7
, ,, 		t 
 8xr2hR)8b"XV,. xr2hR)8b"XV,. zr2hR)8lL1@B yw'&&)9:'Jgw'w79 yw'&&)9:'Jgw'w79 {w'&&)9:'J02JKSZ[] uxxf-xxF+J  uyy~~a#yy~~a " uyy~~a#yy~~a " zAA1v;   
  F ;~lL1@b"XV,. ~r2hR2r(36B\02 ~lL1@b"XV,. ~r2hR2r(36B\02 /1LMU\^gw'w79 g&'(:Wg<NOW^`0@B /1LMU\^gw'w79 g&'(:Wg<NOW^`0@B  /1LMU\^w(66*:;7KM  g&'(:Wg<NOW^`w(66*:VV<LMU\]_ vyy~~a$yy~~a " uyy~~a#yy~~a " uyy~~a#yy~~a " uyy~~a#yy~~a J  uyy~~a#yy~~a J e6! 6
 6r ;yr2hR)8 yr2hR)8 zr6lVQK0@ zr6lVQK0@ xxxf-J  {AA r2hR)* }yy~~a#/! 
 @B 	 	" "-'` 		 1 1.2> 22n 22 2	Fn 	F	I 	I
+> 
+$+%'F +H3
 H3V/#%D /0h 0.)')H )-, -66#%D 6!+h !+H5 5,#%D ,8h 8,,)+G ,&(, +1$&E +1\@)y @)F
0$'/2
0	y 	0*,H 0	* 	/##%D #*'1h '1T3%'> 3<.+
 .+b 5HI5H5HIJS: S: KS:l?)+G ?3- 3-lB%'C B.8+ 8+v
= 
=[Q} [Q|u<- u<p	- 	J J8- 
- 
 
	Y 3 		Y 3 		I1 	&E &ER
(_) _)D?
 ?
D3 3"5* G$BC; D; q L  N.7N.7b G$=><  ?<D~I ~IB&O &ORB B* GH I |#F  H#H#4# #(6B#
,I<OI  	 			L  Js   c/  c<
/c98c9