+
    xȇi:L                       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
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I0t
R t2]+t3RR	 lt+R
 t4R t5R t60 Rmt7 ! R R4      t8R t9]Pt                  Pw                  R4       . t<]<]9! R]8! R]! RR.RR..]R7      ]! RR.]R7      4      ]8! R]! RR.RR..]R7      ]! RR.]R7      4      ]8! R]! RR.RR..]R7      ]! . RO. RO.]R7      4      ]8! R]! RR.RR..]R7      ]! RR.]R7      4      ]8! R]! RR.RR..]R7      ]! RR.]R7      4      ]8! R ]! RR.RR..]R7      ]! . RO. RO.]R7      4      ]8! R!]Pz                  ! R]R7      ]Pz                  ! R]R7      R0R"7      ]8! R#]Pt                  P}                  ^^4      ]Pt                  P}                  ^4      4      ]8! R$]Pt                  P}                  ^^4      ]Pt                  P}                  ^4      4      ]8! R%^^.^^..^^.4      .
4      ,          t<]<]9! R]8! R&]! . RO. RO.]R7      ]! RR.]R7      4      ]8! R']! RR.RR.R(R..]R7      ]! . RO]R7      4      ]8! R)]! . RO. RO.]R7      ]! RR.]R7      4      ]8! R*]! RR.RR.R(R..]R7      ]! . RO]R7      4      ]8! R+]! . RO. RO.]R7      ]! RR.]R7      4      ]8! R,]! RR.RR.RR..]R7      ]! . RO]R7      4      ]8! R-]! . RO. RO.]R7      ]! RR.]R7      4      ]8! R.]! RR.RR.RR..]R7      ]! . RO]R7      4      ]8! R/]! . RO. RO.]R7      ]! RR.RR..]R7      4      ]8! R0]! RR.RR.RR..]R7      ]! RR.RR.RR..]R7      4      ]8! R1]Pt                  P}                  ^^4      ]Pt                  P}                  ^4      4      ]8! R2]Pt                  P}                  ^^4      ]Pt                  P}                  ^4      4      ]8! R3]Pt                  P}                  ^^4      ]Pt                  P}                  ^4      4      ]8! R4]Pt                  P}                  ^ ^4      ]Pt                  P}                  ^ 4      R0R"7      ]8! R5]Pt                  P}                  ^^ 4      ]Pt                  P}                  ^4      R0R"7      .4      ,          t<]<]9! R]8! R6]! RR.RR..]R7      R4      ]8! R7]! RR.RR..]R7      R4      ]8! R8]! RR.R^..]R7      R4      ]8! R9]! RR.R^..]R7      R4      ]8! R:]Pz                  ! R]R7      RR0R"7      ]8! R;^^.^^..R4      ]8! R<]! RR.RR..4      R4      ]8! R=]Pt                  P}                  ^^4      R4      .4      ,          t<R> t?]<]?! 4       ,          t<R? t@R@ tA]<]A! 4       ,          t< ! RA RB4      tB ! RC RD]B4      tC ! RE RF]B4      tD ! RG RH]B4      tE ! RI RJ]B4      tF ! RK RL]B4      tG ! RM RN]B4      tHRO tI ! RP RQ]C]F4      tJ ! RR RS]J4      tK ! RT RU]C]F4      tL ! RV RW]L4      tM ! RX RY]C]F4      tN ! RZ R[]N4      tO ! R\ R]]C]F4      tP ! R^ R_]P4      tQ ! R` Ra4      tR ! Rb Rc]C]F4      tS ! Rd Re]S]R4      tT ! Rf Rg]E]H4      tU ! Rh Ri]U]R4      tV ! Rj Rk]C]F4      tW ! Rl Rm]W4      tX ! Rn Ro]C]D]F]G4      tY ! Rp Rq]Y4      tZ ! Rr Rs]E]H4      t[ ! Rt Ru][4      t\Rv t] ! Rw Rx]C]F4      t^ ! Ry Rz]^4      t_ ! R{ R|]C]D4      t` ! R} R~]`4      ta]	P                  P                  RR U u. uF  p ]P                  V 4      NK  	  up 4       ! R R4      4       te ! R R]E]H4      tf ! R R4      tg ! R R]E]H4      th ! R R4      ti ! R R4      tj ! R R]j4      tk ! R R]j4      tl ! R R]l]k4      tm ! R R4      tn ! R R]j4      to ! R R]j4      tp ! R R]j4      tq ! R R]m]o4      tr ! R R]m]p4      ts ! R R]m]q4      tt ! R R4      tuR tv ! R R4      tw ! R R4      tx ! R R4      tyR tz]	P                  P                  ]'RR7      R 4       t|]	P                  P                  ]P                  ! 4       ^8  RR7      ]	P                  P                  ](RR7      R 4       4       t~]	P                  P                  ]'RR7      ]	P                  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#   ]1 d     E	L9i ; 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_regexc                     \        V 4      \        V\        P                  4      '       d   \        V4      J # \        P                  J # N)type
isinstancenpndarray)outin_s   &&n/Users/max/.openclaw/workspace/postharvest/venv/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_dtyper7   K   s&    FFFVWf..35 5r+   c                 d    \         \        \        \        \        \        \        \        /V ,          # r"   )r   r   r   r   r6   s   &r)   get_complex_dtyper9   P   s&    GVWWgw0057 7r+   c                 ,    V \         \        39   d   R # R# )gh㈵>gdy=)r   r   r6   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namer0   r1   	frozensettags)selfrD   r0   r1   rF   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
rF   N)r0   r1   rF   )rG   dos   &&r)   checkLinalgCase.checkp   s     	466466		*r+   c                "    R V P                    R2# )z<LinalgCase: >)rD   rG   s   &r)   __repr__LinalgCase.__repr__v   s    tyyk++r+   )r0   r1   rD   rF   N)
__name__
__module____qualname____firstlineno__setrH   rM   rR   __static_attributes____classdictcell____classdict__s   @r)   rA   rA   d   s     (+ 	$+, ,r+   rA   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_tagsrF   )tagcasescases   && r)   	apply_tagrb   z   s6    
 (?)M)?II%	 Lr+     r         ?       @      @      @r6   r   double_2      @r   r   	cdouble_20x0rK   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generalizedrK   _tile213   r   )CASESr$   r0   r%   r&   r   r1   ndimrA   rD   rF   appendreshapeshape)	new_casesra   r0   r1   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           
   #  f  "   \        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       TRRP%                  V Uu. uF  pR	V,          NK  	  up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KC  \'        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 u u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>C  s     GwVuT400ws   r6   l   >[= .stride__z%+d)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repeatsr0   r1   	new_shapeslicesxijss
   &         r)   _stride_comb_iterr   1  st    
 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 )chh7'C7a		7'CDDDD 66Q;1772;!+QYYAAbE%%000>Bn$$66Q;1772;!+QYYAAbE%%000>B&&&66Q;1773B<61QYYAAbEAbE%%000>B&&&; 9B (Ds-   B(L1*L&CL1L,/DL19L1A!L1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   stridedrK   )r   r   r0   r1   rA   rD   rF   r   )r   ra   r0   a_labelr1   b_labelr   s          r)   _make_strided_casesr   a  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# )LinalgTestCaseir  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_CASESrF   rM   rL   	Exception	traceback
