
    pg\jnR                       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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 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/J0r0   SSK1r	S
 r3\*r4SS jr*S r5S r6S r71 Skr8 " S S5      r9S r:\
Rv                  Ry                  S5        / r=\=\:" S\9" S\" SS/SS//\S9\" SS/\S95      \9" S\" SS/SS//\S9\" SS/\S95      \9" S\" SS/SS//\S9\" / SQ/ SQ/\S95      \9" S\" S S!/S"S#//\S9\" S$S /\S95      \9" S%\" S S!/S"S#//\S9\" S$S /\S95      \9" S&\" S S!/S"S#//\S9\" / S'Q/ S(Q/\S95      \9" S)\
R|                  " S*\S9\
R|                  " S+\S9S,1S-9\9" S.\
Rv                  R                  S/S/5      \
Rv                  R                  S/5      5      \9" S0\
Rv                  R                  S1S15      \
Rv                  R                  S15      5      \9" S2S1S3/S4S5//S3S1/5      /
5      -  r=\=\:" S6\9" S7\" / S8Q/ SQ/\S9\" SS/\S95      \9" S9\" SS/SS/S:S;//\S9\" / S<Q\S95      \9" S=\" / S8Q/ SQ/\S9\" SS/\S95      \9" S>\" SS/SS/S:S;//\S9\" / S<Q\S95      \9" S?\" / S@Q/ SAQ/\S9\" S$S /\S95      \9" SB\" SCSD/SESF/SGSH//\S9\" / SIQ\S95      \9" SJ\" / S@Q/ SAQ/\S9\" S$S /\S95      \9" SK\" SCSD/SESF/SGSH//\S9\" / SIQ\S95      \9" SL\" / S@Q/ SAQ/\S9\" S$S /SMSN//\S95      \9" SO\" SCSD/SESF/SGSH//\S9\" S$S /SMSN/SMSN//\S95      \9" SP\
Rv                  R                  S/SQ5      \
Rv                  R                  S/5      5      \9" SR\
Rv                  R                  S1SS5      \
Rv                  R                  S15      5      \9" ST\
Rv                  R                  SSS15      \
Rv                  R                  SS5      5      \9" SU\
Rv                  R                  SS55      \
Rv                  R                  S5      S,1S-9\9" SV\
Rv                  R                  S5S5      \
Rv                  R                  S55      S,1S-9/5      -  r=\=\:" SW\9" SX\" SS/SS//\S9S5      \9" SY\" SS/SS//\S9S5      \9" SZ\" SS!/S[S1//\S9S5      \9" S\\" SS!/S[S1//\S9S5      \9" S]\
R|                  " S*\S9SS,1S-9\9" S^S1S3/S3S1//S5      \9" S_\" SS/SS//5      S5      \9" S`\
Rv                  R                  S1S15      S5      /5      -  r=Sa r@\=\@" 5       -  r=Sb rASc rB\=\B" 5       -  r= " Sd Se5      rC " Sf Sg\C5      rD " Sh Si\C5      rE " Sj Sk\C5      rF " Sl Sm\C5      rG " Sn So\C5      rH " Sp Sq\C5      rISr rJ " Ss St\D\G5      rK " Su Sv\K5      rL " Sw Sx\D\G5      rM " Sy Sz\M5      rN " S{ S|\D\G5      rO " S} S~\O5      rP " S S\D\G5      rQ " S S\Q5      rR " S S5      rS " S S\D\G5      rT " S S\T\S5      rU " S S\F\I5      rV " S S\V\S5      rW " S S\D\G5      rX " S S\X5      rY " S S\D\E\G\H5      rZ " S S\Z5      r[ " S S\F\I5      r\ " S S\\5      r]S r^ " S S\D\G5      r_ " S S\_5      r` " S S\D\E5      ra " S S\a5      rb\R                  R                  SS V s/ s H  n \
R                  U 5      PM     sn 5       " S S5      5       rf " S S\F\I5      rg " S S5      rh " S S\F\I5      ri " S S5      rj " S S5      rk " S S\k5      rl " S S\k5      rm " S S\m\l5      rn " S S5      ro " S S\k5      rp " S S\k5      rq " S S\k5      rr " S S\n\p5      rs " S S\n\q5      rt " S S\n\r5      ru " S S5      rvS rw " S S5      rx " S S5      ry " S S5      rzS r{\R                  R                  \&SS9S 5       r}\R                  R                  S5      \R                  R                  \R                  " 5       S1:  SS9\R                  R                  \'SS9S 5       5       5       r\R                  R                  \&SS9\R                  G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 rS rS rS rg! \2 a     GNf = fs  sn f )z"Test functions for linalg module

    N)arrayasarray
atleast_2dcdoublecsingledotdoubleidentityinflinalgmatmulmultiplysingle)swapaxes)	AxisError)LinAlgErrormatrix_powermatrix_rank	multi_dotnorm)_multi_dot_matrix_chain_order)
HAS_LAPACK64IS_WASMNOGIL_BUILDassert_assert_allcloseassert_almost_equalassert_array_equalassert_equalassert_raisesassert_raises_regex)run_subprocessc                     [        U 5      [        U[        R                  5      (       a  [        U5      L $ [        R                  L $ N)type
isinstancenpndarray)outin_s     Y/home/edenadmin/noVNC/venv/lib/python3.13/site-packages/numpy/linalg/tests/test_linalg.pyconsistent_subclassr,   9   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   C   s;    qz 11  A8'8R8r-   c                 \    [         [         [        [        [        [         [        [        0U    $ r$   )r   r	   r   r   r0   s    r+   get_real_dtyper9   K   s&    FFFVWf..35 5r-   c                 \    [         [        [        [        [        [        [        [        0U    $ r$   )r   r   r	   r   r8   s    r+   get_complex_dtyper;   P   s&    GVWWgw0057 7r-   c                 &    U [         [        4;   a  gg)Ngh㈵>gdy=)r   r   r8   s    r+   get_rtolr=   U   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)
LinalgCased   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namer2   r3   	frozensettags)selfrI   r2   r3   rK   s        r+   __init__LinalgCase.__init__e   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
rK   N)r2   r3   rK   )rL   dos     r+   checkLinalgCase.checkp   s     	466466		*r-   c                 "    SU R                    S3$ )Nz<LinalgCase: >)rI   rL   s    r+   __repr__LinalgCase.__repr__v   s    tyyk++r-   )r2   r3   rI   rK   N)	__name__
__module____qualname____firstlineno__setrM   rR   rW   __static_attributes__ r-   r+   rE   rE   d   s    (+ 	$+,r-   rE   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_tagsrK   )tagcasescases      r+   	apply_tagre   z   s6    
 (?)M)?II%	 Lr-     r>   r         ?       @      @      @r8   r	   double_2)rh   rg   rj   )ri   rj         @r         ?       @y       @      @y      @      @y      @      @       @      ?r   	cdouble_2)rn   rm   y      ?      @)y      ?       y      ?      y      ?      0x0r   r   r   rC   rP   8x8   1x1   nonarray         rA   single_nsq_1)rg   rh   ri   single_nsq_2g      @rl   )rh   rg   ri   double_nsq_1double_nsq_2csingle_nsq_1)      ?      ?       @       @      @      )y      @      y      @      "@y      @       @csingle_nsq_2r   r   r   y      @      "y      @      y      @       @)rn   rm   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 $ )Nrx   ry   rv         _tile3rB   rP   ry   rx   _tile213)CASESr&   r2   r'   r(   r   r3   ndimrE   rI   rK   appendreshapeshape)	new_casesrd   r2   r3   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HC  n[        U R                  U5       VVs/ s H  u  p4[        X4-  5      PM     nnn[        S U 5       5      n[        R                  " XPR                  S9nUR                  [        R                  5      R                  S5        Xv   nXS'   UR                  U R                  5      n[!        [        R"                  " Xp:H  5      5        USSR%                  S U 5       5      -   4v   U R                  S:  aZ  U R                  S   S:X  aG  ['        U R(                  5      nSUS'   [        R*                  R,                  R/                  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,                  R/                  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,                  R/                  XS9nUS4v   GMF     gs  snnf 7f)z4
Generate cartesian product of strides for all axes
nopNrv   )rv   ry   r   rv   r   rx   )rv   r   c              3   <   #    U  H  n[        S S U5      v   M     g 7fr$   )slice).0repeats     r+   	<genexpr>$_stride_comb_iter.<locals>.<genexpr>U  s     GwVuT400ws   r8   l   >[= .stride__c              3   (   #    U  H  oS  v   M
     g7f)+Nr_   )r   js     r+   r   r   ^  s     &AAAxs   r   )stridesstride_xxx_0stride_xxx_0_xrv   rv   stride_xxx_0_0)r&   r'   r(   r   	itertoolsproducttuplezipr   absemptyr0   viewuint32fill	__class__r   alljoinlistr   libstride_tricks
as_strided)	x
stride_setrepeatsr2   r3   	new_shapeslicesxiss	            r+   _stride_comb_iterr   C  sQ    
 a$$h!&&JJrNvvz#
2vvz 
2$$eJ&78,/,AB,ADASZ,A	BGwGG XXiww/
		
+Z3WWQ[[!rw )chh&A&AAAAA 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Bs    BK!K:F&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?   rP   )r   r   r2   r3   rE   rI   rK   r   )r   rd   r2   a_labelr3   b_labelr   s          r+   _make_strided_casesr   s  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_CASESrK   rR   rQ   	Exception	traceback
format_excAssertionError)rL   requireexcluderd   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)	rY   rZ   r[   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)LinalgSquareTestCasei  c                 *    U R                  S1SS1S9  g )Nr>   rB   rC   r   r   r   rV   s    r+   test_sq_cases"LinalgSquareTestCase.test_sq_cases  s!    ("/!: 	 	<r-   c                 *    U R                  SS1S1S9  g )Nr>   rC   rB   r   r   rV   s    r+   test_empty_sq_cases(LinalgSquareTestCase.test_empty_sq_cases  s!    (H!5"/ 	 	2r-   r_   N)rY   rZ   r[   r\   r   r   r^   r_   r-   r+   r   r         <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 )NrA   rB   rC   r   r   rV   s    r+   test_nonsq_cases(LinalgNonsquareTestCase.test_nonsq_cases  !    +"/!: 	 	<r-   c                 *    U R                  SS1S1S9  g )NrA   rC   rB   r   r   rV   s    r+   test_empty_nonsq_cases.LinalgNonsquareTestCase.test_empty_nonsq_cases  !    +x!8"/ 	 	2r-   r_   N)rY   rZ   r[   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@   rB   rC   r   r   rV   s    r+   test_herm_cases!HermitianTestCase.test_herm_cases  r   r-   c                 *    U R                  SS1S1S9  g )Nr@   rC   rB   r   r   rV   s    r+   test_empty_herm_cases'HermitianTestCase.test_empty_herm_cases  r   r-   r_   N)rY   rZ   r[   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 )NrB   r>   rC   r   r   rV   s    r+   test_generalized_sq_cases9LinalgGeneralizedSquareTestCase.test_generalized_sq_cases  s!    -!:"* 	 	-r-   c                 &    U R                  1 SkS9  g )N>   r>   rB   rC   r   r   rV   s    r+   test_generalized_empty_sq_cases?LinalgGeneralizedSquareTestCase.test_generalized_empty_sq_cases  s    !DEr-   r_   N)
rY   rZ   r[   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 )NrB   rA   rC   r   r   rV   s    r+   test_generalized_nonsq_cases?LinalgGeneralizedNonsquareTestCase.test_generalized_nonsq_cases  !    -!="* 	 	-r-   c                 &    U R                  1 SkS9  g )N>   rA   rB   rC   r	  r   rV   s    r+   "test_generalized_empty_nonsq_casesELinalgGeneralizedNonsquareTestCase.test_generalized_empty_nonsq_cases  s    !GHr-   r_   N)
rY   rZ   r[   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 )NrB   r@   rC   r   r   rV   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@   rB   rC   noner   r   rV   s    r+   !test_generalized_empty_herm_cases>HermitianGeneralizedTestCase.test_generalized_empty_herm_cases  s    !G"( 	 	+r-   r_   N)
rY   rZ   r[   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      $ )Nry   r8   r   .r   )r   r   r'   r   r   r0   r
   )r2   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 )Nrv   ).N.r   )r   solver'   r   r   r   r   broadcast_tor   r   r,   )rL   r2   r3   rK   r   adotxs         r+   rQ   SolveCases.do  sq    LL88A;q  1	l+F3E;; ?G1LE)#A)*r-   r_   NrY   rZ   r[   r\   rQ   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  r0   c                     [         R                  " SS/SS//US9n[        [        R                  " X"5      R
                  U5        g Nrv         ?r8   )r'   r   r   r   r(  r0   rL   r0   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rY   rZ   r[   r\   r^   r_   r-   r+   ArraySubclassr7        r-   r9  rt   rx   rx   rx   rz   )rx   rx   rx   rv   )
r'   r(   aranger   r   r   r(  r   r    
ValueError)rL   r9  r2   r3   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_   Nr8  r_   r-   r+   r9  rC    r:  r-   r9  rt   rx   r   rv   ry   r   )r'   r(   r<  r   r   r   r(  r   r   r&   r    r   r=  rL   r9  r2   r3   expectedr>  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>.ArraySubclassi4  r_   Nr8  r_   r-   r+   r9  rJ  4  r:  r-   r9  rz   rv   rx   r   ry   r   )
r'   r(   r<  r   r   r   r(  r   r   r&   rD  s         r+   test_0_size_kTestSolve.test_0_size_k2  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)rY   rZ   r[   r\   r  r  parametrizer   r	   r   r   r3  r?  rF  rK  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)InvCasesiE  c                     [         R                  " U5      n[        [        X5      [	        U5      5        [        [        XA5      5        g r$   )r   invr   r   r#  r   r,   )rL   r2   r3   rK   a_invs        r+   rQ   InvCases.doG  s4    

1F1,5a8	:#E-.r-   r_   Nr,  r_   r-   r+   rO  rO  E  s    /r-   rO  c                   f    \ rS rSr\R
                  R                  S\\\	\
/5      S 5       rS rSrg)TestInviN  r0   c                     [         R                  " SS/SS//US9n[        [        R                  " U5      R
                  U5        g r0  )r'   r   r   r   rQ  r0   r2  s      r+   r3  TestInv.test_typesO  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>.ArraySubclassiV  r_   Nr8  r_   r-   r+   r9  rZ  V  r:  r-   r9  r   rv   rv   r8   rq   )r'   r(   zerosint_r   r   rQ  r   r0   r%   float64r   r   r&   	complex64rL   r9  r2   ress       r+   rF  TestInv.test_0_sizeT  s    	BJJ 	HHYbgg.33MBjjm		"**,-QWWcii(
3./HHV2<<055mDjjm		",,./QWWcii(
3./r-   r_   NrY   rZ   r[   r\   r  r  rM  r   r	   r   r   r3  rF  r^   r_   r-   r+   rU  rU  N  s4    [[Wvvw&HI1 J10r-   rU  c                       \ rS rSrS rSrg)EigvalsCasesie  c                 v    [         R                  " U5      n[         R                  " U5      u  pV[        XE5        g r$   )r   eigvalseigr   )rL   r2   r3   rK   evevaluesevectorss          r+   rQ   EigvalsCases.dog  s(    ^^A"JJqMB(r-   r_   Nr,  r_   r-   r+   re  re  e  s    )r-   re  c                   f    \ rS rSr\R
                  R                  S\\\	\
/5      S 5       rS rSrg)TestEigvalsim  r0   c                 <   [         R                  " SS/SS//US9n[        [        R                  " U5      R
                  [        U5      5        [         R                  " SS/SS//US9n[        [        R                  " U5      R
                  [        U5      5        g Nrv   r1  r8   r   )r'   r   r   r   rg  r0   r;   r2  s      r+   r3  TestEigvals.test_typesn  sz    HHq#ha)7V^^A&,,.?.FG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>.ArraySubclassiw  r_   Nr8  r_   r-   r+   r9  rt  w  r:  r-   r9  r[  r8   r   rv   rq   rr   )r'   r(   r\  r]  r   r   rg  r   r0   r%   
complex128r   r   r&   r_  r`  s       r+   rF  TestEigvals.test_0_sizeu  s    	BJJ 	HHYbgg.33MBnnQ		"--/0VSYY'
3

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

+,r-   r_   Nrc  r_   r-   r+   rn  rn  m  s6    [[Wvvw&HIH JH-r-   rn  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   rh  eigenvalueseigenvectorsr   r   r'   r   r=   r0   r   r,   )rL   r2   r3   rK   ra  r}  r~  s          r+   rQ   EigCases.do  sr    jjm$'OOS5E5E\q/JJ|$rzz+'>sD!|'LL+++,	. 	#L45r-   r_   Nr,  r_   r-   r+   ry  ry    s    6r-   ry  c                   f    \ rS rSr\R
                  R                  S\\\	\
/5      S 5       rS rSrg)TestEigi  r0   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      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 rp  )r'   r   r   rh  r   r0   r;   rL   r0   r   wvs        r+   r3  TestEig.test_types  s    HHq#ha)7yy}}QQWW/67QWW/67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>.ArraySubclassi  r_   Nr8  r_   r-   r+   r9  r    r:  r-   r9  r[  r8   ru  rq   rr   )r'   r(   r\  r]  r   r   rh  r   r0   r%   rv  r   r   r&   r_  rL   r9  r2   ra  res_vs        r+   rF  TestEig.test_0_size  s<   	BJJ 	HHYbgg.33MBZZ]
  BMM12		"--/0QWWekk*VSYY'
