
    (ph1                    J   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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JrJrJr  SSKJr  SSKJrJrJrJrJr  SSKJ r   SS	K!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+   SSK,rS
 r.\&r/SS jr&S r0S r1S r21 Skr3 " S S5      r4S r5\	Rl                  Ro                  S5        / r8\8\5" S\4" S\
" SS/SS//\S9\
" SS/\S95      \4" S\
" SS/SS//\S9\
" SS/\S95      \4" S\
" SS/SS//\S9\
" / SQ/ SQ/\S95      \4" S\
" S S!/S"S#//\S9\
" S$S /\S95      \4" S%\
" S S!/S"S#//\S9\
" S$S /\S95      \4" S&\
" S S!/S"S#//\S9\
" / S'Q/ S(Q/\S95      \4" S)\	Rr                  " S*\S9\	Rr                  " S+\S9S,1S-9\4" S.\	Rl                  Ru                  S/S/5      \	Rl                  Ru                  S/5      5      \4" S0\	Rl                  Ru                  S1S15      \	Rl                  Ru                  S15      5      \4" S2S1S3/S4S5//S3S1/5      /
5      -  r8\8\5" S6\4" S7\
" / S8Q/ SQ/\S9\
" SS/\S95      \4" S9\
" SS/SS/S:S;//\S9\
" / S<Q\S95      \4" S=\
" / S8Q/ SQ/\S9\
" SS/\S95      \4" S>\
" SS/SS/S:S;//\S9\
" / S<Q\S95      \4" S?\
" / S@Q/ SAQ/\S9\
" S$S /\S95      \4" SB\
" SCSD/SESF/SGSH//\S9\
" / SIQ\S95      \4" SJ\
" / S@Q/ SAQ/\S9\
" S$S /\S95      \4" SK\
" SCSD/SESF/SGSH//\S9\
" / SIQ\S95      \4" SL\
" / S@Q/ SAQ/\S9\
" S$S /SMSN//\S95      \4" SO\
" SCSD/SESF/SGSH//\S9\
" S$S /SMSN/SMSN//\S95      \4" SP\	Rl                  Ru                  S/SQ5      \	Rl                  Ru                  S/5      5      \4" SR\	Rl                  Ru                  S1SS5      \	Rl                  Ru                  S15      5      \4" ST\	Rl                  Ru                  SSS15      \	Rl                  Ru                  SS5      5      \4" SU\	Rl                  Ru                  SS55      \	Rl                  Ru                  S5      S,1S-9\4" SV\	Rl                  Ru                  S5S5      \	Rl                  Ru                  S55      S,1S-9/5      -  r8\8\5" SW\4" SX\
" SS/SS//\S9S5      \4" SY\
" SS/SS//\S9S5      \4" SZ\
" SS!/S[S1//\S9S5      \4" S\\
" SS!/S[S1//\S9S5      \4" S]\	Rr                  " S*\S9SS,1S-9\4" S^S1S3/S3S1//S5      \4" S_\
" SS/SS//5      S5      \4" S`\	Rl                  Ru                  S1S15      S5      /5      -  r8Sa r;\8\;" 5       -  r8Sb r<Sc r=\8\=" 5       -  r8 " Sd Se5      r> " Sf Sg\>5      r? " Sh Si\>5      r@ " Sj Sk\>5      rA " Sl Sm\>5      rB " Sn So\>5      rC " Sp Sq\>5      rDSr rESs rF " St Su\?\B5      rG " Sv Sw\G5      rH " Sx Sy\?\B5      rI " Sz S{\I5      rJ " S| S}\?\B5      rK " S~ S\K5      rL " S S\?\B5      rM " S S\M5      rN " S S5      rO " S S\?\B5      rP " S S\P\O5      rQ " S S\A\D5      rR " S S\R\O5      rS " S S\?\B5      rT " S S\T5      rU " S S\?\@\B\C5      rV " S S\V5      rW " S S\A\D5      rX " S S\X5      rY " S S\?\B5      rZ " S S\Z5      r[ " S S\?\@5      r\ " S S\\5      r]\R                  R                  SS V s/ s H  n \	R                  U 5      PM     sn 5       " S S5      5       ra " S S\A\D5      rb " S S5      rc " S S\A\D5      rd " S S5      re " S S5      rf " S S\f5      rg " S S\f5      rh " S S\h\g5      ri " S S5      rj " S S\f5      rk " S S\f5      rl " S S\f5      rm " S S\i\k5      rn " S S\i\l5      ro " S S\i\m5      rp " S S5      rqS rr " S S5      rs " S S5      rtS ru\R                  R                  \+SS9S 5       rwS rx\R                  R                  \+SS9\R                  R                  S 5       5       rz " S S5      r{ " S S5      r| " S S5      r}S r~\R                  R                  SS9S 5       r\R                  GR                  \*(       + SS9S 5       rg! \- a     GNf = fs  sn f )z"Test functions for linalg module

    N)arraysingledoublecsinglecdoubledotidentitymatmul)swapaxes)multiply
atleast_2dinfasarray)linalg)matrix_powernormmatrix_rank	multi_dotLinAlgError)_multi_dot_matrix_chain_order)
assert_assert_equalassert_raisesassert_array_equalassert_almost_equalassert_allclosesuppress_warningsassert_raises_regexHAS_LAPACK64IS_WASMc                     [        U 5      [        U[        R                  5      (       a  [        U5      L $ [        R                  L $ N)type
isinstancenpndarray)outin_s     Q/var/www/html/venv/lib/python3.13/site-packages/numpy/linalg/tests/test_linalg.pyconsistent_subclassr*   !   s<     9jbjj&A&Ac * * jj* *    c                     [        U 5      R                  R                  [        [        4;   a  UnOUn[        X4SU0UD6  g )Ndecimal)r   dtyper#   r   r   old_assert_almost_equal)absingle_decimaldouble_decimalkwr-   s         r)   r   r   +   s;    qz 11  A8'8R8r+   c                 \    [         [         [        [        [        [         [        [        0U    $ r"   )r   r   r   r   r.   s    r)   get_real_dtyper7   3   s&    FFFVWf..35 5r+   c                 \    [         [        [        [        [        [        [        [        0U    $ r"   )r   r   r   r   r6   s    r)   get_complex_dtyper9   8   s&    GVWWgw0057 7r+   c                 &    U [         [        4;   a  gg)Ngh㈵>gdy=)r   r   r6   s    r)   get_rtolr;   =   s    !!r+   >   squarestrided	hermitian	nonsquaregeneralizedsize-0c                   6    \ rS rSr\" 5       4S jrS rS rSrg)
LinalgCaseL   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namer0   r1   	frozensettags)selfrG   r0   r1   rI   s        r)   __init__LinalgCase.__init__M   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
rI   N)r0   r1   rI   )rJ   dos     r)   checkLinalgCase.checkX   s     	466466		*r+   c                 "    SU R                    S3$ )Nz<LinalgCase: >)rG   rJ   s    r)   __repr__LinalgCase.__repr__^   s    tyyk++r+   )r0   r1   rG   rI   N)	__name__
__module____qualname____firstlineno__setrK   rP   rU   __static_attributes__ r+   r)   rC   rC   L   s    (+ 	$+,r+   rC   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_tagsrI   )tagcasescases      r)   	apply_tagrc   b   s6    
 (?)M)?II%	 Lr+     r<   r         ?       @      @      @r6   r   double_2)rf   re   rh   )rg   rh         @r         ?       @y       @      @y      @      @y      @      @       @      ?r   	cdouble_2)rl   rk   y      ?      @)y      ?       y      ?      y      ?      0x0r   r   r   rA   rN   8x8   1x1   nonarray         r?   single_nsq_1)re   rf   rg   single_nsq_2g      @rj   )rf   re   rg   double_nsq_1double_nsq_2csingle_nsq_1)      ?      ?       @       @      @      )y      @      y      @      "@y      @       @csingle_nsq_2r~   r   r   y      @      "y      @      y      @       @)rl   rk   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H  n[        UR                  [        R                  5      (       d  M/  [        R
                  " UR                  SUR                  -  SUR                  -  /5      nUR                  c  S 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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M     U $ )
Nrv   rw         _tile3r@   rN   rw   rv   _tile213)CASESr$   r0   r%   r&   r   r1   rC   rG   rI   appendreshapeshape)	new_casesrb   r0   r1   new_cases        r)   _make_generalized_casesr      ss   I$&&"**--HHdffa$&&j!dff*5666>A$&&!dff*a$&&j9:Adii(2A#'99#>@"HHdffX\A%&..v/DE66>A$&&A)*226DFFLL3HIAdii*4a#'99#>@") , r+   c              #     #    [        U [        R                  5      (       d  U S4v   gS/U R                  -  nSUS'   U R                  S:  a  SUS'   U R                  S:  a  S	US
'   [        R
                  " [        U5      6  GHe  n[        U R                  U5       VVs/ s H  u  p4[        X4-  5      PM     nnn[        U Vs/ s H  n[        SSU5      PM     sn5      n[        R                  " XPR                  S9nUR                  [        R                  5      R                  S5        X   nXS'   UR                  U R                   5      n[#        [        R$                  " X:H  5      5        USSR'                  U V	s/ s H  n	SU	-  PM
     sn	5      -   4v   U R                  S:  aZ  U R                  S   S:X  aG  [)        U R*                  5      n
SU
S'   [        R,                  R.                  R1                  X
S9nUS4v   U R                  S:  aZ  U R                  S   S:X  aG  [)        U R*                  5      n
SU
S'   [        R,                  R.                  R1                  X
S9nUS4v   U R                  S:  d  GM  U R                  SS S:X  d  GM  [)        U R*                  5      n
SU
S'   SU
S'   [        R,                  R.                  R1                  X
S9nUS4v   GMh     gs  snnf s  snf s  sn	f 7f)z4
Generate cartesian product of strides for all axes
nopNrt   )rt   rw   rt   rv   )rt   r   r6   l   >[= .stride__z%+dr   )stridesstride_xxx_0stride_xxx_0_xrt   rt   stride_xxx_0_0)r$   r%   r&   ndim	itertoolsproducttuplezipr   abssliceemptyr.   viewuint32fill	__class__r   alljoinlistr   libstride_tricks
as_strided)x
stride_setrepeatsr0   r1   	new_shaperepeatslicesxijss              r)   _stride_comb_iterr     sy    
 a$$h!&&JJrNvvz#
2vvz 
2$$eJ&78,/,AB,ADASZ,A	BHfdD&1HI XXiww/
		
+Z3WWQ[[!rw )chh7'C7a	7'CDDDD 66Q;1772;!+QYYAAbE%%000>Bn$$66Q;1772;!+QYYAAbE%%000>B&&&66Q;1773B<61QYYAAbEAbE%%000>B&&&; 9BH (Ds9   BK?!K/:K?K5
B(K?K:C.K?K?A"K?c            
         / n [          H  n[        UR                  5       Hc  u  p#[        UR                  5       HE  u  pE[	        UR
                  S-   U-   S-   U-   X$UR                  S1-  S9nU R                  U5        MG     Me     M     U $ )Nr   r=   rN   )r   r   r0   r1   rC   rG   rI   r   )r   rb   r0   a_labelr1   b_labelr   s          r)   _make_strided_casesr   D  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)LinalgTestCaseiU  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_CASESrI   rP   rO   	Exception	traceback
format_excAssertionError)rJ   requireexcluderb   emsgs         r)   check_casesLinalgTestCase.check_casesX  s    
 OODyy7"g-yy7"1

477# $  1&thd3y++--$S)q01s   A
B&+BBr]   N)	rW   rX   rY   rZ   r   r   r[   r   r\   r]   r+   r)   r   r   U  s    J"%% 1r+   r   c                        \ rS rSrS rS rSrg)LinalgSquareTestCaseil  c                 *    U R                  S1SS1S9  g )Nr<   r@   rA   r   r   r   rT   s    r)   test_sq_cases"LinalgSquareTestCase.test_sq_casesn  s!    ("/!: 	 	<r+   c                 *    U R                  SS1S1S9  g )Nr<   rA   r@   r   r   rT   s    r)   test_empty_sq_cases(LinalgSquareTestCase.test_empty_sq_casesr  s!    (H!5"/ 	 	2r+   r]   N)rW   rX   rY   rZ   r   r   r\   r]   r+   r)   r   r   l      <2r+   r   c                        \ rS rSrS rS rSrg)LinalgNonsquareTestCaseiw  c                 *    U R                  S1SS1S9  g )Nr?   r@   rA   r   r   rT   s    r)   test_nonsq_cases(LinalgNonsquareTestCase.test_nonsq_casesy  !    +"/!: 	 	<r+   c                 *    U R                  SS1S1S9  g )Nr?   rA   r@   r   r   rT   s    r)   test_empty_nonsq_cases.LinalgNonsquareTestCase.test_empty_nonsq_cases}  !    +x!8"/ 	 	2r+   r]   N)rW   rX   rY   rZ   r   r   r\   r]   r+   r)   r   r   w  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>   r@   rA   r   r   rT   s    r)   test_herm_cases!HermitianTestCase.test_herm_cases  r   r+   c                 *    U R                  SS1S1S9  g )Nr>   rA   r@   r   r   rT   s    r)   test_empty_herm_cases'HermitianTestCase.test_empty_herm_cases  r   r+   r]   N)rW   rX   rY   rZ   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 )Nr@   r<   rA   r   r   rT   s    r)   test_generalized_sq_cases9LinalgGeneralizedSquareTestCase.test_generalized_sq_cases  s!    -!:"* 	 	-r+   c                 &    U R                  1 SkS9  g )N>   r<   r@   rA   r   r   rT   s    r)   test_generalized_empty_sq_cases?LinalgGeneralizedSquareTestCase.test_generalized_empty_sq_cases  s    !DEr+   r]   N)
rW   rX   rY   rZ   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 )Nr@   r?   rA   r   r   rT   s    r)   test_generalized_nonsq_cases?LinalgGeneralizedNonsquareTestCase.test_generalized_nonsq_cases  !    -!="* 	 	-r+   c                 &    U R                  1 SkS9  g )N>   r?   r@   rA   r  r   rT   s    r)   "test_generalized_empty_nonsq_casesELinalgGeneralizedNonsquareTestCase.test_generalized_empty_nonsq_cases  s    !GHr+   r]   N)
rW   rX   rY   rZ   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 )Nr@   r>   rA   r   r   rT   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>   r@   rA   noner   r   rT   s    r)   !test_generalized_empty_herm_cases>HermitianGeneralizedTestCase.test_generalized_empty_herm_cases  s    !G"( 	 	+r+   r]   N)
rW   rX   rY   rZ   r  r  r  r  r  r\   r]   r+   r)   r  r    s<    [[- - [[+ +r+   r  c                    [        U 5      n U R                  S:  a  U R                  UR                  :X  a   U R                  S S UR                  SS  -   nO8U R                  UR                  S-   :X  a  U R                  S S nO[        S5      e[        R
                  " U[        R                  " X5      S9n[        R                  " [        [        U R                  S S 5      6  H  n[        X   X   5      X4'   M     U$ [        X5      $ )Nrw   r   rt   zNot implemented...r6   r   )r   r   r   
ValueErrorr%   r   common_typer   r   mapranger   )r0   r1   r   rcs        r)   dot_generalizedr     s    
Avv{66QVVqwwrs|3IVVqvvz!I122HHYbnnQ&:;""Cqwws|$<=AqtQT?AD >1y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      $ )Nrw   r6   r   .r   )r   r   r%   r   r   r.   r	   )r0   r  s     r)   identity_like_generalizedr"    s\    
Avv{HHQWWAGG,!''"+&#
##r+   c                       \ rS rSrS rSrg)
SolveCasesi  c                     [         R                  " X5      n[        U[        X5      5        [	        [        XB5      5        g r"   )r   solver   r   r   r*   )rJ   r0   r1   rI   r   s        r)   rO   SolveCases.do  s-    LLAq45#A)*r+   r]   NrW   rX   rY   rZ   rO   r\   r]   r+   r)   r$  r$    s    +r+   r$  c                   l    \ rS rSr\R
                  R                  S\\\	\
/5      S 5       rS rS rSrg)	TestSolvei  r.   c                     [         R                  " SS/SS//US9n[        [        R                  " X"5      R
                  U5        g Nrt         ?r6   )r%   r   r   r   r&  r.   rJ   r.   r   s      r)   
test_typesTestSolve.test_types  s8    HHq#ha)7V\\!'--u5r+   c           
          " S S[         R                  5      n[         R                  " S5      R                  SSS5      n[         R                  " S5      R                  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                  S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 2SS24   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]   NrW   rX   rY   rZ   r\   r]   r+   r)   ArraySubclassr3        r+   r5  rr   rv   r   rt   rw   r   )r%   r&   aranger   r   r   r&  r   r   r$   r   r   r  rJ   r5  r0   r1   expectedresults         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  A&++M:<<%a1f-a1Q3!na1Q3i86,
612IIaL  A&j&,,5j&,,!A!A?j&,,!QqS!A#+Br+   c                     " S S[         R                  5      n[         R                  " S5      R                  SSS5      n[         R                  " S5      R                  SSS5      R	                  U5      n[
        R                  " X#5      S S 2S S 2SS24   n[
        R                  " X#S S 2S S 2SS24   5      n[        XT5        [        [        XQ5      5        [
        R                  " X#5      S S 2SS2SS24   n[
        R                  " US S 2SS2SS24   US S 2SS2SS24   5      n[        XT5        [        [        XQ5      5        g )	Nc                       \ rS rSrSrg).TestSolve.test_0_size_k.<locals>.ArraySubclassi   r]   Nr4  r]   r+   r)   r5  r?     r6  r+   r5  rx   rt   rv   r   rw   r   )
r%   r&   r7  r   r   r   r&  r   r   r$   r8  s         r)   test_0_size_kTestSolve.test_0_size_k  s   	BJJ 	IIaL  Aq)IIaL  Aq)..}=<<%aAaCi0a1a19.6,
612 <<%a1ack2a1Q3!na1Q3!n=6,
612r+   r]   N)rW   rX   rY   rZ   r  r  parametrizer   r   r   r   r/  r;  r@  r\   r]   r+   r)   r*  r*    s;    [[Wvvw&HI6 J6CB3r+   r*  c                       \ rS rSrS rSrg)InvCasesi  c                     [         R                  " U5      n[        [        X5      [	        U5      5        [        [        XA5      5        g r"   )r   invr   r   r"  r   r*   )rJ   r0   r1   rI   a_invs        r)   rO   InvCases.do  s4    

1OA55a8	:#E-.r+   r]   Nr(  r]   r+   r)   rD  rD    s    /r+   rD  c                   f    \ rS rSr\R
                  R                  S\\\	\
/5      S 5       rS rSrg)TestInvi  r.   c                     [         R                  " SS/SS//US9n[        [        R                  " U5      R
                  U5        g r,  )r%   r   r   r   rF  r.   r.  s      r)   r/  TestInv.test_types  s7    HHq#ha)7VZZ]((%0r+   c                     " S S[         R                  5      n[         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      n[        UR                  R                  [         R                  L 5        [        UR                  UR                  5        [        [        X15      5        [         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      n[        UR                  R                  [         R                  L 5        [        UR                  UR                  5        [        [        X15      5        g )Nc                       \ rS rSrSrg)*TestInv.test_0_size.<locals>.ArraySubclassi"  r]   Nr4  r]   r+   r)   r5  rO  "  r6  r+   r5  r   rt   rt   r6   ro   )r%   r&   zerosint_r   r   rF  r   r.   r#   float64r   r   r$   	complex64rJ   r5  r0   ress       r)   r;  TestInv.test_0_size   s    	BJJ 	HHYbgg.33MBjjm		"**,-QWWcii(
3./HHV2<<055mDjjm		",,./QWWcii(
3./r+   r]   NrW   rX   rY   rZ   r  r  rB  r   r   r   r   r/  r;  r\   r]   r+   r)   rJ  rJ    s4    [[Wvvw&HI1 J10r+   rJ  c                       \ rS rSrS rSrg)EigvalsCasesi1  c                 v    [         R                  " U5      n[         R                  " U5      u  pV[        XE5        g r"   )r   eigvalseigr   )rJ   r0   r1   rI   evevaluesevectorss          r)   rO   EigvalsCases.do3  s(    ^^A"JJqMB(r+   r]   Nr(  r]   r+   r)   rZ  rZ  1  s    )r+   rZ  c                   f    \ rS rSr\R
                  R                  S\\\	\
/5      S 5       rS rSrg)TestEigvalsi9  r.   c                 *   [         R                  " SS/SS//US9n[        [        R                  " U5      R
                  U5        [         R                  " SS/SS//US9n[        [        R                  " U5      R
                  [        U5      5        g Nrt   r-  r6   r   )r%   r   r   r   r\  r.   r9   r.  s      r)   r/  TestEigvals.test_types:  st    HHq#ha)7V^^A&,,e4HHq#hQ(6V^^A&,,.?.FGr+   c                     " S S[         R                  5      n[         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      n[        UR                  R                  [         R                  L 5        [        SUR                  5        [        [        U[         R                  5      5        [         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      n[        UR                  R                  [         R                  L 5        [        SUR                  5        [        [        U[         R                  5      5        g )Nc                       \ rS rSrSrg).TestEigvals.test_0_size.<locals>.ArraySubclassiC  r]   Nr4  r]   r+   r)   r5  ri  C  r6  r+   r5  rP  r6   r   rt   ro   rp   )r%   r&   rQ  rR  r   r   r\  r   r.   r#   rS  r   r   r$   rT  rU  s       r)   r;  TestEigvals.test_0_sizeA  s    	BJJ 	HHYbgg.33MBnnQ		"**,-VSYY'
3

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

+,r+   r]   NrX  r]   r+   r)   rc  rc  9  s6    [[Wvvw&HIH JH-r+   rc  c                       \ rS rSrS rSrg)EigCasesiT  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   r]  eigenvalueseigenvectorsr   r   r%   r   r;   r.   r   r*   )rJ   r0   r1   rI   rV  rq  rr  s          r)   rO   EigCases.doV  st    jjm$'OOS5E5E\8

<02::k3J3PTVW<3XX%k&7&78	: 	#L45r+   r]   Nr(  r]   r+   r)   rm  rm  T  s    6r+   rm  c                   f    \ rS rSr\R
                  R                  S\\\	\
/5      S 5       rS rSrg)TestEigi_  r.   c                    [         R                  " SS/SS//US9n[         R                  R                  U5      u  p4[	        UR
                  U5        [	        UR
                  U5        [         R                  " SS/SS//US9n[         R                  R                  U5      u  p4[	        UR
                  [        U5      5        [	        UR
                  [        U5      5        g re  )r%   r   r   r]  r   r.   r9   rJ   r.   r   wvs        r)   r/  TestEig.test_types`  s    HHq#ha)7yy}}QQWWe$QWWe$HHq#hQ(6yy}}QQWW/67QWW/67r+   c                 :    " S S[         R                  5      n[         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      u  p4[        UR                  R                  [         R                  L 5        [        UR                  R                  [         R                  L 5        [        UR                  UR                  5        [        SUR                  5        [        [        U[         R                  5      5        [         R                  " S[         R                  S9R	                  U5      n[
        R                  " U5      u  p4[        UR                  R                  [         R                  L 5        [        UR                  R                  [         R                  L 5        [        UR                  UR                  5        [        SUR                  5        [        [        U[         R                  5      5        g )Nc                       \ rS rSrSrg)*TestEig.test_0_size.<locals>.ArraySubclassin  r]   Nr4  r]   r+   r)   r5  r}  n  r6  r+   r5  rP  r6   rj  ro   rp   )r%   r&   rQ  rR  r   r   r]  r   r.   r#   rS  r   r   r$   rT  rJ   r5  r0   rV  res_vs        r)   r;  TestEig.test_0_sizel  s<   	BJJ 	HHYbgg.33MBZZ]
  BJJ./		"**,-QWWekk*VSYY'