format_excAssertionError)rG   requireexcludera   emsgs   &&&   r)   check_casesLinalgTestCase.check_casesu  s    
 OODyy7"g-yy7""1

477# $  1&thd3y++--$S)q01s   A''B&2/B!!B& N)
rT   rU   rV   rW   r   r   rX   r   rY   rZ   r[   s   @r)   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   rQ   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   rQ   s   &r)   test_empty_sq_cases(LinalgSquareTestCase.test_empty_sq_cases  s!    (H!5"/ 	 	2r+   r   N)rT   rU   rV   rW   r   r   rY   rZ   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   rQ   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   rQ   s   &r)   test_empty_nonsq_cases.LinalgNonsquareTestCase.test_empty_nonsq_cases  !    +x!8"/ 	 	2r+   r   N)rT   rU   rV   rW   r   r   rY   rZ   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   rQ   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   rQ   s   &r)   test_empty_herm_cases'HermitianTestCase.test_empty_herm_cases  r   r+   r   N)rT   rU   rV   rW   r   r   rY   rZ   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   rQ   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   rQ   s   &r)   test_generalized_empty_sq_cases?LinalgGeneralizedSquareTestCase.test_generalized_empty_sq_cases  s    !DEr+   r   N)rT   rU   rV   rW   pytestmarkslowr   r   rY   rZ   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   rQ   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   rQ   s   &r)   "test_generalized_empty_nonsq_casesELinalgGeneralizedNonsquareTestCase.test_generalized_empty_nonsq_cases  s    !GHr+   r   N)rT   rU   rV   rW   r   r   r   r  r  rY   rZ   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   rQ   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   rQ   s   &r)   !test_generalized_empty_herm_cases>HermitianGeneralizedTestCase.test_generalized_empty_herm_cases  s    !G"( 	 	+r+   r   N)rT   rU   rV   rW   r   r   r   r  r  rY   rZ   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   r6   .r   )r   r   r%   r   r   r.   r	   )r0   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*   )rG   r0   r1   rF   r   adotxs   &&&&  r)   rL   SolveCases.do  sq    LL88A;q  1	l+F3E;; ?G1LE)#A)*r+   r   NrT   rU   rV   rW   rL   rY   rZ   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         ?r6   N)r%   r   r   r   r  r.   rG   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rT   rU   rV   rW   rY   r   r+   r)   ArraySubclassr)        r+   r+  Nr   r   )r   r   r   )
r%   r&   aranger   r   r   r  r   r   
ValueError)rG   r+  r0   r1   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+  r5     r,  r+   r+  r  r  NN)NNNr6  r7  r7  r6  r6  )r7  r6  :r  r   N)r7  r6  )r%   r&   r.  r   r   r   r  r   r   r$   r   r   r/  rG   r+  r0   r1   expectedr0  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>.ArraySubclassi"  r   Nr*  r   r+   r)   r+  r?  "  r,  r+   r+  N)r7  r7  r6  r8  )
r%   r&   r.  r   r   r   r  r   r   r$   r9  s   &     r)   test_0_size_kTestSolve.test_0_size_k   s    	BJJ 	IIaL  Aq)IIaL  Aq)..}=<<%i0a9.6,
612 <<%k2anan=6,
612r+   r   N)rT   rU   rV   rW   r   r   parametrizer   r   r   r   r%  r1  r;  r@  rY   rZ   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# )InvCasesi3  c                    \         P                  ! V4      p\        \        W4      \	        V4      4       \        \        WA4      4       R # r"   )r   invr   r   r  r   r*   )rG   r0   r1   rF   a_invs   &&&& r)   rL   InvCases.do5  s4    

1F1,5a8	:#E-.r+   r   Nr  r[   s   @r)   rD  rD  3  s     / /r+   rD  c                   r   a  ] tR tRt o ]P
                  P                  R]]]	]