1bjj)*HHV2<<055mDZZ]
  BLL01		",,./QWWekk*T399%
1bjj)*r-   r_   Nrc  r_   r-   r+   r  r    s4    [[Wvvw&HI	8 J	8+r-   r  c                   d    \ rS rSrSr\R                  R                  S\\	\
\/5      S 5       rSrg)SVDBaseTestsi  Fr0   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 )Nrv   r1  r8   F
compute_uvr@   )r'   r   r   svdUSVhr   r0   r9   r@   )rL   r0   r   ra  r  r  r  r   s           r+   r3  SVDBaseTests.test_types  s    HHq#ha)7jjm55#%%bQWWe$QWWnU34RXXu%JJqUdnnEQWWnU34r-   r_   N)rY   rZ   r[   r\   r@   r  r  rM  r   r	   r   r   r3  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.r{  )
r   r  r   r   r'   r   r=   r0   r   r,   )rL   r2   r3   rK   ur   vts          r+   rQ   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 )rz   r   Tr  rz   rz   rq   rz   )r   rz   N)r'   r   r   r  r@   r   r   eye)rL   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 )Nrv   r1  Fr  )r'   r   r   r  r@   svdvalsr   )rL   r   
s_from_svds_from_svdvalss       r+   test_svdvalsTestSVD.test_svdvals  sI    HHq#ha)*ZZet~~N
*J7r-   r_   N)rY   rZ   r[   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                 Z   [         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                  " [        R                  " UR                  S   5      UR                  5      n[        [        R                  " XG" U5      5      U5        [        R                  " [        R                  " UR                  S   5      UR                  5      n[        [        R                  " Xg" U5      5      U5        [        [        R                  " U5      SS S S24   U5        [        [        XA5      5        [        [        Xa5      5        g )NFTr@   .r{  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=   r0   r)  r  r   r   r   sortr   r,   )	rL   r2   r3   rK   r  r   r  r@   rE  s	            r+   rQ   SVDHermitianCases.do  s    ::a$7b6"**Q-"**Q-T12M"M+-::b>;%agg.	0	9
 ??266!''"+#6@BIIa16A??266"((2,#7BBIIb)B-8(C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Srg)TestSVDHermitiani  Tc                 b   [         R                  " SS/SS//5      n[        R                  " XR                  S9u  p#n[        X"R                  R                  5       -  [         R                  " S5      SS9  [        XDR                  R                  5       -  [         R                  " S5      SS9  g )Nrv   r   r  rx   g+=r{  )	r'   r   r   r  r@   r   Tr  r  )rL   r   r  r   r  s        r+   test_singularTestSVDHermitian.test_singular   st    HHq!fq!f%&::a>>:bCCHHJq	>TTYY[("&&)%@r-   r_   N)rY   rZ   r[   r\   r@   r  r^   r_   r-   r+   r  r    s    IAr-   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 )NrC   F)r  r'  ).r   r   r   r4   r5   rx   r   rv   r   fro)r   r    r   r   condr  r   r'   rQ  r   summaxminr   sqrt)rL   r2   r3   rK   cr   cinvs          r+   rQ   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                   l   \ rS rSr\R
                  R                  SSS/5      S 5       r\R
                  R                  S\\	\
\/5      \R
                  R                  SSS	S
SS\R                  \R                  * /5      S 5       5       rS r\R
                  R!                  SSSS9S 5       rS rSrg)TestCondi5  
is_complexFTc                    [        / SQ/ SQ/ SQ/5      nU(       a  US-  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rg   r   rv   r   g       r   r   r   ri   r   rz   gUUUUUU?rv   r   r1  r  gUUUUU6@)r   r   r   r  r   r'   r  )rL   r  As      r+   test_basic_nonsvdTestCond.test_basic_nonsvd6  s     :{J78VAFKK3/3FKKC40%8FKK1-q1FKK2.4FKK5127783DEr-   r0   norm_ordrv   r   rx   r   r  c                     [        / SQ/ SQ/ SQ/US9n[        U5      n[        [        R                  " X2S9R
                  U5        g )Nr  r  r  r8   )p)r   r9   r   r   r  r0   )rL   r0   r  r  out_types        r+   test_cond_dtypesTestCond.test_cond_dtypesC  s:    
 :{J7uE!%(V[[/55x@r-   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 )Nr;  Nrv   rx   r  r   r     4&kC)r'   r\  onesr   r   r   r   r  )rL   Asp_posp_negr  r  s         r+   r  TestCond.test_singularL  s     hhv0#R%%b0DA FKK%,- 1 %%b0DAKK 1r-   z/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)Nrv   r   rx   r   r  r  r;  ru  )ry   rx   rx   rv   r   rv   rv   r   r  rx   )	r'   r  nanr   r  r   r&   r^  isnan)rL   psr  r  r  r  s         r+   test_nanTestCond.test_nanZ  s    
 )#GGFO&&$AA!AJq"**-.BHHQK  
 GGIVV'
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 )	Nrf   rx   r   rq   r   )Nrv   rx   r  r   r   ru  rv   r   )
r'   randomseedrandr   r  r   r   r   isfinite)rL   r  r  r  s       r+   test_stacked_singularTestCond.test_stacked_singularu  s     			tIINN1aA&$$,AA!A4"&&)4"&&)BKK$()BKK$() -r-   r_   N)rY   rZ   r[   r\   r  r  rM  r  r   r	   r   r   r'   r   r  r  xfailr  r  r^   r_   r-   r+   r  r  5  s    [[\E4=9
F :
F [[Wvvw&HI[[Z!RBrvvw)OPA Q JA [[t-  .,.,0*r-   r  c                       \ rS rSrS rSrg)	PinvCasesi  c                     [         R                  " U5      n[        nU" U" X5      U5      n[        XaSSS9  [	        [        XA5      5        g )Nr   r   r  r   pinvr   r   r   r,   rL   r2   r3   rK   a_ginvr   r>  s          r+   rQ   PinvCases.do  s>    QS^Q'FaK#F./r-   r_   Nr,  r_   r-   r+   r  r    s    
0r-   r  c                       \ rS rSrSrg)TestPinvi  r_   Nr8  r_   r-   r+   r  r        r-   r  c                       \ rS rSrS rSrg)PinvHermitianCasesi  c                     [         R                  " USS9n[        nU" U" X5      U5      n[        XaSSS9  [	        [        XA5      5        g )NTr  r   r   r  r  r  s          r+   rQ   PinvHermitianCases.do  sA    Q$/S^Q'FaK#F./r-   r_   Nr,  r_   r-   r+   r  r    s    0r-   r  c                       \ rS rSrSrg)TestPinvHermitiani  r_   Nr8  r_   r-   r+   r  r    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rv   rx   ry   )rz   rv   rv   )rx   ry   rv   r1  rcondr{  z%`rtol` and `rcond` can't be both set.)match)r
  r|  )r'   r   r   r   r  r  raisesr=  )r2   s    r+   test_pinv_rtol_argr    s    
)Y	23A
		q$
		qs#
 
B
 			q#.
 
 
s   = B&&
B4c                       \ rS rSrS rSrg)DetCasesi  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   rv   )r   detslogdetsign	logabsdetr   r0   r%   r   r	   astyper   rg  r   r   reducer'   exp
atleast_1dr   r   r   )rL   r2   r3   rK   dra  r   ldadri  ms              r+   rQ   DetCases.do  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    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   rv   )r   r   r  r%   r	   r   r  r   rV   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-   r0   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 r0  )r'   r   r   r   r  r0   r  r9   )rL   r0   r   phr   s        r+   r3  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 )Nrq   r8   rg   r  r   rv   )r'   r\  r_  r   r  r   r   r0   r%   r  float32r^  )rL   r2   ra  s      r+   rF  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)rY   rZ   r[   r\   r$  r  r  rM  r   r	   r   r   r3  rF  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                 4   [         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  UR                  S5      n[        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   rx   r  rv   r   )r'   r   r   r   r  lstsqr   r   r   r   r   __array_wrap__r   r  r   r   r   r   r%   
issubdtyper0   floatingr,   )rL   r2   r3   rK   arrr  nr  r   r  r   	residualsranksvexpect_residss                  r+   rQ   LstsqCases.do  sp   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& - 5 5d ;-*=*=>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#  rg   r#  rg   rh   r#  )r#  rh   r#  r#  rg   r#  )rg   r#  rg   r#  r#  rj   )r#  r#  r#  rh   ri   r#  )rv   r   r   r   r   r   r   r	  rz   ry   )r'   r   r  r   r/  r   )rL   r2   r3   r   r5  r6  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  r4  n_rhs))rz   rx   rx   )r   rz   rv   )r   rz   rx   )rz   r   rv   )rz   r   rx   )rz   rx   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   rr   r   r  )r'   r<  r   r  r   r/  r   r   r   r   r   r   r  r  )rL   r  r4  r?  r2   r3   r   r5  r6  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   rv   rx   ry   )r   g?g?g @gffffff
@zIncompatible dimensionsr	  )
r'   r   vstackr  lenr  r!   r   r   r/  )rL   r   yr  s       r+   test_incompatible_dims TestLstsq.test_incompatible_dims9  sj    HH\"HH-.IIq"''#a&/*+-- .GHLLT* IHHs    B
B-r_   N)rY   rZ   r[   r\   r=  r  r  rM  rB  rH  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)TestMatrixPoweriB  rz   )ry   r   rv   rx   )rx   ry   r   rv   )rv   rx   ry   r   rv   r   rx   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 )Nrx   rF   i       r   rv   ry   )rshft_1r  r   r   rshft_0rshft_2rshft_3)rL   rJ  rshfts      r+   test_large_power TestMatrixPower.test_large_powerO  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                    Hn  nU" UR                  U5      5        [        R                  " U5      R                  [        R
                  Ld  MM  U" U R                  R                  U5      5        Mp     g )Nc                     [        U S5      n[        U[        U 5      5        [        UR                  U R                  5        g )Nr   )r   r   r#  r0   )Mmzs     r+   tz.TestMatrixPower.test_power_is_zero.<locals>.tz[  s0    a#B6q9:177+r-   	rshft_allr  r'   r0   r%   object_stackedrL   rJ  r\  r  s       r+   test_power_is_zero"TestMatrixPower.test_power_is_zeroZ  sX    	,
 >>Cszz"~xx|  

24<<&&r*+ "r-   c                    S nU R                    Hn  nU" UR                  U5      5        [        R                  " U5      R                  [        R
                  Ld  MM  U" U R                  R                  U5      5        Mp     g )Nc                 r    [        U S5      n[        X5        [        UR                  U R                  5        g )Nrv   )r   r   r0   )r  r[  s     r+   r\  -TestMatrixPower.test_power_is_one.<locals>.tzf  s(    c1%B!399-r-   r^  rb  s       r+   test_power_is_one!TestMatrixPower.test_power_is_onee  sX    	.
 >>Cszz"~xx|  

24<<&&r*+ "r-   c                    S nU R                    Hn  nU" UR                  U5      5        [        R                  " U5      R                  [        R
                  Ld  MM  U" U R                  R                  U5      5        Mp     g )Nc                     [        U S5      nU R                  [        :w  a  [        O[        n[        X" X 5      5        [        UR                  U R                  5        g )Nrx   )r   r0   objectr   r   r   )r  r[  mmuls      r+   r\  -TestMatrixPower.test_power_is_two.<locals>.tzq  s@    c1%B YY&06cDT#^,399-r-   r^  rb  s       r+   test_power_is_two!TestMatrixPower.test_power_is_twop  sX    	. >>Cszz"~xx|  

2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   r0   rl  r   r   r   r#  )r  invmatrm  s      r+   r\  3TestMatrixPower.test_power_is_minus_one.<locals>.tz}  s9    !#r*F YY&06cDV!#<S#ACr-   )r_  dtnoinvr  rb  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      ?rv   )rR  r  r    	TypeErrorr   rL   rJ  r  s      r+   test_exceptions_bad_power)TestMatrixPower.test_exceptions_bad_power  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 )Nrv   rx   )rz   ry   rx   )r    r   r   r'   r   r  )rL   rJ  s     r+   test_exceptions_non_square*TestMatrixPower.test_exceptions_non_square  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 rs  )rv  noninvr  r    r   r   r{  s      r+   test_exceptions_not_invertible.TestMatrixPower.test_exceptions_not_invertible  s1    kk  $k<b9r-   r_   N)rY   rZ   r[   r\   r'   r  rR  rQ  rS  rT  r_  r   r  blockra  rl  r0   rv  rV  rc  rh  ro  rw  r|  r  r  r  skipifr   r  r^   r_   r-   r+   rL  rL  B  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-   rL  c                       \ rS rSrS rSrg)TestEigvalshCasesi  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  r{  r  )r   eigvalshrh  r  r   r=   r0   )rL   r2   r3   rK   ri  rj  rk  ev2s           r+   rQ   TestEigvalshCases.do  sh     __Q$"JJqM"(288*<=ooa%8BHH+=>r-   r_   Nr,  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)	TestEigvalshi  r0   c                     [         R                  " SS/SS//US9n[         R                  R                  U5      n[	        UR
                  [        U5      5        g r0  )r'   r   r   r  r   r0   r9   )rL   r0   r   r  s       r+   r3  TestEigvalsh.test_types  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 Nrv   r1  r8   lrongUPLOlowerupper)r'   r   r*  r    r=  r   r  rL   r   s     r+   test_invalidTestEigvalsh.test_invalid  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   rv   r8   r   r{  r  r  lr  r  )r'   r   r	   r=   r   r  r   )rL   KloKuptgtr|  r  s         r+   	test_UPLOTestEigvalsh.test_UPLO  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_   Nr8  r_   r-   r+   r9  r    r:  r-   r9  r[  r8   ru  rq   rr   )r'   r(   r\  r]  r   r   r  r   r0   r%   r^  r   r   r&   r_  r*  r`  s       r+   rF  TestEigvalsh.test_0_size  s    	BJJ 	HHYbgg.33MBooa 		"**,-VSYY'
3

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

+,r-   r_   NrY   rZ   r[   r\   r  r  rM  r   r	   r   r   r3  r  r  rF  r^   r_   r-   r+   r  r    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  .r{  r  )r|  err_msg)r   eighr}  r~  rh  r  r   r   r   r'   r   r=   r0   repr)rL   r2   r3   rK   ra  ri  evcrj  rk  r  evc2s              r+   rQ   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  r0   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 r0  )r'   r   r   r  r   r0   r9   r  s        r+   r3  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    r=  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   )rL   r  r  r  r|  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_   Nr8  r_   r-   r+   r9  r    r:  r-   r9  r[  r8   ru  rq   rr   )r'   r(   r\  r]  r   r   r  r   r0   r%   r^  r   r   r&   r_  r*  r  s        r+   rF  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$   )	
issubclassr0   r%   r'   inexactr   realr   r2  )r   ra  s     r+   check_dtype_TestNormBase.check_dtype3  sN    aggllBJJ//AFFLL1 Jsyy~~r{{;<r-   r_   )	rY   rZ   r[   r\   rJ  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#  r8   )r   r   r   rJ  r   rV   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        [        R                  " 5          [        R                  " S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#  ignoredivide by zero encounteredr   r   rx   rv   rh   r1  rz   g      ?rg   )r'   r   	typecodesr  r   r   r  r   warningscatch_warningsfilterwarningsRuntimeWarningr0   r%   rL   r2   exact_typesinexact_types	all_types	each_typeatans           r+   test_vector_return_type(_TestNormGeneral.test_vector_return_typeC  s   HHYll<0Z0/	"I)$Bb266'"BR$C(((*'':NL"b\  (#B, + b!BR$A&b!BR$C(b!BR$HHMM#$6i8P$PQb!BR$HHMM#$6i8P$PQb"&&!BR$C(A # +*s   'AH>>
I	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)rv   rx   ry   rz   )r   r   r   r   )r   rx   r   rz   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/   rj   rg   rv         $@r   gQ?rx   r   gsc?r   rz   )r'   testingr   r   r  r   )r  rL   s    r+   _test+_TestNormGeneral.test_vector.<locals>._testr  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-   r8   )r   rJ  )rL   r2   r3   r  r  r  s   `     r+   test_vector_TestNormGeneral.test_vectorm  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  rz   r   r   r8   r   r   rv   rx   ry   ordr  r     rz   r   r  r  )r   rJ  r'   r   r  r   r   r   r<  r   r   r   combinationsr    r=  taker  )rL   r  orderk	expected0	expected1Bndr  row_axiscol_axisr4  k_indexrE  s                 r+   	test_axis_TestNormGeneral.test_axis  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 )Nrv   r  r8   rx   ry   rz   zorder {0}, axis = {1}z;Shape mismatch found {0}, expected {1}, order={2}, axis={3}r  T)r  r  keepdims)r  )rv   rv   rv   r   r   r   r  nuc)r'   r<  rJ  r   r   r   squeezeformatr   r   r   r  r   r   r   r   permutations)	rL   r  allclose_err	shape_errrE  foundexpected_shaper  r  s	            r+   test_keepdims_TestNormGeneral.test_keepdims  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)
rY   rZ   r[   r\   r  r  r  r  r  r^   r_   r-   r+   r  r  <  s    F
()T<#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 )Nr8   r#  )r   r   r   rJ  rV   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        [        R                  " 5          [        R                  " S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  r[  r  fdFDrh   r  r  r   rg   rv   rx   gLXz?r   r  r   gU&,t=@r   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(((*'':NL"b\  (#B, + b!BR$C(b!BR$$45b"BR$C(b"&&!BR$C(b%BR$C(b%BR$ JJ**2/A1*MM # +*s   AH  
H	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 )Nrv   ry   r   r   r8   gT"@r  r   r  g      (@rj   r   rl   rx   gW?"@r   gїʄ?nofror   r   )r   rJ  r   r   r   r    r=  rL   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   )ry   rx   rv   r8   grj=Q0?r  r   gB+pc?g?g333333?rv   rg   r   g?rx   g&.d?r   gܸՠ?)r   rJ  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  r8   rv   r  rx   ry   rz   r  r   r   testr   ry   ru  )rv   rx   rx   ry   r   rv   rx   )	r   rJ  r'   r<  r   r    r=  r   r   )rL   r  r  r  s       r+   test_bad_args_TestNorm2D.test_bad_args8  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)rY   rZ   r[   r\   r'   r   r  r  r  r  r   r^   r_   r-   r+   r  r    s)     HHEA2Nh. >"<r-   r  c                       \ rS rSrSrg)	_TestNormiT  r_   Nr8  r_   r-   r+   r#  r#  T  r   r-   r#  c                   &    \ rS rSrS rS rS rSrg)TestNorm_NonSystematiciX  c                 p    [         R                  " S[         R                  S9n[        [	        USS9SSS9  g )N
   r8   ry   r  gL)@rx   r  )r'   r<  