1bjj)*HHV2<<055mDZZ]
  BLL01		",,./QWWekk*T399%
1bjj)*r+   r]   NrX  r]   r+   r)   ru  ru  _  s4    [[Wvvw&HI	8 J	8+r+   ru  c                   d    \ rS rSrSr\R                  R                  S\\	\
\/5      S 5       rSrg)SVDBaseTestsi  Fr.   c                    [         R                  " SS/SS//US9n[        R                  " U5      nUR                  UR
                  UR                  pen[        UR                  U5        [        UR                  [        U5      5        [        UR                  U5        [        R                  " USU R                  S9n[        UR                  [        U5      5        g )Nrt   r-  r6   F
compute_uvr>   )r%   r   r   svdUSVhr   r.   r7   r>   )rJ   r.   r   rV  r  r  r  r   s           r)   r/  SVDBaseTests.test_types  s    HHq#ha)7jjm55#%%bQWWe$QWWnU34RXXu%JJqUdnnEQWWnU34r+   r]   N)rW   rX   rY   rZ   r>   r  r  rB  r   r   r   r   r/  r\   r]   r+   r)   r  r    s4    I[[Wvvw&HI5 J5r+   r  c                       \ rS rSrS rSrg)SVDCasesi  c                 f   [         R                  " US5      u  pEn[        U[        [        R
                  " U5      [        R
                  " U5      SS S S 24   -  [        R
                  " U5      5      [        UR                  5      S9  [        [        XA5      5        [        [        Xa5      5        g )NF.ro  )
r   r  r   r   r%   r   r;   r.   r   r*   )rJ   r0   r1   rI   ur   vts          r)   rO   SVDCases.do  s    ::a'b?2::a=2::a=dTU;V+V+-::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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 )rx   r   Tr  rx   rx   ro   rx   )r   rx   N)r%   r   r   r  r>   r   r   eye)rJ   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+   r]   N)rW   rX   rY   rZ   r  r\   r]   r+   r)   r  r    s    $r+   r  c                       \ rS rSrS rSrg)SVDHermitianCasesi  c                 R   [         R                  " USSS9u  pEn[        U[        [        R
                  " U5      [        R
                  " U5      SS S S 24   -  [        R
                  " U5      5      [        UR                  5      S9  S n[        [        R                  " XG" U5      5      [        R                  " [        R                  " UR                  S   5      UR                  5      5        [        [        R                  " Xg" U5      5      [        R                  " [        R                  " UR                  S   5      UR                  5      5        [        [        R                  " U5      SS S S24   U5        [        [!        XA5      5        [        [!        Xa5      5        g )NFTr>   .ro  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   r  r   r%   conj	transpose)matr  s     r)   r>   'SVDHermitianCases.do.<locals>.hermitian  sH    chh(D!%b48DHd2h772<<788r+   r   )r   r  r   r   r%   r   r;   r.   r   r
   broadcast_tor  r   r   sortr   r*   )rJ   r0   r1   rI   r  r   r  r>   s           r)   rO   SVDHermitianCases.do  s#   ::a$7b?2::a=2::a=dTU;V+V+-::b>;%agg.	0	9
 	BIIa16qwwWY{H[]^]d]d8efBIIb)B-8"//"&&QSQYQYZ\Q]J^`b`h`h:ijRWWQZTrT	*A.#A)*#B*+r+   r]   Nr(  r]   r+   r)   r  r    s    ,r+   r  c                       \ rS rSrSrSrg)TestSVDHermitiani  Tr]   N)rW   rX   rY   rZ   r>   r\   r]   r+   r)   r  r    s    Ir+   r  c                       \ rS rSrS rSrg)	CondCasesi  c           	         [        U5      nSU;   a   [        [        [        R                  U5        g [        R
                  " USS9n[        [        R                  " U5      US   US   -  SSS9  [        [        R                  " US	5      US   US   -  SSS9  [        [        R                  " US
5      US   US   -  SSS9  [        R                  R                  U5      n[        [        R                  " US5      [        U5      R                  S
5      R                  S5      [        U5      R                  S
5      R                  S5      -  SSS9  [        [        R                  " US5      [        U5      R                  S
5      R                  S5      [        U5      R                  S
5      R                  S5      -  SSS9  [        [        R                  " U[        R                  5      [        U5      R                  S5      R                  S5      [        U5      R                  S5      R                  S5      -  SSS9  [        [        R                  " U[        R                  * 5      [        U5      R                  S5      R                  S5      [        U5      R                  S5      R                  S5      -  SSS9  [        [        R                  " US5      [        R                  " [        U5      S	-  R                  S5      R                  S5      [        U5      S	-  R                  S5      R                  S5      -  5      SSS9  g )NrA   F)r  ).r   ).r   r   r   r2   r3   rv   r   rt   r   fro)r   r   r   r   condr  r   r%   rF  r   summaxminr   sqrt)rJ   r0   r1   rI   r  r   cinvs          r)   rO   CondCases.do  s   AJt+v{{A6 JJqU+KKNAfI'
2R	1 	KK1qy1W:5R	1 	KK2'
QvY 6R	1
 yy}}QKK1FJJrNr"SY]]2%6%:%:2%>>R	1 	KK2FJJrNr"SY]]2%6%:%:2%>>R	1 	KK266"FJJrNr"SY]]2%6%:%:2%>>R	1 	KKBFF7#FJJrNr"SY]]2%6%:%:2%>>R	1 	KK5!GGSVQYOOB'++B/4y!|((,0045 6R		1r+   r]   Nr(  r]   r+   r)   r  r    s    (1r+   r  c                   h    \ rS rSrS rS r\R                  R                  SSSS9S 5       r	S	 r
S
rg)TestCondi  c                    [        / SQ/ SQ/ SQ/5      n[        [        R                  " U[        5      S5        [        [        R                  " U[        * 5      S5        [        [        R                  " US5      S5        [        [        R                  " US5      S5        [        [        R                  " US	5      [
        R                  " S
5      5        g )N)re   r   rt   )r   g       r   )r   r   rg   rx   gUUUUUU?rt   r   r-  r  gUUUUU6@)r   r   r   r  r   r%   r  rJ   As     r)   test_basic_nonsvdTestCond.test_basic_nonsvd  s    :{J78FKK3/3FKKC40#6FKK1-q1FKK2.4FKK5127783DEr+   c                 X   [         R                  " S5      [         R                  " S5      /n/ SQnSS/n[        R                  " X5       H'  u  pE[        [        R                  " XE5      S:  5        M)     [        R                  " X5       H  u  pE[        R                  " XE5        M     g )Nrv   rv   Nrt   rv   r  r   r     4&kC)r%   rQ  onesr   r   r   r   r  )rJ   Asp_posp_negr  ps         r)   test_singularTestCond.test_singular  s     hhv0#R%%b0DA FKK%,- 1 %%b0DAKK 1r+   TFz/Platform/LAPACK-dependent failure, see gh-18914)runreasonc                    / SQn/ SQn[         R                  " S5      n[         R                  US'   U H[  n[        R                  " X45      n[        [        U[         R                  5      5        [        [         R                  " U5      5        M]     [         R                  " S5      n[         R                  US'   U H  n[        R                  " X45      n[        [         R                  " US   5      5        XB;   a$  [        US   S	:  5        [        US
   S	:  5        Md  [        [         R                  " US   5      (       + 5        [        [         R                  " US
   5      (       + 5        M     g )N)Nrt   r   rv   r   r  r  r  rj  )rw   rv   rv   rt   r   rt   rt   r   r  rv   )	r%   r  nanr   r  r   r$   float_isnan)rJ   psr  r  r  r  s         r)   test_nanTestCond.test_nan
  s    
 )#GGFO#AA!AJq")),-BHHQK  
 GGI66%AA!ABHHQqTN#z!t$!t$BHHQqTN*+BHHQqTN*+ r+   c                    [         R                  R                  S5        [         R                  R                  SSSS5      nSUS'   SUS'   S H  n[        R
                  " X5      n[        US   [         R                  5        [        US   [         R                  5        [        [         R                  " US   5      5        [        [         R                  " US   5      5        M     g )	Nrd   rv   r   ro   r   )Nrt   rv   r  r   r   rj  rt   r   )
r%   randomseedrandr   r  r   r   r   isfinite)rJ   r  r  r  s       r)   test_stacked_singularTestCond.test_stacked_singular%  s     			tIINN1aA&##,AA!A3(3(BKK#'(BKK#'( -r+   r]   N)rW   rX   rY   rZ   r  r  r  r  xfailr  r  r\   r]   r+   r)   r  r    sC    F [[t-  .,.,0)r+   r  c                       \ rS rSrS rSrg)	PinvCasesi5  c                     [         R                  " U5      n[        n[        U" U" X5      U5      USSS9  [	        [        XA5      5        g )Nr   r   r  r   pinvr   r   r   r*   rJ   r0   r1   rI   a_ginvr   s         r)   rO   PinvCases.do:  s<    QCA2AaXZ[#F./r+   r]   Nr(  r]   r+   r)   r  r  5  s    
0r+   r  c                       \ rS rSrSrg)TestPinviB  r]   Nr4  r]   r+   r)   r  r  B      r+   r  c                       \ rS rSrS rSrg)PinvHermitianCasesiF  c                     [         R                  " USS9n[        n[        U" U" X5      U5      USSS9  [	        [        XA5      5        g )NTr  r   r   r  r  r  s         r)   rO   PinvHermitianCases.doH  s?    Q$/CA2AaXZ[#F./r+   r]   Nr(  r]   r+   r)   r  r  F  s    0r+   r  c                       \ rS rSrSrg)TestPinvHermitianiP  r]   Nr4  r]   r+   r)   r  r  P  r  r+   r  c                       \ rS rSrS rSrg)DetCasesiT  c                    [         R                  " U5      n[         R                  " U5      nUR                  UR                  pv[        U5      R                  R                  [        [        4;   a  [        U5      R                  [        5      nO[        U5      R                  [        5      n[         R                  " U5      n	[        U[        R                  " U	SS95        [        U[         R"                  " U5      -  [        R                  " U	SS95        [         R$                  " U5      n[         R$                  " U5      nUS:g  n
[        [         R&                  " Xj   5      S5        [)        Xz)    [*        * 5        g )Nr   axisr   rt   )r   detslogdetsign	logabsdetr   r.   r#   r   r   astyper   r\  r   r   reducer%   exp
atleast_1dr   r   r   )rJ   r0   r1   rI   drV  r   ldadr^  ms              r)   rO   DetCases.doV  s    JJqMnnQ#--21:  VV$44""6*B""7+B^^BAxr;<Ar
NHOOBR,HIMM!]]2!VBFF14L!,RVcT"r+   r]   Nr(  r]   r+   r)   r  r  T  s    #r+   r  c                   l    \ rS rSrS r\R                  R                  S\\	\
\/5      S 5       rS rSrg)TestDetii  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   rt   )r   r   r  r#   r   r   r  r   rT   s    r)   	test_zeroTestDet.test_zeroj  s&   VZZ#(#.T&**seW-.7VZZ$)3/T&**tfX./9V^^cUG,sSDk:T&..3%1!45v>T&..3%1!45v>V^^dVH-sd|<T&..4&2156@T&..4&2156?r+   r.   c                 L   [         R                  " SS/SS//US9n[        [         R                  R	                  U5      R
                  U5        [         R                  R                  U5      u  p4[        UR
                  [        U5      5        [        UR
                  U5        g r,  )r%   r   r   r   r  r.   r  r7   )rJ   r.   r   phr   s        r)   r/  TestDet.test_typesw  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 )Nro   r6   re   r  r   rt   )r%   rQ  rT  r   r  r   r   r.   r#   r  float32rS  )rJ   r0   rV  s      r)   r;  TestDet.test_0_size  s6   HHV2<<0jjmS"		",,./nnQS&!A!!R\\12A!!RZZ/0HHV2::.jjmS"		"**,-nnQS&!A!!RZZ/0A!!RZZ/0r+   r]   N)rW   rX   rY   rZ   r  r  r  rB  r   r   r   r   r/  r;  r\   r]   r+   r)   r  r  i  s<    @ [[Wvvw&HI& J&1r+   r  c                       \ rS rSrS rSrg)
LstsqCasesi  c                     [         R                  " U5      nUR                  u  pV[        R                  " US5      u  pxn	[        R
                  " XSS9u  ppUS:X  a  [        U
S:H  R                  5       5        XV::  a!  [        U[        X5      5        [        X5        O[        X5        [        XR                  U5      5        X:X  a  XV:  a  [         R                  " [        [         R                  " X5      U-
  5      5      S-  R                  SS9n[         R                  " U5      n[         R                  " U5      R                  S:X  a'  SUl        [        UR                  UR                  5        O.[         R                  " / 5      R!                  [#        U
5      5      n[        X5        [        [         R$                  " UR&                  [         R(                  5      5        [        [+        X5      5        [        [+        X5      5        g )	NFr   rcondr   rv   r  rt   r   )r%   r   r   r   r  lstsqr   r   r   r   r   __array_wrap__r   r  r   r   r   r#   
issubdtyper.   floatingr*   )rJ   r0   r1   rI   arrr  nr  r   r  r   	residualsranksvexpect_residss                  r)   rO   LstsqCases.do  si   jjmyy::a'b!'a"!=d6Q!VLLN#63q9-!!B 1 1! 459

3rvva|a/01Q6 JJ}5Mzz!}!!Q&&*#Y__m.A.ABHHRL--d1g6MI5ioor{{;<#A)*#I12r+   r]   Nr(  r]   r+   r)   r
  r
    s    3r+   r
  c                   l    \ rS rSrS r\R                  R                  / SQ/ SQ5      S 5       rS r	Sr
g)		TestLstsqi  c                    [         R                  " / SQ/ SQ/ SQ/ SQ/5      R                  n[         R                  " / SQ5      n[        5        nUR	                  [
        S5      n[        R                  " X5      u  pVpx[        US:H  5        [        R                  " XSS	9u  pVpx[        US:H  5        [        R                  " XS S	9u  pVpx[        US
:H  5        [        [        U5      S:H  5        S S S 5        g ! , (       d  f       g = f)N)r   re   r   re   rf   r   )r   rf   r   r   re   r   )re   r   re   r   r   rh   )r   r   r   rf   rg   r   )rt   r   r   r   r   r   z`rcond` parameter will changerx   r   r  rw   rt   )
r%   r   Tr   recordFutureWarningr   r  r   len)	rJ   r0   r1   suprx  r   r  r  r   s	            r)   test_future_rcondTestLstsq.test_future_rcond  s    HH22224 5 67Q 	

 HH'( C

=*IJA$*LL$6!A$DAI$*LLR$@!A$DAI$*LLT$B!A$DAICFaK  !  s   B!C99
D)r  r  n_rhs))rx   rv   rv   )r   rx   rt   )r   rx   rv   )rx   r   rt   )rx   r   rv   )rx   rv   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   rp   r   r  )r%   r7  r   r  r   r  r   r   r   r   r   r   r  r  )rJ   r  r  r#  r0   r1   r   r  r  r   r  s              r)   test_empty_a_bTestLstsq.test_empty_a_b  s     IIae$$Q*GGQJ &Q >d6Q!VLLN#QWWqj)Y__15xdD5UQYBFF1L A	E;;B;+?@T3q9%QWWs1yl+r+   c                 `   [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " U[         R                  " [	        U5      5      /5      R
                  n[        [        S5         [        R                  " X2S S9  S S S 5        g ! , (       d  f       g = f)N)r   rt   rv   rw   )r   g?g?g @gffffff
@zIncompatible dimensionsr  )
r%   r   vstackr  r  r  r   r   r   r  )rJ   r   yr  s       r)   test_incompatible_dims TestLstsq.test_incompatible_dims  sj    HH\"HH-.IIq"''#a&/*+-- .GHLLT* IHHs    B
B-r]   N)rW   rX   rY   rZ   r!  r  r  rB  r%  r*  r\   r]   r+   r)   r  r    s7    !$ [[0 3 ,,+r+   r  dtz?bBhHiIqQefdgFDGOc                      \ rS rSr\R
                  " S5      r\/ SQ   r\/ SQ   r\/ SQ   r	\\\\	/r
\" SS/SS//5      r\R                  " \///S-  5      r\\R                   " S	5      \R                   " S
5      \R                   " S5      /rS rS rS rS rS rS rS r\R4                  R7                  \SS9S 5       rSrg)TestMatrixPoweri  rx   )rw   r   rt   rv   )rv   rw   r   rt   )rt   rv   rw   r   rt   r   rv   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 )Nrv   d   i       r   rt   rw   )rshft_1r  r   r   rshft_0rshft_2rshft_3)rJ   r,  rshfts      r)   test_large_power TestMatrixPower.test_large_power  s    ##B'3 5 9:DLL	J3 5 9:DLL	J3 5 9:DLL	J3 5 9:DLL	Jr+   c                     S nU R                    HG  nU" UR                  U5      5        U[        :w  d  M&  U" U R                  R                  U5      5        MI     g )Nc                     [        U S5      n[        U[        U 5      5        [        UR                  U R                  5        g )Nr   )r   r   r"  r.   )Mmzs     r)   tz.TestMatrixPower.test_power_is_zero.<locals>.tz  s0    a#B6q9:177+r+   	rshft_allr  objectstackedrJ   r,  r?  r  s       r)   test_power_is_zero"TestMatrixPower.test_power_is_zero  sE    	,
 >>Cszz"~V|4<<&&r*+ "r+   c                     S nU R                    HG  nU" UR                  U5      5        U[        :w  d  M&  U" U R                  R                  U5      5        MI     g )Nc                 r    [        U S5      n[        X5        [        UR                  U R                  5        g )Nrt   )r   r   r.   )r  r>  s     r)   r?  -TestMatrixPower.test_power_is_one.<locals>.tz	  s(    c1%B!399-r+   rA  rE  s       r)   test_power_is_one!TestMatrixPower.test_power_is_one  sE    	.
 >>Cszz"~V|4<<&&r*+ "r+   c                     S nU R                    HG  nU" UR                  U5      5        U[        :w  d  M&  U" U R                  R                  U5      5        MI     g )Nc                     [        U S5      nU R                  [        :w  a  [        O[        n[        X" X 5      5        [        UR                  U R                  5        g )Nrv   )r   r.   rC  r
   r   r   )r  r>  mmuls      r)   r?  -TestMatrixPower.test_power_is_two.<locals>.tz  s@    c1%B YY&06cDT#^,399-r+   rA  rE  s       r)   test_power_is_two!TestMatrixPower.test_power_is_two  sE    	. >>Cszz"~V|4<<&&r*+ "r+   c                     S nU R                    H+  nXR                  ;  d  M  U" UR                  U5      5        M-     g )Nc                     [        U S5      nU R                  [        :w  a  [        O[        n[        U" X5      [        U 5      5        g Nr   )r   r.   rC  r
   r   r   r"  )r  invmatrO  s      r)   r?  3TestMatrixPower.test_power_is_minus_one.<locals>.tz   s9    !#r*F YY&06cDV!#<S#ACr+   )rB  dtnoinvr  rE  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      ?rt   )r5  r  r   	TypeErrorr   rJ   r,  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 )Nrt   rv   )rx   rw   rv   )r   r   r   r%   r   r  )rJ   r,  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 rU  )rX  noninvr  r   r   r   r]  s      r)   test_exceptions_not_invertible.TestMatrixPower.test_exceptions_not_invertible4  s1    kk  $k<b9r+   r]   N)rW   rX   rY   rZ   r%   r  r5  r4  r6  r7  rB  r   rf  blockrD  rC  r.   rX  r9  rF  rK  rQ  rY  r^  ra  r  r  skipifr    rg  r\   r]   r+   r)   r.  r.    s     ffQiGl#Gl#Gl#G'7G4IQFQF#$Fhh'}Q'Grxx}bhhsmRXXc]CG	J	,	,
,	#9
L
 [[(FG: H:r+   r.  c                       \ rS rSrS rSrg)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  ro  r  )r   eigvalshr]  r  r   r;   r.   )rJ   r0   r1   rI   r^  r_  r`  ev2s           r)   rO   TestEigvalshCases.do>  sh     __Q$"JJqM"(288*<=ooa%8BHH+=>r+   r]   Nr(  r]   r+   r)   rl  rl  <  s    	?r+   rl  c                   r    \ rS rSr\R
                  R                  S\\\	\
/5      S 5       rS rS rS rSrg)	TestEigvalshiJ  r.   c                     [         R                  " SS/SS//US9n[         R                  R                  U5      n[	        UR
                  [        U5      5        g r,  )r%   r   r   ro  r   r.   r7   )rJ   r.   r   rx  s       r)   r/  TestEigvalsh.test_typesK  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 Nrt   r-  r6   lrongUPLOlowerupper)r%   r   r  r   r  r   ro  rJ   r   s     r)   test_invalidTestEigvalsh.test_invalidQ  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   rt   r6   r   ro  rn  ry  lr  r  )r%   r   r   r;   r   ro  r   )rJ   KloKuptgtrp  rx  s         r)   	test_UPLOTestEigvalsh.test_UPLOW  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>.ArraySubclassio  r]   Nr4  r]   r+   r)   r5  r  o  r6  r+   r5  rP  r6   rj  ro   rp   )r%   r&   rQ  rR  r   r   ro  r   r.   r#   rS  r   r   r$   rT  r  rU  s       r)   r;  TestEigvalsh.test_0_sizem  s    	BJJ 	HHYbgg.33MBooa 		"**,-VSYY'
3

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

+,r+   r]   NrW   rX   rY   rZ   r  r  rB  r   r   r   r   r/  r~  r  r;  r\   r]   r+   r)   rs  rs  J  s?    [[Wvvw&HI5 J5
B+,-r+   rs  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  .ro  r  )rp  err_msg)r   eighrq  rr  r]  r  r   r   r   r%   r   r;   r.   repr)rJ   r0   r1   rI   rV  r^  evcr_  r`  rp  evc2s              r)   rO   TestEighCases.do  s     kk!n//3#3#3C"JJqM"B(/

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

3T15

48HH%bhh/a	Br+   r]   Nr(  r]   r+   r)   r  r    s    Br+   r  c                   r    \ rS rSr\R
                  R                  S\\\	\