.4      R 4       tR tRtV tR# )TestInvi<  r.   c                    \         P                  ! ^R.R^..VR7      p\        \        P                  ! V4      P
                  V4       R# r"  )r%   r   r   r   rF  r.   r$  s   && r)   r%  TestInv.test_types=  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>.ArraySubclassiD  r   Nr*  r   r+   r)   r+  rO  D  r,  r+   r+  r6   Nr  r   r   r  r  )r%   r&   zerosint_r   r   rF  r   r.   r#   float64r   r   r$   	complex64rG   r+  r0   ress   &   r)   r;  TestInv.test_0_sizeB  s    	BJJ 	HHYbgg.33MBjjm		"**,-QWWcii(
3./HHV2<<055mDjjm		",,./QWWcii(
3./r+   r   NrT   rU   rV   rW   r   r   rB  r   r   r   r   r%  r;  rY   rZ   r[   s   @r)   rJ  rJ  <  s<     [[Wvvw&HI1 J10 0r+   rJ  c                   &   a  ] tR tRt o R tRtV tR# )EigvalsCasesiS  c                x    \         P                  ! V4      p\         P                  ! V4      w  rV\        WE4       R # r"   )r   eigvalseigr   )rG   r0   r1   rF   evevaluesevectorss   &&&&   r)   rL   EigvalsCases.doU  s(    ^^A"JJqMB(r+   r   Nr  r[   s   @r)   r[  r[  S  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# )TestEigvalsi[  r.   c                8   \         P                  ! ^R.R^..VR7      p\        \        P                  ! V4      P
                  V4       \         P                  ! ^R.R^..VR7      p\        \        P                  ! V4      P
                  \        V4      4       R# r   r#  r6   Nr   )r%   r   r   r   r]  r.   r9   r$  s   && r)   r%  TestEigvals.test_types\  st    HHq#ha)7V^^A&,,e4HHq#hQ(6V^^A&,,.?.FGr+   c                    ! 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>.ArraySubclassie  r   Nr*  r   r+   r)   r+  rj  e  r,  r+   r+  r6   NrP  r  r   rQ  r  )r%   r&   rR  rS  r   r   r]  r   r.   r#   rT  r   r   r$   rU  rV  s   &   r)   r;  TestEigvals.test_0_sizec  s    	BJJ 	HHYbgg.33MBnnQ		"**,-VSYY'
3

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

+,r+   r   NrY  r[   s   @r)   rd  rd  [  s>     [[Wvvw&HIH JH- -r+   rd  c                   &   a  ] tR tRt o R tRtV tR# )EigCasesiv  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.Nr7  )r   r^  eigenvalueseigenvectorsr   r   r%   r   r;   r.   r   r*   )rG   r0   r1   rF   rW  rt  ru  s   &&&&   r)   rL   EigCases.dox  sl    jjm$'OOS5E5E\q/

<02::k3J<3XX%k&7&78	: 	#L45r+   r   Nr  r[   s   @r)   ro  ro  v  s     6 6r+   ro  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       \	        VP
                  V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# rf  )r%   r   r   r^  r   r.   r9   rG   r.   r   wvs   &&   r)   r%  TestEig.test_types  s    HHq#ha)7yy}}QQWWe$QWWe$HHq#hQ(6yy}}QQWW/67QWW/67r+   c                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+  r6   NrP  rk  rQ  rl  )r%   r&   rR  rS  r   r   r^  r   r.   r#   rT  r   r   r$   rU  rG   r+  r0   rW  res_vs   &    r)   r;  TestEig.test_0_size  s<   	BJJ 	HHYbgg.33MBZZ]
  BJJ./		"**,-QWWekk*VSYY'
1bjj)*HHV2<<055mDZZ]
  BLL01		",,./QWWekk*T399%
1bjj)*r+   r   NrY  r[   s   @r)   rx  rx    s<     [[Wvvw&HI	8 J	8+ +r+   rx  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#  r6   F
compute_uvr>   N)r%   r   r   svdUSVhr   r.   r7   r>   )rG   r.   r   rW  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)rT   rU   rV   rW   r>   r   r   rB  r   r   r   r   r%  rY   rZ   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# )FNrq  rs  )
r   r  r   r   r%   r   r;   r.   r   r*   )rG   r0   r1   rF   ur   vts   &&&&   r)   rL   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  rQ  )r  r  )r%   r   r   r  r>   r   r   eye)rG   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   )rG   r   
s_from_svds_from_svdvalss   &   r)   test_svdvalsTestSVD.test_svdvals  sI    HHq#ha)*ZZet~~N
*J7r+   r   N)rT   rU   rV   rW   r  r  rY   rZ   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                  ! WG! V4      4      \        P                  ! \        P                  ! VP                  R,          4      VP                  4      4       \        \        P                  ! Wg! V4      4      \        P                  ! \        P                  ! VP                  R,          4      VP                  4      4       \        \        P                  ! V4      RRRR13,          V4       \        \        WA4      4       \        \        Wa4      4       R# )	FTr>   .Nrq  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+   rs  r   )r   r  r   r   r%   r   r;   r.   r   r  r  r   r   sortr   r*   )rG   r0   r1   rF   r  r   r  r>   s   &&&&    r)   rL   SVDHermitianCases.do  s   ::a$7b6"**Q-"**Q-2M"M+-::b>;%agg.	0	9
 	BIIa16qwwWY{H[]^]d]d8efBIIb)B-8"//"&&QSQYQYZ\Q]J^`b`h`h:ijRWWQZTrT	*A.#A)*#B*+r+   r   Nr  r[   s   @r)   r  r    s     , ,r+   r  c                       ] tR tRtRtRtR# )TestSVDHermitiani  Tr   N)rT   rU   rV   rW   r>   rY   r   r+   r)   r  r    s    Ir+   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  r2   r3   fror  r   ).r   r   )r   r   r   r   condr  r   r%   rF  r   summaxminr
   sqrt)rG   r0   r1   rF   cr   cinvs   &&&&   r)   rL   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# )TestCondi  
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# )rd   r#  r  Nrd   r  r   r  g       r  r  r  rf         ?      ?gUUUUUU?r   gUUUUU6@)r   r   r   r  r
   r%   r  )rG   r  As   && r)   test_basic_nonsvdTestCond.test_basic_nonsvd  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# )rd   r6   )pNr  r  r  )r   r7   r   r   r  r.   )rG   r.   r  r  out_types   &&&  r)   test_cond_dtypesTestCond.test_cond_dtypes)  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Cr-  Nr   r   r  r   r   )r%   rR  onesr   r   r   r   r  )rG   Asp_posp_negr  r  s   &     r)   test_singularTestCond.test_singular2  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  r-  rk  )r   r   r   r   r  r   )	r%   r  nanr   r  r   r$   rT  isnan)rG   psr  r  r  r  s   &     r)   test_nanTestCond.test_nan@  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# )rc   NrQ  r   )Nr   r   r  r   r   rk  r   r  )
r%   randomseedrandr   r  r   r
   r   isfinite)rG   r  r  r  s   &   r)   test_stacked_singularTestCond.test_stacked_singular[  s     			tIINN1aA&$$,AA!A4"&&)4"&&)BKK$()BKK$() -r+   r   Nr   r   )rT   rU   rV   rW   r   r   rB  r  r   r   r   r   r%   r
   r  r  xfailr  r  rY   rZ   r[   s   @r)   r  r    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# )	PinvCasesik  c                    \         P                  ! V4      p\        p\        V! V! W4      V4      V^^R7       \	        \        WA4      4       R# )   r  Nr   pinvr   r   r   r*   rG   r0   r1   rF   a_ginvr   s   &&&&  r)   rL   PinvCases.dop  s<    QCA2AaXZ[#F./r+   r   Nr  r[   s   @r)   r  r  k  s     
0 0r+   r  c                       ] tR tRtRtR# )TestPinvix  r   Nr*  r   r+   r)   r  r  x      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      V^^R7       \	        \        WA4      4       R# )Tr  r  Nr  r  s   &&&&  r)   rL   PinvHermitianCases.do~  s?    Q$/CA2AaXZ[#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#  rcondrq  z%`rtol` and `rcond` can't be both set.)match)r   rr  Nr   r   r   )r  r   r   )r   r   r   )r%   r   r   r   r  r   raisesr/  )r0   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
   )rG   r0   r1   rF   drW  r   ldadr_  ms   &&&&       r)   rL   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
   rQ   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  r7   )rG   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  r6   rd   NrQ  r  )r%   rR  rU  r   r
  r   r   r.   r#   r  float32rT  )rG   r0   rW  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)rT   rU   rV   rW   r  r   r   rB  r   r   r   r   r%  r;  rY   rZ   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                H   \         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(   RVn        \        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#   
issubdtyper.   floatingr*   )rG   r0   r1   rF   arrr  nr  r   r  r   	residualsranksvexpect_residss   &&&&           r)   rL   LstsqCases.do  si   jjmyy::a'b!'a"!=d6Q!VLLN#63q9-!!B 1 1! 459

3rvva|a/01Q6 JJ}5Mzz!}!!Q&&*#Y__m.A.ABHHRL--d1g6MI5ioor{{;<#A)*#I12r+   r   Nr  r[   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  rd   r  rd   re   r  )r  re   r  r  rd   r  )rd   r  rd   r  r  rg   )r  r  r  re   rf   r  )r   r  r  r  r  r  r   )r%   r   Tr   r&  r   )rG   r0   r1   r   r,  r-  r   s   &      r)   
test_rcondTestLstsq.test_rcond  s    HH22224 5 67Q 	

 HH'( &Q <d	 &Q 2d	 &Q >d	r+   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  rl  r   )r%   r.  r   r  r   r&  r   r   r   r   r   r   r  r  )rG   r  r+  n_rhsr0   r1   r   r,  r-  r   r  s   &&&&       r)   test_empty_a_bTestLstsq.test_empty_a_b  s     IIae$$Q*GGQJ &Q >d6Q!VLLN#QWWqj)Y__15xdD5UQYBFF1L A	E;;B;+?@T3q9%QWWs1yl+r+   c                ~   \         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  lenr4  r    r   r   r&  )rG   r   yr  s   &   r)   test_incompatible_dims TestLstsq.test_incompatible_dims  sp    HH\"HH-.IIq"''#a&/*+-- .GHHLLT* IHHHs   B++B<	r   N)r  r+  r8  ))r  r   r   )r  r  r   )r  r  r   )r  r  r   )r  r  r   )r  r   r  r  r  r  )rT   rU   rV   rW   r5  r   r   rB  r9  r?  rY   rZ   r[   s   @r)   r2  r2    s?      [[0 3 ,,+ +r+   r2  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# )TestMatrixPoweri&  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)rG   rB  rshfts   && r)   test_large_power TestMatrixPower.test_large_power3  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                    FH  pV! VP                  V4      4       V\        8w  g   K'  V! V P                  P                  V4      4       KJ  	  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  objectstackedrG   rB  rS  r  s   &&  r)   test_power_is_zero"TestMatrixPower.test_power_is_zero>  sE    	,
 >>Cszz"~V|4<<&&r*+ "r+   c                    R  pV P                    FH  pV! VP                  V4      4       V\        8w  g   K'  V! V P                  P                  V4      4       KJ  	  R# )c                 t    \        V ^4      p\        W4       \        VP                  V P                  4       R# )r   N)r   r   r.   )r  rR  s   & r)   rS  -TestMatrixPower.test_power_is_one.<locals>.tzJ  s(    c1%B!399-r+   NrU  rY  s   &&  r)   test_power_is_one!TestMatrixPower.test_power_is_oneI  sE    	.
 >>Cszz"~V|4<<&&r*+ "r+   c                    R  pV P                    FH  pV! VP                  V4      4       V\        8w  g   K'  V! V P                  P                  V4      4       KJ  	  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.   rW  r   r   r   )r  rR  mmuls   &  r)   rS  -TestMatrixPower.test_power_is_two.<locals>.tzU  s@    c1%B YY&06cDT#^,399-r+   NrU  rY  s   &&  r)   test_power_is_two!TestMatrixPower.test_power_is_twoT  sE    	. >>Cszz"~V|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.   rW  r   r   r   r  )r  invmatrc  s   &  r)   rS  3TestMatrixPower.test_power_is_minus_one.<locals>.tza  s9    !#r*F YY&06cDV!#<S#ACr+   N)rV  dtnoinvr  rY  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)rI  r  r   	TypeErrorr   rG   rB  r  s   && r)   test_exceptions_bad_power)TestMatrixPower.test_exceptions_bad_powerk  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  )rG   rB  s   &&r)   test_exceptions_non_square*TestMatrixPower.test_exceptions_non_squarep  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   )rk  noninvr  r   r   r   rp  s   && r)   test_exceptions_not_invertible.TestMatrixPower.test_exceptions_not_invertibleu  s1    kk  $k<b9r+   r   N)r   r  r   r   )r   r   r  r   )r   r   r   r  ) rT   rU   rV   rW   r%   r  rI  rH  rJ  rK  rV  r   ry  blockrX  rW  r.   rk  rM  rZ  r_  re  rl  rq  rt  r   r   skipifr   rz  rY   rZ   r[   s   @r)   rD  rD  &  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+   rD  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  rq  r  Nr   )r   eigvalshr^  r  r   r;   r.   )rG   r0   r1   rF   r_  r`  ra  ev2s   &&&&    r)   rL   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.   r7   )rG   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#  r6   lrongUPLOlowerupperN)r%   r   r!  r   r/  r   r  rG   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  r6   rq  r  r  lr  r  Nr   )r%   r   r   r;   r   r  r   )rG   KloKuptgtrr  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+  r6   NrP  rk  rQ  rl  )r%   r&   rR  rS  r   r   r  r   r.   r#   rT  r   r   r$   rU  r!  rV  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rT   rU   rV   rW   r   r   rB  r   r   r   r   r%  r  r  r;  rY   rZ   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  Nrq  r  )rr  err_msgr   rs  )r   eighrt  ru  r^  r  r   r   r   r%   r   r;   r.   repr)rG   r0   r1   rF   rW  r_  evcr`  ra  r  evc2s   &&&&       r)   rL   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.   r7   rz  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   r/  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   )rG   r  r  r  rr  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+  r6   NrP  rk  rQ  rl  )r%   r&   rR  rS  r   r   r  r   r.   r#   rT  r   r   r$   rU  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   r)  )r   rW  s   &&r)   check_dtype_TestNormBase.check_dtype  sN    aggllBJJ//AFFLL1 Jsyy~~r{{;<r+   r   )
