+
    CDjnR                       R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t
^ RI	HtHtHtHtHtHtHtHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHtHtHtH t H!t! ^ RI"H#t# ^ RI$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t. ^ RI/H0t0  ^ RI1t	R	 t3]*t4RR
 lt*R t5R t6R t70 Rmt8 ! R R4      t9R t:]
Pv                  Py                  R4       . t=]=]:! R]9! R]! RR.RR..]R7      ]! RR.]R7      4      ]9! R]! RR.RR..]R7      ]! RR.]R7      4      ]9! R]! RR.RR..]R7      ]! . RO. RO.]R7      4      ]9! R]! RR.RR..]R7      ]! RR.]R7      4      ]9! R ]! RR.RR..]R7      ]! RR.]R7      4      ]9! R!]! RR.RR..]R7      ]! . RO. RO.]R7      4      ]9! R"]
P|                  ! R]R7      ]
P|                  ! R]R7      R0R#7      ]9! R$]
Pv                  P                  ^^4      ]
Pv                  P                  ^4      4      ]9! R%]
Pv                  P                  ^^4      ]
Pv                  P                  ^4      4      ]9! R&^^.^^..^^.4      .
4      ,          t=]=]:! R]9! R']! . RO. RO.]R7      ]! RR.]R7      4      ]9! R(]! RR.RR.R)R..]R7      ]! . RO]R7      4      ]9! R*]! . RO. RO.]R7      ]! RR.]R7      4      ]9! R+]! RR.RR.R)R..]R7      ]! . RO]R7      4      ]9! R,]! . RO. RO.]R7      ]! RR.]R7      4      ]9! R-]! RR.RR.RR..]R7      ]! . RO]R7      4      ]9! R.]! . RO. RO.]R7      ]! RR.]R7      4      ]9! R/]! RR.RR.RR..]R7      ]! . RO]R7      4      ]9! R0]! . RO. RO.]R7      ]! RR.RR..]R7      4      ]9! R1]! RR.RR.RR..]R7      ]! RR.RR.RR..]R7      4      ]9! R2]
Pv                  P                  ^^4      ]
Pv                  P                  ^4      4      ]9! R3]
Pv                  P                  ^^4      ]
Pv                  P                  ^4      4      ]9! R4]
Pv                  P                  ^^4      ]
Pv                  P                  ^4      4      ]9! R5]
Pv                  P                  ^ ^4      ]
Pv                  P                  ^ 4      R0R#7      ]9! R6]
Pv                  P                  ^^ 4      ]
Pv                  P                  ^4      R0R#7      .4      ,          t=]=]:! R]9! R7]! RR.RR..]R7      R4      ]9! R8]! RR.RR..]R7      R4      ]9! R9]! RR.R^..]R7      R4      ]9! R:]! RR.R^..]R7      R4      ]9! R;]
P|                  ! R]R7      RR0R#7      ]9! R<^^.^^..R4      ]9! R=]! RR.RR..4      R4      ]9! R>]
Pv                  P                  ^^4      R4      .4      ,          t=R? t@]=]@! 4       ,          t=R@ tARA tB]=]B! 4       ,          t= ! RB RC4      tC ! RD RE]C4      tD ! RF RG]C4      tE ! RH RI]C4      tF ! RJ RK]C4      tG ! RL RM]C4      tH ! RN RO]C4      tIRP tJ ! RQ RR]D]G4      tK ! RS RT]K4      tL ! RU RV]D]G4      tM ! RW RX]M4      tN ! RY RZ]D]G4      tO ! R[ R\]O4      tP ! R] R^]D]G4      tQ ! R_ R`]Q4      tR ! Ra Rb4      tS ! Rc Rd]D]G4      tT ! Re Rf]T]S4      tU ! Rg Rh]F]I4      tV ! Ri Rj]V]S4      tW ! Rk Rl]D]G4      tX ! Rm Rn]X4      tY ! Ro Rp]D]E]G]H4      tZ ! Rq Rr]Z4      t[ ! Rs Rt]F]I4      t\ ! Ru Rv]\4      t]Rw t^ ! Rx Ry]D]G4      t_ ! Rz R{]_4      t` ! R| R}]D]E4      ta ! R~ R]a4      tb]P                  P                  RR U u. uF  p ]
P                  V 4      NK  	  up 4       ! R R4      4       tf ! R R]F]I4      tg ! R R4      th ! R R]F]I4      ti ! R R4      tj ! R R4      tk ! R R]k4      tl ! R R]k4      tm ! R R]m]l4      tn ! R R4      to ! R R]k4      tp ! R R]k4      tq ! R R]k4      tr ! R R]n]p4      ts ! R R]n]q4      tt ! R R]n]r4      tu ! R R4      tvR tw ! R R4      tx ! R R4      ty ! R R4      tzR t{]P                  P                  ]&RR7      R 4       t}]P                  P                  R4      ]P                  P                  ]P                  ! 4       ^8  RR7      ]P                  P                  ]'RR7      R 4       4       4       t]P                  P                  ]&RR7      ]P                  EP                  R 4       4       t ! R R4      t ! R R4      t ! R R4      tR t]P                  EP                  RR7      R 4       t]P                  EP                  ]%'       * RR7      R 4       tR tR tR tR tR tR tR tR tR tR tR tR#   ]2 d     E	L[i ; iu up i )z"Test functions for linalg module

N)arrayasarray
atleast_2dcdoublecsingledotdoubleidentityinflinalgmatmulmultiplysingle)swapaxes)	AxisError)LinAlgErrormatrix_powermatrix_rank	multi_dotnorm)_multi_dot_matrix_chain_order)
HAS_LAPACK64IS_WASMNOGIL_BUILDassert_assert_allcloseassert_almost_equalassert_array_equalassert_equalassert_raisesassert_raises_regex)run_subprocessc                     \        V 4      \        V\        P                  4      '       d   \        V4      J # \        P                  J # N)type
isinstancenpndarray)outin_s   &&X/data/cameron/venvs/s3viz/lib/python3.14/site-packages/numpy/linalg/tests/test_linalg.pyconsistent_subclassr+   9   s<     9jbjj&A&Ac * * jj* *    c                     \        V 4      P                  P                  \        \        39   d   TpMTp\        W3R V/VB  R# )decimalN)r   dtyper$   r   r   old_assert_almost_equal)absingle_decimaldouble_decimalkwr.   s   &&&&, r*   r   r   C   s;    qz 11  A8'8R8r,   c                 d    \         \         \        \        \        \         \        \        /V ,          # r#   )r   r   r   r   r/   s   &r*   get_real_dtyper8   K   s&    FFFVWf..35 5r,   c                 d    \         \        \        \        \        \        \        \        /V ,          # r#   )r   r   r   r   r7   s   &r*   get_complex_dtyper:   P   s&    GVWWgw0057 7r,   c                 ,    V \         \        39   d   R # R# )gh㈵>gdy=)r   r   r7   s   &r*   get_rtolr<   U   s    !!r,   square	nonsquare	hermitiansize-0c                   B   a  ] tR t^dt o ]! 4       3R ltR tR tRtV t	R# )
LinalgCasec                |    \        \        V\        4      4       Wn        W n        W0n        \        V4      V n        R# )z
A bundle of arguments to be passed to a test case, with an identifying
name, the operands a and b, and a set of tags to filter the tests
N)r   r%   strnamer1   r2   	frozensettags)selfrE   r1   r2   rG   s   &&&&&r*   __init__LinalgCase.__init__e   s-    
 	
4%&	dO	r,   c                X    V! V P                   V P                  V P                  R7       R# )z>
Run the function `do` on this test case, expanding arguments
rG   N)r1   r2   rG   )rH   dos   &&r*   checkLinalgCase.checkp   s     	466466		*r,   c                "    R V P                    R2# )z<LinalgCase: >)rE   rH   s   &r*   __repr__LinalgCase.__repr__v   s    tyyk++r,   )r1   r2   rE   rG   N)
__name__
__module____qualname____firstlineno__setrI   rN   rS   __static_attributes____classdictcell____classdict__s   @r*   rB   rB   d   s     (+ 	$+, ,r,   rB   c                n    V \         9   g   Q R4       hV F  pVP                  V 0,          Vn        K  	  V# )zR
Add the given tag (a string) to each of the cases (a list of LinalgCase
objects)
zInvalid tag)all_tagsrG   )tagcasescases   && r*   	apply_tagrc   z   s6    
 (?)M)?II%	 Lr,     r         ?       @      @      @r7   r   double_2      @r   r   	cdouble_20x0rL   8x81x1nonarraysingle_nsq_1single_nsq_2g      @double_nsq_1double_nsq_2csingle_nsq_1csingle_nsq_2cdouble_nsq_1cdouble_nsq_2cdouble_nsq_1_2cdouble_nsq_2_28x111x55x10x44x0hsinglehdoublehcsinglehcdoublehempty	hnonarraymatrix_b_onlyhmatrix_1x1c                     . p \          EF  p\        VP                  \        P                  4      '       g   K0  \        P
                  ! VP                  ^VP                  ,          ^VP                  ,          .4      pVP                  f   RpMmVP                  P                  ^8X  d   VP                  pME\        P
                  ! VP                  ^VP                  ,          ^VP                  ,          .4      p\        VP                  R,           W#VP                  R0,          R7      pV P                  V4       \        P
                  ! VP                  .^,          ^,          4      P                  RVP                  P                  ,           4      pVP                  f   RpMVP                  P                  ^8X  dv   \        P
                  ! VP                  .^,          ^,          VP                  R,          ,          4      P                  RVP                  P                  RR ,           4      pMY\        P
                  ! VP                  .^,          ^,          4      P                  RVP                  P                  ,           4      p\        VP                  R,           W#VP                  R0,          R7      pV P                  V4       EK  	  V # )	   N_tile3generalizedrL   _tile213   r   )CASESr%   r1   r&   r'   r   r2   ndimrB   rE   rG   appendreshapeshape)	new_casesrb   r1   r2   new_cases        r*   _make_generalized_casesr     s   I$&&"**--HHdffa$&&j!dff*5666>AVV[[AA$&&!dff*a$&&j9:Adii(2A#'99#>@"HHdffX\A%&..v/DE66>AVV[[A$&&A)AGGBK7876DFFLL$556  $&&A)*226DFFLL3HIAdii*4a#'99#>@"3 6 r,   c           	   #  <  "   \        V \        P                  4      '       g	   V R3x  R# R.V P                  ,          pRVR&   V P                  ^8  d   RVR&   V P                  ^8  d   RVR&   \        P
                  ! \        V4      !   EF  p\        V P                  V4       UUu. uF  w  r4\        W4,          4      NK  	  ppp\        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      p\        P                  ! WPP                  R7      pVP                  \        P                  4      P                  R4       Wv,          pWR&   VP                  V P                  4      p\!        \        P"                  ! Wp8H  4      4       VRRP%                  R	 V 4       4      ,           3x  V P                  ^8  dc   V P                  R,          ^8X  dK   \'        V P(                  4      p^ VR&   \        P*                  P,                  P/                  WR
7      pVR3x  V P                  ^8  dc   V P                  R,          ^8X  dK   \'        V P(                  4      p^ VR&   \        P*                  P,                  P/                  WR
7      pVR3x  V P                  ^8  g   EK  V P                  RR R8X  g   EK3  \'        V P(                  4      p^ VR&   ^ VR&   \        P*                  P,                  P/                  WR
7      pVR3x  EK  	  R# u uppi 5i)z4
Generate cartesian product of strides for all axes
nopNc              3   <   "   T F  p\        R R V4      x  K  	  R # 5ir#   )slice).0repeats   & r*   	<genexpr>$_stride_comb_iter.<locals>.<genexpr>U  s     GwVuT400ws   r7   l   >[= .stride__c              3   (   "   T F  qR  x  K
  	  R# 5i)+N )r   js   & r*   r   r   ^  s     &AAAxs   )stridesstride_xxx_0stride_xxx_0_xstride_xxx_0_0   )r   r   r   r   )r   r   r   r   )r%   r&   r'   r   	itertoolsproducttuplezipr   absemptyr/   viewuint32fill	__class__r   alljoinlistr   libstride_tricks
as_strided)	x
stride_setrepeatsr1   r2   	new_shapeslicesxiss	   &        r*   _stride_comb_iterr   C  s_    
 a$$h!&&JJrNvvz#
2vvz 
2$$eJ&78,/,AB,ADASZ,A	BGwGGwGG XXiww/
		
+Z3WWQ[[!rw )chh&A&AAAAA 66Q;1772;!+QYYAAbE%%000>Bn$$66Q;1772;!+QYYAAbE%%000>B&&&66Q;1773B<61QYYAAbEAbE%%000>B&&&; 9Bs    B(L*LGL)L ALc            
      J   . p \          F  p\        VP                  4       Fz  w  r#\        VP                  4       F\  w  rE\	        VP
                  R ,           V,           R ,           V,           W$VP                  R0,          R7      pV P                  V4       K^  	  K|  	  K  	  V # )r   stridedrL   )r   r   r1   r2   rB   rE   rG   r   )r   rb   r1   a_labelr2   b_labelr   s          r*   _make_strided_casesr   s  s    I+DFF3JA/7
%dii#o&?#&E&OQR+/99	{+BD  * 8 4  r,   c                   F   a  ] tR tRt o ]t]! 4       ]! 4       3R ltRtV t	R# )LinalgTestCasei  c                R   V P                    FT  pVP                  V,          V8w  d   K  VP                  V,          '       d   K8   VP                  V P                  4       KV  	  R#   \         d5   pRT: R2pT\
        P                  ! 4       ,          p\        T4      ThRp?ii ; i)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_CASESrG   rN   rM   	Exception	traceback
format_excAssertionError)rH   requireexcluderb   emsgs   &&&   r*   check_casesLinalgTestCase.check_cases  s    
 OODyy7"g-yy7""1