longdoubler1   r   r  s     r+   test_longdouble_norm+TestNorm_NonSystematic.test_longdouble_normZ  s*     IIb.QAqAr-   c                 r    [         R                  " S/[         R                  S9n[        [	        USS9SSS9  g )Ni   r8   ry   r  l        r   r  )r'   r   int32r1   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rx   r8   y      @      @r   y            @rv   gV;'@ry   r  r'  r  	   r   )	r'   r   clongdoubler1   r   r   r  rv  r_  )rL   r  ra  s      r+   test_complex_high_ord,TestNorm_NonSystematic.test_complex_high_ordf  s    HHT0!!		qa 8#rJHHR]]#		qa 8#qIHHR\\"		qa 8#qIr-   r_   N)rY   rZ   r[   r\   r)  r-  r3  r^   r_   r-   r+   r%  r%  X  s    BD
Jr-   r%  c                   0    \ rS rSr\R
                  rSrSrg)_TestNormDoubleBaseit     r_   N)	rY   rZ   r[   r\   r'   r	   rJ  r  r^   r_   r-   r+   r6  r6  t  s    	B
Cr-   r6  c                   0    \ rS rSr\R
                  rSrSrg)_TestNormSingleBaseiy  r   r_   N)	rY   rZ   r[   r\   r'   r*  rJ  r  r^   r_   r-   r+   r9  r9  y  s    	B
Cr-   r9  c                   0    \ rS rSr\R
                  rSrSrg)_TestNormInt64Basei~  r7  r_   N)	rY   rZ   r[   r\   r'   int64rJ  r  r^   r_   r-   r+   r;  r;  ~  s    	B
Cr-   r;  c                       \ rS rSrSrg)TestNormDoublei  r_   Nr8  r_   r-   r+   r>  r>    r   r-   r>  c                       \ rS rSrSrg)TestNormSinglei  r_   Nr8  r_   r-   r+   r@  r@    r   r-   r@  c                       \ rS rSrSrg)TestNormInt64i  r_   Nr8  r_   r-   r+   rB  rB    r   r-   rB  c                        \ rS rSrS rS rSrg)TestMatrixRanki  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)Nrz   r#  r   r   ry   r  r   )rv   r   r   r   rv   )rz   )ry   rz   r   z#`tol` and `rtol` can't be both set.g{Gz?)tolr|  )r   r   r'   r  r\  r   r!   r=  )rL   Imss      r+   test_matrix_rankTestMatrixRank.test_matrix_rank  s   QBFF1I./FF1I&	[^Q'[&!12A6[.2[$0!4[!%q)XXq"&&)RXXf%567[_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 )Nrz   Tr  rv   r  r   r#  rF  ry   g:0yE>g|"BE>)r@   rG  g;䡈E>)r   r   r'   r  r  r\  )rL   rH  s     r+   test_symmetric_rank"TestMatrixRank.test_symmetric_rank  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)rY   rZ   r[   r\   rJ  rM  r^   r_   r-   r+   rD  rD    s    02Er-   rD  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rF   )(   r'  sizerv   rx   r   r1  rz   r   ry   rt   )r'   r  RandomStater  normalr   r   )rngiXs      r+   test_reduced_rankrX    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%   r0   r   r  r   qrQRr   r&   r   r   r  r  r'   r  triu)rL   r2   a_typea_dtyper  r4  r  ra  ra  rb  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  r4  )ry   r   r  rq   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rawr]  )
r  r'   r   ri  r   r`  r   r0   r	   r   )rL   r  r4  r  r2   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 )Nrv   rx   ry   rz   r   r   r8   rm  r]  r  r0  r   )	r   r'   r	   r   r`  r   r0   r   r  )rL   r2   rn  ro  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 )	Nrv   rx   ry   rz   r   r   fd              ?)r   r  ri  r  )rL   r2   r3   rJ  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   r\  r]  r   rx   .r_  r"  )r%   r0   r   r  r   r`  r   r&   r   r   r'   r
   r)  r   r  rc  )rL   r2   rd  re  r  r4  r  qr"  I_matstack_I_matrf  rg  rh  s                 r+   check_qr_stackedTestQR.check_qr_stacked(  s    a''wwrs|I yy,7"#7"#
