+
    eiL c                   s   R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t
^ RI	HtHtHtHtHtHtHtHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHtHtHtH t H!t! ^ RI"H#t# ^ RI$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.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_regexsuppress_warningsc                 s    \        V 4      \        V\        P                  4      '       d   \        V4      J # \        P                  J # N)type
isinstancenpndarray)outZin_   &&E/usr/lib64/python3.14/site-packages/numpy/linalg/tests/test_linalg.pyconsistent_subclassr(   9   s<     9jbjj&A&Ac * * jj* *    c                 s    \        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_decimalZkwr*   s   &&&&, r'   r   r   C   s;    qz 11  A8'8R8r)   c                 sd    \         \         \        \        \        \         \        \        /V ,          # r    )r   r   r   r   r+      &r'   get_real_dtyper3   K   s&    FFFVWf..35 5r)   c                 sd    \         \        \        \        \        \        \        \        /V ,          # r    )r   r   r   r   r1   r2   r'   get_complex_dtyper4   P   s&    GVWWgw0057 7r)   c                 s,    V \         \        39   d   R # R# )gh㈵>gdy=)r   r   r1   r2   r'   get_rtolr5   U   s    !!r)   square	nonsquare	hermitiansize-0c                   sB   a  ] tR t^dt o ]! 4       3R ltR tR tRtV t	R# )
LinalgCasec                s|    \        \        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namer-   r.   Z	frozensettags)selfr<   r-   r.   r=   s   &&&&&r'   __init__ZLinalgCase.__init__e   s-    
 	
4%&	dO	r)   c                sX    V! V P                   V P                  V P                  R7       R# )z>
Run the function `do` on this test case, expanding arguments
r=   N)r-   r.   r=   )r>   dor&   r'   checkZLinalgCase.checkp   s     	466466		*r)   c                s"    R V P                    R2# )z<LinalgCase: >)r<   r>   r2   r'   __repr__ZLinalgCase.__repr__v   s    tyyk++r)   )r-   r.   r<   r=   N)
__name__
__module____qualname____firstlineno__setr?   rB   rE   __static_attributes____classdictcell__Z__classdict__   @r'   r:   r:   d   s     (+ 	$+, ,r)   r:   c                sn    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_tagsr=   )ZtagZcasescase   && r'   	apply_tagrR   z   s6    
 (?)M)?II%	 Lr)     r         ?       @      @      @r1   r   Zdouble_2      @r   r   Z	cdouble_2Z0x0r@   Z8x8Z1x1ZnonarrayZsingle_nsq_1Zsingle_nsq_2g      @Zdouble_nsq_1Zdouble_nsq_2Zcsingle_nsq_1Zcsingle_nsq_2Zcdouble_nsq_1Zcdouble_nsq_2Zcdouble_nsq_1_2Zcdouble_nsq_2_2Z8x11Z1x5Z5x1Z0x4Z4x0ZhsingleZhdoubleZhcsingleZhcdoubleZhemptyZ	hnonarrayZmatrix_b_onlyZhmatrix_1x1c                  s   . 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 # )	   NZ_tile3generalizedr@   Z_tile213   rY   )CASESr"   r-   r#   r$   r    r.   ndimr:   r<   r=   appendreshapeshape)	new_casesrP   r-   r.   new_cases        r'   _make_generalized_casesrf   
  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           
   #  sf  "   \        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
ZnopNc              3   s<   "   T F  p\        R R V4      x  K  	  R # 5ir    )Zslice)Z.0Zrepeat   & r'   Z	<genexpr>Z$_stride_comb_iter.<locals>.<genexpr>C  s     GwVuT400ws   r1   l   >[= .Zstride__z%+d)stridesZstride_xxx_0Zstride_xxx_0_xZstride_xxx_0_0   )rk   r\   r]   r^   )rk   rl   rk   rk   )r"   r#   r$   r`   	itertoolsproducttupleZziprc   absemptyr+   viewZuint32ZfillZ	__class__r   allZjoinlistri   ZlibZstride_tricksZ
as_strided)
xZ
stride_setZrepeatsr-   r.   Z	new_shapeZslicesZxiZjss
   &         r'   _stride_comb_iterry   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            
      sJ   . 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 # )rh   stridedr@   )r_   ry   r-   r.   r:   r<   r=   ra   )rd   rP   r-   Za_labelr.   Zb_labelre             r'   _make_strided_casesr|   a  s    I+DFF3JA/7
%dii#o&?#&E&OQR+/99	{+BD  * 8 4  r)   c                   sF   a  ] tR tRt o ]t]! 4       ]! 4       3R ltRtV t	R# )LinalgTestCaseir  c                sR   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_CASESr=   rB   rA   	Exception	tracebackZ
format_excZAssertionError)r>   requireexcluderP   eZmsgs   &&&   r'   check_casesZLinalgTestCase.check_casesu  s    
 OODyy7"g-yy7""1

477# $  1&thd3y++--$S)q01s   A''B&2/B!!B& N)
rF   rG   rH   rI   r_   r~   rJ   r   rK   rL   rM   rN   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# )r6   rZ   r9   r   r   Nr   rD   r2   r'   test_sq_casesZ"LinalgSquareTestCase.test_sq_cases  s!    ("/!: 	 	<r)   c                2    V P                  R R0R0R7       R# )r6   r9   rZ   r   Nr   rD   r2   r'   test_empty_sq_casesZ(LinalgSquareTestCase.test_empty_sq_cases  s!    (H!5"/ 	 	2r)   r   N)rF   rG   rH   rI   r   r   rK   rL   rM   rN   r'   r   r          <2 2r)   r   c                   r   )LinalgNonsquareTestCasei  c                r   )r7   rZ   r9   r   Nr   rD   r2   r'   test_nonsq_casesZ(LinalgNonsquareTestCase.test_nonsq_cases  !    +"/!: 	 	<r)   c                r   )r7   r9   rZ   r   Nr   rD   r2   r'   test_empty_nonsq_casesZ.LinalgNonsquareTestCase.test_empty_nonsq_cases  !    +x!8"/ 	 	2r)   r   N)rF   rG   rH   rI   r   r   rK   rL   rM   rN   r'   r   r     r   r)   r   c                   r   )HermitianTestCasei  c                r   )r8   rZ   r9   r   Nr   rD   r2   r'   test_herm_casesZ!HermitianTestCase.test_herm_cases  r   r)   c                r   )r8   r9   rZ   r   Nr   rD   r2   r'   test_empty_herm_casesZ'HermitianTestCase.test_empty_herm_cases  r   r)   r   N)rF   rG   rH   rI   r   r   rK   rL   rM   rN   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                r   )rZ   r6   r9   r   Nr   rD   r2   r'   test_generalized_sq_casesZ9LinalgGeneralizedSquareTestCase.test_generalized_sq_cases  s!    -!:"* 	 	-r)   c                .    V P                  0 RmR7       R# )rZ   r   N>   r6   rZ   r9   r   rD   r2   r'   test_generalized_empty_sq_casesZ?LinalgGeneralizedSquareTestCase.test_generalized_empty_sq_cases  s    !DEr)   r   N)rF   rG   rH   rI   pytestmarkslowr   r   rK   rL   rM   rN   r'   r   r     sA     [[- - [[F Fr)   r   c                   r   )"LinalgGeneralizedNonsquareTestCasei  c                r   )rZ   r7   r9   r   Nr   rD   r2   r'   test_generalized_nonsq_casesZ?LinalgGeneralizedNonsquareTestCase.test_generalized_nonsq_cases  !    -!="* 	 	-r)   c                r   )rZ   r   N>   r7   rZ   r9   r   rD   r2   r'   "test_generalized_empty_nonsq_casesZELinalgGeneralizedNonsquareTestCase.test_generalized_empty_nonsq_cases  s    !GHr)   r   N)rF   rG   rH   rI   r   r   r   r   r   rK   rL   rM   rN   r'   r   r     sA     [[- - [[I Ir)   r   c                   r   )HermitianGeneralizedTestCasei  c                r   )rZ   r8   r9   r   Nr   rD   r2   r'   test_generalized_herm_casesZ8HermitianGeneralizedTestCase.test_generalized_herm_cases  r   r)   c                s2    V P                  0 RmR0R7       R# )rZ   Znoner   N>   r8   rZ   r9   r   rD   r2   r'   !test_generalized_empty_herm_casesZ>HermitianGeneralizedTestCase.test_generalized_empty_herm_cases  s    !G"( 	 	+r)   r   N)rF   rG   rH   rI   r   r   r   r   r   rK   rL   rM   rN   r'   r   r     s?     [[- - [[+ +r)   r   c                 s   \        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\   r1   .r^   )r   r`   r#   rs   rc   r+   r   )r-   rrg   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                sX   \         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# )rk   N).N.    )r	   solver#   r    r`   r
   r   broadcast_torc   r   r(   )r>   r-   r.   r=   rw   Zadotx   &&&&  r'   rA   ZSolveCases.do  sq    LL88A;q  1	l+F3E;; ?G1LE)#A)*r)   r   NrF   rG   rH   rI   rA   rK   rL   rM   rN   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                s    \         P                  ! ^R.R^..VR7      p\        \        P                  ! W"4      P
                  V4       R# rk         ?r1   N)r#   r    r   r	   r   r+   r>   r+   rw   rQ   r'   