477# $  1&thd3y++--$S)q01s   A''B&2/B!!B&r   N)
rU   rV   rW   rX   r   r   rY   r   rZ   r[   r\   s   @r*   r   r     s     J"%% 1 1r,   r   c                   ,   a  ] tR tRt o R tR tRtV tR# )LinalgSquareTestCasei  c                2    V P                  R 0RR0R7       R# )r=   r   r@   r   r   Nr   rR   s   &r*   test_sq_cases"LinalgSquareTestCase.test_sq_cases  s!    ("/!: 	 	<r,   c                2    V P                  R R0R0R7       R# )r=   r@   r   r   Nr   rR   s   &r*   test_empty_sq_cases(LinalgSquareTestCase.test_empty_sq_cases  s!    (H!5"/ 	 	2r,   r   N)rU   rV   rW   rX   r   r   rZ   r[   r\   s   @r*   r   r          <2 2r,   r   c                   ,   a  ] tR tRt o R tR tRtV tR# )LinalgNonsquareTestCasei  c                2    V P                  R 0RR0R7       R# )r>   r   r@   r   Nr   rR   s   &r*   test_nonsq_cases(LinalgNonsquareTestCase.test_nonsq_cases  !    +"/!: 	 	<r,   c                2    V P                  R R0R0R7       R# )r>   r@   r   r   Nr   rR   s   &r*   test_empty_nonsq_cases.LinalgNonsquareTestCase.test_empty_nonsq_cases  !    +x!8"/ 	 	2r,   r   N)rU   rV   rW   rX   r   r   rZ   r[   r\   s   @r*   r   r     r   r,   r   c                   ,   a  ] tR tRt o R tR tRtV tR# )HermitianTestCasei  c                2    V P                  R 0RR0R7       R# )r?   r   r@   r   Nr   rR   s   &r*   test_herm_cases!HermitianTestCase.test_herm_cases  r   r,   c                2    V P                  R R0R0R7       R# )r?   r@   r   r   Nr   rR   s   &r*   test_empty_herm_cases'HermitianTestCase.test_empty_herm_cases  r   r,   r   N)rU   rV   rW   rX   r   r   rZ   r[   r\   s   @r*   r   r     r   r,   r   c                      a  ] tR tRt o ]P
                  P                  R 4       t]P
                  P                  R 4       tRt	V t
R# )LinalgGeneralizedSquareTestCasei  c                2    V P                  R R0R0R7       R# )r   r=   r@   r   Nr   rR   s   &r*   test_generalized_sq_cases9LinalgGeneralizedSquareTestCase.test_generalized_sq_cases  s!    -!:"* 	 	-r,   c                .    V P                  0 RmR7       R# )r   r   N>   r=   r   r@   r   rR   s   &r*   test_generalized_empty_sq_cases?LinalgGeneralizedSquareTestCase.test_generalized_empty_sq_cases  s    !DEr,   r   N)rU   rV   rW   rX   pytestmarkslowr   r   rZ   r[   r\   s   @r*   r   r     sA     [[- - [[F Fr,   r   c                      a  ] tR tRt o ]P
                  P                  R 4       t]P
                  P                  R 4       tRt	V t
R# )"LinalgGeneralizedNonsquareTestCasei  c                2    V P                  R R0R0R7       R# )r   r>   r@   r   Nr   rR   s   &r*   test_generalized_nonsq_cases?LinalgGeneralizedNonsquareTestCase.test_generalized_nonsq_cases  !    -!="* 	 	-r,   c                .    V P                  0 RmR7       R# )r   r   N>   r>   r   r@   r   rR   s   &r*   "test_generalized_empty_nonsq_casesELinalgGeneralizedNonsquareTestCase.test_generalized_empty_nonsq_cases  s    !GHr,   r   N)rU   rV   rW   rX   r   r  r  r  r
  rZ   r[   r\   s   @r*   r  r    sA     [[- - [[I Ir,   r  c                      a  ] tR tRt o ]P
                  P                  R 4       t]P
                  P                  R 4       tRt	V t
R# )HermitianGeneralizedTestCasei  c                2    V P                  R R0R0R7       R# )r   r?   r@   r   Nr   rR   s   &r*   test_generalized_herm_cases8HermitianGeneralizedTestCase.test_generalized_herm_cases  r  r,   c                2    V P                  0 RmR0R7       R# )r   noner   N>   r?   r   r@   r   rR   s   &r*   !test_generalized_empty_herm_cases>HermitianGeneralizedTestCase.test_generalized_empty_herm_cases  s    !G"( 	 	+r,   r   N)rU   rV   rW   rX   r   r  r  r  r  rZ   r[   r\   s   @r*   r  r    s?     [[- - [[+ +r,   r  c                    \        V 4      p V P                  ^8  dN   \        P                  ! V P                  V P
                  R7      p\        V P                  R,          4      VR&   V# \        V P                  ^ ,          4      # )r   r7   .r   )r   r   r&   r   r   r/   r	   )r1   rs   & r*   identity_like_generalizedr    s\    
Avv{HHQWWAGG,!''"+&#
##r,   c                   &   a  ] tR tRt o R tRtV tR# )
SolveCasesi  c                X   \         P                  ! W4      p\        P                  ! V4      P                  ^8X  dE   \        WR,          4      R,          p\        \        P                  ! W%P                  4      V4       M\        W4      p\        W%4       \        \        WB4      4       R# )r   N).N.    )r   solver&   r   r   r   r   broadcast_tor   r   r+   )rH   r1   r2   rG   r   adotxs   &&&&  r*   rM   SolveCases.do  sq    LL88A;q  1	l+F3E;; ?G1LE)#A)*r,   r   NrU   rV   rW   rX   rM   rZ   r[   r\   s   @r*   r  r    s     
+ 
+r,   r  c                   ~   a  ] tR tRt o ]P
                  P                  R]]]	]
.4      R 4       tR tR tR tRtV tR# )		TestSolvei  r/   c                    \         P                  ! ^R.R^..VR7      p\        \        P                  ! W"4      P
                  V4       R# r         ?r7   N)r&   r   r   r   r  r/   rH   r/   r   s   && r*   
test_typesTestSolve.test_types  s8    HHq#ha)7V\\!'--u5r,   c                    ! R  R\         P                  4      p\         P                  ! ^4      P                  ^^^4      p\         P                  ! ^4      P	                  V4      p\
        P                  ! W#4      pVP                  R8X  g   Q h\         P                  ! ^4      P                  ^^4      P	                  V4      p\
        P                  ! W#4      pVP                  R8X  g   Q h\         P                  ! ^4      P                  ^^4      P	                  V4      p\        \        \
        P                  W#4       R# )c                       ] tR tRtRtR# ))TestSolve.test_1_d.<locals>.ArraySubclassi  r   NrU   rV   rW   rX   rZ   r   r,   r*   ArraySubclassr,        r,   r.  Nr   r   )r   r   r   )
r&   r'   aranger   r   r   r  r   r   
ValueError)rH   r.  r1   r2   results   &    r*   test_1_dTestSolve.test_1_d   s    	BJJ 	IIaL  Aq)IIaLm,a#||v%%% IIaL  A&++M:a#||y(((IIaL  A&++M:j&,,5r,   c                    ! R  R\         P                  4      p\         P                  ! ^4      P                  ^^^4      p\         P                  ! ^4      P                  ^^^4      P	                  V4      p\
        P                  ! W#4      R,          p\
        P                  ! VR,          VR,          4      p\        WT4       \        \        WQ4      4       \        \
        P                  \
        P                  VR,          V4       \        \        \
        P                  W#R,          4       \         P                  ! ^4      P                  ^^^4      p\        \        \
        P                  W#4       \        \        \
        P                  VR,          VR,          4       \         P                  ! ^4      P	                  V4      p\
        P                  ! W#4      R,          p\
        P                  ! VR,          VR,          4      p\        WT4       \        \        WQ4      4       \         P                  ! ^4      P                  ^^4      p\        \        \
        P                  W#4       \        \        \
        P                  VR,          VR,          4       \        \        \
        P                  VR,          V4       R# )c                       ] tR tRtRtR# ),TestSolve.test_0_size.<locals>.ArraySubclassi  r   Nr-  r   r,   r*   r.  r8    r/  r,   r.  r  r  NN)NNNr9  r:  r:  r9  r9  )r:  r9  :r  r   N)r:  r9  )r&   r'   r1  r   r   r   r  r   r   r%   r   r   r2  rH   r.  r1   r2   expectedr3  s   &     r*   test_0_sizeTestSolve.test_0_size  s   	BJJ 	 IIaL  Aq)IIaL  Aq)..}=<<%i0ana	l;6,
612 	f((&,,+Jj&,,Y<@ IIaL  Aq)j&,,5j&,,##? IIaLm,<<%f-anaf56,
612IIaL  A&j&,,5j&,,##?j&,,+Br,   c                f    ! R  R\         P                  4      p\         P                  ! ^4      P                  ^^^4      p\         P                  ! ^4      P                  ^^^4      P	                  V4      p\
        P                  ! W#4      R,          p\
        P                  ! W#R,          4      p\        WT4       \        \        WQ4      4       \
        P                  ! W#4      R,          p\
        P                  ! VR,          VR,          4      p\        WT4       \        \        WQ4      4       R# )c                       ] tR tRtRtR# ).TestSolve.test_0_size_k.<locals>.ArraySubclassi4  r   Nr-  r   r,   r*   r.  rB  4  r/  r,   r.  N)r:  r:  r9  r;  )
r&   r'   r1  r   r   r   r  r   r   r%   r<  s   &     r*   test_0_size_kTestSolve.test_0_size_k2  s    	BJJ 	IIaL  Aq)IIaL  Aq)..}=<<%i0a9.6,
612 <<%k2anan=6,
612r,   r   N)rU   rV   rW   rX   r   r  parametrizer   r   r   r   r(  r4  r>  rC  rZ   r[   r\   s   @r*   r#  r#    sH     [[Wvvw&HI6 J66"CB3 3r,   r#  c                   &   a  ] tR tRt o R tRtV tR# )InvCasesiE  c                    \         P                  ! V4      p\        \        W4      \	        V4      4       \        \        WA4      4       R # r#   )r   invr   r   r  r   r+   )rH   r1   r2   rG   a_invs   &&&& r*   rM   InvCases.doG  s4    

1F1,5a8	:#E-.r,   r   Nr!  r\   s   @r*   rG  rG  E  s     / /r,   rG  c                   r   a  ] tR tRt o ]P
                  P                  R]]]	]
.4      R 4       tR tRtV tR# )TestInviN  r/   c                    \         P                  ! ^R.R^..VR7      p\        \        P                  ! V4      P
                  V4       R# r%  )r&   r   r   r   rI  r/   r'  s   && r*   r(  TestInv.test_typesO  s7    HHq#ha)7VZZ]((%0r,   c                    ! R  R\         P                  4      p\         P                  ! R\         P                  R7      P	                  V4      p\
        P                  ! V4      p\        VP                  P                  \         P                  J 4       \        VP                  VP                  4       \        \        W14      4       \         P                  ! R\         P                  R7      P	                  V4      p\
        P                  ! V4      p\        VP                  P                  \         P                  J 4       \        VP                  VP                  4       \        \        W14      4       R# )c                       ] tR tRtRtR# )*TestInv.test_0_size.<locals>.ArraySubclassiV  r   Nr-  r   r,   r*   r.  rR  V  r/  r,   r.  r7   Nr  r   r   r  r  )r&   r'   zerosint_r   r   rI  r   r/   r$   float64r   r   r%   	complex64rH   r.  r1   ress   &   r*   r>  TestInv.test_0_sizeT  s    	BJJ 	HHYbgg.33MBjjm		"**,-QWWcii(
3./HHV2<<055mDjjm		",,./QWWcii(
3./r,   r   NrU   rV   rW   rX   r   r  rE  r   r   r   r   r(  r>  rZ   r[   r\   s   @r*   rM  rM  N  s<     [[Wvvw&HI1 J10 0r,   rM  c                   &   a  ] tR tRt o R tRtV tR# )EigvalsCasesie  c                x    \         P                  ! V4      p\         P                  ! V4      w  rV\        WE4       R # r#   )r   eigvalseigr   )rH   r1   r2   rG   evevaluesevectorss   &&&&   r*   rM   EigvalsCases.dog  s(    ^^A"JJqMB(r,   r   Nr!  r\   s   @r*   r^  r^  e  s     ) )r,   r^  c                   r   a  ] tR tRt o ]P
                  P                  R]]]	]
.4      R 4       tR tRtV tR# )TestEigvalsim  r/   c                J   \         P                  ! ^R.R^..VR7      p\        \        P                  ! V4      P
                  \        V4      4       \         P                  ! ^R.R^..VR7      p\        \        P                  ! V4      P
                  \        V4      4       R# r   r&  r7   Nr   )r&   r   r   r   r`  r/   r:   r'  s   && r*   r(  TestEigvals.test_typesn  sz    HHq#ha)7V^^A&,,.?.FGHHq#hQ(6V^^A&,,.?.FGr,   c                    ! R  R\         P                  4      p\         P                  ! R\         P                  R7      P	                  V4      p\
        P                  ! V4      p\        VP                  P                  \         P                  J 4       \        RVP                  4       \        \        V\         P                  4      4       \         P                  ! R\         P                  R7      P	                  V4      p\
        P                  ! V4      p\        VP                  P                  \         P                  J 4       \        RVP                  4       \        \        V\         P                  4      4       R# )c                       ] tR tRtRtR# ).TestEigvals.test_0_size.<locals>.ArraySubclassiw  r   Nr-  r   r,   r*   r.  rm  w  r/  r,   r.  r7   NrS  r  r   rT  r  )r&   r'   rU  rV  r   r   r`  r   r/   r$   
complex128r   r   r%   rX  rY  s   &   r*   r>  TestEigvals.test_0_sizeu  s    	BJJ 	HHYbgg.33MBnnQ		"--/0VSYY'
3

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

+,r,   r   Nr\  r\   s   @r*   rg  rg  m  s>     [[Wvvw&HIH JH- -r,   rg  c                   &   a  ] tR tRt o R tRtV tR# )EigCasesi  c                H   \         P                  ! V4      pVP                  VP                  re\	        \        W4      \        P                  ! V4      \        P                  ! V4      R,          ,          \        VP                  4      R7       \        \        Wa4      4       R# ).Nrtol.Nr:  )r   ra  eigenvalueseigenvectorsr   r   r&   r   r<   r/   r   r+   )rH   r1   r2   rG   rZ  rx  ry  s   &&&&   r*   rM   EigCases.do  sl    jjm$'OOS5E5E\q/JJ|$rzz+'>|'LL+++,	. 	#L45r,   r   Nr!  r\   s   @r*   rs  rs    s     6 6r,   rs  c                   r   a  ] tR tRt o ]P
                  P                  R]]]	]