1%&
1%&&'&'F1L!,AGGBK(ooe~'99;F8Ar2#6#;#;#=qA;OBGGAc1aiL115 19-G#$G#$
2&'
2&'!'(!'(F2NA.BHHRL)ooe""!(;;=F8BB#7#<#<#>C'	)BGGBsAqyM2B7 YYqs#G#$
2&'B#r-   rR  ))ry   rz   )rz   ry   r  rk  r  
outer_size)r;  r0  )rx   ry   rz   rJ  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{   rQ  rw  )r'   r  default_rngrT  r  r  )rL   r  rR  rJ  rU  r  r  s          r+   test_stacked_inputsTestQR.test_stacked_inputsU  sx     ii##C(JJJ-J.55b9JJJ-J.55b9a a#'k*r-   r_   N)rY   rZ   r[   r\   r'   r   ri  r  r  rM  rp  rs  rz  r  r   r	   r   r   r  r^   r_   r-   r+   rZ  rZ    s    HHE%$N [[c3Z * 

&

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


BJJ$  !+!"+r-   rZ  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)TestCholeskyif  r   )r   r;  ry   ry   )2   r  )ry   r'  r'  r0   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 )Nrv   rw  )r   r   r   r8   r  i  r    
)atolr  r   )axis1axis2)r'   r  r  randnr1  complexfloatingr   r  rF  r   r  r  r   r   choleskyr   finfoepsr   diagonalr   r   isreal)
rL   r   r0   r  r2   tr  r3   r  r  s
             r+   test_basic_property TestCholesky.test_basic_propertyh  s    			qIIOOU#== 2 233B%000A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>.ArraySubclassi  r_   Nr8  r_   r-   r+   r9  r    r:  r-   r9  r[  r8   )rv   r   r   )r'   r(   r\  r]  r   r   r  r   r   r   r0   r%   r^  r&   r_  r`  s       r+   rF  TestCholesky.test_0_size  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      @        Fr  T)r'   r   r   r   r  r  r  )rL   r2   s     r+   test_upper_lower_arg!TestCholesky.test_upper_lower_arg  sn    HHvv&(89:V__Q'%)HIOOAT*OOA  %%'	