rT   rU   rV   rW   rB  decstaticmethodr  rY   rZ   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  r6   N)r   r   r   rB  r   rQ   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 encounteredNre   rd   r  r   r#  g      ?)r%   r   	typecodesr  r   r
   r  r   warningscatch_warningsfilterwarningsRuntimeWarningr.   r#   rG   r0   exact_typesinexact_types	all_types	each_typeatans   &       r)   test_vector_return_type(_TestNormGeneral.test_vector_return_type'  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-   rg   rd         $@Ng6ҭ@r   gQ?r   gsc?)r%   testingr   r   r  r
   )r|  rG   s   &r)   _test+_TestNormGeneral.test_vector.<locals>._testV  sD   JJ**47I3788 + =JJ**43<3788 + =JJ**4C4=#3788 + =JJ**41:t3788 + =JJ**42;	3788 + =JJ**41:y3788 + =JJ**42;9M3788 + =JJ**41:q3788 + =r+   r6   N)r   r   r   r  )r   r   r   r   )r   r   r   r  )r   rB  )rG   r0   r1   r  r  r|  s   f     r)   test_vector_TestNormGeneral.test_vectorQ  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   r6   Nr7  ordr  r	  r  r  r  r  r     r   r   )r   rB  r%   r
   r  r   r   r   r.  r   r   r   combinationsr   r/  taker4  )rG   r  orderk	expected0	expected1Bndr	  row_axiscol_axisr+  k_indexr:  s   &             r)   	test_axis_TestNormGeneral.test_axiso  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   r6   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%   r.  rB  r   r   r   squeezeformatr   r   r
   r  r   r   r   r   permutations)	rG   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)rT   rU   rV   rW   r  r  r  r  r  rY   rZ   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# )r6   r  N)r   r   r   rB  rQ   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  fdFDre   r  r  rd   Nr  r  gU&,t=@r  r  rP  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   r6   r  r  r  g      (@rg   ri   gW?"@gїʄ?nofroNgT"@r   r   r   )r   rB  r   r   r
   r   r/  rG   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   r6   r  r  gB+pc?g?g333333?rd   g?g&.d?gܸՠ?Ng?r  )r  r  r  )r   r   r   grj=Q0?r   r   )r   rB  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   r6   r  r  Ntestr  r  r  r   rk  )r   r   r   r   r  r   r   )	r   rB  r%   r.  r   r   r/  r   r   )rG   r  r  r  s   &   r)   test_bad_args_TestNorm2D.test_bad_args  s
    JJ	9-TWWJ=IIa477+33Aq!<
 	j$5!4j$5!4j$At<j$At<j$A= E*dAd;*dAf=*dAf=  	iq$2iq$7j$4;r+   r   N)rT   rU   rV   rW   r%   r   r  r  r  r  r  rY   rZ   r[   s   @r)   r  r    s1      HHEA2Nh. >"< <r+   r  c                       ] tR tRtRtR# )	_TestNormi8  r   Nr*  r   r+   r)   r  r  8  r  r+   r  c                   2   a  ] tR tRt o R tR tR tRtV tR# )TestNorm_NonSystematici<  c                    \         P                  ! ^