.4      R 4       tR tRtV tR# )TestEigi  r/   c                   \         P                  ! ^R.R^..VR7      p\         P                  P                  V4      w  r4\	        VP
                  \        V4      4       \	        VP
                  \        V4      4       \         P                  ! ^R.R^..VR7      p\         P                  P                  V4      w  r4\	        VP
                  \        V4      4       \	        VP
                  \        V4      4       R# ri  )r&   r   r   ra  r   r/   r:   rH   r/   r   wvs   &&   r*   r(  TestEig.test_types  s    HHq#ha)7yy}}QQWW/67QWW/67HHq#hQ(6yy}}QQWW/67QWW/67r,   c                H    ! R  R\         P                  4      p\         P                  ! R\         P                  R7      P	                  V4      p\
        P                  ! V4      w  r4\        VP                  P                  \         P                  J 4       \        VP                  P                  \         P                  J 4       \        VP                  VP                  4       \        RVP                  4       \        \        V\         P                  4      4       \         P                  ! R\         P                  R7      P	                  V4      p\
        P                  ! V4      w  r4\        VP                  P                  \         P                  J 4       \        VP                  P                  \         P                  J 4       \        VP                  VP                  4       \        RVP                  4       \        \        V\         P                  4      4       R# )c                       ] tR tRtRtR# )*TestEig.test_0_size.<locals>.ArraySubclassi  r   Nr-  r   r,   r*   r.  r    r/  r,   r.  r7   NrS  rn  rT  ro  )r&   r'   rU  rV  r   r   ra  r   r/   r$   rp  r   r   r%   rX  rH   r.  r1   rZ  res_vs   &    r*   r>  TestEig.test_0_size  s<   	BJJ 	HHYbgg.33MBZZ]
  BMM12		"--/0QWWekk*VSYY'
1bjj)*HHV2<<055mDZZ]
  BLL01		",,./QWWekk*T399%
1bjj)*r,   r   Nr\  r\   s   @r*   r|  r|    s<     [[Wvvw&HI	8 J	8+ +r,   r|  c                   p   a  ] tR tRt o Rt]P                  P                  R]]	]
].4      R 4       tRtV tR# )SVDBaseTestsi  Fr/   c                   \         P                  ! ^R.R^..VR7      p\        P                  ! V4      pVP                  VP
                  VP                  rep\        VP                  V4       \        VP                  \        V4      4       \        VP                  V4       \        P                  ! VRV P                  R7      p\        VP                  \        V4      4       R# )r   r&  r7   F
compute_uvr?   N)r&   r   r   svdUSVhr   r/   r8   r?   )rH   r/   r   rZ  r  r  r  r   s   &&      r*   r(  SVDBaseTests.test_types  s    HHq#ha)7jjm55#%%bQWWe$QWWnU34RXXu%JJqUdnnEQWWnU34r,   r   N)rU   rV   rW   rX   r?   r   r  rE  r   r   r   r   r(  rZ   r[   r\   s   @r*   r  r    s7     I[[Wvvw&HI5 J5r,   r  c                   &   a  ] tR tRt o R tRtV tR# )SVDCasesi  c           	     t   \         P                  ! VR 4      w  rEp\        V\        \        P
                  ! V4      \        P
                  ! V4      R,          ,          \        P
                  ! V4      4      \        VP                  4      R7       \        \        WA4      4       \        \        Wa4      4       R# )FNru  rw  )
r   r  r   r   r&   r   r<   r/   r   r+   )rH   r1   r2   rG   ur   vts   &&&&   r*   rM   SVDCases.do  sx    ::a'b6"**Q-"**Q-2M"M+-::b>;%agg.	0 	#A)*#B*+r,   r   Nr!  r\   s   @r*   r  r    s     , ,r,   r  c                   ,   a  ] tR tRt o R tR tRtV tR# )TestSVDi  c                &   \         P                  ! R4      p\        P                  ! VRV P                  R7      w  r#p\        VP                  R4       \        VP                  R4       \        V\         P                  ! ^4      4       \         P                  ! R4      p\        P                  ! VRV P                  R7      w  r#p\        VP                  R4       \        VP                  R4       \        V\         P                  ! ^4      4       R# )z5Empty input should put an identity matrix in u or vh Tr  N)   r  r  r  rT  )r  r  )r&   r   r   r  r?   r   r   eye)rH   r   r  r   vhs   &    r*   test_empty_identityTestSVD.test_empty_identity  s    HHV::aDDNNKbQWWf%RXXv&Qq	"HHV::aDDNNKbQWWf%RXXv&R#r,   c                    \         P                  ! ^R.R^..4      p\        P                  ! VRV P                  R7      p\        P
                  ! V4      p\        W#4       R# )r   r&  Fr  N)r&   r   r   r  r?   svdvalsr   )rH   r   
s_from_svds_from_svdvalss   &   r*   test_svdvalsTestSVD.test_svdvals  sI    HHq#ha)*ZZet~~N
*J7r,   r   N)rU   rV   rW   rX   r  r  rZ   r[   r\   s   @r*   r  r    s     $8 8r,   r  c                   &   a  ] tR tRt o R tRtV tR# )SVDHermitianCasesi  c           	        \         P                  ! VR RR7      w  rEp\        V\        \        P
                  ! V4      \        P
                  ! V4      R,          ,          \        P
                  ! V4      4      \        VP                  4      R7       R p\        P                  ! \        P                  ! VP                  R,          4      VP                  4      p\        \        P                  ! WG! V4      4      V4       \        P                  ! \        P                  ! VP                  R,          4      VP                  4      p\        \        P                  ! Wg! V4      4      V4       \        \        P                  ! V4      RRRR13,          V4       \        \        WA4      4       \        \        Wa4      4       R# )	FTr?   .Nru  c                     \        \        V P                  4      4      pVR,          VR,          uVR&   VR&   \        P                  ! \        P
                  ! WR7      4      # )r   axesr   r   )r   ranger   r&   conj	transpose)matr  s   & r*   r?   'SVDHermitianCases.do.<locals>.hermitian  sH    chh(D!%b48DHd2h772<<788r,   rw  r   )r   r  r   r   r&   r   r<   r/   r  r  r   r   r   sortr   r+   )	rH   r1   r2   rG   r  r   r  r?   r=  s	   &&&&     r*   rM   SVDHermitianCases.do  s   ::a$7b6"**Q-"**Q-2M"M+-::b>;%agg.	0	9
 ??266!''"+#6@BIIa16A??266"((2,#7BBIIb)B-8(CRWWQZTrT	*A.#A)*#B*+r,   r   Nr!  r\   s   @r*   r  r    s     , ,r,   r  c                   *   a  ] tR tRt o RtR tRtV tR# )TestSVDHermitiani  Tc                   \         P                  ! ^^ .^ ^ ..4      p\        P                  ! WP                  R7      w  r#p\        W"P                  P                  4       ,          \         P                  ! ^4      RR7       \        WDP                  P                  4       ,          \         P                  ! ^4      RR7       R# )r   r  g+=ru  N)	r&   r   r   r  r?   r   Tr  r  )rH   r   r  r   r  s   &    r*   test_singularTestSVDHermitian.test_singular   st    HHq!fq!f%&::a>>:bCCHHJq	>TTYY[("&&)%@r,   r   N)rU   rV   rW   rX   r?   r  rZ   r[   r\   s   @r*   r  r    s     IA Ar,   r  c                   &   a  ] tR tRt o R tRtV tR# )	CondCasesi  c           	     f   \        V4      pR V9   d"   \        \        \        P                  V4       R# \        P
                  ! VRR7      p\        \        P                  ! V4      VR,          VR,          ,          ^^R7       \        \        P                  ! V^4      VR,          VR,          ,          ^^R7       \        \        P                  ! VR	4      VR,          VR,          ,          ^^R7       \        P                  P                  V4      p\        \        P                  ! V^4      \        V4      P                  R	4      P                  R4      \        V4      P                  R	4      P                  R4      ,          ^^R7       \        \        P                  ! VR4      \        V4      P                  R	4      P                  R4      \        V4      P                  R	4      P                  R4      ,          ^^R7       \        \        P                  ! V\        P                  4      \        V4      P                  R4      P                  R4      \        V4      P                  R4      P                  R4      ,          ^^R7       \        \        P                  ! V\        P                  ) 4      \        V4      P                  R4      P                  R4      \        V4      P                  R4      P                  R4      ,          ^^R7       \        \        P                  ! VR4      \        P                  ! \        V4      ^,          P                  R4      P                  R4      \        V4      ^,          P                  R4      P                  R4      ,          4      ^^R7       R# )
r@   NF)r  r3   r4   fror  r   ).r   r   )r   r   r   r   condr  r   r&   rI  r   summaxminr
   sqrt)rH   r1   r2   rG   cr   cinvs   &&&&   r*   rM   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\   s   @r*   r  r    s     (1 (1r,   r  c                   ~  a  ] tR tRt o ]P
                  P                  RRR.4      R 4       t]P
                  P                  R]]	]
].4      ]P
                  P                  R^R^RR]P                  ]P                  ) .4      R	 4       4       tR
 t]P
                  P!                  RRRR7      R 4       tR tRtV tR# )TestCondi5  
is_complexFTc                   \        . RO. RO. RO.4      pV'       d
   VR,          p\        \        P                  ! V\        4      ^4       \        \        P                  ! V\        ) 4      R4       \        \        P                  ! V^4      ^4       \        \        P                  ! VR	4      R4       \        \        P                  ! VR4      \
        P                  ! R
4      4       R# )re   r&  r  Nre   r  r   r  g       r  r  r  rg         ?      ?gUUUUUU?r   gUUUUU6@)r   r   r   r  r
   r&   r  )rH   r  As   && r*   test_basic_nonsvdTestCond.test_basic_nonsvd6  s     :{J78VAFKK3/3FKKC40%8FKK1-q1FKK2.4FKK5127783DEr,   r/   norm_ordr  c                    \        . RO. RO. RO.VR7      p\        V4      p\        \        P                  ! W2R7      P
                  V4       R# )re   r7   )pNr  r  r  )r   r8   r   r   r  r/   )rH   r/   r  r  out_types   &&&  r*   test_cond_dtypesTestCond.test_cond_dtypesC  s:    
 :{J7uE!%(V[[/55x@r,   c                Z   \         P                  ! R4      \         P                  ! R4      .p. ROpRR.p\        P                  ! W4       F'  w  rE\        \        P                  ! WE4      R8  4       K)  	  \        P                  ! W4       F  w  rE\        P                  ! WE4       K  	  R# )r   N  4&kCr0  Nr   r   r  r   r   )r&   rU  onesr   r   r   r   r  )rH   Asp_posp_negr  r  s   &     r*   r  TestCond.test_singularL  s     hhv0#R%%b0DA FKK%,- 1 %%b0DAKK 1r,   z/Platform/LAPACK-dependent failure, see gh-18914)runreasonc                   . ROp. ROp\         P                  ! R4      p\         P                  VR&   V F[  p\        P                  ! W44      p\        \        V\         P                  4      4       \        \         P                  ! V4      4       K]  	  \         P                  ! R4      p\         P                  VR&   V F  p\        P                  ! W44      p\        \         P                  ! V^,          4      4       WB9   d-   \        V^ ,          R8  4       \        V^,          R8  4       Kq  \        \         P                  ! V^ ,          4      '       * 4       \        \         P                  ! V^,          4      '       * 4       K  	  R # )Nr  )Nr   r   r   r   r  r  r0  rn  )r   r   r   r   r  r   )	r&   r  nanr   r  r   r%   rW  isnan)rH   psr  r  r  r  s   &     r*   test_nanTestCond.test_nanZ  s    
 )#GGFO&&$AA!AJq"**-.BHHQK  
 GGIVV'
AA!ABHHQqTN#z!t$!t$BHHQqTN*+BHHQqTN*+ r,   c                   \         P                  P                  R 4       \         P                  P                  ^^^^4      p^ VR&   ^ VR&   R F  p\        P
                  ! W4      p\        VR,          \         P                  4       \        VR,          \         P                  4       \        \         P                  ! VR,          4      4       \        \         P                  ! VR,          4      4       K  	  R# )rd   NrT  r   )Nr   r   r  r   r   rn  r   r  )
r&   randomseedrandr   r  r   r
   r   isfinite)rH   r  r  r  s   &   r*   test_stacked_singularTestCond.test_stacked_singularu  s     			tIINN1aA&$$,AA!A4"&&)4"&&)BKK$()BKK$() -r,   r   Nr   r   )rU   rV   rW   rX   r   r  rE  r  r   r   r   r   r&   r
   r  r  xfailr  r  rZ   r[   r\   s   @r*   r  r  5  s     [[\E4=9
F :
F [[Wvvw&HI[[Z!RBrvvw)OPA Q JA [[t-  .,.,0* *r,   r  c                   &   a  ] tR tRt o R tRtV tR# )	PinvCasesi  c                    \         P                  ! V4      p\        pV! V! W4      V4      p\        Wa^^R7       \	        \        WA4      4       R# )   r  Nr   pinvr   r   r   r+   rH   r1   r2   rG   a_ginvr   r3  s   &&&&   r*   rM   PinvCases.do  s>    QS^Q'FaK#F./r,   r   Nr!  r\   s   @r*   r  r    s     
0 0r,   r  c                       ] tR tRtRtR# )TestPinvi  r   Nr-  r   r,   r*   r  r        r,   r  c                   &   a  ] tR tRt o R tRtV tR# )PinvHermitianCasesi  c                    \         P                  ! VR R7      p\        pV! V! W4      V4      p\        Wa^^R7       \	        \        WA4      4       R# )Tr  r  Nr  r  s   &&&&   r*   rM   PinvHermitianCases.do  sA    Q$/S^Q'FaK#F./r,   r   Nr!  r\   s   @r*   r   r     s     0 0r,   r   c                       ] tR tRtRtR# )TestPinvHermitiani  r   Nr-  r   r,   r*   r  r    r  r,   r  c                     \         P                  ! . RO. R	O. R
O.4      p \        \         P                  P	                  V RR7      \         P                  P	                  V RR7      4       \
        P                  ! \        RR7      ;_uu_ 4        \         P                  P	                  V RRR7       RRR4       R#   + '       g   i     R# ; i)r   r&  rcondru  z%`rtol` and `rcond` can't be both set.)match)r  rv  Nr   r   r   )r  r   r   )r   r   r   )r&   r   r   r   r  r   raisesr2  )r1   s    r*   test_pinv_rtol_argr    s    
)Y	23A
		q$
		qs#
 
B
 
 			q#.
 
 
 
s   #B;;C	c                   &   a  ] tR tRt o R tRtV tR# )DetCasesi  c                *   \         P                  ! V4      p\         P                  ! V4      pVP                  VP                  rv\        V4      P                  P                  \        \        39   d    \        V4      P                  \        4      pM\        V4      P                  \        4      p\         P                  ! V4      p	\        V\        P                  ! V	RR7      4       \        V\         P"                  ! V4      ,          \        P                  ! V	RR7      4       \         P$                  ! V4      p\         P$                  ! V4      pV^ 8g  p
\        \         P&                  ! Wj,          4      ^4       \)        Wz( ,          \*        ) 4       R# )r   axisNr   )r   detslogdetsign	logabsdetr   r/   r$   r   r   astyper   r`  r   r   reducer&   exp
atleast_1dr   r   r
   )rH   r1   r2   rG   drZ  r   ldadrb  ms   &&&&       r*   rM   DetCases.do  s    JJqMnnQ#--21:  VV$44""6*B""7+B^^BAxr;<Ar
NHOOBR,HIMM!]]2!VBFF14L!,RVcT"r,   r   Nr!  r\   s   @r*   r  r    s     # #r,   r  c                   x   a  ] tR tRt o R t]P                  P                  R]]	]
].4      R 4       tR tRtV tR# )TestDeti  c                   \        \        P                  ! R ..4      R 4       \        \        \        P                  ! R ..4      4      \        4       \        \        P                  ! R..4      R 4       \        \        \        P                  ! R..4      4      \
        4       \        \        P                  ! R ..4      R \        ) 34       \        \        \        P                  ! R ..4      ^ ,          4      \        4       \        \        \        P                  ! R ..4      ^,          4      \        4       \        \        P                  ! R..4      R\        ) 34       \        \        \        P                  ! R..4      ^ ,          4      \
        4       \        \        \        P                  ! R..4      ^,          4      \        4       R# )        y                N)r   r   r  r$   r   r   r  r
   rR   s   &r*   	test_zeroTestDet.test_zero  s&   VZZ#(#.T&**seW-.7VZZ$)3/T&**tfX./9V^^cUG,sSDk:T&..3%1!45v>T&..3%1!45v>V^^dVH-sd|<T&..4&2156@T&..4&2156?r,   r/   c                T   \         P                  ! ^R.R^..VR7      p\        \         P                  P	                  V4      P
                  V4       \         P                  P                  V4      w  r4\        VP
                  \        V4      4       \        VP
                  V4       R# r%  )r&   r   r   r   r  r/   r  r8   )rH   r/   r   phr   s   &&   r*   r(  TestDet.test_types  ss    HHq#ha)7RYY]]1%++U3		!!!$QWWnU34RXXu%r,   c                   \         P                  ! R\         P                  R7      p\        P                  ! V4      p\        VR4       \        VP                  P                  \         P                  J 4       \        P                  ! V4      p\        VR4       \        V^ ,          P                  P                  \         P                  J 4       \        V^,          P                  P                  \         P                  J 4       \         P                  ! R\         P                  R7      p\        P                  ! V4      p\        VR4       \        VP                  P                  \         P                  J 4       \        P                  ! V4      p\        VR4       \        V^ ,          P                  P                  \         P                  J 4       \        V^,          P                  P                  \         P                  J 4       R# )r  r7   re   NrT  r  )r&   rU  rX  r   r  r   r   r/   r$   r  float32rW  )rH   r1   rZ  s   &  r*   r>  TestDet.test_0_size  s6   HHV2<<0jjmS"		",,./nnQS&!A!!R\\12A!!RZZ/0HHV2::.jjmS"		"**,-nnQS&!A!!RZZ/0A!!RZZ/0r,   r   N)rU   rV   rW   rX   r"  r   r  rE  r   r   r   r   r(  r>  rZ   r[   r\   s   @r*   r  r    sD     @ [[Wvvw&HI& J&1 1r,   r  c                   &   a  ] tR tRt o R tRtV tR# )