r-   r_   N)rY   rZ   r[   r\   r  r  rM  r'   r*  r^  r_  rv  r  rF  r  r^   r_   r-   r+   r  r  f  s    [[@ [["**bjj",,F [[%    8- 	
r-   r  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)		TestOuteri  ry   r@  r  )r   rx   rz   z$Input arrays must be one-dimensionalNr_   )rY   rZ   r[   r\   r'   r<  arr1arr2r   rE  r   r   outerr!   r=  newaxisr^   r_   r-   r+   r  r    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<rU   rz   r8   r  =)sys	byteorderr'   r*  r^  r  r   r0   newbyteorderbyteswapr   r   rQ  r  r  r   )nativedttr3  n_arrsw_arrroutinera  s          r+   test_byteorder_checkr    s    
}} 

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

FJJ<G#,CsGEN3sGFO4 = (r-   r  r  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 )Nrv   rx   ry   rz   )rz   rz   rx   rx   .rq   )r'   r   r\  r    r   r   rQ  )
invertiblenon_invertibler   s      r+    test_generalized_raise_multiloopr    s    
 Aq6Aq6*+JXX1v1v./N
qt!t$AcFdG"))'':r-   z<ignore:.*fork\(\) may lead to deadlocks.*:DeprecationWarningz?skipping test that uses fork because there are multiple threadsz:Cannot safely use fork in tests on the free-threaded buildc                     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   rv   rq   rg   zDORGQR parameter number 5zNumpy xerbla not linked in.)osforkOSErrorAttributeErrorr  skipcloseresource	setrlimitRLIMIT_COREr'   r   lapack_litexerblar=  r   _exit	EX_CONFIGr   dorgqrrH   waitWEXITSTATUS)	XERBLA_OKpidr  r2   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  H]  nUR                  SSUS9n[        [        R
                  SU/5        UR                  SSUS9n[        [        R
                  SU/5        M_     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  r"   r  
executable)bad_libstemplater  codes       r+   test_sdot_bug_8577r    s     "9-H 
  
	H &:"'.  0d34 %9"'.  0d34 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   rx   rx   r   r'   r  r   r   r   )rL   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  )rL   r  r  s      r+   &test_basic_function_with_two_arguments3TestMultiDot.test_basic_function_with_two_argumentsG  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  rx   rv   r  )rL   r  r  r  Ds        r+   9test_basic_function_with_dynamic_programming_optimizationFTestMultiDot.test_basic_function_with_dynamic_programming_optimizationO  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 )Nrx   r  r  r;  r0  r'   r  r   r   r   )rL   A1dr  r  r  s        r+   test_vector_as_first_argument*TestMultiDot.test_vector_as_first_argumentX  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  rx   )r   r  )rL   r  r  r  D1ds        r+   test_vector_as_last_argument)TestMultiDot.test_vector_as_last_argumentb  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 )Nrx   r  r  r_   r  )rL   r  r  r  r  s        r+   &test_vector_as_first_and_last_argument3TestMultiDot.test_vector_as_first_and_last_argumentl  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  r\  r   r   r   )rL   r  r  r  r)   rets         r+   test_three_arguments_and_out)TestMultiDot.test_three_arguments_and_outv  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  )rL   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   rv   r  r  )rL   r  r  r  r  r)   r   s          r+   -test_dynamic_programming_optimization_and_out:TestMultiDot.test_dynamic_programming_optimization_and_out  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   rv   rv   ry   ry   ry   )r   r   rx   ry   ry   ry   )r   r   r   ry   ry   ry   )r   r   r   r   rz   r   )r   r   r   r   r   r   )r   r   r   r   r   r   r8   rv   T)return_costsr   )r'   r  r   intr   r   rc  )rL   arrays