test_typesZTestSolve.test_types  s8    HHq#ha)7V\\!'--u5r)   c                s    ! 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rF   rG   rH   rI   rK   r   r)   r'   ArraySubclassr         r)   r   NrY   rY   )rY   rY   rY   )
r#   r$   arangerb   rt   r	   r   rc   r   
ValueError)r>   r   r-   r.   result   &    r'   test_1_dZTestSolve.test_1_d  s    	BJJ 	IIaL  Aq)IIaLm,a#||v%%% IIaL  A&++M:a#||y(((IIaL  A&++M:j&,,5r)   c                s    ! 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                   r   ),TestSolve.test_0_size.<locals>.ArraySubclassi   r   Nr   r   r)   r'   r   r      r   r)   r   r   r   NN)NNNr   r   r   r   r   )r   r   :r   rk   N)r   r   )r#   r$   r   rb   rt   r	   r   r   r   r"   r   r   r   r>   r   r-   r.   expectedr      &     r'   test_0_sizeZ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                sf    ! 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                   r   ).TestSolve.test_0_size_k.<locals>.ArraySubclassi"  r   Nr   r   r)   r'   r   r   "  r   r)   r   N)r   r   r   r   )
r#   r$   r   rb   rt   r	   r   r   r   r"   r   r   r'   test_0_size_kZ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)rF   rG   rH   rI   r   r   parametrizer   r   r   r   r   r   r   r   rK   rL   rM   rN   r'   r   r     sH     [[Wvvw&HI6 J66"CB3 3r)   r   c                   r   )InvCasesi3  c                s    \         P                  ! V4      p\        \        W4      \	        V4      4       \        \        WA4      4       R # r    )r	   invr   r
   r   r   r(   )r>   r-   r.   r=   Za_invs   &&&& r'   rA   ZInvCases.do5  s4    

1F1,5a8	:#E-.r)   r   Nr   rM   rN   r'   r   r   3  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# )TestInvi<  r+   c                s    \         P                  ! ^R.R^..VR7      p\        \        P                  ! V4      P
                  V4       R# r   )r#   r    r   r	   r   r+   r   rQ   r'   r   ZTestInv.test_types=  s7    HHq#ha)7VZZ]((%0r)   c                s    ! 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                   r   )*TestInv.test_0_size.<locals>.ArraySubclassiD  r   Nr   r   r)   r'   r   r   D  r   r)   r   r1   Nr   rk   rk   r   r   )r#   r$   zerosint_rt   r	   r   r   r+   r!   float64r   rc   r"   	complex64r>   r   r-   res   &   r'   r   Z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rF   rG   rH   rI   r   r   r   r   r   r   r   r   r   rK   rL   rM   rN   r'   r   r   <  s<     [[Wvvw&HI1 J10 0r)   r   c                   r   )EigvalsCasesiS  c                sx    \         P                  ! V4      p\         P                  ! V4      w  rV\        WE4       R # r    )r	   eigvalseigr   )r>   r-   r.   r=   evevaluesevectors   &&&&   r'   rA   ZEigvalsCases.doU  s(    ^^A"JJqMB(r)   r   Nr   rM   rN   r'   r   r   S  s     ) )r)   r   c                   r   )TestEigvalsi[  r+   c                s8   \         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# rk   r   r1   Nr]   )r#   r    r   r	   r   r+   r4   r   rQ   r'   r   ZTestEigvals.test_types\  st    HHq#ha)7V^^A&,,e4HHq#hQ(6V^^A&,,.?.FGr)   c                s    ! 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                   r   ).TestEigvals.test_0_size.<locals>.ArraySubclassie  r   Nr   r   r)   r'   r   r   e  r   r)   r   r1   Nr   r   rk   r   r   )r#   r$   r   r   rt   r	   r   r   r+   r!   r   r   rc   r"   r   r   r   r'   r   ZTestEigvals.test_0_sizec  s    	BJJ 	HHYbgg.33MBnnQ		"**,-VSYY'
3

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

+,r)   r   Nr   rM   rN   r'   r   r   [  s>     [[Wvvw&HIH JH- -r)   r   c                   r   )EigCasesiv  c                sH   \         P                  ! V4      pVP                  VP                  re\	        \        W4      \        P                  ! V4      \        P                  ! V4      R,          ,          \        VP                  4      R7       \        \        Wa4      4       R# ).Nrtol.Nr   )r	   r   eigenvalueseigenvectorsr   r
   r#   r   r5   r+   r   r(   )r>   r-   r.   r=   r   r   r   r   r'   rA   ZEigCases.dox  sl    jjm$'OOS5E5E\q/

<02::k3J<3XX%k&7&78	: 	#L45r)   r   Nr   rM   rN   r'   r   r   v  s     6 6r)   r   c                   r   )TestEigi  r+   c                s   \         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# r   )r#   r    r	   r   r   r+   r4   r>   r+   rw   wv   &&   r'   r   Z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                sH    ! 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                   r   )*TestEig.test_0_size.<locals>.ArraySubclassi  r   Nr   r   r)   r'   r   r     r   r)   r   r1   Nr   r   r   r   )r#   r$   r   r   rt   r	   r   r   r+   r!   r   r   rc   r"   r   r>   r   r-   r   Zres_vr   r'   r   Z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   Nr   rM   rN   r'   r   r     s<     [[Wvvw&HI	8 J	8+ +r)   r   c                   sp   a  ] tR tRt o Rt]P                  P                  R]]	]
].4      R 4       tRtV tR# )SVDBaseTestsi  Fr+   c                s   \         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# )rk   r   r1   F
compute_uvr8   N)r#   r    r	   svdUSVhr   r+   r3   r8   )r>   r+   rw   r   r   r   r   rx   s   &&      r'   r   ZSVDBaseTests.test_types  s    HHq#ha)7jjm55#%%bQWWe$QWWnU34RXXu%JJqUdnnEQWWnU34r)   r   N)rF   rG   rH   rI   r8   r   r   r   r   r   r   r   r   rK   rL   rM   rN   r'   r   r     s7     I[[Wvvw&HI5 J5r)   r   c                   r   )SVDCasesi  c           	     st   \         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# )FNr   r   )
r	   r   r   r
   r#   r   r5   r+   r   r(   )r>   r-   r.   r=   urx   vtr   r'   rA   ZSVDCases.do  sx    ::a'b6"**Q-"**Q-2M"M+-::b>;%agg.	0 	#A)*#B*+r)   r   Nr   rM   rN   r'   r   r     s     , ,r)   r   c                   r   )TestSVDi  c                s&   \         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   r   )r   r   )r#   rs   r	   r   r8   r   rc   eye)r>   rw   r   rx   Zvhr   r'   test_empty_identityZTestSVD.test_empty_identity  s    HHV::aDDNNKbQWWf%RXXv&Qq	"HHV::aDDNNKbQWWf%RXXv&R#r)   c                s    \         P                  ! ^R.R^..4      p\        P                  ! VRV P                  R7      p\        P
                  ! V4      p\        W#4       R# )rk   r   Fr   N)r#   r    r	   r   r8   Zsvdvalsr   )r>   rw   Z