\         P                  R7      p\        \	        V^R7      R^R7       R# )
   r6   r  gL)@r  N)r%   r.  
longdoubler/   r   r  s   & r)   test_longdouble_norm+TestNorm_NonSystematic.test_longdouble_norm>  s*     IIb.QAqAr+   c                    \         P                  ! R.\         P                  R7      p\        \	        V^R7      R^R7       R# )r   r6   r  r  Nl        i   )r%   r   int32r/   r   r  s   & r)   test_intmin"TestNorm_NonSystematic.test_intminD  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   r6   gV;'@r  r  Nr   y      @      @y            @)	r%   r   clongdoubler/   r   r   r  
complex128rU  )rG   r  rW  s   &  r)   test_complex_high_ord,TestNorm_NonSystematic.test_complex_high_ordJ  s    HHT0!!		qa 8#rJHHR]]#		qa 8#qIHHR\\"		qa 8#qIr+   r   N)	rT   rU   rV   rW   r  r#  r)  rY   rZ   r[   s   @r)   r  r  <  s     BD
J 
Jr+   r  c                   2    ] tR tRt]P
                  t^tRtR# )_TestNormDoubleBaseiX  r   N)	rT   rU   rV   rW   r%   r   rB  r  rY   r   r+   r)   r,  r,  X  s    	B