m_expected
s_expectedr   r  s         r+   test_dynamic_programming_logic+TestMultiDot.test_dynamic_programming_logic  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 )Nr  )r    r=  r   r'   r  rV   s    r+   test_too_few_input_arrays&TestMultiDot.test_too_few_input_arrays  s,    j)R0j)bii.>.>v.F-GHr-   r_   N)rY   rZ   r[   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)TestTensorinvi  zarr, indrz   r   rt   rx   rx   ry   ry   rx   rv   c                 ~    [        [        5         [        R                  " XS9  S S S 5        g ! , (       d  f       g = f)Nind)r    r   r   	tensorinv)rL   r3  r  s      r+   test_non_square_handling&TestTensorinv.test_non_square_handling  s&    
 ;'S* (''s   .
<z
shape, ind)rz   r   rt   ry   rx   )   rt   ry   rv   c                     [         R                  " S5      R                  U5      n[        R                  " X2S9nUR
                  US  UR
                  S U -   nUR
                  n[        Xe5        g )Nr$  r2   r  )r'   r  r   r   r  r   r   )rL   r   r  r2   ainvrE  actuals          r+   test_tensorinv_shape"TestTensorinv.test_tensorinv_shape  s[     FF2Ju%!-7734=1774C=0V&r-   r  r   r   c                     [         R                  " S5      R                  S5      n[        [        5         [
        R                  " X!S9  S S S 5        g ! , (       d  f       g = f)Nr$  r"  r&  )r'   r  r   r    r=  r   r  )rL   r  r2   s      r+   test_tensorinv_ind_limit&TestTensorinv.test_tensorinv_ind_limit  s>     FF2J|,:&q* '&&s   A