s_from_svdZs_from_svdvalsr   r'   test_svdvalsZTestSVD.test_svdvals  sI    HHq#ha)*ZZet~~N
*J7r)   r   N)rF   rG   rH   rI   r  r  rK   rL   rM   rN   r'   r   r     s     $8 8r)   r   c                   r   )SVDHermitianCasesi  c           	     s~   \         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r8   .Nr   c                 s    \        \        V P                  4      4      pVR,          VR,          uVR&   VR&   \        P                  ! \        P
                  ! WR7      4      # )rY   axesr^   r]   )rv   ranger`   r#   conj	transpose)matr  rg   r'   r8   Z'SVDHermitianCases.do.<locals>.hermitian  sH    chh(D!%b48DHd2h772<<788r)   r   r]   )r	   r   r   r
   r#   r   r5   r+   r   r   r  rc   r   sortr   r(   )r>   r-   r.   r=   r   rx   r   r8      &&&&    r'   rA   Z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   rM   rN   r'   r  r    s     , ,r)   r  c                   s    ] tR tRtRtRtR# )TestSVDHermitiani  Tr   N)rF   rG   rH   rI   r8   rK   r   r)   r'   r  r    s    Ir)   r  c                   r   )	CondCasesi  c           	     sf   \        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# )
r9   NF)r   r/   r0   fror   r]   ).r]   r^   )r   r   r   r	   condr   r   r#   r   rr   sumZmaxminr   sqrt)r>   r-   r.   r=   crx   Zcinvr   r'   rA   Z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   rM   rN   r'   r  r    s     (1 (1r)   r  c                   s~  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                s   \        . 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# )rT   r   r  NrT   r   rk   r   g       r   r   r   rV         ?      ?gUUUUUU?r]   gUUUUU6@)r    r   r	   r  r   r#   r  )r>   r  ArQ   r'   test_basic_nonsvdZ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                s    \        . RO. RO. RO.VR7      p\        V4      p\        \        P                  ! W2R7      P
                  V4       R# )rT   r1   )pNr  r  r  )r    r3   r   r	   r  r+   )r>   r+   r   r  Zout_types   &&&  r'   test_cond_dtypesZTestCond.test_cond_dtypes)  s:    
 :{J7uE!%(V[[/55x@r)   c                sZ   \         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# )rY   N  4&kCr   Nrk   rY   r  r]   r^   )r#   r   onesro   rp   r   r	   r  )r>   ZAsp_posZp_negr  r!  r   r'   test_singularZTestCond.test_singular2  s     hhv0#R%%b0DA FKK%,- 1 %%b0DAKK 1r)   z/Platform/LAPACK-dependent failure, see gh-18914)Zrunreasonc                s   . 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#  )Nrk   r]   rY   r^   r  r$  r   r   )r\   rY   rY   rk   r   rk   )	r#   r%  Znanr	   r  r   r"   r   Zisnan)r>   Zpsr&  r  r!  r  r   r'   test_nanZTestCond.test_nan@  s    
 )#GGFO&&$AA!AJq"**-.BHHQK  
 GGIVV'
AA!ABHHQqTN#z!t$!t$BHHQqTN*+BHHQqTN*+ r)   c                s   \         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# )rS   Nr   rn   )Nrk   rY   r  r]   r^   r   rk   r   )
r#   randomseedrandr	   r  r   r   r   Zisfinite)r>   r  r!  r  r   r'   test_stacked_singularZTestCond.test_stacked_singular[  s     			tIINN1aA&$$,AA!A4"&&)4"&&)BKK$()BKK$() -r)   r   Nr]   r^   )rF   rG   rH   rI   r   r   r   r  r   r   r   r   r#   r   r"  r'  xfailr*  r/  rK   rL   rM   rN   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                   r   )	PinvCasesik  c                s    \         P                  ! V4      p\        p\        V! V! W4      V4      V^^R7       \	        \        WA4      4       R# )   r  Nr	   pinvr
   r   r   r(   r>   r-   r.   r=   Za_ginvr   r   r'   rA   ZPinvCases.dop  s<    QCA2AaXZ[#F./r)   r   Nr   rM   rN   r'   r1  r1  k  s     
0 0r)   r1  c                   r   )TestPinvix  r   Nr   r   r)   r'   r6  r6  x      r)   r6  c                   r   )PinvHermitianCasesi|  c                s    \         P                  ! VR R7      p\        p\        V! V! W4      V4      V^^R7       \	        \        WA4      4       R# )Tr  r  Nr3  r5  r   r'   rA   ZPinvHermitianCases.do~  s?    Q$/CA2AaXZ[#F./r)   r   Nr   rM   rN   r'   r8  r8  |  s     0 0r)   r8  c                   r   )TestPinvHermitiani  r   Nr   r   r)   r'   r9  r9    r7  r)   r9  c                  s   \         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)rk   r   rcondr   z%`rtol` and `rcond` can't be both set.)Zmatch)r;  r   Nrk   rY   r\   )r   rk   rk   )rY   r\   rk   )r#   r    r   r	   r4  r   Zraisesr   )r-       r'   test_pinv_rtol_argr>    s    
)Y	23A
		q$
		qs#
 
B
 
 			q#.
 
 
 
s   #B;;C	c                   r   )DetCasesi  c                s*   \         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# )rk   axisNr]   )r	   detslogdetZsignZ	logabsdetr   r+   r!   r   r   astyper   r   r   r   Zreducer#   ZexpZ
atleast_1drr   r   r   )r>   r-   r.   r=   dr   rx   ZldZadr   m   &&&&       r'   rA   Z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   rM   rN   r'   r?  r?    s     # #r)   r?  c                   sx   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                s   \        \        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	   rB  r!   r   r   rC  r   rD   r2   r'   	test_zeroZ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                sT   \         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	   rB  r+   rC  r3   )r>   r+   rw   Zphrx   r   r'   r   ZTestDet.test_types  ss    HHq#ha)7RYY]]1%++U3		!!!$QWWnU34RXXu%r)   c                s   \         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   r1   rT   Nr   r+  )r#   r   r   r	   rB  r   r   r+   r!   rC  float32r   )r>   r-   r      &  r'   r   Z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)rF   rG   rH   rI   rJ  r   r   r   r   r   r   r   r   r   rK   rL   rM   rN   r'   rH  rH    sD     @ [[Wvvw&HI& J&1 1r)   rH  c                   r   )
LstsqCasesi  c                sH   \         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]   rj   )r#   r   rc   r	   r   lstsqr   ru   r   r   r   Z__array_wrap__rr   r  r`   r    rt   r!   
issubdtyper+   floatingr(   )r>   r-   r.   r=   arrrF  nr   rx   r   rw   	residualsrankZsvZexpect_residss   &&&&           r'   rA   Z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   rM   rN   r'   rM  rM    s     3 3r)   rM  c                   sx   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                s   \         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# )	rI  r:  N)rI  rT   rI  rT   rU   rI  )rI  rU   rI  rI  rT   rI  )rT   rI  rT   rI  rI  rW   )rI  rI  rI  rU   rV   rI  )rk   r   r   r   r   r   r]   )r#   r    Tr	   rN  r   )r>   r-   r.   rw   rS  rT  rx      &      r'   
test_rcondZTestLstsq.test_rcond  s    HH22224 5 67Q 	

 HH'( &Q <d	 &Q 2d	 &Q >d	r)   c                st   \         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@  r   r^   )r#   r   rb   r%  r	   rN  r   ru   r   rc   r   r   r  r  )r>   rF  rR  n_rhsr-   r.   rw   rS  rT  rx   r   rG  r'   test_empty_a_bZ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                s~   \         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   rk   rY   r\   )r]   g?g?g @gffffff