Cr+   r,  c                   2    ] tR tRt]P
                  t^tRtR# )_TestNormSingleBasei]  r   N)	rT   rU   rV   rW   r%   r!  rB  r  rY   r   r+   r)   r.  r.  ]  s    	B
Cr+   r.  c                   2    ] tR tRt]P
                  t^tRtR# )_TestNormInt64Baseib  r   N)	rT   rU   rV   rW   r%   int64rB  r  rY   r   r+   r)   r0  r0  b  s    	B
Cr+   r0  c                       ] tR tRtRtR# )TestNormDoubleig  r   Nr*  r   r+   r)   r3  r3  g  r  r+   r3  c                       ] tR tRtRtR# )TestNormSingleik  r   Nr*  r   r+   r)   r5  r5  k  r  r+   r5  c                       ] tR tRtRtR# )TestNormInt64io  r   Nr*  r   r+   r)   r7  r7  o  r  r+   r7  c                   ,   a  ] tR tRt o R tR tRtV tR# )TestMatrixRankis  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?)tolrr  Nr   r   r  )r   r  r  r  )r  )r   r  r  )r   r   r%   r  rR  r   r    r/  )rG   Imss   &  r)   test_matrix_rankTestMatrixRank.test_matrix_ranku  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>   r;  g;䡈E>Nr  r<  )r   r   r%   r  r  rR  )rG   r=  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)rT   rU   rV   rW   r?  rB  rY   rZ   r[   s   @r)   r9  r9  s  s     02E Er+   r9  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  )r7  r   )r7  r   r7  r  )r7  r  )r7  r  )r7  r   )r%   r  RandomStater  normalr   r   )rngiXs      r)   test_reduced_rankrN    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   r4  r  r%   r  triu)rG   r0   a_typea_dtyper  r+  r  rW  rW  rX  q1r1r2s   &&           r)   check_qrTestQR.check_qr  s    a''wwI ii
+uucee17"#7"#
1%&
1%&A6!"A6!"CIq)C
A.q	:BGGAJ* 19-G#$G#$
2&'
2&'QF"#QF"#CK+C		R0"&&)<BGGBK, YYqs#G#$
2&'B#r+   r  r+  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# )rawrS  N)
r  r%   r   r_  r   rV  r   r.   r   r   )rG   r  r+  r  r0   htaus   &&&    r)   test_qr_emptyTestQR.test_qr_empty  s     IHHaVaae,QWWbii(SYY		*QWWqf%SYY%r+   c                   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   r6   rb  rS  Nr  r&  r   )	r   r%   r   r   rV  r   r.   r   r4  )rG   r0   rc  rd  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  r_  r4  )rG   r0   r1   rB  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   NrR  rS  rU  r  r   r   ).r7  r7  )r#   r.   r   r  r   rV  r   r$   r   r   r%   r	   r  r   r  rY  )rG   r0   rZ  r[  r  r+  r  qr  I_matstack_I_matr\  r]  r^  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+   rF  
outer_sizerB  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# ){   rE  rl  N)r%   r  default_rngrJ  r  ru  )rG   rw  rF  rB  rK  r  r  s   &&&&   r)   test_stacked_inputsTestQR.test_stacked_inputs9  sx     ii##C(JJJ-J.55b9JJJ-J.55b9a a#'k*r+   r   N)r   r  r  rQ  ))r   r  )r  r   r  r}  r  )r-  r&  )r   r   r  )rT   rU   rV   rW   r%   r   r_  r   r   rB  re  rh  ro  ru  r   r   r   r   r{  rY   rZ   r[   s   @r)   rP  rP    s     HHE%$N [[c3Z * 