LstsqCasesi  c                \   \         P                  ! V4      pVP                  w  rV\        P                  ! VR 4      w  rxp	\        P
                  ! WRR7      w  rrV^ 8X  d   \        V
^ 8H  P                  4       4       WV8:  d"   \        V\        W4      4       \        W4       M\        W4       \        WP                  V4      4       W8X  d   WV8  d   \         P                  ! \        \         P                  ! W4      V,
          4      4      ^,          P                  ^ R7      p\         P                  ! V4      p\         P                  ! V4      P                  ^8X  d   VP                  R4      p\        VP                  VP                  4       M.\         P                   ! . 4      P#                  \%        V
4      4      p\        W4       \        \         P&                  ! VP(                  \         P*                  4      4       \        \-        W4      4       \        \-        W4      4       R# )Fr  r  Nr   r   )r&   r   r   r   r  lstsqr   r   r   r   r   __array_wrap__r   r  r   r   r   r   r$   
issubdtyper/   floatingr+   )rH   r1   r2   rG   arrr  nr  r   r  r   	residualsranksvexpect_residss   &&&&           r*   rM   LstsqCases.do  sp   jjmyy::a'b!'a"!=d6Q!VLLN#63q9-!!B 1 1! 459

3rvva|a/01Q6 JJ}5Mzz!}!!Q& - 5 5d ;-*=*=>HHRL--d1g6MI5ioor{{;<#A)*#I12r,   r   Nr!  r\   s   @r*   r+  r+    s     3 3r,   r+  c                   x   a  ] tR tRt o R t]P                  P                  . RO. RO4      R 4       tR t	Rt
V tR# )		TestLstsqi  c                   \         P                  ! . RO. RO. RO. RO.4      P                  p\         P                  ! . RO4      p\        P                  ! WRR7      w  r4rV\        V^8H  4       \        P                  ! W4      w  r4rV\        V^8H  4       \        P                  ! WRR7      w  r4rV\        V^8H  4       R# )	r!  r  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!  )r   r  r  r  r  r  r   )r&   r   r  r   r-  r   )rH   r1   r2   r   r3  r4  r   s   &      r*   
test_rcondTestLstsq.test_rcond  s    HH22224 5 67Q 	

 HH'( &Q <d	 &Q 2d	 &Q >d	r,   c                t   \         P                  ! W,          4      P                  W4      p\         P                  ! W34      p\        P
                  ! WER R7      w  rgrV^ 8X  d   \        V^ 8H  P                  4       4       \        VP                  W#34       \        VP                  W8  d   V3MR4       W8  dG   V^ 8  d@   V\         P                  ! WF4      ,
          p
\        WzV
,          P                  RR7      4       \        V\        W4      4       \        V	P                  \        W4      34       R # )Nr  r  ro  r   )r&   r1  r   r  r   r-  r   r   r   r   r   r   r  r  )rH   r  r2  n_rhsr1   r2   r   r3  r4  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                ~   \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! V\         P                  ! \	        V4      4      .4      P
                  p\        \        R4      ;_uu_ 4        \        P                  ! W2RR7       RRR4       R#   + '       g   i     R# ; i)r  zIncompatible dimensionsNr  )r  r   r   r   )r   g?g?g @gffffff
@)
r&   r   vstackr  lenr  r    r   r   r-  )rH   r   yr  s   &   r*   test_incompatible_dims TestLstsq.test_incompatible_dims9  sp    HH\"HH-.IIq"''#a&/*+-- .GHHLLT* IHHHs   B++B<	r   N)r  r2  r>  ))r  r   r   )r  r  r   )r  r  r   )r  r  r   )r  r  r   )r  r   r  r  r  r  )rU   rV   rW   rX   r;  r   r  rE  r?  rE  rZ   r[   r\   s   @r*   r9  r9    s?      [[0 3 ,,+ +r,   r9  dtz?bBhHiIqQefdgFDGOc                     a  ] tR tRt o ]P
                  ! ^4      t]. RO,          t]. RO,          t]. RO,          t	]]]]	.t
]! ^^ .^ ^ ..4      t]P                  ! ]...^,          4      t]]P                   ! R4      ]P                   ! R4      ]P                   ! R4      .tR tR tR tR tR	 tR
 tR t]P4                  P7                  ]RR7      R 4       tRtV tR# )TestMatrixPoweriB  r   gGc                   V P                   P                  V4      p\        \        V^^d,          R,           ^ ,           ^ ,           4      V P                  4       \        \        V^^d,          R,           ^ ,           ^,           4      V P                   4       \        \        V^^d,          R,           ^ ,           ^,           4      V P
                  4       \        \        V^^d,          R,           ^ ,           ^,           4      V P                  4       R# )r   Ni   )rshft_1r  r   r   rshft_0rshft_2rshft_3)rH   rH  rshfts   && r*   test_large_power TestMatrixPower.test_large_powerO  s    ##B'3 5 9:DLL	J3 5 9:DLL	J3 5 9:DLL	J3 5 9:DLL	Jr,   c                
   R  pV P                    Fo  pV! VP                  V4      4       \        P                  ! V4      P                  \        P
                  Jg   KN  V! V P                  P                  V4      4       Kq  	  R# )c                     \        V ^ 4      p\        V\        V 4      4       \        VP                  V P                  4       R# )r  N)r   r   r  r/   )Mmzs   & r*   tz.TestMatrixPower.test_power_is_zero.<locals>.tz[  s0    a#B6q9:177+r,   N	rshft_allr  r&   r/   r$   object_stackedrH   rH  rY  r  s   &&  r*   test_power_is_zero"TestMatrixPower.test_power_is_zeroZ  sX    	,
 >>Cszz"~xx|  

24<<&&r*+ "r,   c                
   R  pV P                    Fo  pV! VP                  V4      4       \        P                  ! V4      P                  \        P
                  Jg   KN  V! V P                  P                  V4      4       Kq  	  R# )c                 t    \        V ^4      p\        W4       \        VP                  V P                  4       R# )r   N)r   r   r/   )r  rX  s   & r*   rY  -TestMatrixPower.test_power_is_one.<locals>.tzf  s(    c1%B!399-r,   Nr[  r_  s   &&  r*   test_power_is_one!TestMatrixPower.test_power_is_onee  sX    	.
 >>Cszz"~xx|  

24<<&&r*+ "r,   c                
   R  pV P                    Fo  pV! VP                  V4      4       \        P                  ! V4      P                  \        P
                  Jg   KN  V! V P                  P                  V4      4       Kq  	  R# )c                     \        V ^4      pV P                  \        8w  d   \        M\        p\        W! W 4      4       \        VP                  V P                  4       R# )r   N)r   r/   objectr   r   r   )r  rX  mmuls   &  r*   rY  -TestMatrixPower.test_power_is_two.<locals>.tzq  s@    c1%B YY&06cDT#^,399-r,   Nr[  r_  s   &&  r*   test_power_is_two!TestMatrixPower.test_power_is_twop  sX    	. >>Cszz"~xx|  

24<<&&r*+ "r,   c                    R  pV P                    F,  pWP                  9  g   K  V! VP                  V4      4       K.  	  R# )c                     \        V R4      pV P                  \        8w  d   \        M\        p\        V! W4      \        V 4      4       R# )r   Nr   )r   r/   ri  r   r   r   r  )r  invmatrj  s   &  r*   rY  3TestMatrixPower.test_power_is_minus_one.<locals>.tz}  s9    !#r*F YY&06cDV!#<S#ACr,   N)r\  dtnoinvr  r_  s   &&  r*   test_power_is_minus_one'TestMatrixPower.test_power_is_minus_one|  s2    	C >>C%3::b>" "r,   c                    V P                   P                  V4      p\        \        \        VR 4       \        \        \        V^.4       R# )g      ?N)rO  r  r   	TypeErrorr   rH   rH  r  s   && r*   test_exceptions_bad_power)TestMatrixPower.test_exceptions_bad_power  s4    ll!!"%isC8isQC8r,   c                   \        \        \        \        P                  ! ^.V4      ^4       \        \        \        \        P                  ! ^.^..V4      ^4       \        \        \        \        P
                  ! RV4      ^4       R# )r   N)r  r   r   )r   r   r   r&   r   r  )rH   rH  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                    WP                   9   d   R # V P                  P                  V4      p\        \        \
        VR4       R # )Nr   )rr  noninvr  r   r   r   rw  s   && r*   test_exceptions_not_invertible.TestMatrixPower.test_exceptions_not_invertible  s1    kk  $k<b9r,   r   N)r   r  r   r   )r   r   r  r   )r   r   r   r  ) rU   rV   rW   rX   r&   r  rO  rN  rP  rQ  r\  r   r  blockr^  ri  r/   rr  rS  r`  re  rl  rs  rx  r{  r   r  skipifr   r  rZ   r[   r\   s   @r*   rJ  rJ  B  s      ffQiGl#Gl#Gl#G'7G4IQFQF#$Fhh'}q()Grxx}bhhsmRXXc]CG	J	,	,
,	#9
L
 [[(FG: H:r,   rJ  c                   &   a  ] tR tRt o R tRtV tR# )TestEigvalshCasesi  c                6   \         P                  ! VR 4      p\         P                  ! V4      w  rVVP                  RR7       \	        WE\        VP                  4      R7       \         P                  ! VR4      p\	        Wu\        VP                  4      R7       R# )Lr  ru  r  Nr   )r   eigvalshra  r  r   r<   r/   )rH   r1   r2   rG   rb  rc  rd  ev2s   &&&&    r*   rM   TestEigvalshCases.do  sh     __Q$"JJqM"(288*<=ooa%8BHH+=>r,   r   Nr!  r\   s   @r*   r  r    s     	? 	?r,   r  c                   ~   a  ] tR tRt o ]P
                  P                  R]]]	]