@)
r#   r    Zvstackr%  lenrV  r   r   r	   rN  )r>   rw   Zyr  r   r'   test_incompatible_dimsZ TestLstsq.test_incompatible_dims  sp    HH\"HH-.IIq"''#a&/*+-- .GHHLLT* IHHHs   B++B<	r   N)rF  rR  rY  ))r   rY   rY   )r   r   rk   )r   r   rY   )r   r   rk   )r   r   rY   )r   rY   r   r   r   r   )rF   rG   rH   rI   rX  r   r   r   rZ  r\  rK   rL   rM   rN   r'   rU  rU    s?      [[0 3 ,,+ +r)   rU  dtz?bBhHiIqQefdgFDGOc                   s  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   ZgZGc                s   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# )rY   Ni   )rshft_1rD  r   r   rshft_0rshft_2rshft_3)r>   r^  ZrshftrQ   r'   test_large_powerZ 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                 s    \        V ^ 4      p\        V\        V 4      4       \        VP                  V P                  4       R# )r   N)r   r   r   r+   )ZMmzrg   r'   tzZ.TestMatrixPower.test_power_is_zero.<locals>.tz?  s0    a#B6q9:177+r)   N	rshft_allrD  objectstackedr>   r^  rg  r     &&  r'   test_power_is_zeroZ"TestMatrixPower.test_power_is_zero>  sE    	,
 >>Cszz"~V|4<<&&r*+ "r)   c                re  )c                 st    \        V ^4      p\        W4       \        VP                  V P                  4       R# )rk   N)r   r   r+   )r  rf  rg   r'   rg  Z-TestMatrixPower.test_power_is_one.<locals>.tzJ  s(    c1%B!399-r)   Nrh  rl  rm  r'   test_power_is_oneZ!TestMatrixPower.test_power_is_oneI  sE    	.
 >>Cszz"~V|4<<&&r*+ "r)   c                re  )c                 s    \        V ^4      pV P                  \        8w  d   \        M\        p\        W! W 4      4       \        VP                  V P                  4       R# )rY   N)r   r+   rj  r
   r   r   )r  rf  mmulrL  r'   rg  Z-TestMatrixPower.test_power_is_two.<locals>.tzU  s@    c1%B YY&06cDT#^,399-r)   Nrh  rl  rm  r'   test_power_is_twoZ!TestMatrixPower.test_power_is_twoT  sE    	. >>Cszz"~V|4<<&&r*+ "r)   c                s    R  pV P                    F,  pWP                  9  g   K  V! VP                  V4      4       K.  	  R# )c                 s    \        V R4      pV P                  \        8w  d   \        M\        p\        V! W4      \        V 4      4       R# )rk   Nr]   )r   r+   rj  r
   r   r   r   )r  Zinvmatrp  rL  r'   rg  Z3TestMatrixPower.test_power_is_minus_one.<locals>.tza  s9    !#r*F YY&06cDV!#<S#ACr)   N)ri  dtnoinvrD  rl  rm  r'   test_power_is_minus_oneZ'TestMatrixPower.test_power_is_minus_one`  s2    	C >>C%3::b>" "r)   c                s    V P                   P                  V4      p\        \        \        VR 4       \        \        \        V^.4       R# )g      ?N)ra  rD  r   	TypeErrorr   r>   r^  r  rQ   r'   test_exceptions_bad_powerZ)TestMatrixPower.test_exceptions_bad_powerk  s4    ll!!"%isC8isQC8r)   c                s   \        \        \        \        P                  ! ^.V4      ^4       \        \        \        \        P                  ! ^.^..V4      ^4       \        \        \        \        P
                  ! RV4      ^4       R# )rk   N)r   r\   rY   )r   r   r   r#   r    r%  )r>   r^  r&   r'   test_exceptions_non_squareZ*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                s    WP                   9   d   R # V P                  P                  V4      p\        \        \
        VR4       R # )Nr]   )rr  noninvrD  r   r   r   ru  rQ   r'   test_exceptions_not_invertibleZ.TestMatrixPower.test_exceptions_not_invertibleu  s1    kk  $k<b9r)   r   N)r\   r   rk   rY   )rY   r\   r   rk   )rk   rY   r\   r   ) rF   rG   rH   rI   r#   r  ra  r`  rb  rc  ri  r    rz  Zblockrk  rj  r+   rr  rd  rn  ro  rq  rs  rv  rw  r   r   skipifr   r{  rK   rL   rM   rN   r'   r_  r_  &  s      ffQiGl#Gl#Gl#G'7G4IQFQF#$Fhh'}q()Grxx}bhhsmRXXc]CG	J	,	,
,	#9
L
 [[(FG: H:r)   r_  c                   r   )TestEigvalshCasesi}  c                s6   \         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@  r   r   Nr]   )r	   eigvalshr   r  r   r5   r+   )r>   r-   r.   r=   r   r   r   ev2r  r'   rA   ZTestEigvalshCases.do  sh     __Q$"JJqM"(288*<=ooa%8BHH+=>r)   r   Nr   rM   rN   r'   r}  r}  }  s     	? 	?r)   r}  c                   r   )	TestEigvalshi  r+   c                s    \         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+   r3   )r>   r+   rw   r   rm  r'   r   Z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# rk   r   r1   ZlrongZUPLOZlowerupperN)r#   r    rK  r   r   r	   r  r>   rw   rg   r'   test_invalidZTestEigvalsh.test_invalid  sk    HHq#ha)<j"))"4"4agFj"))"4"4aAj"))"4"4aAr)   c                s    \         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   r1   r   r~  r  Zlr   r   Nr]   )r#   r    r   r5   r	   r  r   )r>   KloKuptgtr   r   r   r'   	test_UPLOZTestEigvalsh.test_UPLO  s   hhAA'ryy9hhAA'ryy9hhAwbii0		" IIs#T*IIs-T*IIs-T*IIs-T*IIs-T*r)   c                s    ! 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                   r   )/TestEigvalsh.test_0_size.<locals>.ArraySubclassi  r   Nr   r   r)   r'   r   r    r   r)   r   r1   Nr   r   r   r   )r#   r$   r   r   rt   r	   r  r   r+   r!   r   r   rc   r"   r   rK  r   r   r'   r   ZTestEigvalsh.test_0_size  s    	BJJ 	HHYbgg.33MBooa 		"**,-VSYY'
3

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