&

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


BJJ$  !+!"+r+   rP  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# )TestCholeskyiJ  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   rl  Nr6   r  i   
)atolr  )axis1axis2r   r   )r   r   )r%   r  r  randnr(  complexfloatingr   r  r=  r   r  r  r   r   choleskyr   finfoepsr   diagonalr   r   isreal)
rG   r   r.   r  r0   tr  r1   r  r  s
   &&&&      r)   test_basic_property TestCholesky.test_basic_propertyL  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>.ArraySubclassiq  r   Nr*  r   r+   r)   r+  r  q  r,  r+   r+  r6   NrP  )r   r  r  )r%   r&   rR  rS  r   r   r  r   r   r   r.   r#   rT  r$   rU  rV  s   &   r)   r;  TestCholesky.test_0_sizep  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  r4  r  )rG   r0   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   r-  r   r   )2   r  )r   r  r  )rT   rU   rV   rW   r   r   rB  r%   r!  rT  rU  r(  r  r;  r  rY   rZ   r[   s   @r)   r  r  J  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-dimensionalr7  Nr   rA  r  )r  r   r  )rT   rU   rV   rW   r%   r.  arr1arr2r   r:  r   r   outerr    r/  newaxisrY   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<rP   r6   r  =N)sys	byteorderr%   r!  rT  r  r   r.   newbyteorderbyteswapr   r   rF  r
  r  r   )nativedttr*  n_arrsw_arrroutinerW  s          r)   test_byteorder_checkr    s    
}} 

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

FJJ<G#,CsGEN3sGFO4 = (r+   rv  rw  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   rQ  )r%   r   rR  r   r   r   rF  )
invertiblenon_invertibler   s      r)    test_generalized_raise_multiloopr    sy    
 Aq6Aq6*+JXX1v1v./N
t$AcFdG"))'':r+   z?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.Nrd   zDORGQR parameter number 5zNumpy xerbla not linked in.rQ  )osforkOSErrorAttributeErrorr   skipcloseresource	setrlimitRLIMIT_COREr%   r   lapack_litexerblar/  r   _exit	EX_CONFIGr   dorgqrrC   waitWEXITSTATUS)	XERBLA_OKpidr  r0   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                  8   R R.p \         P                  ! R4      pV  Fy  pVP                  RRVR7      p\        P                  ! \
        P                  RV.4       VP                  RRVR7      p\        P                  ! \
        P                  RV.4       K{  	  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  
subprocess
check_callr  
executable)bad_libstemplater  codes       r)   test_sdot_bug_8577r    s     "9-H 
  
	H &:"'.  0s~~tT:; %9"'.  0s~~tT:; r+   c                   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   )rG   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  )rG   r  r  s   &  r)   &test_basic_function_with_two_arguments3TestMultiDot.test_basic_function_with_two_arguments(  s\    IIV$IIV$Iqf-quuQx8Iqf-rvva|<r+   c                   \         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  )rG   r  r  r  Ds   &    r)   9test_basic_function_with_dynamic_programming_optimizationFTestMultiDot.test_basic_function_with_dynamic_programming_optimization0  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  r-  r&  r%   r  r   r   r   )rG   A1dr  r  r  s   &    r)   test_vector_as_first_argument*TestMultiDot.test_vector_as_first_argument9  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  )rG   r  r  r  D1ds   &    r)   test_vector_as_last_argument)TestMultiDot.test_vector_as_last_argumentC  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  )rG   r  r  r  r  s   &    r)   &test_vector_as_first_and_last_argument3TestMultiDot.test_vector_as_first_and_last_argumentM  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  rR  r   r   r   )rG   r  r  r  r'   rets   &     r)   test_three_arguments_and_out)TestMultiDot.test_three_arguments_and_outW  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  )rG   r  r  r'   r  s   &    r)   test_two_arguments_and_out'TestMultiDot.test_two_arguments_and_outd  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  )rG   r  r  r  r  r'   r  s   &      r)   -test_dynamic_programming_optimization_and_out:TestMultiDot.test_dynamic_programming_optimization_and_outn  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  r6   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   rY  )rG   arrays