.4      R 4       tR tR tR tRtV tR# )	TestEigvalshi  r/   c                    \         P                  ! ^R.R^..VR7      p\         P                  P                  V4      p\	        VP
                  \        V4      4       R# r%  )r&   r   r   r  r   r/   r8   )rH   r/   r   r  s   &&  r*   r(  TestEigvalsh.test_types  sF    HHq#ha)7IIq!QWWnU34r,   c                \   \         P                  ! ^R.R^..\         P                  R7      p\        \        \         P
                  P                  VRR7       \        \        \         P
                  P                  VR4       \        \        \         P
                  P                  VR4       R# r   r&  r7   lrongUPLOlowerupperN)r&   r   r(  r   r2  r   r  rH   r   s   & r*   test_invalidTestEigvalsh.test_invalid  sk    HHq#ha)<j"))"4"4agFj"))"4"4aAj"))"4"4aAr,   c                    \         P                  ! ^ ^ .^^ ..\         P                  R7      p\         P                  ! ^ ^.^ ^ ..\         P                  R7      p\         P                  ! R	^.\         P                  R7      p\        \         P                  4      p\         P                  P                  V4      p\        WSVR7       \         P                  P                  VRR7      p\        WSVR7       \         P                  P                  VRR7      p\        WSVR7       \         P                  P                  VRR7      p\        WSVR7       \         P                  P                  VRR7      p\        WSVR7       R# 
r  r7   ru  r  r  lr  r  Nr   )r&   r   r   r<   r   r  r   )rH   KloKuptgtrv  r  s   &     r*   	test_UPLOTestEigvalsh.test_UPLO  s   hhAA'ryy9hhAA'ryy9hhAwbii0		" IIs#T*IIs-T*IIs-T*IIs-T*IIs-T*r,   c                    ! R  R\         P                  4      p\         P                  ! R\         P                  R7      P	                  V4      p\
        P                  ! V4      p\        VP                  P                  \         P                  J 4       \        RVP                  4       \        \        V\         P                  4      4       \         P                  ! R\         P                  R7      P	                  V4      p\
        P                  ! V4      p\        VP                  P                  \         P                  J 4       \        RVP                  4       \        \        V\         P                  4      4       R# )c                       ] tR tRtRtR# )/TestEigvalsh.test_0_size.<locals>.ArraySubclassi  r   Nr-  r   r,   r*   r.  r    r/  r,   r.  r7   NrS  rn  rT  ro  )r&   r'   rU  rV  r   r   r  r   r/   r$   rW  r   r   r%   rX  r(  rY  s   &   r*   r>  TestEigvalsh.test_0_size  s    	BJJ 	HHYbgg.33MBooa 		"**,-VSYY'
3

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

+,r,   r   NrU   rV   rW   rX   r   r  rE  r   r   r   r   r(  r  r  r>  rZ   r[   r\   s   @r*   r  r    sG     [[Wvvw&HI5 J5
B+,- -r,   r  c                   &   a  ] tR tRt o R tRtV tR# )TestEighCasesi  c                   \         P                  ! V4      pVP                  VP                  re\         P                  ! V4      w  rxVP                  RR7       \        WW4       \        \        W4      \        P                  ! V4      R,          \        P                  ! V4      ,          \        VP                  4      R7       \         P                  ! VR4      w  r\        W4       \        \        W4      \        P                  ! V	4      R,          \        P                  ! V
4      ,          \        VP                  4      \        V4      R7       R# )r   r  Nru  r  )rv  err_msgr   rw  )r   eighrx  ry  ra  r  r   r   r   r&   r   r<   r/   repr)rH   r1   r2   rG   rZ  rb  evcrc  rd  r  evc2s   &&&&       r*   rM   TestEighCases.do  s     kk!n//3#3#3C"JJqM"B(q

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

35

48HH%bhh/a	Br,   r   Nr!  r\   s   @r*   r  r    s     B Br,   r  c                   ~   a  ] tR tRt o ]P
                  P                  R]]]	]
.4      R 4       tR tR tR tRtV tR# )	TestEighi  r/   c                    \         P                  ! ^R.R^..VR7      p\         P                  P                  V4      w  r4\	        VP
                  \        V4      4       \	        VP
                  V4       R# r%  )r&   r   r   r  r   r/   r8   r~  s   &&   r*   r(  TestEigh.test_types  sT    HHq#ha)7yy~~a QWWnU34QWWe$r,   c                \   \         P                  ! ^R.R^..\         P                  R7      p\        \        \         P
                  P                  VRR7       \        \        \         P
                  P                  VR4       \        \        \         P
                  P                  VR4       R# r  )r&   r   r(  r   r2  r   r  r  s   & r*   r  TestEigh.test_invalid  se    HHq#ha)<j"))..!'Bj"))..!W=j"))..!W=r,   c                   \         P                  ! ^ ^ .^^ ..\         P                  R7      p\         P                  ! ^ ^.^ ^ ..\         P                  R7      p\         P                  ! R	^.\         P                  R7      p\        \         P                  4      p\         P                  P                  V4      w  rV\        WSVR7       \         P                  P                  VRR7      w  rV\        WSVR7       \         P                  P                  VRR7      w  rV\        WSVR7       \         P                  P                  VRR7      w  rV\        WSVR7       \         P                  P                  VRR7      w  rV\        WSVR7       R# r  )r&   r   r   r<   r   r  r   )rH   r  r  r  rv  r  r  s   &      r*   r  TestEigh.test_UPLO  s   hhAA'ryy9hhAA'ryy9hhAwbii0		" yy~~c"T*yy~~c~,T*yy~~c~,T*yy~~c~,T*yy~~c~,T*r,   c                H    ! R  R\         P                  4      p\         P                  ! R\         P                  R7      P	                  V4      p\
        P                  ! V4      w  r4\        VP                  P                  \         P                  J 4       \        VP                  P                  \         P                  J 4       \        VP                  VP                  4       \        RVP                  4       \        \        V\         P                  4      4       \         P                  ! R\         P                  R7      P	                  V4      p\
        P                  ! V4      w  r4\        VP                  P                  \         P                  J 4       \        VP                  P                  \         P                  J 4       \        VP                  VP                  4       \        RVP                  4       \        \        V\         P                  4      4       R# )c                       ] tR tRtRtR# )+TestEigh.test_0_size.<locals>.ArraySubclassi  r   Nr-  r   r,   r*   r.  r    r/  r,   r.  r7   NrS  rn  rT  ro  )r&   r'   rU  rV  r   r   r  r   r/   r$   rW  r   r   r%   rX  r(  r  s   &    r*   r>  TestEigh.test_0_size  s<   	BJJ 	HHYbgg.33MB[[^
  BJJ./		"**,-QWWekk*VSYY'
1bjj)*HHV2<<055mD[[^
  BLL01		"**,-QWWekk*T399%
1bjj)*r,   r   Nr  r\   s   @r*   r  r    sF     [[Wvvw&HI% J%>+,+ +r,   r  c                   8   a  ] tR tRt o RtRt]R 4       tRtV t	R# )_TestNormBasei/  Nc                4   \        V P                  P                  \        P                  4      '       d-   \        VP                  V P                  P                  4       R # \        \        VP                  P                  \        P                  4      4       R # r#   )	
issubclassr/   r$   r&   inexactr   realr   r0  )r   rZ  s   &&r*   check_dtype_TestNormBase.check_dtype3  sN    aggllBJJ//AFFLL1 Jsyy~~r{{;<r,   r   )
rU   rV   rW   rX   rH  decstaticmethodr  rZ   r[   r\   s   @r*   r  r  /  s!     	B
C= =r,   r  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	_TestNormGenerali<  c                    \        \        . 4      R 4       \        \        \        . V P                  R7      4      R 4       \        \        \	        \        . V P                  R7      4      4      R 4       R# )r!  r7   N)r   r   r   rH  r   rR   s   &r*   
test_empty_TestNormGeneral.test_empty>  sI    T"Xs#T%$''23S9T*U2TWW%=>?Er,   c                   \         P                  ! . R	O4      p\         P                  R,          p\         P                  R,          pW#,           pV EF  pVP                  V4      p\	        V\         P
                  ) 4      pV P                  Wg4       \        VR4       \        P                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \	        VR
4      pV P                  Wg4       \        VR4       RRR4       \	        V^ 4      pV P                  Wg4       \        V^4       \	        V^4      pV P                  Wg4       \        VR4       \	        V^4      pV P                  Wg4       \        WwP                  P                  R4      VP                  P                  R4      ,          4       \	        V^4      pV P                  Wg4       \        WwP                  P                  R4      VP                  P                  R4      ,          4       \	        V\         P
                  4      pV P                  Wg4       \        VR4       EK  	  R#   + '       g   i     ELc; i)r   
AllIntegerAllFloatr!  ignoredivide by zero encounteredNrf   re   r  r   r&  g      ?)r&   r   	typecodesr  r   r
   r  r   warningscatch_warningsfilterwarningsRuntimeWarningr/   r$   rH   r1   exact_typesinexact_types	all_types	each_typeatans   &       r*   test_vector_return_type(_TestNormGeneral.test_vector_return_typeC  s   HHYll<0Z0/	"I)$Bb266'"BR$C(((**'':NL"b\  (#B, + b!BR$A&b!BR$C(b!BR$HHMM#$6i8P$PQb!BR$HHMM#$6i8P$PQb"&&!BR$C(A # +**s   ;AII,c                   a  . ROp. ROp. ROpV 3R lpWV3 F  pV! V4       K  	  \        VS P                  R7      \        VS P                  R7      \        VS P                  R7      3 F  pV! V4       K  	  R# )r   c                 x  < \         P                  P                  \        V 4      RSP                  R7       \         P                  P                  \        V \
        4      RSP                  R7       \         P                  P                  \        V \
        ) 4      RSP                  R7       \         P                  P                  \        V ^4      RSP                  R7       \         P                  P                  \        V R4      RSP                  R7       \         P                  P                  \        V ^4      RSP                  R7       \         P                  P                  \        V R	4      R
SP                  R7       \         P                  P                  \        V ^ 4      ^SP                  R7       R# )   r.   rh   re         $@Ng6ҭ@r   gQ?r   gsc?)r&   testingr   r   r  r
   )r  rH   s   &r*   _test+_TestNormGeneral.test_vector.<locals>._testr  sD   JJ**47I3788 + =JJ**43<3788 + =JJ**4C4=#3788 + =JJ**41:t3788 + =JJ**42;	3788 + =JJ**41:y3788 + =JJ**42;9M3788 + =JJ**41:q3788 + =r,   r7   N)r   r   r   r  )r   r   r   r   )r   r   r   r  )r   rH  )rH   r1   r2   r  r  r  s   f     r*   test_vector_TestNormGeneral.test_vectorm  sl    	=$ A!H  )5$''+B)+A!H+r,   c                v   \        . RO. R	O.V P                  R7      pRR
^ ^^^\        P                  \        P                  ) 3 F  p\	        VP
                  ^,          4       Uu. uF  p\        VRV3,          VR7      NK  	  pp\        \        W^ R7      V4       \	        VP
                  ^ ,          4       Uu. uF  p\        WR3,          VR7      NK  	  pp\        \        W^R7      V4       K  	  \        P                  ! ^^V P                  R7      P                  ^^^4      pVP                  pRR^R
^\        P                  \        P                  ) R3 EFB  p\        P                  ! \	        V) V4      ^4       EF  pVw  rV	^ 8  d	   W,          p	V
^ 8  d	   W,          p
W8X  d   \        \        \        WbVR7       KE  \        WbVR7      pWyV
,           ,
          pW8  dO   \	        VP
                  V,          4       Uu. uF'  p\        VR,          P                  W<R7      VR7      NK)  	  ppMW\	        VP
                  V,          4       Uu. uF1  p\        VR,          P                  W<R7      P                   VR7      NK3  	  pp\        W4       EK  	  EKE  	  R# u upi u upi u upi u upi )r   r7   Nr:  ordr  r  r  r  r	  r  r     r   r   )r   rH  r&   r
   r  r   r   r   r1  r   r   r   combinationsr   r2  taker  )rH   r  orderk	expected0	expected1Bndr  row_axiscol_axisr2  k_indexr=  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   &J'<J,	-J17J6c                   \         P                  ! ^^V P                  R7      P                  ^^^4      pRpRp\	        VRRR7      p\	        VRRRR7      p\        \         P                  ! V4      VVP                  RR4      R7       Rp\        VP                  V8H  VP                  VP                  VRR4      4       RR^ ^^^\         P                  \         P                  ) 3 F  p\        VP                  4       F  p\	        WVR7      p\	        WVRR7      p\        \         P                  ! V4      VVP                  Wx4      R7       \        VP                  4      p^Wh&   \        V4      p\        VP                  V8H  VP                  VP                  WgV4      4       K  	  K  	  RR^R^\         P                  \         P                  ) R	R
3	 F  p\        P                   ! \        VP                  4      ^4       F  p\	        WVR7      p\	        WVRR7      p\        \         P                  ! V4      VVP                  Wx4      R7       \        VP                  4      p^Wh^ ,          &   ^Wh^,          &   \        V4      p\        VP                  V8H  VP                  VP                  WgV4      4       K  	  K  	  R# )r   r7   zorder {0}, axis = {1}z;Shape mismatch found {0}, expected {1}, order={2}, axis={3}Nr  T)r  r  keepdims)r  r  nuc)r   r   r   r   r   )r&   r1  rH  r   r   r   squeezeformatr   r   r
   r  r   r   r   r   permutations)	rH   r  allclose_err	shape_errr=  foundexpected_shaper  r  s	   &        r*   test_keepdims_TestNormGeneral.test_keepdims  sH   IIa477+33Aq!<.Q	 t$/QDtd;

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

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