+,r)   r   NrF   rG   rH   rI   r   r   r   r   r   r   r   r   r  r  r   rK   rL   rM   rN   r'   r  r    sG     [[Wvvw&HI5 J5
B+,- -r)   r  c                   r   )TestEighCasesi  c                s   \         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# )rk   r@  Nr   r   )r   err_msgr]   r   )r	   eighr   r   r   r  r   r   r
   r#   r   r5   r+   Zrepr)r>   r-   r.   r=   r   r   Zevcr   r   r  Zevc2rG  r'   rA   Z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   rM   rN   r'   r  r    s     B Br)   r  c                   r   )	TestEighi  r+   c                s    \         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+   r3   r   r   r'   r   ZTestEigh.test_types  sT    HHq#ha)7yy~~a QWWnU34QWWe$r)   c                r  r  )r#   r    rK  r   r   r	   r  r  rg   r'   r  ZTestEigh.test_invalid  se    HHq#ha)<j"))..!'Bj"))..!W=j"))..!W=r)   c                s   \         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   r5   r	   r  r   )r>   r  r  r  r   r   r   rW  r'   r  Z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                sH    ! 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                   r   )+TestEigh.test_0_size.<locals>.ArraySubclassi  r   Nr   r   r)   r'   r   r    r   r)   r   r1   Nr   r   r   r   )r#   r$   r   r   rt   r	   r  r   r+   r!   r   r   rc   r"   r   rK  r   r   r'   r   Z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  rM   rN   r'   r  r    sF     [[Wvvw&HI% J%>+,+ +r)   r  c                   s8   a  ] tR tRt o RtRt]R 4       tRtV t	R# )_TestNormBasei  Nc                s4   \        V P                  P                  \        P                  4      '       d-   \        VP                  V P                  P                  4       R # \        \        VP                  P                  \        P                  4      4       R # r    )	Z
issubclassr+   r!   r#   Zinexactr   Zrealr   rP  )rw   r   r&   r'   check_dtypeZ_TestNormBase.check_dtype  sN    aggllBJJ//AFFLL1 Jsyy~~r{{;<r)   r   )
rF   rG   rH   rI   r^  decZstaticmethodr  rK   rL   rM   rN   r'   r  r    s!     	B
C= =r)   r  c                   s>   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	_TestNormGenerali   c                s    \        \        . 4      R 4       \        \        \        . V P                  R7      4      R 4       \        \        \	        \        . V P                  R7      4      4      R 4       R# )rI  r1   N)r   r   r    r^  r   rD   r2   r'   
test_emptyZ_TestNormGeneral.test_empty"  sI    T"Xs#T%$''23S9T*U2TWW%=>?Er)   c                s   \         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       \        4       ;_uu_ 4       pVP                  \        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)rk   
AllIntegerZAllFloatrI  divide by zero encounteredNrU   rT   r)  r]   r   g      ?)r#   r    	typecodesrD  r   r   r  r   r   filterRuntimeWarningr+   r!   	r>   r-   Zexact_typesZinexact_typesZ	all_typesZ	each_typeZatZanZsup	   &        r'   test_vector_return_typeZ(_TestNormGeneral.test_vector_return_type'  s   HHYll<0Z0/	"I)$Bb266'"BR$C("$$

>+GH"b\  (#B,	 % b!BR$A&b!BR$C(b!BR$HHMM#$6i8P$PQb!BR$HHMM#$6i8P$PQb"&&!BR$C(? # %$$s   0A I

Ic                s   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# )rk   c                 sx  < \         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*   rW   rT         $@Ng6ҭ@r]   gQ?r^   gsc?)r#   testingr   r   r  r   )r   r>   s   &r'   _testZ+_TestNormGeneral.test_vector.<locals>._testU  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)   r1   N)rk   rY   r\   r   )r]   r^   rm   rl   )r]   rY   rm   r   )r    r^  )r>   r-   r.   r  r  r   s   f     r'   test_vectorZ_TestNormGeneral.test_vectorP  sl    	=$ A!H  )5$''+B)+A!H+r)   c                sv   \        . 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 )rk   r1   Nr   ordr  rA  r  r@  r<  r   r2     r]   r^   )r    r^  r#   r   r	  rc   r   r   r   rb   r`   ro   Zcombinationsr   r   ZtakerV  )r>   r  orderkZ	expected0Z	expected1BZndrA  Zrow_axisZcol_axisrR  Zk_indexr   s   &             r'   	test_axisZ_TestNormGeneral.test_axisn  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                s   \         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# )rk   r1   zorder {0}, axis = {1}z;Shape mismatch found {0}, expected {1}, order={2}, axis={3}Nr  T)r  rA  keepdims)r  r  nuc)rk   rk   rk   r]   r^   )r#   r   r^  rb   r   r   Zsqueezeformatr   rc   r   r	  r`   rv   rq   ro   Zpermutations)	r>   r  Zallclose_errZ	shape_errr   ZfoundZexpected_shaper  r  r  r'   test_keepdimsZ_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)rF   rG   rH   rI   r  r  r  r  r  rK   rL   rM   rN   r'   r  r     s(     F
')R<#5J(Q (Qr)   r  c                   sV   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           	     sh    \        \        V P                  . .V P                  R 7      4      R4       R# )r1   rI  N)r   r   r    r^  rD   r2   r'   test_matrix_emptyZ_TestNorm2D.test_matrix_empty  s$    T$**bT*9:C@r)   c                s.   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       \        4       ;_uu_ 4       pVP                  \        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)rk   r  ZfdFDrU   r  rT   Nr  r  gU&,t=@r  r)  r   r]   gLXz?r^   )r    r#   r  rD  r   r   r  r   r   r  r  r  r  r  r'   test_matrix_return_typeZ#_TestNorm2D.test_matrix_return_type  s   JJ	9-.ll<0
 /	"I)$Bb266'"BR$C("$$

>+GH"b\  (#B,	 % b!BR$C(b!BR$$45b"BR$C(b"&&!BR$C(b%BR$C(b%BR$ JJ**2/A1*MK # %$$s   A HHc                sl   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# )rk   r1   r  r  r  g      (@rW   rX   gW?"@gїʄ?ZnofroNgT"@r]   r^   rm   )r    r^  r   r   r   r   r   r>   r  rg   r'   test_matrix_2x2Z_TestNorm2D.test_matrix_2x2  s    JJAA'twwJ7DGY/DENI6DEND1DCL$/DSDM3/DAJ-DBK-DAJ(:;DBK)<=j$73j$2.j$1-r)   c                s   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# )rk   r1   r  r  gB+pc?g?g333333?rT   g?g&.d?gܸՠ?Ng?r<  )r  r   r2  )r\   rY   rk   grj=Q0?r]   r^   )r    r^  r   r   r   r  rg   r'   test_matrix_3x3Z_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                s   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# )rk   r1   r  r  NZtestr<  r  r   r\   r   )rk   rY   rY   r\   r   rk   rY   )	r    r^  r#   r   rb   r   r   r   r   )r>   r  r  r  r   r'   test_bad_argsZ_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)rF   rG   rH   rI   r#   r    r  r  r  r  r  rK   rL   rM   rN   r'   r  r    s1      HHEA1Nf. >"< <r)   r  c                   r   )	_TestNormi6  r   Nr   r   r)   r'   r  r  6  r7  r)   r  c                   s2   a  ] tR tRt o R tR tR tRtV tR# )TestNorm_NonSystematici:  c                s    \         P                  ! ^
\         P                  R7      p\        \	        V^R7      R^R7       R# )
   r1   r  gL)@r  N)r#   r   Z