/5      S 5       rS rS rS rSrg)	TestEighi  r.   c                     [         R                  " SS/SS//US9n[         R                  R                  U5      u  p4[	        UR
                  [        U5      5        [	        UR
                  U5        g r,  )r%   r   r   r  r   r.   r7   rw  s        r)   r/  TestEigh.test_types  sT    HHq#ha)7yy~~a QWWnU34QWWe$r+   c                 N   [         R                  " SS/SS//[         R                  S9n[        [        [         R
                  R                  USS9  [        [        [         R
                  R                  US5        [        [        [         R
                  R                  US5        g rw  )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   )rJ   r  r  r  rp  rx  ry  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]   Nr4  r]   r+   r)   r5  r    r6  r+   r5  rP  r6   rj  ro   rp   )r%   r&   rQ  rR  r   r   r  r   r.   r#   rS  r   r   r$   rT  r  r~  s        r)   r;  TestEigh.test_0_size  s<   	BJJ 	HHYbgg.33MB[[^
  BJJ./		"**,-QWWekk*VSYY'
1bjj)*HHV2<<055mD[[^
  BLL01		"**,-QWWekk*T399%
1bjj)*r+   r]   Nr  r]   r+   r)   r  r    s>    [[Wvvw&HI% J%>+,+r+   r  c                   ,    \ rS rSrSrSr\S 5       rSrg)_TestNormBaserd   Nc                 .   [        U R                  R                  [        R                  5      (       a+  [        UR                  U R                  R                  5        g [        [        UR                  R                  [        R                  5      5        g r"   )	
issubclassr.   r#   r%   inexactr   realr   r  )r   rV  s     r)   check_dtype_TestNormBase.check_dtype  sN    aggllBJJ//AFFLL1 Jsyy~~r{{;<r+   r]   )	rW   rX   rY   rZ   r,  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   r6   )r   r   r   r,  r   rT   s    r)   
test_empty_TestNormGeneral.test_empty  sI    T"Xs#T%$''23S9T*U2TWW%=>?Er+   c                 ~   [         R                  " / SQ5      n[         R                  S   n[         R                  S   nX#-   nU GH  nUR                  U5      n[	        U[         R
                  * 5      nU R                  Xg5        [        US5        [        5        nUR                  [        S5        [	        US5      nU R                  Xg5        [        US5        S S S 5        [	        US5      nU R                  Xg5        [        US5        [	        US	5      nU R                  Xg5        [        US
5        [	        US5      nU R                  Xg5        [        XwR                  R                  S
5      UR                  R                  S5      -  5        [	        US5      nU R                  Xg5        [        XwR                  R                  S
5      UR                  R                  S5      -  5        [	        U[         R
                  5      nU R                  Xg5        [        US5        GM     g ! , (       d  f       GNX= f)Nr  
AllIntegerAllFloatr   divide by zero encounteredr   r   rv   rt   rf   r-  rx   g      ?re   )r%   r   	typecodesr  r   r   r  r   r   filterRuntimeWarningr.   r#   	rJ   r0   exact_typesinexact_types	all_types	each_typeatanr   s	            r)   test_vector_return_type(_TestNormGeneral.test_vector_return_type  s   HHYll<0Z0/	"I)$Bb266'"BR$C("$

>+GH"b\  (#B,	 % b!BR$A&b!BR$C(b!BR$HHMM#$6g8N$NOb!BR$HHMM#$6g8N$NOb"&&!BR$C(? # %$s   A H--
H<	c                    ^  / SQn/ SQn/ SQnU 4S jnXU4 H  nU" U5        M     [        UT R                  S9[        UT R                  S9[        UT R                  S94 H  nU" U5        M     g )N)rt   rv   rw   rx   )r   r   r   r   )r   rv   r   rx   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-   rh   re   rt         $@r   gQ?rv   r   gsc?r   rx   )r%   testingr   r   r  r   )ry  rJ   s    r)   _test+_TestNormGeneral.test_vector.<locals>._test  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+   r6   )r   r,  )rJ   r0   r1   r  r  ry  s   `     r)   test_vector_TestNormGeneral.test_vector  sl    	=$ A!H  )5$''+B)+A!H+r+   c                    [        / SQ/ SQ/U R                  S9nS SSSSS[        R                  [        R                  * 4 H  n[	        UR
                  S   5       Vs/ s H  n[        US S 2U4   US	9PM     nn[        [        XSS
9U5        [	        UR
                  S   5       Vs/ s H  n[        XS S 24   US	9PM     nn[        [        XSS
9U5        M     [        R                  " SSU R                  S9R                  SSS5      nUR                  nS SSSS[        R                  [        R                  * S4 GH  n[        R                  " [	        U* U5      S5       H  nUu  pU	S:  a  X-  n	U
S:  a  X-  n
X:X  a  [        [        [        XbUS
9  M6  [        XbUS
9nXyU
-   -
  nX:  aA  [	        UR
                  U   5       Vs/ s H  n[        US S  R                  X<S9US	9PM     nnOJ[	        UR
                  U   5       Vs/ s H'  n[        US S  R                  X<S9R                   US	9PM)     nn[        X5        M     GM     g s  snf s  snf s  snf s  snf )Nrt   rv   rw   rx   r   r   r6   r   r   rt   rv   rw   ordr  r     rx   r   r  r  )r   r,  r%   Infr  r   r   r   r7  r   r   r   combinationsr   r  taker  )rJ   r  orderk	expected0	expected1Bndr  row_axiscol_axisr  k_indexr9  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 )Nrt   r  r6   rv   rw   rx   zorder {0}, axis = {1}z;Shape mismatch found {0}, expected {1}, order={2}, axis={3}r  T)r  r  keepdims)r  )rt   rt   rt   r   r   r   r  nuc)r%   r7  r,  r   r   r   squeezeformatr   r   r  r  r   r   r   r   permutations)	rJ   r  allclose_err	shape_errr9  foundexpected_shaper  r  s	            r)   test_keepdims_TestNormGeneral.test_keepdimsR  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)
rW   rX   rY   rZ   r  r  r  r  r  r\   r]   r+   r)   r  r    s    F
')R<#5J(Qr+   r  c                   J    \ rS rSr\R
                  rS rS rS rS r	S r
Srg)	_TestNorm2Di}  c           	      `    [        [        U R                  / /U R                  S95      S5        g )Nr6   r   )r   r   r   r,  rT   s    r)   test_matrix_empty_TestNorm2D.test_matrix_empty  s$    T$**bT*9:C@r+   c                    U R                  / SQ/ SQ/5      n[        R                  S   nSnX#-   nU GH  nUR                  U5      n[	        U[        R
                  * 5      nU R                  Xg5        [        US5        [        5        nUR                  [        S5        [	        US5      nU R                  Xg5        [        US5        S S S 5        [	        US	5      nU R                  Xg5        [        US5        [	        US
5      nU R                  Xg5        [        US5        [	        US5      nU R                  Xg5        [        US5        [	        U[        R
                  5      nU R                  Xg5        [        US5        [	        US5      nU R                  Xg5        [        US5        [	        US5      nU R                  Xg5        [        R                  R                  USSS9  GM     g ! , (       d  f       GN,= f)Nr  rP  r  fdFDrf   r  r   re   rt   rv   gLXz?r   r  r  gU&,t=@r   r  )r   r%   r  r  r   r   r  r   r   r  r  r  r  s	            r)   test_matrix_return_type#_TestNorm2D.test_matrix_return_type  s   JJ	9-.ll<0
 /	"I)$Bb266'"BR$C("$

>+GH"b\  (#B,	 % b!BR$C(b!BR$N3b"BR$C(b"&&!BR$C(b%BR$C(b%BR$ JJ**2/A1*MK # %$s   
A G//
G>	c                 d   U R                  SS/SS//U R                  S9n[        [        U5      S5        [        [        US5      S5        [        [        US5      S	5        [        [        U[        5      S
5        [        [        U[        * 5      S5        [        [        US5      S	5        [        [        US5      S5        [        [        US5      S5        [        [        US5      S5        [        [        [        US5        [        [        [        US5        [        [        [        US5        g )Nrt   rw   r   r   r6   gT"@r  r  r  g      (@rh   r   rj   rv   gW?"@r   gїʄ?nofror   r   )r   r,  r   r   r   r   r  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   )rw   rv   rt   r6   grj=Q0?r  r  gB+pc?g?g333333?rt   re   r   g?rv   g&.d?r   gܸՠ?)r   r,  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     [        [        R                  [        US S5        [        [        R                  [        US S5        [        [        [        US S5        g )Nr  r  r6   rt   r  rv   rw   rx   r  r   r  testr   rw   rj  )rt   rv   rv   rw   )r   rt   rv   )	r   r,  r%   r7  r   r   r  r   	AxisError)rJ   r  r  r  s       r)   test_bad_args_TestNorm2D.test_bad_args  s    JJ	9-TWWJ=IIa477+33Aq!<
 	j$5!4j$5!4j$At<j$At<j$A= E*dAd;*dAf=*dAf=  	bllD!T15bllD!T6:j$4;r+   r]   N)rW   rX   rY   rZ   r%   r   r  r  r  r  r   r\   r]   r+   r)   r  r  }  s)     HHEA1Nf. >"<r+   r  c                       \ rS rSrSrg)	_TestNormi  r]   Nr4  r]   r+   r)   r  r    r  r+   r  c                   &    \ rS rSrS rS rS rSrg)TestNorm_NonSystematici  c                 p    [         R                  " S[         R                  S9n[        [	        USS9SSS9  g )N
   r6   rw   r  gL)@rv   r  )r%   r7  
longdoubler/   r   r}  s     r)   test_longdouble_norm+TestNorm_NonSystematic.test_longdouble_norm  s*     IIb.QAqAr+   c                 r    [         R                  " S/[         R                  S9n[        [	        USS9SSS9  g )Ni   r6   rw   r  l        r   r  )r%   r   int32r/   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rv   r6   y      @      @r   y            @rt   gV;'@rw   r  r  r  	   r   )	r%   r   clongdoubler/   r   r   r  
complex128rT  )rJ   r  rV  s      r)   test_complex_high_ord,TestNorm_NonSystematic.test_complex_high_ord  s    HHT0!!		qa 8#rJHHR]]#		qa 8#qIHHR\\"		qa 8#qIr+   r]   N)rW   rX   rY   rZ   r	  r  r  r\   r]   r+   r)   r  r    s    BD
Jr+   r  c                   0    \ rS rSr\R
                  rSrSrg)_TestNormDoubleBasei     r]   N)	rW   rX   rY   rZ   r%   r   r,  r  r\   r]   r+   r)   r  r    s    	B
Cr+   r  c                   0    \ rS rSr\R
                  rSrSrg)_TestNormSingleBasei  r   r]   N)	rW   rX   rY   rZ   r%   r  r,  r  r\   r]   r+   r)   r  r    s    	B
Cr+   r  c                   0    \ rS rSr\R
                  rSrSrg)_TestNormInt64Basei  r  r]   N)	rW   rX   rY   rZ   r%   int64r,  r  r\   r]   r+   r)   r  r    s    	B
Cr+   r  c                       \ rS rSrSrg)TestNormDoublei$  r]   Nr4  r]   r+   r)   r  r  $  r  r+   r  c                       \ rS rSrSrg)TestNormSinglei(  r]   Nr4  r]   r+   r)   r!  r!  (  r  r+   r!  c                       \ rS rSrSrg)TestNormInt64i,  r]   Nr4  r]   r+   r)   r#  r#  ,  r  r+   r#  c                        \ rS rSrS rS rSrg)TestMatrixRanki0  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        g )Nrx   r   r   r   rw   r  r   )rt   r   r   r   rt   )rx   )rw   rx   r   )r   r   r%   r  rQ  r   )rJ   Imss      r)   test_matrix_rankTestMatrixRank.test_matrix_rank2  s    QBFF1I./FF1I&	[^Q'[&!12A6[.2[$0!4[!%q)XXq"&&)RXXe_56[_bhhy&9:[^Q'r+   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 )Nrx   Tr  rt   r  r   r   r'  rw   g:0yE>g|"BE>)r>   tolg;䡈E>)r   r   r%   r  r  rQ  )rJ   r(  s     r)   test_symmetric_rank"TestMatrixRank.test_symmetric_rankF  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)rW   rX   rY   rZ   r*  r.  r\   r]   r+   r)   r%  r%  0  s    ((Er+   r%  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r2  )(   r  sizert   rv   r   r  rx   r   rw   rr   )r%   r  RandomStater  normalr   r   )rngiXs      r)   test_reduced_rankr9  T  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)TestQRia  c                    [        U5      nUR                  nUR                  u  pE[        XE5      n[        R
                  " USS9nUR                  UR                  p[        UR                  U:H  5        [        U	R                  U:H  5        [        [        X5      5        [        [        X5      5        [        UR                  XD4:H  5        [        U	R                  XE4:H  5        [        [        X5      U5        [        [        UR                  R                  5       U5      [        R                  " U5      5        [        [        R                   " U	5      U	5        [        R
                  " USS9u  p[        U
R                  U:H  5        [        UR                  U:H  5        [        [        X5      5        [        [        X5      5        [        U
R                  XF4:H  5        [        UR                  Xe4:H  5        [        [        X5      U5        [        [        U
R                  R                  5       U
5      [        R                  " U5      5        [        [        R                   " U5      U5        [        R
                  " USS9n[        UR                  U:H  5        [        [        X5      5        [        X5        g )Ncompletemodereducedr  )r#   r.   r   r  r   qrQRr   r$   r   r   r  r  r%   r  triu)rJ   r0   a_typea_dtyper  r  r  rV  rB  rC  q1r1r2s                r)   check_qrTestQR.check_qre  s    a''wwI ii
+uucee17"#7"#
1%&
1%&A6!"A6!"CIq)C
A.q	:BGGAJ* 19-G#$G#$
2&'
2&'QF"#QF"#CK+C		R0"&&)<BGGBK, YYqs#G#$
2&'B#r+   r  r  )rw   r   r  ro   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   rJ  r   rA  r   r.   r   r   )rJ   r  r  r  r0   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 )Nrt   rv   rw   rx   r   r   r6   rN  r>  r  r  r   )	r   r%   r   r   rA  r   r.   r   r  )rJ   r0   rO  rP  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 )	Nrt   rv   rw   rx   r   r   fd              ?)r   r  rJ  r  )rJ   r0   r1   r,  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   rv   .r@  r  )r#   r.   r   r  r   rA  r   r$   r   r
   r%   r	   r  r   r  rD  )rJ   r0   rE  rF  r  r  r  qr  I_matstack_I_matrG  rH  rI  s                 r)   check_qr_stackedTestQR.check_qr_stacked  s    a''wwrs|I yy,7"#7"#
1%&
1%&&'&'F1L!,AGGBK(ooe~a'779F8Ar2#6#;#;#=qA;OBGGAc1aiL115 19-G#$G#$
2&'
2&'!'(!'(F2NA.BHHRL)ooe""(99;F8BB#7#<#<#>C'	)BGGBsAqyM2B7 YYqs#G#$
2&'B#r+   r3  ))rw   rx   )rx   rw   r  rL  r  
outer_size)r  r  )rv   rw   rx   r,  c                    [         R                  R                  X-   S9R                  U5      n[         R                  R                  X-   S9R                  U5      nU R	                  U5        U R	                  USU-  -   5        g )Nr2  rX  )r%   r  r5  r  ra  )rJ   rc  r3  r,  r  r  s         r)   test_stacked_inputsTestQR.test_stacked_inputs  sr     II*"34;;B?II*"34;;B?a a#a%i(r+   r]   N)rW   rX   rY   rZ   r%   r   rJ  r  r  rB  rQ  rT  r[  ra  r   r   r   r   re  r\   r]   r+   r)   r;  r;  a  s    HHE%$P [[c3Z * 

&

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


BJJ$  !)!")r+   r;  c                       \ rS rSr\R
                  R                  S/ SQ5      \R
                  R                  S\R                  \R                  \R                  \R                  45      S 5       5       rS rSrg)	TestCholeskyi  r   )r   r  rw   rw   )2   rj  )rw   r  r  r.   c                 ~   [         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                  " X2S9n[         R                  R                  U5      n[         R                  " XUR                  U5      R                  5       5      n[         R                  " 5          SUR                   S   -  [         R"                  " U5      R$                  -  nS S S 5        ['        XcWU SU S	U S	U 3S
9  g ! , (       d  f       N%= f)Nrt   rX  )r   r   r   r6   i  r    
)atolr  )r%   r  r  randnr  complexfloatingr   r  r  r
   r  r  r   r   cholesky_no_nep50_warningr   finfoepsr   )rJ   r   r.   r0   tr  r1   rn  s           r)   test_basic_property TestCholesky.test_basic_property  s;    			qIIOOU#== 2 233Bryy...As5z"#"#IIakk!n))+Q/JJq&IIq!IIaQ,,./!!##bhhuo&9&99D $4E7!E7"QCr!1MN $#s   4F..
F<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]   Nr4  r]   r+   r)   r5  rz     r6  r+   r5  rP  r6   )rt   r   r   )r%   r&   rQ  rR  r   r   rq  r   r   r   r.   r#   rS  r$   rT  rU  s       r)   r;  TestCholesky.test_0_size  s    	BJJ 	HHYbgg.33MBooa QWWcii(		"**,-
3

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

+,r+   r]   N)rW   rX   rY   rZ   r  r  rB  r%   r  rS  rT  r  rv  r;  r\   r]   r+   r)   rh  rh    si     [[@ [["**bjj",,FOO(-r+   rh  c                     [         R                  S:X  a  Sn OSn [        R                  [        R                  4 H  n[        R
                  " SUS9nUR                  U 5      nUR                  S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<rS   rx   r6   r  =)sys	byteorderr%   r  rS  r  newbyteorderbyteswapr   r.   r   rF  r  r  r   )nativedttr  n_arrsw_arrroutinerV  s          r)   test_byteorder_checkr  0  s    
}} 

BJJ'ffQc"  (!!#&//1SYY((#.

FJJ<G#,CsGEN3sGFO4 = (r+   rc  rd  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 )Nrt   rv   rw   rx   )rx   rx   rv   rv   .ro   )r%   r   rQ  r   r   r   rF  )
invertiblenon_invertibler   s      r)    test_generalized_raise_multiloopr  E  s    
 Aq6Aq6*+JXX1v1v./N
qt!t$AcFdG"))'':r+   c                     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   rt   ro   re   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   dorgqrrF   waitWEXITSTATUS)	XERBLA_OKpidr  r0   r   statuss         r)   test_xerbla_overrider  T  sm   
 I1ggi
 ax

8//8	#II!!((*
	$2$ AII!!((1aa 	 ggi>>&!Y.KK56 /I ^$ 1/01  	 	#HHR\\"	#  	$*c!f4 #		$sB   E ,(E8 AF8 &E54E58
F5-F54F58
G2%G--G2zCannot start subprocessc                  *   SS/n [         R                  " S5      nU  Hs  nUR                  SSUS9n[        R                  " [
        R                  SU/5        UR                  SSUS9n[        R                  " [
        R                  SU/5        Mu     g )	NzPyQt5.QtWidgetsIPythonz
    import sys
    {before}
    try:
        import {bad_lib}
    except ImportError:
        sys.exit(0)
    {after}
    x = np.ones(2, dtype=np.float32)
    sys.exit(0 if np.allclose(x.dot(x), 2.0) else 1)
    zimport numpy as np )beforeafterbad_libz-c)r  r  r  )textwrapdedentr  
subprocess
check_callr  
executable)bad_libstemplater  codes       r)   test_sdot_bug_8577r    s     "9-H 
  
	H &:"'.  0s~~tT:; %9"'.  0s~~tT:; r+   c                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)TestMultiDoti  c           
         [         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[        [        XU/5      UR	                  U5      R	                  U5      5        [        [        XU/5      [         R                  " U[         R                  " X#5      5      5        g Nr   rv   rv   r   r%   r  r   r   r   )rJ   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  )rJ   r  r  s      r)   &test_basic_function_with_two_arguments3TestMultiDot.test_basic_function_with_two_arguments  s\    IIV$IIV$Iqf-quuQx8Iqf-rvva|<r+   c                    [         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[        [        XX4/5      UR	                  U5      R	                  U5      R	                  U5      5        g )Nr  r  rv   rt   r  )rJ   r  r  r  Ds        r)   9test_basic_function_with_dynamic_programming_optimizationFTestMultiDot.test_basic_function_with_dynamic_programming_optimization  s     IIV$IIV$IIV$IIV$IqQl3QUU1X\\!_5H5H5KLr+   c                 >   [         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[        [        XX4/5      R                  S5        g )Nrv   r  r  r  r  r%   r  r   r   r   )rJ   A1dr  r  r  s        r)   test_vector_as_first_argument*TestMultiDot.test_vector_as_first_argument  sm    iiq!IIV$IIV$IIV$ 	Y~.44d;r+   c                 >   [         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[        [        XX4/5      R                  S5        g )Nr  r  rv   )r   r  )rJ   r  r  r  D1ds        r)   test_vector_as_last_argument)TestMultiDot.test_vector_as_last_argument  sm    IIV$IIV$IIV$iiq! 	Ya~.44d;r+   c                 >   [         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[        [        XX4/5      R                  S5        g )Nrv   r  r  r]   r  )rJ   r  r  r  r  s        r)   &test_vector_as_first_and_last_argument3TestMultiDot.test_vector_as_first_and_last_argument  sn    iiq!IIV$IIV$iiq! 	Y/066;r+   c           
         [         R                  R                  S5      n[         R                  R                  S5      n[         R                  R                  S5      n[         R                  " S5      n[        XU/US9nXEL d   e[	        XAR                  U5      R                  U5      5        [	        U[         R
                  " U[         R
                  " X#5      5      5        g )Nr  r  r'   r%   r  rQ  r   r   r   )rJ   r  r  r  r'   rets         r)   test_three_arguments_and_out)TestMultiDot.test_three_arguments_and_out  s     IIV$IIV$IIV$hhvq	s+zzCqa1C266!<!89r+   c                 B   [         R                  R                  S5      n[         R                  R                  S5      n[         R                  " S5      n[        X/US9nX4L d   e[	        X1R                  U5      5        [	        U[         R
                  " X5      5        g )Nr  r  )r   r   r  r  )rJ   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   rt   r  r  )rJ   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   rt   rt   rw   rw   rw   )r   r   rv   rw   rw   rw   )r   r   r   rw   rw   rw   )r   r   r   r   rx   r   )r   r   r   r   r   r   )r   r   r   r   r   r   r6   rt   T)return_costsr   )r%   r  r   intr   r   rD  )rJ   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 )Nri  )r   r  r   r%   r  rT   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)rW   rX   rY   rZ   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rx   r   rr   rv   rv   rw   rw   rv   rt   c                 ~    [        [        5         [        R                  " XS9  S S S 5        g ! , (       d  f       g = f)Nind)r   r   r   	tensorinv)rJ   r  r  s      r)   test_non_square_handling&TestTensorinv.test_non_square_handling,  s&    
 ;'S* (''s   .
<z
shape, ind)rx   r   rr   rw   rv   )   rr   rw   rt   c                     [         R                  " S5      nXl        [        R                  " X2S9nUR                  US  UR                  S U -   nUR                  n[        Xe5        g )Nr  r0   r  )r%   r  r   r   r  r   )rJ   r   r  r0   ainvr9  actuals          r)   test_tensorinv_shape"TestTensorinv.test_tensorinv_shape4  sU     FF2J!-7734=1774C=0V&r+   r  r   r   c                     [         R                  " S5      nSUl        [        [        5         [
        R                  " X!S9  S S S 5        g ! , (       d  f       g = f)Nr  r  r  )r%   r  r   r   r  r   r  )rJ   r  r0   s      r)   test_tensorinv_ind_limit&TestTensorinv.test_tensorinv_ind_limitA  s:     FF2J:&q* '&&s   A
Ac                    [         R                  " S5      nSUl        [        R                  " USS9n[         R
                  " S5      n[        [         R                  " X#S5      [         R                  R                  X5      5        g )Nr  r  rt   r  )	r%   r  r   r   r  r  r   	tensordottensorsolve)rJ   r0   r  r1   s       r)   test_tensorinv_result#TestTensorinv.test_tensorinv_resultJ  sY    FF2Jq)GGBKTa0"))2G2G2MNr+   r]   N)rW   rX   rY   rZ   r  r  rB  r%   r  r  r  r   r  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)TestTensorsolveiS  za, axesr  Nr  )r   rv   c                     [        [        5         [        R                  " UR                  S S 5      n[
        R                  " XUS9  S S S 5        g ! , (       d  f       g = fNrv   r  )r   r   r%   r  r   r   r  )rJ   r0   r  r1   s       r)   r  (TestTensorsolve.test_non_square_handlingU  s@    
 ;'$Aq$/ (''s   9A
A r   ))rv   rw   r   )rw   rx   rx   rw   )r   rw   rw   r   c           	      &   [         R                  R                  " U6 n[         R                  " UR                  S S 5      n[         R
                  R                  X#5      n[        [         R                  " X$[        UR                  5      S9U5        g r
  )
r%   r  ro  r  r   r   r  r   r  r  )rJ   r   r0   r1   r   s        r)   test_tensorsolve_result'TestTensorsolve.test_tensorsolve_result^  s_     IIOOU#GGAGGBQK II!!!'QAGG=qAr+   r]   )rW   rX   rY   rZ   r  r  rB  r%   r  r  r  r\   r]   r+   r)   r  r  S  sv    [[Y		%		V$)
 0	0
 [[W/BBr+   r  c                      [         R                  " SS/SS//SS9n [        [        S5         [        R
                  " U 5        S S S 5        g ! , (       d  f       g = f)Nrt   r   rv   r   float16r6   zunsupported in linalg)r%   r   r   r\  r   rq  )r  s    r)   test_unsupported_commontyper  h  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        rt   r6   )r   r   )r%   rQ  r  r  r   r   )r  r0   r1   r  s       r)   test_blas64_dotr  s  s[    A
!Qrzz*A
Abjj)AAdG
qA4!r+   z*Numpy not compiled with 64-bit BLAS/LAPACKc            
         [         R                  n [         R                  R                  R                  nSnSnUn[         R
                  " SS/U S9n[         R
                  " S/U S9n[         R
                  " S/U S9nU" X#XTXvSS5      n[        US   S5        [        US   U5        [        US   U5        [        UR                  5       5      n	[        S	U	s=:  =(       a
    S
:  5        g s  5        g )Nl       rt   r6   r   r   infor  r  r  l        )
r%   rS  r   r  dgeqrfrQ  r   r  itemr   )
r.   lapack_routiner  r  ldar0   workrP  resultslworks
             r)   !test_blas64_geqrf_lwork_smoketestr  }  s     JJEYY**11NAA
C 	!Qu%A88QCu%D
((A3e
$C Q13b!<G!$q!q! 		EEE!!E!"!"r+   )r   r  )__doc__r  r  r   r   r  r  r  numpyr%   r   r   r   r   r   r   r	   r
   
numpy.corer   r   r   r   r   r   numpy.linalgr   r   r   r   r   numpy.linalg.linalgr   numpy.testingr   r   r   r   r   r   r   r   r   r    numpy.linalg.lapack_liteImportErrorr*   r/   r7   r9   r;   r_   rC   rc   r  r  r   r   r  r   r   r   r   r   r   r   r   r  r  r   r"  r$  r*  rD  rJ  rZ  rc  rm  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  rB  r.   r.  rl  rs  r  r  r  r  r  r  r  r  r  r  r  r!  r#  r%  r9  r;  rh  r  rj  r  r  r  r  r  r  r  r  r  r  r  r  )r  s   0r)   <module>r'     s=   
 
       P P P  4 4  P P =  
	#* . 95
7
, ,, 		t 
 8xr2hR)8b"XV,. xr2hR)8b"XV,. zr2hR)8lL1@B yw'&&)9:'Jgw'w79 yw'&&)9:'Jgw'w79 {w'&&)9:'J02JKSZ[] uxxf-xxF+J  uyy~~a#yy~~a " uyy~~a#yy~~a " zAA1v;   
  F ;~lL1@b"XV,. ~r2hR2r(36B\02 ~lL1@b"XV,. ~r2hR2r(36B\02 /1LMU\^gw'w79 g&'(:Wg<NOW^`0@B /1LMU\^gw'w79 g&'(:Wg<NOW^`0@B  /1LMU\^w(66*:;7KM  g&'(:Wg<NOW^`w(66*:VV<LMU\]_ vyy~~a$yy~~a " uyy~~a#yy~~a " uyy~~a#yy~~a " uyy~~a#yy~~a J  uyy~~a#yy~~a J e6! 6
 6r ;yr2hR)8 yr2hR)8 zr6lVQK0@ zr6lVQK0@ xxxf-J  {AA r2hR)* }yy~~a#/! 
 @8 	 	" "-'` 		 1 1.2> 22n 22 2	Fn 	F	I 	I
+> 
+&$+%'F +73
 73t/#%D /0h 0.)')H )-, -66#%D 6!+h !+H5 5,#%D ,$h $ ,)+G ,&(, +1$&E +1\@)y @)F
0$'/2
0	y 	0*,H 0	* 	##%D #*'1h '1T3%'> 3<1+
 1+h 5HI5H5HIJS: S: KS:l?)+G ?3- 3-lB%'C B.8+ 8+v
= 
=[Q} [Q|u<- u<p	- 	J J8- 
- 
 
	Y 3 		Y 3 		I1 	!E !EH
(^) ^)B+- +-\5* G$BC; D;.7b G$=><  ?<D~I ~IB&O &ORB B* GH I |#F  H#H#KC  	 			V  Js   <b b 
bb