5 18(4(;(;E(EG!%agg'(t$'(t$!&~!6~5!((nQOQ > Ir,   r   N)rU   rV   rW   rX   r  r  r  r  r  rZ   r[   r\   s   @r*   r  r  <  s(     F
()T<#5J(Q (Qr,   r  c                   V   a  ] tR tRt o ]P
                  tR tR tR tR t	R t
RtV tR# )	_TestNorm2Di  c           	     h    \        \        V P                  . .V P                  R 7      4      R4       R# )r7   r!  N)r   r   r   rH  rR   s   &r*   test_matrix_empty_TestNorm2D.test_matrix_empty  s$    T$**bT*9:C@r,   c                P   V P                  . RO. RO.4      p\        P                  R,          pRpW#,           pV EF  pVP                  V4      p\	        V\        P
                  ) 4      pV P                  Wg4       \        VR4       \        P                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \	        VR4      pV P                  Wg4       \        VR4       RRR4       \	        V^4      pV P                  Wg4       \        VR4       \	        V^4      pV P                  Wg4       \        VR4       \	        VR4      pV P                  Wg4       \        VR4       \	        V\        P
                  4      pV P                  Wg4       \        VR4       \	        VR4      pV P                  Wg4       \        VR4       \	        VR	4      pV P                  Wg4       \        P                  P                  VR
^R7       EK  	  R#   + '       g   i     EL2; i)r   r  fdFDrf   r  r  re   Nr  r  gU&,t=@r  r  rS  r   gLXz?r   )r   r&   r  r  r   r
   r  r   r  r  r  r  r  r  s   &       r*   test_matrix_return_type#_TestNorm2D.test_matrix_return_type  s   JJ	9-.ll<0
 /	"I)$Bb266'"BR$C(((**'':NL"b\  (#B, + b!BR$C(b!BR$$45b"BR$C(b"&&!BR$C(b%BR$C(b%BR$ JJ**2/A1*MM # +**s   %AHH%c                l   V P                  ^^.^^..V P                  R7      p\        \        V4      R4       \        \        VR4      R4       \        \        VR4      R4       \        \        V\        4      R4       \        \        V\        ) 4      R4       \        \        V^4      R4       \        \        VR4      R4       \        \        V^4      R4       \        \        VR4      R	4       \        \        \        VR
4       \        \        \        VR4       \        \        \        V^ 4       R# )r   r7   r  r  r  g      (@rh   rj   gW?"@gїʄ?nofroNgT"@r   r   r   )r   rH  r   r   r
   r   r2  rH   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                   RV P                  . RO. RO. RO.V P                  R7      ,          p\        \        V4      R4       \        \        VR4      R4       \        \        VR4      R4       \        \        V\        4      R4       \        \        V\        ) 4      R4       \        \        V^4      R4       \        \        VR4      R4       \        \        V^4      R	4       \        \        VR4      R
4       R# )r   r7   r  r  gB+pc?g?g333333?re   g?g&.d?gܸՠ?Ng?r	  )r  r  r  )r   r   r   grj=Q0?r   r   )r   rH  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                   V P                  . RO. RO.V P                  R7      p\        P                  ! ^^V P                  R7      P	                  ^^^4      p\        \        \        VR^ 4       \        \        \        VR^ 4       \        \        \        ^^.RR4       \        \        \        ^^.RR4       \        \        \        ^^.RR4       R FE  p\        \        \        WR4       \        \        \        WR	4       \        \        \        W#R
4       KG  	  \        \        \        VR^4       \        \        \        VRR4       \        \        \        VRR4       R# )r   r7   r  r  Ntestr	  r  r  r   rn  )r   r   r   r   r  r   r   )	r   rH  r&   r1  r   r   r2  r   r   )rH   r  r  r  s   &   r*   test_bad_args_TestNorm2D.test_bad_args8  s
    JJ	9-TWWJ=IIa477+33Aq!<
 	j$5!4j$5!4j$At<j$At<j$A= E*dAd;*dAf=*dAf=  	iq$2iq$7j$4;r,   r   N)rU   rV   rW   rX   r&   r   r
  r  r  r  r  rZ   r[   r\   s   @r*   r  r    s1      HHEA2Nh. >"< <r,   r  c                       ] tR tRtRtR# )	_TestNormiT  r   Nr-  r   r,   r*   r   r   T  r  r,   r   c                   2   a  ] tR tRt o R tR tR tRtV tR# )TestNorm_NonSystematiciX  c                    \         P                  ! ^
\         P                  R7      p\        \	        V^R7      R^R7       R# )
   r7   r  gL)@r  N)r&   r1  
longdoubler0   r   r  s   & r*   test_longdouble_norm+TestNorm_NonSystematic.test_longdouble_normZ  s*     IIb.QAqAr,   c                    \         P                  ! R.\         P                  R7      p\        \	        V^R7      R^R7       R# )r   r7   r  r  Nl        i   )r&   r   int32r0   r   r  s   & r*   test_intmin"TestNorm_NonSystematic.test_intmin`  s,     HHhZrxx0QACr,   c                   \         P                  ! R\         P                  R7      pRV^ &   RV^&   Rp\        \         P                  P                  V^R7      V^
R7       VP                  \         P                  4      p\        \         P                  P                  V^R7      V^	R7       VP                  \         P                  4      p\        \         P                  P                  V^R7      V^R7       R# )	r   r7   gV;'@r  r  Nr   y      @      @y            @)	r&   r   clongdoubler0   r   r   r  rp  rX  )rH   r  rZ  s   &  r*   test_complex_high_ord,TestNorm_NonSystematic.test_complex_high_ordf  s    HHT0!!		qa 8#rJHHR]]#		qa 8#qIHHR\\"		qa 8#qIr,   r   N)	rU   rV   rW   rX   r&  r*  r/  rZ   r[   r\   s   @r*   r"  r"  X  s     BD
J 
Jr,   r"  c                   2    ] tR tRt]P
                  t^tRtR# )_TestNormDoubleBaseit  r   N)	rU   rV   rW   rX   r&   r   rH  r  rZ   r   r,   r*   r2  r2  t  s    	B
Cr,   r2  c                   2    ] tR tRt]P
                  t^tRtR# )_TestNormSingleBaseiy  r   N)	rU   rV   rW   rX   r&   r(  rH  r  rZ   r   r,   r*   r4  r4  y  s    	B
Cr,   r4  c                   2    ] tR tRt]P
                  t^tRtR# )_TestNormInt64Basei~  r   N)	rU   rV   rW   rX   r&   int64rH  r  rZ   r   r,   r*   r6  r6  ~  s    	B
Cr,   r6  c                       ] tR tRtRtR# )TestNormDoublei  r   Nr-  r   r,   r*   r9  r9    r  r,   r9  c                       ] tR tRtRtR# )TestNormSinglei  r   Nr-  r   r,   r*   r;  r;    r  r,   r;  c                       ] tR tRtRtR# )TestNormInt64i  r   Nr-  r   r,   r*   r=  r=    r  r,   r=  c                   ,   a  ] tR tRt o R tR tRtV tR# )TestMatrixRanki  c                >   \        ^\        \        P                  ! ^4      4      4       \        P                  ! ^4      pRVR&   \        \        V4      ^4       \        \        \        P                  ! R4      4      ^ 4       \        \        . RO4      ^4       \        \        \        P                  ! R	4      4      ^ 4       \        \        ^.4      ^4       \        P
                  ! V\        P                  ! ^4      \        P                  ! R4      .4      p\        \        V4      \        P
                  ! . R
O4      4       \        \        ^4      ^4       \        \        R4      ;_uu_ 4        \        VRRR7       RRR4       R#   + '       g   i     R# ; i)r  r!  z#`tol` and `rtol` can't be both set.g{Gz?)tolrv  Nr   r   r  )r   r  r  r  )r  )r   r  r  )r   r   r&   r  rU  r   r    r2  )rH   Imss   &  r*   test_matrix_rankTestMatrixRank.test_matrix_rank  s   QBFF1I./FF1I&	[^Q'[&!12A6[.2[$0!4[!%q)XXq"&&)RXXf%567[_bhhy&9:[^Q' >
 
 t$/
 
 
 
s   2FF	c           	        \        ^\        \        P                  ! ^4      RR7      4       \        ^\        \        P                  ! R	4      RR7      4       \        ^ \        \        P
                  ! R	4      RR7      4       \        P                  ! ^4      pRVR
&   \        ^\        VRR7      4       RVR
&   \        ^\        VRRR7      4       \        ^\        VRRR7      4       R# )r  Tr  r!  g:0yE>g|"BE>)r?   rA  g;䡈E>Nr  rB  )r   r   r&   r  r  rU  )rH   rC  s   & r*   test_symmetric_rank"TestMatrixRank.test_symmetric_rank  s    QBFF1I>?QBGGFOtDEQBHHV$4EFFF1I&	QA67&	QA7CDQA7CDr,   r   N)rU   rV   rW   rX   rE  rH  rZ   r[   r\   s   @r*   r?  r?    s     02E Er,   r?  c                  H   \         P                  P                  R 4      p \        ^d4       Fs  pV P	                  RR7      pVR,          VR,          ,           VR&   \        \        V4      ^	4       VR,          VR,          ,           VR	&   \        \        V4      ^4       Ku  	  R# )
i3sizeN)(   r$  )r:  r   )r:  r   r:  r  )r:  r  )r:  r  )r:  r   )r&   r  RandomStater  normalr   r   )rngiXs      r*   test_reduced_rankrT    s|    
))


)C3ZJJHJ%D'AdG#$[^Q'D'AdG#$[^Q' r,   c            	         a  ] tR tRt o ]P
                  tR t]P                  P                  RR.. RO4      R 4       t
R tR tR t]P                  P                  R	. RO4      ]P                  P                  R
. RO4      ]P                  P                  R]P                  ]P                  ]P                   ]P"                  .4      R 4       4       4       tRtV tR# )TestQRi  c                   \        V4      pVP                  pVP                  w  rE\        WE4      p\        P
                  ! VR R7      pVP                  VP                  r\        VP                  V8H  4       \        V	P                  V8H  4       \        \        W4      4       \        \        W4      4       \        VP                  WD38H  4       \        V	P                  WE38H  4       \        \        W4      V4       \        \        VP                  P                  4       V4      \        P                  ! V4      4       \        \        P                   ! V	4      V	4       \        P
                  ! VRR7      w  r\        V
P                  V8H  4       \        VP                  V8H  4       \        \        W4      4       \        \        W4      4       \        V
P                  WF38H  4       \        VP                  We38H  4       \        \        W4      V4       \        \        V
P                  P                  4       V
4      \        P                  ! V4      4       \        \        P                   ! V4      V4       \        P
                  ! VRR7      p\        VP                  V8H  4       \        \        W4      4       \        W4       R# )completemodereducedr  N)r$   r/   r   r  r   qrQRr   r%   r   r   r  r  r&   r  triu)rH   r1   a_typea_dtyper  r2  r  rZ  r]  r^  q1r1r2s   &&           r*   check_qrTestQR.check_qr  s    a''wwI ii
+uucee17"#7"#
1%&
1%&A6!"A6!"CIq)C
A.q	:BGGAJ* 19-G#$G#$
2&'
2&'QF"#QF"#CK+C		R0"&&)<BGGBK, YYqs#G#$
2&'B#r,   r  r2  c                   \        W4      p\        P                  ! W34      pV P                  V4       \        P                  P                  VR R7      w  rV\        VP                  \        P                  4       \        VP                  \        P                  4       \        VP                  W!34       \        VP                  V34       R# )rawrY  N)
r  r&   r   re  r   r\  r   r/   r   r   )rH   r  r2  r  r1   htaus   &&&    r*   test_qr_emptyTestQR.test_qr_empty  s     IHHaVaae,QWWbii(SYY		*QWWqf%SYY%r,   c                   V P                  ^^.^^.^^..\        P                  R7      p\        P                  ! VRR7      w  r#\        VP                  \        P                  8H  4       \        VP                  \        P                  8H  4       \        VP                  R8H  4       \        VP                  R8H  4       \        P                  ! VP                  RR7      w  r#\        VP                  \        P                  8H  4       \        VP                  \        P                  8H  4       \        VP                  R8H  4       \        VP                  R8H  4       R# )r   r7   rh  rY  Nr  r-  r   )	r   r&   r   r   r\  r   r/   r   r  )rH   r1   ri  rj  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                @   V P                  ^^.^^..4      pV P                  ^^.^^.^^..4      pR Fb  pVP                  V4      pVP                  V4      pV P                  V4       V P                  V4       V P                  VP                  4       Kd  	  R F~  p^RVP                  V4      ,          ,           p^RVP                  V4      ,          ,           pV P                  V4       V P                  V4       V P                  VP                  4       K  	  R# )r   fd              ?N)r   r  re  r  )rH   r1   r2   rH  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           	     
   \        V4      pVP                  pVP                  RR w  rE\        WE4      p\        P
                  ! VRR7      w  rx\        VP                  V8H  4       \        VP                  V8H  4       \        \        Wr4      4       \        \        W4      4       \        VP                  RR WD38H  4       \        VP                  RR WE38H  4       \        \        Wx4      V4       \        P                  ! VP                  R,          4      p	\        P                  ! V	VP                  RR VP                  R,          3^,          ,           4      p
\        \        \        VRR4      P                  4       V4      V
4       \        \        P                  ! VR,          4      V4       \        P
                  ! VRR7      w  r\        VP                  V8H  4       \        VP                  V8H  4       \        \        W4      4       \        \        W4      4       \        VP                  RR WF38H  4       \        VP                  RR We38H  4       \        \        W4      V4       \        P                  ! VP                  R,          4      p	\        P                  ! V	VP                  RR VP                  R,          3^,          ,           4      p
\        \        \        VRR4      P                  4       V4      V
4       \        \        P                  ! VR,          4      V4       \        P
                  ! VRR7      p\        VP                  V8H  4       \        \        W4      4       \        W4       R# )	r   NrX  rY  r[  r  r   r   ).r:  r:  )r$   r/   r   r  r   r\  r   r%   r   r   r&   r	   r  r   r  r_  )rH   r1   r`  ra  r  r2  r  qr  I_matstack_I_matrb  rc  rd  s   &&            r*   check_qr_stackedTestQR.check_qr_stacked(  s    a''wwrs|I yy,7"#7"#
1%&
1%&&'&'F1L!,AGGBK(ooe~'99;F8Ar2#6#;#;#=qA;OBGGAiL115 19-G#$G#$
2&'
2&'!'(!'(F2NA.BHHRL)ooe""!(;;=F8BB#7#<#<#>C'	)BGGByM2B7 YYqs#G#$
2&'B#r,   rL  
outer_sizerH  c                @   \         P                  P                  ^{4      pVP                  W,           R7      P	                  V4      pVP                  W,           R7      P	                  V4      pV P                  V4       V P                  VRV,          ,           4       R# ){   rK  rr  N)r&   r  default_rngrP  r  r{  )rH   r}  rL  rH  rQ  r  r  s   &&&&   r*   test_stacked_inputsTestQR.test_stacked_inputsU  sx     ii##C(JJJ-J.55b9JJJ-J.55b9a a#'k*r,   r   N)r   r  r  rT  ))r   r  )r  r   r  r  r  )r0  r-  )r   r   r  )rU   rV   rW   rX   r&   r   re  r   r  rE  rk  rn  ru  r{  r   r   r   r   r  rZ   r[   r\   s   @r*   rV  rV    s     HHE%$N [[c3Z * 

&

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


BJJ$  !+!"+r,   rV  c                   L  a  ] tR tRt o ]P
                  P                  R. RO4      ]P
                  P                  R]P                  ]P                  ]P                  ]P                  34      ]P
                  P                  RRR.4      R 4       4       4       tR tR	 tR