A!c                     [         R                  " S5      R                  S5      n[        R                  " USS9n[         R
                  " S5      n[        [         R                  " X#S5      [         R                  R                  X5      5        g )Nr$  r#  rv   r  )	r'   r  r   r   r  r  r   	tensordottensorsolve)rL   r2   r'  r3   s       r+   test_tensorinv_result#TestTensorinv.test_tensorinv_result  s]    FF2Jz*q)GGBKTa0"))2G2G2MNr-   r_   N)rY   rZ   r[   r\   r  r  rM  r'   r  r   r)  r,  r1  r^   r_   r-   r+   r  r    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   rx   c                     [        [        5         [        R                  " UR                  S S 5      n[
        R                  " XUS9  S S S 5        g ! , (       d  f       g = fNrx   r  )r    r   r'   r  r   r   r0  )rL   r2   r  r3   s       r+   r   (TestTensorsolve.test_non_square_handling  s@    
 ;'$Aq$/ (''s   9A
A r   ))rx   ry   r   )ry   rz   rz   ry   )r   ry   ry   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 r7  )
r'   r  r  r  r   r   r0  r   r/  rF  )rL   r   r2   r3   r   s        r+   test_tensorsolve_result'TestTensorsolve.test_tensorsolve_result  s_     IIOOU#GGAGGBQK II!!!'QAGG=qAr-   r_   )rY   rZ   r[   r\   r  r  rM  r'   r  r   r:  r^   r_   r-   r+   r4  r4    sv    [[Y		%		V$)
 0	0
 [[W/BBr-   r4  c                      [         R                  " SS/SS//SS9n [        [        S5         [        R
                  " U 5        S S S 5        g ! , (       d  f       g = f)Nrv   r   rx   r   float16r8   zunsupported in linalg)r'   r   r!   rz  r   r  )r3  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        rv   r8   )r   r   )r'   r\  r*  r  r   r   )r4  r2   r3   r  s       r+   test_blas64_dotrA  	  s[    A
!Qrzz*A
Abjj)AAeH
qA51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       rv   r8   r   r   infor  r4  r@  l        )
r'   r^  r   r  dgeqrfr\  r   r  itemr   )
r0   lapack_routiner  r4  ldar2   workro  resultslworks
             r+   !test_blas64_geqrf_lwork_smoketestrK  	  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<   ry   rz   r   )r   r   r7     )r     rP  &   )rP  .   4   :   )r'   r<  r   r   r  r   r   r   r(  rE  s      r+   test_diagonalrV  (	  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 )NrM  rN  )$   t      )r'   r<  r   r   tracer   r   rU  s      r+   