longdoubler,   r   r  rg   r'   test_longdouble_normZ+TestNorm_NonSystematic.test_longdouble_norm<  s*     IIb.QAqAr)   c                s    \         P                  ! R.\         P                  R7      p\        \	        V^R7      R^R7       R# )rY   r1   r  r  Nl        i   )r#   r    int32r,   r   r  rg   r'   test_intminZ"TestNorm_NonSystematic.test_intminB  s,     HHhZrxx0QACr)   c                s   \         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# )	rY   r1   gV;'@r  r  NrY   y      @      @y            @)	r#   rs   Zclongdoubler,   r	   r   rD  
complex128r   )r>   rE  r   rL  r'   test_complex_high_ordZ,TestNorm_NonSystematic.test_complex_high_ordH  s    HHT0!!		qa 8#rJHHR]]#		qa 8#qIHHR\\"		qa 8#qIr)   r   N)	rF   rG   rH   rI   r  r  r  rK   rL   rM   rN   r'   r  r  :  s     BD
J 
Jr)   r  c                   2    ] tR tRt]P
                  t^tRtR# )_TestNormDoubleBaseiV  r   N)	rF   rG   rH   rI   r#   r   r^  r  rK   r   r)   r'   r  r  V  s    	B
Cr)   r  c                   s2    ] tR tRt]P
                  t^tRtR# )_TestNormSingleBasei[  r   N)	rF   rG   rH   rI   r#   rK  r^  r  rK   r   r)   r'   r  r  [  s    	B
Cr)   r  c                   r  )_TestNormInt64Basei`  r   N)	rF   rG   rH   rI   r#   Zint64r^  r  rK   r   r)   r'   r  r  `  s    	B
Cr)   r  c                   r   )TestNormDoubleie  r   Nr   r   r)   r'   r  r  e  r7  r)   r  c                   r   )TestNormSingleii  r   Nr   r   r)   r'   r  r  i  r7  r)   r  c                   r   )TestNormInt64im  r   Nr   r   r)   r'   r  r  m  r7  r)   r  c                   r   )TestMatrixRankiq  c                s>   \        ^\        \        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   rI  z#`tol` and `rtol` can't be both set.g{Gz?)tolr   Nr]   r]   r  )rk   r   r   r   )r   )r\   r   r   )r   r   r#   r  r   r    r   r   )r>   IZmsrL  r'   test_matrix_rankZTestMatrixRank.test_matrix_ranks  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           	     s   \        ^\        \        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  rI  g:0yE>g|"BE>)r8   r  g;䡈E>Nr  r  )r   r   r#   r  r%  r   )r>   r  rg   r'   test_symmetric_rankZ"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)rF   rG   rH   rI   r  r  rK   rL   rM   rN   r'   r  r  q  s     02E Er)   r  c                  sH   \         P                  P                  R 4      p \        ^d4       Fs  pV P	                  RR7      pVR,          VR,          ,           VR&   \        \        V4      ^	4       VR,          VR,          ,           VR	&   \        \        V4      ^4       Ku  	  R# )
i3sizeN)(   r  )r   rk   )r   rY   r   r   )r   r   )r   r2  )r   r\   )r#   r,  ZRandomStater	  normalr   r   )rngZiZX      r'   test_reduced_rankr    s|    
))


)C3ZJJHJ%D'AdG#$[^Q'D'AdG#$[^Q' r)   c            	       s  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                s   \        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Zmodereducedr   N)r!   r+   rc   r  r	   qrQRr   r"   r   r   rV  r
  r#   r  triu)r>   r-   a_typea_dtyperF  rR  r  r   r  r  q1r1r2s   &&           r'   check_qrZ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)   rF  rR  c                s   \        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# )rawr  N)
r  r#   rs   r  r	   r  r   r+   r   rc   )r>   rF  rR  r  r-   htau   &&&    r'   test_qr_emptyZTestQR.test_qr_empty  s     IHHaVaae,QWWbii(SYY		*QWWqf%SYY%r)   c                s   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# )rk   r1   r  r  Nr  r  r[   )	r    r#   r   r	   r  r   r+   rc   rV  )r>   r-   r  r  r   r'   test_mode_rawZTestQR.test_mode_raw  s     JJAAA/ryyJA 15)299$%		RYY&'6!"		T!"133U+299$%		RYY&'6!"		T!"r)   c                s@   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# )rk   Zfd              ?N)r    rD  r  rV  )r>   r-   r.   r^  Zm1Zm2r   r'   test_mode_all_but_economicZ!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           	     s
   \        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# )	rY   Nr  r  r  r   r^   r]   ).r   r   )r!   r+   rc   r  r	   r  r   r"   r   r
   r#   r   r   r   r
  r  )r>   r-   r  r  rF  rR  r  Zqr   ZI_matZstack_I_matr  r  r  s   &&            r'   check_qr_stackedZ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)   r  
outer_sizer^  c                s@   \         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# )i{   r  r  N)r#   r,  Zdefault_rngr  rD  r  )r>   r  r  r^  r  r  r  r   r'   test_stacked_inputsZTestQR.test_stacked_inputs7  sx     ii##C(JJJ-J.55b9JJJ-J.55b9a a#'k*r)   r   N)r\   r   r  r   ))r\   r   )r   r\   r  r  r  )r   r  )rY   r\   r   )rF   rG   rH   rI   r#   r    r  r   r   r   r  r  r  r  r   r   r   r   r  rK   rL   rM   rN   r'   r  r    s     HHE%$N [[c3Z * 

&

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


BJJ$  !+!"+r)   r  c                   sL  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# )TestCholeskyiH  rc   r+   r  FTc                s   \         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# )rk   r  Nr1   r  i  Z Z
)atolr  )Zaxis1Zaxis2r]   r^   )r]   r^   )r#   r,  r-  randnrO  Zcomplexfloatingrv   r	  r[  r
   r  r
  r   r	   choleskyrc   ZfinfoZepsr   diagonalr   ru   Zisreal)
r>   rc   r+   r  r-   Ztr  r.   r  rE  s
   &&&&      r'   test_basic_propertyZ TestCholesky.test_basic_propertyJ  s    			qIIOOU#== 2 233B%000As5z"#"#IIakk!n))+Q/JJq&IIq. 		!++a.--/3A		![[^0023AQWWQZ"((5/"5"5547!E7"QCr!1MN KK2.ryy|$%qAvr)   c                s,    ! 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                   r   )/TestCholesky.test_0_size.<locals>.ArraySubclassio  r   Nr   r   r)   r'   r   r  o  r   r)   r   r1   Nr   )rk   r   r   )r#   r$   r   r   rt   r	   r  r   rc   r   r+   r!   r   r"   r   r   r   r'   r   ZTestCholesky.test_0_sizen  s    	BJJ 	HHYbgg.33MBooa QWWcii(		"**,-
3

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

+,r)   c                sF   \         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# )	rk   y               @Fr  TNy      ?        y               y      @        )r#   r    r   r	   r  rV  r
  )r>   r-   rg   r'   test_upper_lower_argZ!TestCholesky.test_upper_lower_arg~  sn    HHvv&(89:V__Q'%)HIOOAT*OOA  %%'	
r)   r   N)rn   r   r\   r\   )2   r   )r\   r  r  )rF   rG   rH   rI   r   r   r   r#   rK  r   r   r  r  r   r  rK   rL   rM   rN   r'   r  r  H  s     [[@ [["**bjj",,F [[%    8- 	
 	
r)   r  c                   s   ] tR tRt]P
                  ! ^4      t]P
                  ! ^4      t]P                  ! . RO. RO. RO.4      t	]