tV tR# )TestCholeskyif  r   r/   r  FTc                   \         P                  P                  ^4       \         P                  P                  ! V!  p\         P                  ! V\         P
                  4      '       d-   VR\         P                  P                  ! V!  ,          ,           p\        \        \        V4      4      4      pRVRR% \         P                  ! VP                  V4      P                  4       V4      p\         P                  ! WBR7      p\         P                  P                  WCR7      pV'       d6   \         P                  ! VP                  V4      P                  4       V4      pM3\         P                  ! WfP                  V4      P                  4       4      pRVP                  ^ ,          ,          \         P                   ! V4      P"                  ,          p\%        WtW RV RV RV 2R7       \         P&                  ! VRR
R	7      p	\)        \         P*                  ! \         P,                  ! V	4      4      4       \)        \         P*                  ! V	^ 8  4      4       R# )r   rr  Nr7   r  i   
)atolr  )axis1axis2r   r   )r   r   )r&   r  r  randnr/  complexfloatingr   r  rC  r   r  r  r   r   choleskyr   finfoepsr   diagonalr   r   isreal)
rH   r   r/   r  r1   tr  r2   r  r  s
   &&&&      r*   test_basic_property TestCholesky.test_basic_propertyh  s    			qIIOOU#== 2 233B%000As5z"#"#IIakk!n))+Q/JJq&IIq. 		!++a.--/3A		![[^0023AQWWQZ"((5/"5"5547!E7"QCr!1MN KK2.ryy|$%qAvr,   c                ,    ! R  R\         P                  4      p\         P                  ! R\         P                  R7      P	                  V4      p\
        P                  ! V4      p\        VP                  VP                  4       \        VP                  P                  \         P                  J 4       \        \        V\         P                  4      4       \         P                  ! R\         P                  R7      P	                  V4      p\
        P                  ! V4      p\        VP                  VP                  4       \        VP                  P                  \         P                  J 4       \        \        V\         P                  4      4       R# )c                       ] tR tRtRtR# )/TestCholesky.test_0_size.<locals>.ArraySubclassi  r   Nr-  r   r,   r*   r.  r    r/  r,   r.  r7   NrS  )r   r  r  )r&   r'   rU  rV  r   r   r  r   r   r   r/   r$   rW  r%   rX  rY  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,   c                F   \         P                  ! RR.RR..4      p\        \        P                  ! V4      \        P                  ! VRR7      4       \        \        P                  ! VRR7      \        P                  ! V4      P
                  P                  4       4       R# )	r   y               @Fr  TNy      ?        y               y      @        )r&   r   r   r   r  r  r  )rH   r1   s   & r*   test_upper_lower_arg!TestCholesky.test_upper_lower_arg  sn    HHvv&(89:V__Q'%)HIOOAT*OOA  %%'	
r,   r   N)r   r0  r   r   )2   r  )r   r$  r$  )rU   rV   rW   rX   r   r  rE  r&   r(  rW  rX  rp  r  r>  r  rZ   r[   r\   s   @r*   r  r  f  s     [[@ [["**bjj",,F [[%    8- 	
 	
r,   r  c                      ] tR tRt]P
                  ! ^4      t]P
                  ! ^4      t]P                  ! . RO. RO. RO.4      t	]
! ]P                  P                  ]]4      ]	4       ]! ]R4      ;_uu_ 4        ]P                  P                  ]R]P                  3,          ]4       RRR4       RtR#   + '       g   i     RtR# ; i)		TestOuteri  z$Input arrays must be one-dimensionalr:  Nr   rG  r  )r  r   r  )rU   rV   rW   rX   r&   r1  arr1arr2r   r=  r   r   outerr    r2  newaxisrZ   r   r,   r*   r  r    s    99Q<D99Q<Dxx				H ryytT2H=	:
 
 			Q

]+T2
 
 
 
s   :0B66C		r  c                  |   \         P                  R 8X  d   Rp MRp \        P                  \        P                  3 F  p\        P
                  ! ^VR7      pVP                  VP                  P                  V 4      4      pVP                  VP                  P                  R4      4      P                  4       p\        VP                  P                  R4       \        P                  \        P                  \        P                  3 F-  pV! V4      p\        We! V4      4       \        We! V4      4       K/  	  K  	  R# )little<rQ   r7   r  =N)sys	byteorderr&   r(  rW  r  r   r/   newbyteorderbyteswapr   r   rI  r  r  r   )nativedttr1  n_arrsw_arrroutinerZ  s          r*   test_byteorder_checkr    s    
}} 

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

FJJ<G#,CsGEN3sGFO4 = (r,   r}  r~  c                  >   \         P                  ! ^^.^^..4      p \         P                  ! ^^.^^..4      p\         P                  ! . RO4      R,          pWR&   WR&   \        \         P                  P
                  \         P                  P                  V4       R# )r   :r   Nr   .N)r  r  r   r   rT  )r&   r   rU  r   r   r   rI  )
invertiblenon_invertibler   s      r*    test_generalized_raise_multiloopr    sy    
 Aq6Aq6*+JXX1v1v./N
t$AcFdG"))'':r,   z<ignore:.*fork\(\) may lead to deadlocks.*:DeprecationWarningz?skipping test that uses fork because there are multiple threadsz:Cannot safely use fork in tests on the free-threaded buildc                     ^p  \         P                  ! 4       pX^ 8X  d   \         P                  ! ^4       \         P                  ! ^ 4       ^ RIpVP                  VP                  R4        \        P                  P                  P                  4         \        P$                  ! R..4      p\        P                  P                  P'                  ^^^V^ W3^ ^ 4	       \         P                   ! \         P"                  4       R# \         P*                  ! 4       w  r\         P,                  ! V4      V 8w  d   \        P
                  ! R4       R# R#   \        \        3 d    \        P
                  ! R4        ELai ; i  \         d     L\         d)    \         P                   ! \         P"                  4        EL'i ; i  \         d2   pR\)        T4      9   d   \         P                   ! T 4        Rp?ELRp?ii ; i)   zNot POSIX or fork failed.Nre   zDORGQR parameter number 5zNumpy xerbla not linked in.rT  )osforkOSErrorAttributeErrorr   skipcloseresource	setrlimitRLIMIT_COREr&   r   lapack_litexerblar2  r   _exit	EX_CONFIGr   dorgqrrD   waitWEXITSTATUS)	XERBLA_OKpidr  r1   r   statuss         r*   test_xerbla_overrider    sm    I1ggi
 ax

8//8	#II!!((*
	$2$ AII!!((1aa 	 ggi>>&!Y.KK56 /I ^$ 1/01  	 	#HHR\\"	#  	$*c!f4 #		$sH   E -(E> AG  'E;:E;>F=F=%F=<F= G<&G77G<zCannot start subprocessc                     R R.p \         P                  ! R4      pV  Fc  pVP                  RRVR7      p\        \        P
                  RV.4       VP                  RRVR7      p\        \        P
                  RV.4       Ke  	  R# )	z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  N)textwrapdedentr  r!   r  
executable)bad_libstemplater  codes       r*   test_sdot_bug_8577r    s     "9-H 
  
	H &:"'.  0d34 %9"'.  0d34 r,   c                   b   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tRtV tR# )TestMultiDoti;  c           
        \         P                  P                  R4      p\         P                  P                  R4      p\         P                  P                  R4      p\        \        WV.4      VP	                  V4      P	                  V4      4       \        \        WV.4      \         P                  ! V\         P                  ! W#4      4      4       R# r  Nr  r   r   r  r&   r  r   r   r   )rH   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                    \         P                  P                  R4      p\         P                  P                  R4      p\        \        W.4      VP	                  V4      4       \        \        W.4      \         P                  ! W4      4       R# r  r  )rH   r  r  s   &  r*   &test_basic_function_with_two_arguments3TestMultiDot.test_basic_function_with_two_argumentsG  s\    IIV$IIV$Iqf-quuQx8Iqf-rvva|<r,   c                   \         P                  P                  R4      p\         P                  P                  R4      p\         P                  P                  R4      p\         P                  P                  R4      p\        \        WW4.4      VP	                  V4      P	                  V4      P	                  V4      4       R# )r  Nr  r  r   r   r  )rH   r  r  r  Ds   &    r*   9test_basic_function_with_dynamic_programming_optimizationFTestMultiDot.test_basic_function_with_dynamic_programming_optimizationO  s     IIV$IIV$IIV$IIV$IqQl3QUU1X\\!_5H5H5KLr,   c                @   \         P                  P                  ^4      p\         P                  P                  R4      p\         P                  P                  R4      p\         P                  P                  R4      p\        \        WW4.4      P                  R4       R# )r   Nr  r  r0  r-  r&   r  r   r   r   )rH   A1dr  r  r  s   &    r*   test_vector_as_first_argument*TestMultiDot.test_vector_as_first_argumentX  sm    iiq!IIV$IIV$IIV$ 	Y~.44d;r,   c                @   \         P                  P                  R4      p\         P                  P                  R4      p\         P                  P                  R4      p\         P                  P                  ^4      p\        \        WW4.4      P                  R4       R# )r  Nr  r  )r  r  )rH   r  r  r  D1ds   &    r*   test_vector_as_last_argument)TestMultiDot.test_vector_as_last_argumentb  sm    IIV$IIV$IIV$iiq! 	Ya~.44d;r,   c                @   \         P                  P                  ^4      p\         P                  P                  R4      p\         P                  P                  R4      p\         P                  P                  ^4      p\        \        WW4.4      P                  R4       R# )r   Nr  r  r   r  )rH   r  r  r  r  s   &    r*   &test_vector_as_first_and_last_argument3TestMultiDot.test_vector_as_first_and_last_argumentl  sn    iiq!IIV$IIV$iiq! 	Y/066;r,   c           
        \         P                  P                  R4      p\         P                  P                  R4      p\         P                  P                  R4      p\         P                  ! R4      p\        WV.VR7      pWEJ g   Q h\	        WAP                  V4      P                  V4      4       \	        V\         P
                  ! V\         P
                  ! W#4      4      4       R# )r  r(   Nr  r  r&   r  rU  r   r   r   )rH   r  r  r  r(   rets   &     r*   test_three_arguments_and_out)TestMultiDot.test_three_arguments_and_outv  s     IIV$IIV$IIV$hhvq	s+zzCqa1C266!<!89r,   c                L   \         P                  P                  R4      p\         P                  P                  R4      p\         P                  ! R4      p\        W.VR7      pW4J g   Q h\	        W1P                  V4      4       \	        V\         P
                  ! W4      4       R# )r  r  Nr  r  )r  r  r  )rH   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                   \         P                  P                  R4      p\         P                  P                  R4      p\         P                  P                  R4      p\         P                  P                  R4      p\         P                  ! R4      p\        WW4.VR7      pWVJ g   Q h\	        WQP                  V4      P                  V4      P                  V4      4       R# )r  r  Nr  r  r  )r  r   r  )rH   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           	     J   \         P                  P                  R4      \         P                  P                  R4      \         P                  P                  R4      \         P                  P                  R	4      \         P                  P                  R
4      \         P                  P                  R4      .p\         P                  ! . RO. RO. RO. RO. RO. RO.4      p\         P                  ! . RO. RO. RO. RO. RO. RO.\        R7      pV^,          p\	        VRR7      w  rE\        \         P                  ! VRR1R3,          4      \         P                  ! VRR1R3,          4      4       \        \         P                  ! V4      \         P                  ! V4      4       R# )r  r7   T)return_costsNr   NN)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  r   r   r   r   r   )r  r  r   r   r   r   )r  r  r  r   r   r   )r  r  r  r  r  r  )r  r  r  r  r  r  )r  r  r  r  r  r  r   )r&   r  r   intr   r   r_  )rH   arrays
m_expected
s_expectedr   r  s   &     r*   test_dynamic_programming_logic+TestMultiDot.test_dynamic_programming_logic  s=    ))""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 	BGGAcrc2gJ/GGJssBw$78	:BGGAJ
(;<r,   c                    \        \        \        . 4       \        \        \        \        P                  P	                  R4      .4       R# )r   Nr  )r   r2  r   r&   r  rR   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)rU   rV   rW   rX   r  r  r  r  r  r  r  r   r  r  r  rZ   r[   r\   s   @r*   r  r  ;  sE     K=M<<<:/
9=<I Ir,   r  c                   F  a  ] tR tRt o ]P
                  P                  R]P                  ! R4      ^3]P                  ! R4      ^3.4      R 4       t	]P
                  P                  RRR.4      R 4       t
]P
                  P                  R^ R.4      R 4       tR tR	tV tR