test_tracer\  8	  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)	Nr1  r  rv   )r   rx   r   r  r  )r   r   r   z8input arrays must be \(arrays of\) 3-dimensional vectors)	r'   r<  r   r   crossr   r   r!   r=  )r   r(  rE  r  r  x_2dims         r+   
test_crossr`  C	  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   ru  r  )r'   r<  r   r   r/  )r   s    r+   test_tensordotrc  ^	  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      r  )r'   r<  r   r   r   r  r   r   rU  s      r+   test_matmulrf  f	  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'   r<  r   r   matrix_transposer  r   r!   r=  rU  s      r+   test_matrix_transposeri  p	  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 )Nr1  r  ^)ː,@ry   r5   Tr  )r'   r<  r   r   matrix_normr   r^  r   )r   r(  s     r+   test_matrix_normro  }	  su    
		!V$AYY""1%F

7 3AFYY""1t"4F7) 5aHr-   c            	      ^   S GH&  n [         R                  [         R                  [         R                  4 H  n[         R                  " X5      n[        [         R                  R                  USS9S5        [        [         R                  R                  USS9S5        [        [         R                  R                  USS9S5        [        [         R                  R                  USS9S5        [        [         R                  R                  U[         R                  S9S5        M     GM)     g )N)r5  )rx   r   rq   r  r  r   r   rv   rx   )	r'   r^  r*  r,  r\  r   r   rn  r   )r   r0   r   s      r+   test_matrix_norm_emptyrq  	  s    )jj"**bhh7E&A..qe.<a@..qe.<a@..qa.8!<..qa.8!<..qbff.=qA 8 *r-   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 )Nr1  r  rk  ry   rl  r   r  )g|a2@gsh|? @gDioI#@Trm  r   r^  r8   )r'   r<  r   r   vector_normr   r^  r   fullr   r   rU  s      r+   test_vector_normru  	  s    
		!V$AYY""1%F

7 3AFYY""11"-F01! YY""1t"4Fwwvwi8Hx~~.;r-   c                     [         R                  [         R                  [         R                  4 H  n [         R                  " SU 5      n[        [         R                  R                  USS9S5        [        [         R                  R                  USS9S5        [        [         R                  R                  U[         R                  S9S5        M     g )Nr   rv   r  rx   )	r'   r^  r*  r,  r\  r   r   rs  r   )r0   r   s     r+   test_vector_norm_emptyrw  	  s    **bjj"((3HHQRYY**1!*4a8RYY**1!*4a8RYY**1"&&*91=	 4r-   c                  t   [        [        [        R                  " S5      5      S5        [        [        [        R                  " S5      5      S5        [        [        [        R                  " S5      5      S5        [        [        R                  " S5      5      n [        U R                  S5        [        U R
                  [        R                  5        [        [        R                  " S5      5      n [        U [        R                  " / SQ5      5        [        [        R                  " S	5      5      n [        U [        R                  " SS/5      5        [        [        R                  " S
5      5      n [        U R                  S5        [        U [        R                  " S[        R                  S95        g )Nrq   r   )r   r   )r   r   )r   r   r   rr   )ry   r   r   r@  )rx   r   r   )rx   ry   r   rz   r  r8   )r   r   r'   r\  r   r0   intpr   )r>  s    r+   test_empty_matrix_rankrz  	  s   RXXf-.2RXXf-.2RXXf-.2),-Ft$rww'),-F),-),-F1a&)*,/0Fv&&89r-   )r   r7  )__doc__r   r  r  r  	threadingr   r  r  numpyr'   r   r   r   r   r   r   r	   r
   r   r   r   r   r   numpy._corer   numpy.exceptionsr   numpy.linalgr   r   r   r   r   numpy.linalg._linalgr   numpy.testingr   r   r   r   r   r   r   r   r    r!   numpy.testing._private.utilsr"   numpy.linalg.lapack_liteImportErrorr,   r1   r9   r;   r=   ra   rE   re   r  r  r   r   r  r   r   r   r   r   r   r   r  r  r  r#  r%  r.  rO  rU  re  rn  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r-  r;  r  rM  r0   rL  r  r  r  r  r  r  r  r#  r%  r6  r9  r;  r>  r@  rB  rD  rX  rZ  r  r  r  r  r  r  active_countr  r  r  r  r  r4  r>  r  rA  r  rK  rV  r\  r`  rc  rf  ri  ro  rq  ru  rw  rz  )r  s   0r+   <module>r     s    	 
          ! & P P >   8	#* . 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.0HI  uxxf-xxF+J  uyy~~a#yy~~a " uyy~~a#yy~~a " zAA1vA# #
 #L ;~lL1@b"XV,. ~r2hR2r(36B\02 ~lL1@b"XV,. ~r2hR2r(36B\02 /1LM  gw'w79 w''7);gw=OP! 0@B 02MN! gw'w79 w''7);gw=OP! 0@B  02MN! w(66*:;7KM  w''7);gw=OP! w'&&)9FF;KL! 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 CE! E
 EP ;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 ,,A(, A+1$&E +1\M*y M*`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~v<- v<r	- 	J J8- 
- 
 
	Y 3 		Y 3 		I1 	&E &ER
(^+ ^+B?
 ?
D3 3"5* G$BC; D; C q L  N G  I.7IN.7b G$=>5  ?5D~I ~IB#O #OLB B* GH I |#F  H#H#4# #(6B#
,IB<$>:sK  	 			`   Js   d2 d?
2d<;d<