! ]P                  P                  ]]4      ]	4       ]! ]R4      ;_uu_ 4        ]P                  P                  ]R]P                  3,          ]4       RRR4       RtR#   + '       g   i     RtR# ; i)		TestOuteri  z$Input arrays must be one-dimensionalr   Nr   r]  r  )r   rY   r   )rF   rG   rH   rI   r#   r   Zarr1Zarr2r    r   r   r	   Zouterr   r   ZnewaxisrK   r   r)   r'   r  r    s    99Q<D99Q<Dxx				H ryytT2H=	:
 
 			Q

]+T2
 
 
 
s   :0B66C		r  c                  s|   \         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# )ZlittleZ<rC   r1   r   Z=N)sysZ	byteorderr#   rK  r   r  rt   r+   ZnewbyteorderZbyteswapr   r	   r   rB  r4  r   )ZnativeZdttrQ  Zn_arrZsw_arrZroutiner   r{   r'   test_byteorder_checkr    s    
}} 

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

FJJ<G#,CsGEN3sGFO4 = (r)   rx  ry  c                  s>   \         P                  ! ^^.^^..4      p \         P                  ! ^^.^^..4      p\         P                  ! . RO4      R,          pWR&   WR&   \        \         P                  P
                  \         P                  P                  V4       R# )rk   :rk   NrY   .N)r   r   rY   rY   r   )r#   r    r   r   r	   r   r   )Z
invertibleZnon_invertiblerw   r  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                  s   ^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)i   zNot POSIX or fork failed.NrT   zDORGQR parameter number 5zNumpy xerbla not linked in.r   )osZforkZOSErrorZAttributeErrorr   skipZcloseresourceZ	setrlimitZRLIMIT_COREr#   r	   lapack_liteZxerblar   r   Z_exitZ	EX_CONFIGr    Zdorgqrr;   ZwaitZWEXITSTATUS)Z	XERBLA_OKZpidr  r-   r   Zstatus         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                  s8   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.QtWidgetsZ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 npZ )beforeafterbad_libz-c)r  r  r  N)textwrapZdedentr  
subprocessZ
check_callr  Z
executable)Zbad_libsZtemplater  Zcode       r'   test_sdot_bug_8577r    s     "9-H 
  
	H &:"'.  0s~~tT:; %9"'.  0s~~tT:; r)   c                   sb   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           
     s   \         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  rY   rY   r  r#   r,  r   r   r   )r>   r  r  Cr   r'   (test_basic_function_with_three_argumentsZ5TestMultiDot.test_basic_function_with_three_arguments  s     IIV$IIV$IIV$IqQi0!%%(,,q/BIqQi0"&&BFF1L2IJr)   c                s    \         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  )r>   r  r  rL  r'   &test_basic_function_with_two_argumentsZ3TestMultiDot.test_basic_function_with_two_arguments&  s\    IIV$IIV$Iqf-quuQx8Iqf-rvva|<r)   c                s   \         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  rY   rk   r  )r>   r  r  r  Dr   r'   9test_basic_function_with_dynamic_programming_optimizationZFTestMultiDot.test_basic_function_with_dynamic_programming_optimization.  s     IIV$IIV$IIV$IIV$IqQl3QUU1X\\!_5H5H5KLr)   c                s@   \         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# )rY   Nr  r  r   r  r#   r,  r   r   rc   )r>   A1dr  r  r  r   r'   test_vector_as_first_argumentZ*TestMultiDot.test_vector_as_first_argument7  sm    iiq!IIV$IIV$IIV$ 	Y~.44d;r)   c                s@   \         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  )r>   r  r  r  D1dr   r'   test_vector_as_last_argumentZ)TestMultiDot.test_vector_as_last_argumentA  sm    IIV$IIV$IIV$iiq! 	Ya~.44d;r)   c                s@   \         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# )rY   Nr  r  r   r  )r>   r  r  r  r   r   r'   &test_vector_as_first_and_last_argumentZ3TestMultiDot.test_vector_as_first_and_last_argumentK  sn    iiq!IIV$IIV$iiq! 	Y/066;r)   c           
     s   \         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,  r   r   r   r   )r>   r  r  r  r%   retr   r'   test_three_arguments_and_outZ)TestMultiDot.test_three_arguments_and_outU  s     IIV$IIV$IIV$hhvq	s+zzCqa1C266!<!89r)   c                sL   \         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$  )r>   r  r  r%   r%  r   r'   test_two_arguments_and_outZ'TestMultiDot.test_two_arguments_and_outb  sr    IIV$IIV$hhvC(zzCq*C.r)   c                s   \         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  rk   r$  )r>   r  r  r  r  r%   r%  rW  r'   -test_dynamic_programming_optimization_and_outZ:TestMultiDot.test_dynamic_programming_optimization_and_outl  s     IIV$IIV$IIV$IIV$hhvq#.zzCqa!4!4Q!78r)   c           	     sJ   \         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  r1   T)Zreturn_costsNrk   NN)r  #   )r*     )r+  r2  )r2  r  )r     )r,  i   )rI  g     @g     þ@g    O@g    1@g    @)rI  rI  g     @g     @g     ջ@g     @)rI  rI  rI  g     p@g     @g     @)rI  rI  rI  rI  g     @@g     X@)rI  rI  rI  rI  rI  g     @)rI  rI  rI  rI  rI  rI  )r   rk   rk   r\   r\   r\   )r   r   rY   r\   r\   r\   )r   r   r   r\   r\   r\   )r   r   r   r   r   r2  )r   r   r   r   r   r2  )r   r   r   r   r   r   r]   )r#   r,  r    intr   r   r  )r>   ZarraysZ