# )TestTensorinvi  zarr, indc                    \        \        4      ;_uu_ 4        \        P                  ! WR 7       RRR4       R#   + '       g   i     R# ; i)indN)r   r   r   	tensorinv)rH   r1  r  s   &&&r*   test_non_square_handling&TestTensorinv.test_non_square_handling  s,    
 ;''S* ('''s	   :A	z
shape, indc                    \         P                  ! ^4      P                  V4      p\        P                  ! W2R7      pVP
                  VR VP
                  RV ,           pVP
                  p\        We4       R# )   r1   r  N)r&   r  r   r   r  r   r   )rH   r   r  r1   ainvr=  actuals   &&&    r*   test_tensorinv_shape"TestTensorinv.test_tensorinv_shape  s[     FF2Ju%!-7734=1774C=0V&r,   r  c                    \         P                  ! ^4      P                  R4      p\        \        4      ;_uu_ 4        \
        P                  ! W!R7       RRR4       R#   + '       g   i     R# ; i)r  r  Nr  r     r   )r&   r  r   r   r2  r   r  )rH   r  r1   s   && r*   test_tensorinv_ind_limit&TestTensorinv.test_tensorinv_ind_limit  sD     FF2J|,:&&q* '&&&s   AA0	c                (   \         P                  ! ^4      P                  R4      p\        P                  ! V^R7      p\         P
                  ! ^4      p\        \         P                  ! W#^4      \         P                  P                  W4      4       R# )r  r  Nr  r&  r   )	r&   r  r   r   r  r  r   	tensordottensorsolve)rH   r1   r   r2   s   &   r*   test_tensorinv_result#TestTensorinv.test_tensorinv_result  s]    FF2Jz*q)GGBKTa0"))2G2G2MNr,   r   Nr  r  r&  r   r   r   r   )r%  r   )r*  r   r   )rU   rV   rW   rX   r   r  rE  r&   r  r  r"  r'  r-  rZ   r[   r\   s   @r*   r  r    s     [[Z		"		Q*
 +	+ [[\,
 
'
' [[U	2%
 ++
O Or,   r  c                      a  ] tR tRt o ]P
                  P                  R]P                  ! R4      R3]P                  ! R	4      R
3.4      R 4       t	]P
                  P                  R. RO4      R 4       t
RtV tR# )TestTensorsolvei  za, axesNc                    \        \        4      ;_uu_ 4        \        P                  ! VP                  R ,          4      p\
        P                  ! WVR7       RRR4       R#   + '       g   i     R# ; i:Nr   Nr  N)r   r   r&   r  r   r   r,  )rH   r1   r  r2   s   &&& r*   r  (TestTensorsolve.test_non_square_handling  sD    
 ;''$Aq$/ ('''s   A A""A3	r   c           	     8   \         P                  P                  ! V!  p\         P                  ! VP                  R ,          4      p\         P
                  P                  W#4      p\        \         P                  ! W$\        VP                  4      R7      V4       R# r4  )
r&   r  r  r  r   r   r,  r   r+  rC  )rH   r   r1   r2   r   s   &&   r*   test_tensorsolve_result'TestTensorsolve.test_tensorsolve_result  s]     IIOOU#GGAGGBK II!!!'QAGG=qAr,   r   r/  r0  r  r   ))r   r   r  )r   r  r  r   )r  r   r   r  )rU   rV   rW   rX   r   r  rE  r&   r  r  r7  rZ   r[   r\   s   @r*   r2  r2    sy     [[Y		%		V$)
 0	0
 [[W/BBr,   r2  c                      \         P                  ! ^R.^^..RR7      p \        \        R4      ;_uu_ 4        \        P
                  ! V 4       RRR4       R#   + '       g   i     R# ; i)r   float16r7   zunsupported in linalgNr   )r&   r   r    rv  r   r  )r1  s    r*   test_unsupported_commontyper<    sI    
((QGaV$I
6C	Y(?	@	@ 
A	@	@	@s   AA)	z,Bad memory reports lead to OOM in ci testingc                     Rp \         P                  ! ^V .\         P                  R7      p\         P                  ! ^^.\         P                  R7      p^VR&   \         P                  ! W!4      p\        VR,          ^4       R# )r   r7   N        )r  r   )r&   rU  r(  r  r   r   )r2  r1   r2   r  s       r*   test_blas64_dotr?  	  s[    A
!Qrzz*A
Abjj)AAeH
qA51r,   z*Numpy not compiled with 64-bit BLAS/LAPACKc            
         \         P                  p \         P                  P                  P                  pRpRpTp\         P
                  ! ^^.V R7      p\         P
                  ! ^.V R7      p\         P
                  ! ^.V R7      pV! W#WTWvR^ 4      p\        VR,          ^ 4       \        VR,          V4       \        VR,          V4       \        VP                  4       4      p	\        RT	u;8  ;'       d    R	8  4       R# u 4       R# )
r   r7   infor  r2  Nr>  l       r   l        )
r&   rW  r   r  dgeqrfrU  r   r  itemr   )
r/   lapack_routiner  r2  ldar1   workrj  resultslworks
             r*   !test_blas64_geqrf_lwork_smoketestrI  	  s     JJEYY**11NAA
C 	!Qu%A88QCu%D
((A3e
$C Q13b!<G!$q!q! 		EEE!!E!"!"r,   c                      \         P                  ! ^<4      P                  R4      p \         P                  P	                  V 4      p\         P
                  ! . RO. RO. RO.4      p\        W4       R# )<   Nr   r  r  )r  r        )r
         &   )rM  .   4   :   )r&   r1  r   r   r  r   r   r   r!  r=  s      r*   test_diagonalrV  (	  sV     			"i(AYY"Fxx	
H "r,   c                      \         P                  ! ^<4      P                  R4      p \         P                  P	                  V 4      p\         P
                  ! . RO4      p\        W4       R# )rK  NrL  )$   t      )r&   r1  r   r   tracer   r   rU  s      r*   
test_tracer\  8	  sD     			"i(AYY__QFxx'H"r,   c                  (   \         P                  ! ^	4      P                  R4      p \         P                  P	                  W ^,           4      p\         P
                  ! . RO. RO. RO.4      p\        W4       . ROp. ROp\         P                  P	                  W44      p\        . RO4      p\        W4       \        \        R4      ;_uu_ 4        V R,          p\         P                  P	                  WU4       RRR4       R#   + '       g   i     R# ; i)		   z8input arrays must be \(arrays of\) 3-dimensional vectorsNr  )r   r   r   r	  r  )r   r  r   )r:  r  )	r&   r1  r   r   crossr   r   r    r2  )r   r!  r=  r  r  x_2dims         r*   
test_crossra  C	  s    
		!V$AYY__QA&Fxx H " 	AAYY__Q"F\"H"	C
 
 5
		'
 
 
 
s   )D  D	c                      \         P                  ! ^4      P                  R4      p \         P                  P	                  W 4      ^78X  g   Q h\         P                  P	                  W RR.R7      ^78X  g   Q hR# )r  r  Nr  rn  )r&   r1  r   r   r+  )r   s    r*   test_tensordotrc  ^	  s^    
		!V$A99q$***99q66*:;rAAAr,   c                      \         P                  ! ^4      P                  R4      p \         P                  P	                  W P
                  4      p\         P                  ! ^^.^^2..4      p\        W4       R# )r  Nr  )r&   r1  r   r   r   r  r   r   rU  s      r*   test_matmulre  f	  sW     			!V$AYYa%Fxx!R2r(+,H"r,   c                  r   \         P                  ! ^4      P                  R4      p \         P                  P	                  V 4      pV P
                  p\        W4       \        \        R4      ;_uu_ 4        \         P                  P	                  V R,          4       RRR4       R#   + '       g   i     R# ; i)r  z$array must be at least 2-dimensionalNr  rN  )	r&   r1  r   r   matrix_transposer  r   r    r2  rU  s      r*   test_matrix_transposerh  p	  s    
		!V$AYY''*FssH"	:
 
 			""1T7+
 
 
 
s   4'B%%B6	c                  \   \         P                  ! ^	4      P                  R4      p \         P                  P	                  V 4      p\        V\         P                  ! R4      ^R7       \         P                  P	                  V RR7      p\        V\         P                  ! R..4      ^R7       R# )r^  ^)ː,@r4   Tr  Nr  )r&   r1  r   r   matrix_normr   rW  r   )r   r!  s     r*   test_matrix_normrn  }	  su    
		!V$AYY""1%F

7 3AFYY""1t"4F7) 5aHr,   c            	         R EF6  p \         P                  \         P                  \         P                  3 F  p\         P                  ! W4      p\        \         P                  P                  VRR7      ^ 4       \        \         P                  P                  VRR7      ^ 4       \        \         P                  P                  V^R7      ^ 4       \        \         P                  P                  V^R7      ^ 4       \        \         P                  P                  V\         P                  R7      ^ 4       EK  	  EK9  	  R# )r  r  r  r  N)r9  )r   r  rT  )	r&   rW  r(  r)  rU  r   r   rm  r
   )r   r/   r   s      r*   test_matrix_norm_emptyrp  	  s    )jj"**bhh7E&A..qe.<a@..qe.<a@..qa.8!<..qa.8!<..qbff.=qA 8 *r,   c                  *   \         P                  ! ^	4      P                  R	4      p \         P                  P	                  V 4      p\        V\         P                  ! R4      ^R7       \         P                  P	                  V ^ R7      p\        V\         P                  ! . R
O4      ^R7       \         P                  P	                  V RR7      p\         P                  ! RRRR7      p\        VP                  VP                  4       \        W^R7       R# )r^  rj  rk  r  Trl  rW  r7   Nr  )g|a2@gsh|? @gDioI#@r   )r&   r1  r   r   vector_normr   rW  r   fullr   r   rU  s      r*   test_vector_normrt  	  s    
		!V$AYY""1%F

7 3AFYY""11"-F01! YY""1t"4Fwwvwi8Hx~~.;r,   c                     \         P                  \         P                  \         P                  3 F  p \         P                  ! ^ V 4      p\        \         P                  P                  V^R7      ^ 4       \        \         P                  P                  V^R7      ^ 4       \        \         P                  P                  V\         P                  R7      ^ 4       K  	  R# )r  r  N)	r&   rW  r(  r)  rU  r   r   rr  r
   )r/   r   s     r*   test_vector_norm_emptyrv  	  s    **bjj"((3HHQRYY**1!*4a8RYY**1!*4a8RYY**1"&&*91=	 4r,   c                  |   \        \        \        P                  ! R4      4      ^ 4       \        \        \        P                  ! R4      4      ^ 4       \        \        \        P                  ! R4      4      ^ 4       \        \        P                  ! R4      4      p \        V P                  R4       \        V P
                  \        P                  4       \        \        P                  ! R4      4      p \        V \        P                  ! . R	O4      4       \        \        P                  ! R
4      4      p \        V \        P                  ! ^ ^ .4      4       \        \        P                  ! R4      4      p \        V P                  R4       \        V \        P                  ! R\        P                  R7      4       R# )r  r7   NrT  )r  r  )r  r  )r  r  r  ro  )r   r  r  rG  )r   r  r  )r   r   r  r  r  )r   r   r&   rU  r   r/   intpr   )r3  s    r*   test_empty_matrix_rankry  	  s   RXXf-.2RXXf-.2RXXf-.2),-Ft$rww'),-F),-),-F1a&)*,/0Fv&&89r,   )r  rM  >   r=   r   r?   r>   r   r@   )rf   re   rh   )rg   rh   rj         ?       @y       @      @y      @      @y      @      @       @      ?)r{  rz  y      ?      @)y      ?       y      ?      y      ?      rT  ro  )re   rf   rg   )rf   re   rg   r         @       @      @      )r  r|  r}  )y      @      y      @      "@y      @       @y      @      "y      @      y      @       @)r{  rz  r}  y      ?      y       @       y       @      )__doc__r   r  r  r  	threadingr   r  r   numpyr&   r   r   r   r   r   r   r   r	   r
   r   r   r   r   numpy._corer   numpy.exceptionsr   numpy.linalgr   r   r   r   r   numpy.linalg._linalgr   numpy.testingr   r   r   r   r   r   r   r   r   r    numpy.testing._private.utilsr!   numpy.linalg.lapack_liteImportErrorr+   r0   r8   r:   r<   r_   rB   rc   r  r  r   r   r  r   r   r   r   r   r   r   r   r  r  r  r  r#  rG  rM  r^  rg  rs  r|  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r+  r9  r  rE  r/   rJ  r  r  r  r  r  r  r  r   r"  r2  r4  r6  r9  r;  r=  r?  rT  rV  r  r  r  r  r  r  active_countr  r  r  r  r  r2  r<  r  r?  r  rI  rV  r\  ra  rc  re  rh  rn  rp  rt  rv  ry  )r  s   0r*   <module>r     s    	 
          ! & P P >   8	#* . 95
7
, ,, 		t 
 8xr2hR)8b"XV,. xr2hR)8b"XV,. zr2hR)8lL1@B yw'&&)9:'Jgw'w79 yw'&&)9:'Jgw'w79 {w'&&)9:'J.0HI  uxxf-xxF+J  uyy~~a#yy~~a " uyy~~a#yy~~a " zAA1vA# #
 #L ;~lL1@b"XV,. ~r2hR2r(36B\02 ~lL1@b"XV,. ~r2hR2r(36B\02 /1LM  gw'w79 w''7);gw=OP! 0@B 02MN! gw'w79 w''7);gw=OP! 0@B  02MN! w(66*:;7KM  w''7);gw=OP! w'&&)9FF;KL! vyy~~a$yy~~a " uyy~~a#yy~~a " uyy~~a#yy~~a " uyy~~a#yy~~a J  uyy~~a#yy~~a J CE! E
 EP ;yr2hR)8 yr2hR)8 zr6lVQK0@ zr6lVQK0@ xxxf-J  {AA r2hR)* }yy~~a#/! 
 @B 	 	" "-'` 		 1 1.2> 22n 22 2	Fn 	F	I 	I
+> 
+$+%'F +H3
 H3V/#%D /0h 0.)')H )-, -66#%D 6!+h !+H5 5,#%D ,8h 8,,)+G ,,A(, A+1$&E +1\M*y M*`0$'/20	y 	0*,H 0	* 	/##%D #*'1h '1T3%'> 3<.+
 .+b 5HI5H5HIJS: S: KS:l?)+G ?3- 3-lB%'C B.8+ 8+v
= 
=\Q} \Q~v<- v<r	- 	J J8- 
- 
 
	Y 3 		Y 3 		I1 	&E &ER
(^+ ^+B?
 ?
D3 3"5* G$BC; D; C q L  N G  I.7IN.7b G$=>5  ?5D~I ~IB#O #OLB B* GH I |#F  H#H#4# #(6B#
,IB<$>:sK  	 			`   Js   g 3g'
g$#g$