m_expected
s_expectedr   r  s   &     r)   test_dynamic_programming_logic+TestMultiDot.test_dynamic_programming_logicz  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   r/  r   r%   r  rQ   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)rT   rU   rV   rW   r  r  r  r  r  r  r  r  r  r  r  rY   rZ   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)rG   r*  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# )   r0   r  N)r%   r  r   r   r  r   r   )rG   r   r  r0   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   r/  r   r  )rG   r  r0   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)rG   r0   r  r1   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   )rT   rU   rV   rW   r   r   rB  r%   r  r  r  r#  r)  rY   rZ   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(  )rG   r0   r  r1   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# r0  )
r%   r  r  r  r   r   r(  r   r'  r=  )rG   r   r0   r1   r   s   &&   r)   test_tensorsolve_result'TestTensorsolve.test_tensorsolve_result  s]     IIOOU#GGAGGBK II!!!'QAGG=qAr+   r   r+  r,  r  r   ))r   r   r  )r   r  r  r   )r  r   r   r  )rT   rU   rV   rW   r   r   rB  r%   r  r  r3  rY   rZ   r[   s   @r)   r.  r.    sy     [[Y		%		V$)
 0	0
 [[W/BBr+   r.  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   float16r6   zunsupported in linalgNr   )r%   r   r    ro  r   r  )r*  s    r)   test_unsupported_commontyper8    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   r6   N        )r  r   )r%   rR  r!  r  r   r   )r+  r0   r1   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   r6   infor  r+  Nr:  l       r   l        )
r%   rT  r   r  dgeqrfrR  r   r  itemr   )
r.   lapack_routiner  r+  ldar0   workrd  resultslworks
             r)   !test_blas64_geqrf_lwork_smoketestrE    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         &   )rG  .   4   :   )r%   r.  r   r   r  r   r   r   r  r:  s      r)   test_diagonalrR  		  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# )rG  NrH  )$   t      )r%   r.  r   r   tracer   r   rQ  s      r)   
test_tracerX  	  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   )r7  r  )	r%   r.  r   r   crossr   r   r    r/  )r   r  r:  r  r|  x_2dims         r)   
test_crossr]  $	  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  rk  )r%   r.  r   r   r'  )r   s    r)   test_tensordotr_  ?	  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%   r.  r   r   r   r4  r   r   rQ  s      r)   test_matmulra  G	  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  rH  )	r%   r.  r   r   matrix_transposer4  r   r    r/  rQ  s      r)   test_matrix_transposerd  Q	  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# )rZ  ^)ː,@r3   Tr  Nr  )r%   r.  r   r   matrix_normr   rT  r   )r   r  s     r)   test_matrix_normrj  ^	  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)r5  )r   r  rQ  )	r%   rT  r!  r"  rR  r   r   ri  r
   )r   r.   r   s      r)   test_matrix_norm_emptyrl  i	  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# )rZ  rf  rg  r  Trh  rT  r6   Nr  )g|a2@gsh|? @gDioI#@r   )r%   r.  r   r   vector_normr   rT  r   fullr   r   rQ  s      r)   test_vector_normrp  s	  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%   rT  r!  r"  rR  r   r   rn  r
   )r.   r   s     r)   test_vector_norm_emptyrr  	  s    **bjj"((3HHQRYY**1!*4a8RYY**1!*4a8RYY**1"&&*91=	 4r+   )r  rI  >   r<   r   r>   r=   r   r?   )re   rd   rg   )rf   rg   ri         ?       @y       @      @y      @      @y      @      @       @      ?)rt  rs  y      ?      @)y      ?       y      ?      y      ?      rQ  rl  )rd   re   rf   )re   rd   rf   r         @       @      @      )r  ru  rv  )y      @      y      @      "@y      @       @y      @      "y      @      y      @       @)rt  rs  rv  y      ?      y       @       y       @      )__doc__r   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.linalg.lapack_liteImportErrorr*   r/   r7   r9   r;   r^   rA   rb   r  r  r   r   r  r   r   r   r   r   r   r   r   r  r
  r  r  r   rD  rJ  r[  rd  ro  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r2  r   rB  r.   rD  r  r  r  r  r  r  r  r  r  r,  r.  r0  r3  r5  r7  r9  rN  rP  r  r  r  r}  r  active_countr  r   r  r  r  r.  r8  r  r;  r  rE  rR  rX  r]  r_  ra  rd  rj  rl  rp  rr  )r  s   0r)   <module>r     s    	  
          ! & P P >  	#* . 95
7
, ,, 		t 
 8xr2hR)8b"XV,. xr2hR)8b"XV,. zr2hR)8lL1@B yw'&&)9:'Jgw'w79 yw'&&)9:'Jgw'w79 {w'&&)9:'J02JKSZ[] uxxf-xxF+J  uyy~~a#yy~~a " uyy~~a#yy~~a " zAA1v;   
  F ;~lL1@b"XV,. ~r2hR2r(36B\02 ~lL1@b"XV,. ~r2hR2r(36B\02 /1LMU\^gw'w79 g&'(:Wg<NOW^`0@B /1LMU\^gw'w79 g&'(:Wg<NOW^`0@B  /1LMU\^w(66*:;7KM  g&'(:Wg<NOW^`w(66*:VV<LMU\]_ vyy~~a$yy~~a " uyy~~a#yy~~a " uyy~~a#yy~~a " uyy~~a#yy~~a J  uyy~~a#yy~~a J e6! 6
 6r ;yr2hR)8 yr2hR)8 zr6lVQK0@ zr6lVQK0@ xxxf-J  {AA r2hR)* }yy~~a#/! 
 @B 	 	" "-'` 		 1 1.2> 22n 22 2	Fn 	F	I 	I
+> 
+$+%'F +H3
 H3V/#%D /0h 0.)')H )-, -66#%D 6!+h !+H5 5,#%D ,8h 8,,)+G ,((, +1$&E +1\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; q L  N G  I.7IN.7b G$=><  ?<D~I ~IB#O #OLB B* GH I |#F  H#H#4# #(6B#
,IB<$>gJ  	 			h  Js   f5 1g
5g ?g 