m_expectedZ
s_expectedrx   rF  r   r'   test_dynamic_programming_logicZ+TestMultiDot.test_dynamic_programming_logicx  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                s    \        \        \        . 4       \        \        \        \        P                  P	                  R4      .4       R# )r\   Nr  )r   r   r   r#   r,  rD   r2   r'   test_too_few_input_arraysZ&TestMultiDot.test_too_few_input_arrays  s,    j)R0j)bii.>.>v.F-GHr)   r   N)rF   rG   rH   rI   r  r  r  r  r!  r"  r&  r'  r(  r.  r/  rK   rL   rM   rN   r'   r  r    sE     K=M<<<:/
9=<I Ir)   r  c                   sF  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                s    \        \        4      ;_uu_ 4        \        P                  ! WR 7       RRR4       R#   + '       g   i     R# ; i)indN)r   r   r	   	tensorinv)r>   rQ  r2  s   &&&r'   test_non_square_handlingZ&TestTensorinv.test_non_square_handling  s,    
 ;''S* ('''s	   :A	z
shape, indc                s    \         P                  ! ^4      pWn        \        P                  ! W2R7      pVP                  VR VP                  RV ,           pVP                  p\        We4       R# )   r-   r2  N)r#   r  rc   r	   r3  r   )r>   rc   r2  r-   ainvr   actualr  r'   test_tensorinv_shapeZ"TestTensorinv.test_tensorinv_shape  sU     FF2J!-7734=1774C=0V&r)   r2  c                s    \         P                  ! ^4      pRVn        \        \        4      ;_uu_ 4        \
        P                  ! W!R7       RRR4       R#   + '       g   i     R# ; i)r5  r6  Nr   r     r\   )r#   r  rc   r   r   r	   r3  )r>   r2  r-   rQ   r'   test_tensorinv_ind_limitZ&TestTensorinv.test_tensorinv_ind_limit  s@     FF2J:&&q* '&&&s   AA(	c                s   \         P                  ! ^4      pRVn        \        P                  ! V^R7      p\         P
                  ! ^4      p\        \         P                  ! W#^4      \         P                  P                  W4      4       R# )r5  r1  Nr5  r;  r\   )	r#   r  rc   r	   r3  r%  r   	tensordottensorsolve)r>   r-   r7  r.   r   r'   test_tensorinv_resultZ#TestTensorinv.test_tensorinv_result  sY    FF2Jq)GGBKTa0"))2G2G2MNr)   r   Nr   r  r;  rY   r\   r\   rY   )r:  rY   )r=  rk   r^   )rF   rG   rH   rI   r   r   r   r#   r%  r4  r9  r<  r@  rK   rL   rM   rN   r'   r0  r0    s     [[Z		"		Q*
 +	+ [[\,
 
'
' [[U	2%
 ++O Or)   r0  c                   s   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                s    \        \        4      ;_uu_ 4        \        P                  ! VP                  R ,          4      p\
        P                  ! WVR7       RRR4       R#   + '       g   i     R# ; i:NrY   Nr  N)r   r   r#   r%  rc   r	   r?  )r>   r-   r  r.   s   &&& r'   r4  Z(TestTensorsolve.test_non_square_handling  sD    
 ;''$Aq$/ ('''s   A A""A3	rc   c           	     s8   \         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# rD  )
r#   r,  r  r%  rc   r	   r?  r   r>  r[  )r>   rc   r-   r.   rw   r   r'   test_tensorsolve_resultZ'TestTensorsolve.test_tensorsolve_result  s]     IIOOU#GGAGGBK II!!!'QAGG=qAr)   r   rA  rB  r   rY   ))rY   r\   r  )r\   r   r   r\   )r   r\   r\   r   )rF   rG   rH   rI   r   r   r   r#   r%  r4  rE  rK   rL   rM   rN   r'   rC  rC    sy     [[Y		%		V$)
 0	0
 [[W/BBr)   rC  c                  s    \         P                  ! ^R.^^..RR7      p \        \        R4      ;_uu_ 4        \        P
                  ! V 4       RRR4       R#   + '       g   i     R# ; i)rk   Zfloat16r1   zunsupported in linalgNr^   )r#   r    r   rt  r	   r  )rQ  r=  r'   test_unsupported_commontyperG    sI    
((QGaV$I
6C	Y(?	@	@ 
A	@	@	@s   AA)	z,Bad memory reports lead to OOM in ci testingc                  s   Rp \         P                  ! ^V .\         P                  R7      p\         P                  ! ^^.\         P                  R7      p^VR&   \         P                  ! W!4      p\        VR,          ^4       R# )rY   r1   N        )r   r]   )r#   r   rK  r%  r   r   )rR  r-   r.   r  r  r'   test_blas64_dotrI    s[    A
!Qrzz*A
Abjj)AAeH
qA51r)   z*Numpy not compiled with 64-bit BLAS/LAPACKc            
      s   \         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# )
rY   r1   ZinforF  rR  NrH  l       r]   l        )
r#   r   r	   r  Zdgeqrfr   r   r-  Zitemr   )
r+   Zlapack_routinerF  rR  Zldar-   Zworkr  ZresultsZlworks
             r'   !test_blas64_geqrf_lwork_smoketestrJ    s     JJEYY**11NAA
C 	!Qu%A88QCu%D
((A3e
$C Q13b!<G!$q!q! 		EEE!!E!"!"r)   c                  s    \         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   r2  )r   r     i   )r,  i   i    i&   )r  i.   i4   i:   )r#   r   rb   r	   r  r    r   rw   r8  r   r  r'   test_diagonalrO  
	  sV     			"i(AYY"Fxx	
H "r)   c                  s    \         P                  ! ^<4      P                  R4      p \         P                  P	                  V 4      p\         P
                  ! . RO4      p\        W4       R# )rK  NrL  )i$   it   i   )r#   r   rb   r	   Ztracer    r   rN  r  r'   
test_tracerP  	  sD     			"i(AYY__QFxx'H"r)   c                  s(   \         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]   rY   r]   r<  r  )rm   r  rm   )r   r)  )	r#   r   rb   r	   Zcrossr    r   r   r   )rw   r8  r   r   r   Zx_2dimr	  r'   
test_crossrR  %	  s    
		!V$AYY__QA&Fxx H " 	AAYY__Q"F\"H"	C
 
 5
		'
 
 
 
s   )D  D	c                  s    \         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  r   )r#   r   rb   r	   r>  )rw   r=  r'   test_tensordotrS  @	  s^    
		!V$A99q$***99q66*:;rAAAr)   c                  s    \         P                  ! ^4      P                  R4      p \         P                  P	                  W P
                  4      p\         P                  ! ^^.^^2..4      p\        W4       R# )r  Nr  )r#   r   rb   r	   r
   rV  r    r   rN  r  r'   test_matmulrT  H	  sW     			!V$AYYa%Fxx!R2r(+,H"r)   c                  sr   \         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  r  )	r#   r   rb   r	   Zmatrix_transposerV  r   r   r   rN  r  r'   test_matrix_transposerU  R	  s    
		!V$AYY''*FssH"	:
 
 			""1T7+
 
 
 
s   4'B%%B6	c                  s\   \         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# )rQ  ^)ː,@r0   Tr  Nr  )r#   r   rb   r	   matrix_normr   r   r    )rw   r8       r'   test_matrix_normr[  _	  su    
		!V$AYY""1%F

7 3AFYY""1t"4F7) 5aHr)   c            	      s   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)rF  )rY   r   r   )	r#   r   rK  r  r   r   r	   rY  r   )rc   r+   rw   r  r'   test_matrix_norm_emptyr\  j	  s    )jj"**bhh7E&A..qe.<a@..qe.<a@..qa.8!<..qa.8!<..qbff.=qA 8 *r)   c                  s*   \         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# )rQ  rV  rW  r@  TrX  r   r1   Nr  )g|a2@gsh|? @gDioI#@rn   )r#   r   rb   r	   vector_normr   r   r    Zfullr   rc   rN  r  r'   test_vector_normr^  t	  s    
		!V$AYY""1%F

7 3AFYY""11"-F01! YY""1t"4Fwwvwi8Hx~~.;r)   c                  s   \         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#   r   rK  r  r   r   r	   r]  r   )r+   rw   rZ  r'   test_vector_norm_emptyr_  	  s    **bjj"((3HHQRYY**1!*4a8RYY**1!*4a8RYY**1"&&*91=	 4r)   )r  rM  >   r6   rz   r8   r7   rZ   r9   )rU   rT   rW   )rV   rW   rX         ?       @y       @      @y      @      @y      @      @       @      ?)ra  r`  y      ?      @)y      ?       y      ?      y      ?      r   r   )rT   rU   rV   )rU   rT   rV   r         @       @      @      )r  rb  rc  )y      @      y      @      "@y      @       @y      @      "y      @      y      @       @)ra  r`  rc  y      ?      y       @       y       @      )Z__doc__ro   r  r  r  r  Z	threadingr   r   Znumpyr#   r    r   r   r   r   r   r   r   r   r	   r
   r   r   Znumpy._corer   Znumpy.exceptionsr   Znumpy.linalgr   r   r   r   r   Znumpy.linalg._linalgr   Znumpy.testingr   r   r   r   r   r   r   r   r   r   r   Znumpy.linalg.lapack_liteZImportErrorr(   r,   r3   r4   r5   rO   r:   rR   r,  r-  r_   rs   r.  rf   ry   r|   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r1  r6  r8  r9  r>  r?  rH  rM  rU  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  Zactive_countr
  r   r  r  r0  rC  rG  r  rI  r0  rJ  rO  rP  rR  rS  rT  rU  r[  r\  r^  r_  )r  s   0r'   <module>rd     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|u<- u<p	- 	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RB B* GH I |#F  H#H#4# #(6B#
,IB<$>iJ  	 			h  Js    f3 /g
3f>=f>