+
    /iכ                       ^ 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 ^ RIHtHtHtHtHtHt ^ RI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#H$t$H%t%H&t&H't'H(t(H)t) ^ RI*H+t+ ^ RI,H-t-H.t. ^ RI/H0t0 ^ R	I1H2t2 ]P                  ]Pf                  ]Ph                  3t5]Pl                  ]Pn                  ]Pp                  3t9]5]9,           t:]Pv                  Py                  R
RR/RR// .. R4OR7      t=]Pv                  Py                  RRR/RR// .. R4OR7      t>R t? ! R R4      t@ ! R R4      tA ! R R4      tB ! R R4      tC ! R R4      tD ! R R4      tER5R ltF ! R R 4      tG ! R! R"4      tH ! R# R$4      tI]Pv                  Py                  R%R64      ]Pv                  Py                  R&]]34      R' 4       4       tJ ! R( R)4      tK ! R* R+4      tL ! R, R-4      tM ! R. R/4      tN ! R0 R14      tO ! R2 R34      tPR# )7    N)arangearraydotzerosidentity	conjugate	transposefloat32)assert_equalassert_almost_equalassert_assert_array_almost_equalassert_allcloseassert_array_equal)raises)solveinvdetlstsqpinvpinvhnormsolve_bandedsolveh_bandedsolve_triangularsolve_circulant	circulantLinAlgError
block_diagmatrix_balanceqrLinAlgWarningassert_no_overwrite)check_free_memoryIS_MUSL)	HAS_ILP64)skip_xp_invalid_argoverwrite_kwoverwrite_aTF)idsoverwrite_b_kwoverwrite_bc                    T pV\         P                  8X  d   \         P                  pM%V\         P                  8X  d   \         P                  p\         P
                  ! V4      P                  # )z;Get the epsilon for dtype, possibly downcast to BLAS types.)np
longdoublefloat64clongdouble
complex128finfoeps)dtypdts   & [/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/linalg/tests/test_basic.py	_eps_castr9   +   sE    	B	R]]ZZ	r~~	]]88B<    c            	       6  a  ] tR t^5t o R tR tR tR tR tR t	R t
R t]P                  P                  R	]]]P$                  ]]P(                  .4      ]P                  P                  R
]]]P$                  ]]P(                  .4      R 4       4       tRtV tR# )TestSolveBandedc                \   \        . RO. RO. RO. RO.4      p\        . RO. R	O. R
O. RO.4      p^^rC\        . RO4      pVP                  R^4      p\        ^^.R^.^^.^^..4      p\        . RO. RO. RO. RO.4      pWVWx3 F%  p	\        W43W)4      p
\        \	        W4      V	4       K'  	  R# )      ?Nr>      r   r   rA         r         r@   rF   r   rH                 r@   rD   rF   rG   rC   r@   rK   rA   rG   rJ   r   rF   rH   r   r         $@rM          @g      ,@rG   r   r   r   r   r   r   rG   r   rG   r   r   r   reshaper   r   r   selfaablub4b4by1b4by2b4by4bxs   &          r8   	test_realTestSolveBanded.test_real7   s    ?! !# $ O""!# $ !1)*

2q!1vQx1v1v   |###% & U*AaVR+A%c!i3 +r:   c                \   \        . RO. RO. RO. RO.4      p\        . RO. R	O. R
O. RO.4      p^^rC\        . RO4      pVP                  R^4      p\        ^^.R^.^^.^^..4      p\        . RO. RO. RO. RO.4      pWVWx3 F%  p	\        W43W)4      p
\        \	        W4      V	4       K'  	  R# )r>   Nr?   rA   rB   )               @rG   r@   rh   rH   rI   rM   r@   rD   rh   rN   rO   )rh   rH   r   r   rR   rM   rS   y              ,@rT   )r   r   r                 ?rV   rW   rY   s   &          r8   test_complexTestSolveBanded.test_complexO   s    ?!"!# $ $"""$ % !1*+

2q!1vQx1v1v   |$##% & U*AaVR+A%c!i3 +r:   c                   \        . RO. RO. RO.4      p\        P                  ! VR,          ^4      \        P                  ! VR,          ^ 4      ,           \        P                  ! V^RR13,          R4      ,           p\        . R	O4      pVP                  R^4      p\        ^^.R^.^^.^^..4      p\        . R
O. RO. RO. RO.4      pW4WV3 F$  p\	        RW4      p\        \        W(4      V4       K&  	  R# )rM   NrL   rN   rA   rO   r   rG   NNrG   NNNrH   rQ   rT   rU   rV   rG   rG   r   r/   diagrX   r   r   r   	rZ   r\   r[   r_   r`   ra   rb   rc   rd   s	   &        r8   test_tridiag_real!TestSolveBanded.test_tridiag_realg   s    O!!# $ GGBuIq!BGGBtHa$88277@B1crc6
B<P P)*

2q!1vQx1v1v   |###% & U*AVR+A%c!i3 +r:   c                   \        . RO. RO. RO.4      p\        P                  ! VR,          ^4      \        P                  ! VR,          ^ 4      ,           \        P                  ! V^RR13,          R4      ,           p\        . R	O4      pVP                  R^4      p\        ^^.R^.^^.^^..4      p\        . R
O. RO. RO. RO.4      pW4WV3 F$  p\	        RW4      p\        \        W(4      V4       K&  	  R# )rM   Nri   rN   rA   rO   ro   rq   rH   rj   rT   rU   rV   rs   rt   rv   s	   &        r8   test_tridiag_complex$TestSolveBanded.test_tridiag_complex{   s    $!!# $ GGBuIq!BGGBtHa$88277?A!SbS&z2<O O*+

2q!1vQx1v1v   |###% & U*AVR+A%c!i3 +r:   c                    \        . RO. RO. RO. RO.4      p\        . RO. R	O. R
O. RO.4      p^^rC\        . RO4      p\        W43W%RR7      p\        \        W4      V4       R# )r>   Fcheck_finiteNr?   rB   rE   rI   rL   rN   rO   rP   rQ   )r   r   r   r   )rZ   r[   r\   r]   r^   r_   rd   s   &      r8   test_check_finite!TestSolveBanded.test_check_finite   sj    ?! !# $ O""!# $ !1)*!e<!#a)R0r:   c                   \        . RO. RO. RO. RO.4      p^^r2\        . R	O4      P                  R^4      p\        \        \        W#3W4       \        \        \        W#3VRR.4       \        \        \        R
VRR.4       R# )rM   r>   rS   NrL   rN   rO   rH   rP   )r>   rS         @      @rs   )r   rX   assert_raises
ValueErrorr   )rZ   r\   r]   r^   bads   &    r8   test_bad_shapeTestSolveBanded.test_bad_shape   sy    O""!# $ !1()11"a8j,@j,S#JG 	j,S#JGr:   c                (   \        . RO.4      p\        . RO.4      p\        R^..V4      p\        W2RR7       \        R^ .^.^ ..V4      p\        W2RR7       \        VP                  \
        P                  ! R4      4       \        V. RO.4       R# )	r>   V瞯<rtolf8Nr>   rS   r   )      ?r>   g      ?r   r   rs   )r   r   r   r   dtyper/   r   )rZ   rc   refrd   s   &   r8   test_1x1TestSolveBanded.test_1x1   s    
 <.!_%&1#*U+ 1#sQC!4U+QWWbhhtn-1/0r:   c                    . RO. RO. RO. RO.p. RO. RO. RO. R	O.p^^rC. R
Op\        W43W%4      p\        \        W4      V4       R# )r>   Nr?   rB   rE   rI   rL   rN   rO   rP   rQ   )r   r   r   )rZ   r[   r\   r]   r^   rc   rd   s   &      r8   test_native_list_arguments*TestSolveBanded.test_native_list_arguments   sT      !1"!'!#a)Q/r:   dt_abdt_bc           	     `   \         P                  ! . .VR 7      p\         P                  ! . VR 7      p\        RW44      pVP                  R8X  g   Q hVP                  \        \         P                  ! ^VR 7      \         P                  ! ^VR 7      4      P                  8X  g   Q h\         P                  ! RVR 7      p\        RW44      pVP                  R8X  g   Q hVP                  \        \         P                  ! ^VR 7      \         P                  ! ^VR 7      4      P                  8X  g   Q hR# )r   Nr   r   )	r/   r   r   shaper   r   eyeonesemptyrZ   r   r   r\   rc   rd   s   &&&   r8   
test_emptyTestSolveBanded.test_empty   s     XXrd%(HHRt$'ww$ww%q 68NOUUUUUHHV4('ww&   ww%q 68NOUUUUUr:    N)__name__
__module____qualname____firstlineno__re   rl   rw   rz   r   r   r   r   pytestmarkparametrizeintfloatr/   r
   complex	complex64r   __static_attributes____classdictcell____classdict__s   @r8   r<   r<   5   s     40404(4(1H1"0 [[WsE2::w&UV[[Vc5"**gr||%TUV V WVr:   r<   c            	         a  ] tR t^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R tR tR tR tR tR tR tR tR tR t]P6                  P9                  R]]]P@                  ]!]PD                  .4      ]P6                  P9                  R]]]P@                  ]!]PD                  .4      R 4       4       t#Rt$V t%R# )TestSolveHBandedc                z    \        . RO. RO. RO.4      p\        . RO4      p\        W4      p\        V. RO4       R# rM   NrM   rM   rS   rS   r>   r>   r>   r   r   r   r   r>   r   r>   rS   rM   r>   rM   rM   r   r   r   rZ   r\   rc   rd   s   &   r8   test_01_upperTestSolveHBanded.test_01_upper   s>     (((* + &'" !!%9:r:   c                    \        . RO. RO. RO.4      p\        RR.RR.RR.RR..4      p\        W4      p\        R R.RR .R R.R R ..4      p\        W44       R# )	rM   rS   r>   r         @Nr   r   r   r   rZ   r\   rc   rd   expecteds   &    r8   test_02_upperTestSolveHBanded.test_02_upper   s     (((* + C::::   " 3****& ' 	"!.r:   c                    \        . RO. RO. RO.4      p\        . RO4      P                  R^4      p\        W4      p\        V\        . RO4      P                  R^4      4       R# )rM   Nr   r   r   r   rH   r   r   rX   r   r   r   s   &   r8   test_03_upperTestSolveHBanded.test_03_upper   s]     (((* + &'//A6" !!U+;%<%D%DR%KLr:   c                ~    \        . RO. RO. RO.4      p\        . RO4      p\        WRR7      p\        V. RO4       R# )	r   TlowerNr   r>   r>   r>   r   rS   rS   rM   rM   r   r   r   r   s   &   r8   test_01_lowerTestSolveHBanded.test_01_lower  s@     (((* + &'"t,!!%9:r:   c                    \        . RO. R	O. R
O.4      p\        RR.R R.RR.RR..4      p\        WRR7      p\        RR.RR.RR.RR..4      p\        W44       R# )r   r>   rS   rM   r   Tr   Nr   r   r   r   r   s   &    r8   test_02_lowerTestSolveHBanded.test_02_lower  s     (((* + C::::   "t,3****& ' 	"!.r:   c                    \        . RO. RO. RO.\        R7      p\        . RO\        R7      p\        W4      p\        V. RO4       R# )rM   r   Nr   r   r   r   r   r   r
   r   r   r   s   &   r8   test_01_float32 TestSolveHBanded.test_01_float321  sC     (((*18: &g6" !!%9:r:   c                    \        . RO. RO. R	O.\        R7      p\        RR.RR.RR.RR..\        R7      p\        W4      p\        R R.RR .R R.R R ..4      p\        W44       R# )
rM   rS   r>   r   r   r   Nr   r   r   r   r   s   &    r8   test_02_float32 TestSolveHBanded.test_02_float32?  s     (((*18: C:::: './ " 3****& ' 	"!.r:   c                z    \        . RO. RO. RO.4      p\        . RO4      p\        W4      p\        V. RO4       R# )rM   Nr   r                r   r   r   )       @            @            @      ?       @      ?)rM   r>   r>   rM   r   r   s   &   r8   test_01_complex TestSolveHBanded.test_01_complexT  s>     (.(* + ./" !!%9:r:   c                    \        . RO. RO. RO.4      p\        RR.R	R
.RR.RR..4      p\        W4      p\        R R.RR .RR.R R ..4      p\        W44       R# )rM   rk   r>   Nr   r   r   r          @      @r               r   y      @       @r   r   r   s   &    r8   test_02_complex TestSolveHBanded.test_02_complexb  s     (.(* + D$<E?D>":   " 3+***& ' 	"!.r:   c                t    \        . RO. RO.4      p\        . RO4      p\        W4      p\        V. RO4       R# )c   Nr   r>   r>   r   r   r   r>   r   r>   rM   r>   rM   r   r   s   &   r8   test_tridiag_01_upper&TestSolveHBanded.test_tridiag_01_upperw  s1     O_56/"" !!_5r:   c                    \        . RO. RO.4      p\        RR.RR.RR..4      p\        W4      p\        RR.RR.RR..4      p\        W44       R# )r   r>   r   rS   rM   Nr   r   r   r   s   &    r8   test_tridiag_02_upper&TestSolveHBanded.test_tridiag_02_upper  st     O#% &C:::   " 3***& ' 	"!.r:   c                    \        . RO. RO.4      p\        . RO4      P                  R^4      p\        W4      p\        V\        . RO4      P                  R^4      4       R# )r   Nr   r   r   rH   r   r   r   s   &   r8   test_tridiag_03_upper&TestSolveHBanded.test_tridiag_03_upper  sP     O_56/"**2q1" !!U?%;%C%CB%JKr:   c                x    \        . RO. RO.4      p\        . RO4      p\        WRR7      p\        V. RO4       R# )r   Tr   Nr   r>   r>   r   r   r   r   r   s   &   r8   test_tridiag_01_lower&TestSolveHBanded.test_tridiag_01_lower  s8     O#% &/""t,!!_5r:   c                    \        . RO. RO.4      p\        RR .R R.RR ..4      p\        WRR7      p\        RR.RR.RR..4      p\        W44       R# )	r   r>   rS   Tr   rM   Nr   r   r   r   s   &    r8   test_tridiag_02_lower&TestSolveHBanded.test_tridiag_02_lower  sv     O#% &C:::   "t,3***& ' 	"!.r:   c                    \        . RO. RO.\        R7      p\        . RO\        R7      p\        W4      p\        V. RO4       R# )r   r   Nr   r   r   r   r   r   s   &   r8   test_tridiag_01_float32(TestSolveHBanded.test_tridiag_01_float32  s5     O_5WE/1" !!_5r:   c                    \        . RO. RO.\        R7      p\        RR.RR.RR..\        R7      p\        W4      p\        RR.RR.RR..4      p\        W44       R# )	r   r>   r   r   rS   rM   Nr   r   r   r   s   &    r8   test_tridiag_02_float32(TestSolveHBanded.test_tridiag_02_float32  sz     O#%,35C:::&-/ " 3***& ' 	"!.r:   c                t    \        . RO. RO.4      p\        . RO4      p\        W4      p\        V. RO4       R# )r   Nr   r   r   r   )r   r   r   )rM   r>   r>   r   r   s   &   r8   test_tridiag_01_complex(TestSolveHBanded.test_tridiag_01_complex  s3     '9:'(" !!_5r:   c                    \        . RO. R	O.4      p\        RR.R
R.RR..4      p\        W4      p\        RR.RR.RR..4      p\        W44       R# )r   rk   r                 @r>   rM   Nr   r  r   r   r   r   r   r   s   &    r8   test_tridiag_02_complex(TestSolveHBanded.test_tridiag_02_complex  sv     '#% &C;G$C=" # " 3+**& ' 	"!.r:   c                x    \        . RO. RO.4      p\        . RO4      p\        WRR7      p\        V. RO4       R# )r   Fr}   Nr   r   r   r   r   r   s   &   r8   r   "TestSolveHBanded.test_check_finite  s3     O_56/""e4!!_5r:   c                    \        . RO. RO.4      p\        RR.RR..4      p\        \        \        W4       \        \        \        VRR.4       \        \        \        VR.4       R# )r   r>   r   rS   Nr   r   )r   r   r   r   )rZ   r\   rc   s   &  r8   test_bad_shapes TestSolveHBanded.test_bad_shapes  s`    O#% &C::  j-7j-c3Z@j-cU;r:   c                    \        ^... RO.4      p\        V. RO.4       \        VP                  \        P                  ! R4      4       R# )rG   r   NrG   rF      r   )r   r   r   r   r/   )rZ   rd   s   & r8   r   TestSolveHBanded.test_1x1  s7    A3%)-1/0QWWbhhtn-r:   c                V    . RO. RO. RO.p. ROp\        W4      p\        V. RO4       R# r   )r   r   r   s   &   r8   r   +TestSolveHBanded.test_native_list_arguments  s.    """$ !" !!%9:r:   r   r   c           	     \   \         P                  ! . .VR 7      p\         P                  ! . VR 7      p\        W44      pVP                  R8X  g   Q hVP                  \        \         P                  ! ^VR 7      \         P                  ! ^VR 7      4      P                  8X  g   Q h\         P                  ! RVR 7      p\        W44      pVP                  R8X  g   Q hVP                  \        \         P                  ! ^VR 7      \         P                  ! ^VR 7      4      P                  8X  g   Q hR# r   Nr   r   )	r/   r   r   r   r   r   r   r   r   r   s   &&&   r8   r   TestSolveHBanded.test_empty  s     XXrd%(HHRt$" ww$ww%q 68NOUUUUUHHV4(" ww&   ww%q 68NOUUUUUr:   r   N)&r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r  r   r   r   r   r   r   r   r/   r
   r   r   r   r   r   r   s   @r8   r   r      s     ;/*M;/*;/*;/*	6/"	L
6/"	6/"	6/"	6<.
; [[WsE2::w&UV[[Vc5"**gr||%TUV V WVr:   r   c                     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R tR tR tR tR tR tR t]P0                  P3                  RRR.4      R 4       tR tR t]P0                  P3                  RRN4      R 4       t]P0                  P3                  RRO4      R 4       t]P0                  P3                  R^ ^^ ^..4      R  4       tR! t R" t!]P0                  PE                  R#R$7      R% 4       t#R& t$R' t%R( t&]P0                  P3                  R)^
^d.4      ]P0                  P3                  R. RPO4      ]P0                  P3                  R*]'PP                  ]'PR                  ]'PT                  ]'PV                  .4      R+ 4       4       4       t,]P0                  P3                  R,]-].]'PP                  ]/]'PT                  .4      ]P0                  P3                  R-]-].]'PP                  ]/]'PT                  .4      R. 4       4       t0R/ t1]P0                  P3                  R*]'PR                  ]'PV                  .4      ]P0                  P3                  R. RQO4      ]P0                  P3                  R0RMRR.4      ]P0                  P3                  R1R2R3.4      ]P0                  P3                  R4R2R3.4      ]P0                  P3                  R5R2R3.4      R6 4       4       4       4       4       4       t2]P0                  Pg                  ]'Ph                  R78  R8R$7      ]P0                  P3                  R. RSO4      R9 4       4       t5R: t6R; t7R< t8]9R= 4       t:]9R> 4       t;]9R? 4       t<]9R@ 4       t=]9RA 4       t>]9]?]P0                  P3                  RB]-]..4      ]P0                  P3                  RCRDRE.4      ]P0                  P3                  RF]-]..4      ]P0                  P3                  RGRDRE.4      ]P0                  P3                  RH^^.4      ]P0                  P3                  R1R2R3.4      RI 4       4       4       4       4       4       4       4       t@RJ tARK tBRL tCRMtDV tER# )T	TestSolvei'  c                    ^^.R^ ..p\        V^R.4      p\        \        W4      ^^ .4       ^^.R^ ..p^R.p\        W4      p\        \        W4      ^^ .4       R# )rG   r>                   333333?Nr   r   r   )rZ   r[   x0rc   s   &   r8   test_20Feb04_bugTestSolve.test_20Feb04_bug(  sn    Vc1X1q"g!#a*q!f5 Vc1XG1[!#a*q!f5r:   c                    ^^.R^..p^^ .^ ^..^^ .^^.R^..3 F#  p\        W4      p\        \        W4      V4       K%  	  R# )rG   NrA   r!  rZ   r[   rc   rd   s   &   r8   test_simpleTestSolve.test_simple3  s`    WsAhq6Aq6"a&q6C8$A aA%c!i3r:   c                    \        ^^.R^..R4      pR^ .RR.^ ^..^R.\        ^^ .R4      3 F#  p\        W4      p\        \        W4      V4       K%  	  R# )   rh   Drk   r  N)r   r   r   r   r&  s   &   r8   test_simple_complexTestSolve.test_simple_complex<  sl    Aq6B7#S)q'8aV$b'A$A
 aA%c!i3r:   c           	         ^^.^^..pR F9  p^^ .^ ^..^^ .3 F&  p\        WRVR7      p\        \        W4      V4       K(  	  K;  	  R# )rF   posassume_ar   Nr   rG   r!  rZ   r[   r   rc   rd   s   &    r8   test_simple_posTestSolve.test_simple_posF  s_    VaVE1v1v&!f !e<)#a)Q7	 r:   c                    ^^.^^..pR^ .RR.^ ^..3 F%  p\        WRR7      p\        \        W4      V4       K'  	  R# )r*  rk   r/  r1  Nr!  r&  s   &   r8   test_simple_pos_complexb"TestSolve.test_simple_pos_complexbO  sS    VaVq'8aV$A aU+A%c!i3	r:   c           	         ^^.^R..pR F9  p^^ .^ ^..^^ .3 F&  p\        WRVR7      p\        \        W4      V4       K(  	  K;  	  R# )rF   symr0  Nr2  r!  r3  s   &    r8   test_simple_symTestSolve.test_simple_symW  s_    VaWE1v1v&!f !e<)#a)Q7	 r:   c                    ^^.^R..pR^ .RR.^ ^..3 F%  p\        WRR7      p\        \        W4      V4       K'  	  R# )r*  rk   r;  r7  Nr!  r&  s   &   r8   test_simple_sym_complexb"TestSolve.test_simple_sym_complexb`  sS    VaWq'8aV$A aU+A%c!i3	r:   c                    ^R.RR..pR^ .^^ .RR.^ ^..3 F%  p\        WRR7      p\        \        W4      V4       K'  	  R# )r*  rk   r;  r7  Nr   r@  r!  r&  s   &   r8   test_simple_sym_complex!TestSolve.test_simple_sym_complexh  Z    Yr
#q'a&8aV$A aU+A%c!i3r:   c           	         ^^.^R..pR F<  p^^ .^ ^..^^ .R^ .3 F&  p\        WRVR7      p\        \        W4      V4       K(  	  K>  	  R# )rF   rk   herr0  Nr<  r2  r!  r3  s   &    r8   test_simple_her_actuallysym%TestSolve.test_simple_her_actuallysymq  sf    VaWE1v1v&!f1g !e<)#a)Q7 r:   c                    ^R.RR..pR^ .^^ .RR.^ ^..3 F%  p\        WRR7      p\        \        W4      V4       K'  	  R# )r*  rk   rH  r7  Nr   r   r@  r!  r&  s   &   r8   test_simple_herTestSolve.test_simple_her{  rF  r:   c                   \         P                  P                  R 4      p^pVP                  W".4      VP                  W".4      R,          ,           p\        W"3R4      p\	        V4      p\        V4      \        V4      R,          ,           p\        ^ V4       F  pVRV3,          p\        W84      VRV3&   K   	  \        WE4       R# )  rk   r+  r  rr   N)	r/   randomdefault_rngr   r   r   r   r   r   )	rZ   rngnAXAinvRirs	   &        r8   test_nils_20Feb04TestSolve.test_nils_20Feb04  s    ii##D)JJvszz1&1"441&#1vQKB&1A!Q$AAkAadG  	"!*r:   c                R   \         P                  P                  R 4      p^pVP                  W".4      p\        V4       F  p^RW4V3,          ,           ,          W4V3&   K!  	  \        ^4       F6  pVP                  V^.4      p\	        W54      p\        \        W64      V4       K8  	  R# rO  皙?Nr/   rP  rQ  ranger   r   r   rZ   rR  rS  r[   rX  rc   rd   s   &      r8   test_randomTestSolve.test_random  s    ii##D)JJvqA"Q!tW*oAdG qA

Aq6"AaA%c!i3 r:   c                   \         P                  P                  R 4      p^pVP                  W".4      RVP                  W".4      ,          ,           p\        V4       F  p^RW4V3,          ,           ,          W4V3&   K!  	  \        ^4       F6  pVP                  V^.4      p\	        W54      p\        \        W64      V4       K8  	  R# )rO  rk   r^  Nr_  ra  s   &      r8   test_random_complexTestSolve.test_random_complex  s    ii##D)JJvcjj!&8!88qA"Q!tW*oAdG qA

Aq6"AaA%c!i3 r:   c                   \         P                  P                  R 4      p^pVP                  W".4      p\        V4       FH  p\	        ^RW4V3,          ,           ,          4      W4V3&   \        V4       F  pW5V3,          W4V3&   K  	  KJ  	  \        ^4       F7  pVP                  V.4      p\        W6RR7      p\        \        W74      V4       K9  	  R# )rO  r^  r/  r7  N)r/   rP  rQ  r`  absr   r   r   rZ   rR  rS  r[   rX  jrc   rd   s   &       r8   test_random_symTestSolve.test_random_sym  s    ii##D)JJvqA"ba4j/*AdG1XqD'Q$   qA

A3AaU+A%c!i3 r:   c                4   \         P                  P                  R 4      p^pVP                  W".4      pVRVP                  W".4      ,          ,           p\        V4       FQ  p\	        ^RW4V3,          ,           ,          4      W4V3&   \        V4       F  p\        W5V3,          4      W4V3&   K  	  KS  	  VP                  V.4      RVP                  V.4      ,          ,           p\        ^4       F%  p\        W6RR7      p\        \        W74      V4       K'  	  R# )rO  rk   r^  rh   r/  r7  N)	r/   rP  rQ  r`  rh  r   r   r   r   ri  s   &       r8   test_random_sym_complex!TestSolve.test_random_sym_complex  s    ii##D)JJv3::qf%%%qA"ba4j/*AdG1X#AdG,Q$   JJsOBszz1#..qAaU+A%c!i3 r:   c                    ^^.R^..p^^ .^ ^..^^ .^^.R^..3 F%  p\        WRR7      p\        \        W4      V4       K'  	  R# )rG   Fr}   NrA   r!  r&  s   &   r8   r   TestSolve.test_check_finite  s`    WsAhq6Aq6"QFq6C8$&Aa/A%c!i3&r:   c                    ^p. ROp\        W4      p\        VP                  4       V4       \        VP                  R8H  R4       R# )rG   z'Scalar_a_1D_b test returned wrong shapeNr  r  )r   r   ravelr   r   r&  s   &   r8   test_scalar_a_and_1D_b TestSolve.test_scalar_a_and_1D_b  s8    !K!!'')Q/4!JKr:   c                   \         P                  ! . RO. RO. R	O. R
O.4      p\         P                  ! RR.RR.RR.RR..4      p\        W4      p\        V\         P                  ! . RO. RO.4      P                  4       R# )?g
ףp=
#@gQx2@g     @g      l@gp=
ף?N)rx  g
ףp=
@gffffff @g{Gz)g     h@g     prg     Wg     w)gHzG?gQg333333gp=
ף)g(\gQgzGg?g(\*gzGgףp=
)r>   rH   r  r<  )r  rF   rC   rG   )r/   r   r   r   Tr&  s   &   r8   test_simple2TestSolve.test_simple2  s    HH/8113 4
 HHtUm'Vnen& '
 !K!!RXX/;/= &>>?a	Ar:   c           
         \         P                  ! . RO. RO. RO. RO.4      p\         P                  ! RR.R	R
.RR.RR..4      p\        W4      p\        V\         P                  ! RR.RR.RR.RR..4      4       R# )gq=
ףp?y              @N)yq=
ףpffffff@yQ?\(\	@y(\y
ףp=
?q=
ףp)y333333333333,y̌@@      y      *@y)@+@)yRQ
Qy(\Gz@yQyQ??)yHzG@(\?yQ῅Q?y(\Gzy\(\q=
ףp?y(\B:@p=
I@yRQ?@y33333P@33333Uy33333c@ffffff,y      (\O9@y333333q=
ף0>@y(\?(\@y{Gz333333@      ?      ?y             y       @      y      @      ?y            y            @)r/   r   r   r   r&  s   &   r8   test_simple_complex2TestSolve.test_simple_complex2  s    HHHMIIK L
 HH|[1#]3#\2!;/1 2
 !K!!RYY16170@14e0> &? 	@r:   r1  rH  r;  c                   \         P                  ! . RO. RO. R	O. R
O.4      p\         P                  ! RR.RR.RR.RR..4      pVR8X  d   VP                  MVP                  4       P                  pW$,           p\         P                  ! V4      V\         P
                  ! ^4      \         P
                  ! ^4      3&   \        WSRR7      p\        W#VR7      p\        Wv4       \        WCVRR7      p\        Wv4       R# )gq=
ףp?r;  generalr7  Tr0  N)gq=
ףpy)\(?)\(y{GzzGyHzG@      )r   gQyq=
ףpQ?yGz@zG?)r   r   g=
ףp!yHzG?)r   r   r   g(\yףp=
@\(\$yGz<@RCy)\(#
ףp=
@y
ףp=8 yp=
ף0yQ@zGQy)\(@Q@yRA(\2@)r/   r   ry  conjru   r   r   r   )rZ   r1  r[   rc   a2a3r   rd   s   &&      r8   test_symmetric_hermitian"TestSolve.test_symmetric_hermitian  s     HHB9/&( ) HH{L1"L1#[1!=13 4
 %QSS1668::V)+299Q<1%&BI.!*!!) "($7!!)r:   c                   \         P                  ! ^^
4      P                  ^^4      p\        \         P                  ! V4      ^	,          \         P
                  ! ^4      RR7      p\        V. RO4       \        \         P                  ! V4      ^	,          \         P
                  ! ^4      RR7      p\        V. RO4       R# )rG   r/  r7  r;  N)      "@rx  r>   r/   r   rX   r   trilr   r   rZ   rT  rd   s   &  r8   test_pos_and_symTestSolve.test_pos_and_sym  sw    IIa$$Q*"''!*Q,
U;!!]3"''!*Q,
U;!!]3r:   c                    \         P                  ! . RO. RO. RO. RO. RO. RO. RO. RO. RO.	4      p\         P                  ! ^	4      R,          p\        \        \
        W4       R# )rG   N)	rG   r   r   r   r   r   rG   r   rG   )	rG   rG   rG   r   r   r   rG   r   rG   )	r   rG   rG   r   r   r   rG   r   rG   )	rG   r   rG   rG   rG   rG   r   r   r   )	rG   rG   rG   rG   rG   rG   rG   rG   rG   )rr   N)r/   r   r   r   r   r   rZ   r[   rc   s   &  r8   test_singularityTestSolve.test_singularity  sP    HH1111111113 4 IIaL!k5!/r:   	structureNc                h   \         P                  P                  R 4      p^
p\         P                  ! ^ ^2V4      p\         P                  ! V4      pVP                  VR7      pRp\
        P                  ! \        VR7      ;_uu_ 4        \        WVVR7       RRR4       R#   + '       g   i     R# ; i)l   Ej] sizez2(Ill-conditioned matrix|An ill-conditioned matrix)matchr7  N)	r/   rP  rQ  logspaceru   r   warnsr"   r   )rZ   r  rR  rS  drT  rc   messages   &&      r8   test_ill_condition_warning$TestSolve.test_ill_condition_warning  s{    
 ii##L1KK2q!GGAJJJAJF\\-w77!+ 8777s   B  B1	c           
     v   ^
p\         P                  ! W"34      p\         P                  ! V4      p\        P                  ! \
        RR7      ;_uu_ 4        \         P                  ! RR7      ;_uu_ 4        \        W4VR7       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)
   singularr  ignore)allr7  N)r/   r   r   r   r   r   errstater   )rZ   r  rS  rT  rc   s   &&   r8   test_exactly_singular_gh22263'TestSolve.test_exactly_singular_gh22263)  sl    
 HHaVGGAJmmKz::BKKH<U<U!+ =V::<U<U:::s$    B'4B	B'B$B''B8	rc   c                   \         P                  ! \        4      ;_uu_ 4        \        P                  ! R4      p\        W!4       RRR4       \         P                  ! \        4      ;_uu_ 4        \        ^ V4       RRR4       \         P                  ! \        4      ;_uu_ 4        \        ^ ..V4       RRR4       R#   + '       g   i     L; i  + '       g   i     L^; i  + '       g   i     R# ; i)rG   Nrs   )r   r   r   r/   r   r   )rZ   rc   r[   s   && r8   test_singular_scalarTestSolve.test_singular_scalar4  s    
 ]];'' A!K ( ]];''!QK ( ]];''A3%O (' (' (' (''s#   "B?/C&C%?C	C"	%C6	c                    \         P                  ! ^4      p\         P                  P                  R4      pVP                  R4      p\	        W4      p\        WC4       R# )rF   rO  N)rF      )r/   r   rP  rQ  r   r   )rZ   r[   rR  rc   rd   s   &    r8   test_multiple_rhsTestSolve.test_multiple_rhsC  sB    FF1Iii##D)JJw!K!!'r:   c                   \         P                  ! ^	4      P                  ^^4      ^,           p\        \         P                  ! V4      ^	,          \         P
                  ! ^4      RR7      p\        V. RO4       \        \         P                  ! V4      ^	,          \         P
                  ! ^4      RR7      p\        V. RO4       R# )	   T
transposedFN)r   g?rG   )r  gg333333r  r  s   &  r8   test_transposed_keyword!TestSolve.test_transposed_keywordJ  sy    IIaL  A&*"''!*Q,
t<!!]3"''!*Q,
u=!!_5r:   z*1. why? 2. deprecate the kwarg altogether?reasonc                    \         P                  ! ^4      P                  \        4      p\	        \
        4      ;_uu_ 4        \        WRR7       RRR4       R#   + '       g   i     R# ; i)r  Tr  N)r/   r   astyper   r   NotImplementedErrorr   rZ   r[   s   & r8   test_transposed_notimplemented(TestSolve.test_transposed_notimplementedQ  s?    FF1IW%.//!4( 0///s   AA*	c                6    \        \        \        ^^.^4       R# rG   Nr   r   r   rZ   s   &r8   test_nonsquare_aTestSolve.test_nonsquare_aW  s    j%!Q3r:   c                &   \        \        \        P                  ! ^4      \        P                  ! ^4      4      \        P                  ! ^4      4       \        \        \        \        P                  ! ^4      \        P                  ! ^4      4       R# )r  N)r   r   r/   r   r   r   r   r  s   &r8   test_size_mismatch_with_1D_b&TestSolve.test_size_mismatch_with_1D_bZ  sI    !%q	2771:">
Kj%BGGAJ?r:   c                6    \        \        \        ^^RR7       R# )rG   zxcvr7  Nr  r  s   &r8   test_assume_a_keywordTestSolve.test_assume_a_keyword^  s    j%A?r:   r  r   c                X   \         P                  P                  R 4      pV\         P                  \         P                  39   pVP                  W34      P                  V4      pVP                  V4      P                  V4      pV'       d0   VRVP                  W34      ,          P                  V4      ,          pVR8X  d   WfP                  ,           pEMVR8X  d"   WfP                  P                  4       ,           pMVR8X  dE   VP                  P                  4       V,          R\         P                  ! V4      ,          ,           pMVR8X  d   \         P                  ! \         P                  ! V4      4      \         P                  ! \         P                  ! V^4      ^4      ,           \         P                  ! \         P                  ! VR4      R4      ,           pV\         P                  \         P                  39   d   RMRpVR9   d/   V\         P                  \         P                  39   d
   V^
,          p\        WgVR	7      p	\        Wi,          WxV,          W,          R
7       VR8X  d<   V'       g2   \        WgVRR7      p	\        Wi,          WxV,          W,          R
7       R# R# R# )rO  rk   r;  rH  r/  r^  tridiagonal-q=gư>r7  atolr   T)r1  r  NrH   )genr;  rH  )r/   rP  rQ  r   r3   standard_normalr  ry  r  r   ru   r1   r
   r   r   )
rZ   r  r   r1  rR  
is_complexr[   rc   tolrd   s
   &&&&      r8   'test_all_type_size_routine_combinations1TestSolve.test_all_type_size_routine_combinationsa  s    ii##D)r||R]];;
-44U;%,,U3"S(($66>>uEEAuCCACCHHJA
QRVVD\!11A&$A*+B,-A
 R]] ;;e,, R\\22r	!*qTz
CuZaX$?AAE1:CJG &0r:   dt_ar   c                   \         P                  ! RVR7      p\         P                  ! ^ VR7      p\        W44      pVP                  ^ 8X  g   Q h\        \         P                  ! ^VR7      \         P
                  ! ^VR7      4      P                  pVP                  V8X  g   Q hVP                  \         P                  P                  W44      P                  8X  g   Q h\         P
                  ! RVR7      p\         P
                  ! RVR7      p\        W44      pVP                  R8X  g   Q hVP                  V8X  g   Q hR# )r   r   Nr   r  r   rF   rF   rF   rC   )r  r   rF   rC   )	r/   r   r   r  r   r   r   r   linalgrZ   r  r   r[   rc   rd   dt_nonemptys   &&&    r8   r   TestSolve.test_empty  s     HHV4(HHQd#!Kvv{{BFF1D12771D3IJPPww+%%%ww"))//!/55555GGL-GGF$'!Kww,&&&ww+%%%r:   c                    \         P                  ! ^4      p. . .p\        W4      p\        VP                  ^ 8H  R4       \        VP
                  R8H  R4       R# rF   zReturned array is not emptyz#Returned empty array shape is wrongN)rF   r   )r/   r   r   r   r  r   r&  s   &   r8   test_empty_rhsTestSolve.test_empty_rhs  sH    FF1IH!K!:;6!#HIr:   nrhsr  TF	overwritefortranc           
        \         P                  P                  R 4      pVR8X  g   ^M^pVP                  V3V,           R7      p	VP                  W3R7      p
\         P                  ! V\         P                  4      '       dH   WP                  V3V,           R7      R,          ,           p	WP                  W3R7      R,          ,           p
VR8X  d-   \         P
                  ! \         P
                  ! V
4      4      p
EMoVR8X  d   \         P                  ! V
4      p
EMPVR8X  d   \         P                  ! V
4      p
EM1VR8X  d   \         P
                  ! \         P
                  ! V
4      4      \         P
                  ! \         P
                  ! V
R4      R4      ,           \         P
                  ! \         P
                  ! V
^4      ^4      ,           p
MVR8X  d.   \         P                  ! \         P                  ! V
^4      R4      p
MiVR9   d   WP                  ,           p
MOVR9   d"   WP                  4       P                  ,           p
M'VR9   d!   WP                  P                  4       ,          p
V'       d   \         P                  ! V
4      p
V
P                  RR	7      pV	P                  4       p\         P                  ! V\         P                  4      '       dH   V'       d@   R
p\        P                  ! \        VR7      ;_uu_ 4        \        WWUVR7       RRR4       R# \        WWUWBR7      p\         P                   P                  V'       d   VP                  MTV4      p\#        W4       VR8w  d   \#        \        WVR7      VRR7       V'       g   \%        W4       \%        W4       R# R#   + '       g   i     R# ; i)l   q~u bandedr  rk   diagonallower triangularupper triangularr  rT  orderz#scipy.linalg.solve can currently...r  )r*   r-   r  N)r*   r-   r  r1  r  r   r  rH   >   r;  	symmetric>   rH  	hermitian>   r/  positive definite)r/   rP  rQ  
issubdtypecomplexfloatingru   r  triury  r  asfortranarraycopyr   r   r  r   r  r   r   )rZ   r   r1  r  r  r  r  rR  rS  rc   rT  A_copyb_copyr  resr   s   &&&&&&&         r8   test_structure_detection"TestSolve.test_structure_detection  s    ii##O4)ArJJQD4KJ(JJQFJ#== 2 233JJQD4KJ0255AJJQFJ+b00Az!
#A++
A++
A&$772771b>2./772771a=!,-A !1r*A--CCA--FFHJJA55CCHHJA!!!$Ac"== 2 233
;G2'BBa	!+- C Ai)> iioo*fhh&&I! xf<c
 ## ) CB s   N--N>	2z(solve chokes on b.ndim == 1 in numpy < 2c                Z   \         P                  ! ^4      p\         P                  ! ^^4      P                  R4      V,          p\         P                  ! ^4      p\        \        W4VR7      \         P                  P                  W44      4       \         P                  ! R4      p\        \        W4VR7      \         P                  P                  W44      4       \         P                  ! R4      ^^.,          p\        \        W4VR7      \         P                  P                  W44      4       R# )rF   r7  N)rC   r  rF   rG   rG   rF   rG   rF   rF   )r/   r   r   rX   r   r   r   r  )rZ   r1  er[   rc   s   &&   r8   test_vs_np_solveTestSolve.test_vs_np_solve  s     FF1IIIa#++O<q@GGAJaX6		8MNGGFOaX6		8MNGGFOq!f$aX6		8MNr:   c                `   \         P                  P                  ^ 4      pVP                  R	R7      p\         P                  ! \         P
                  ! V\         P                  ! VP                  4      4      4      pVP                  R
R7      p\        W#RRR7      pW"P                  ,           \         P                  ! \         P                  ! V4      4      ,
          p\         P                  P                  WS4      p\        WFRR7       \        VP                  VRRR7      p\        WFRR7       R# )r   r  r/  Tr0  r   r  FNrC   rC   rC   rF   )r/   rP  rQ  normalr  matmulr  ry  r   ru   r  r   )rZ   rR  r[   rc   outaa	result_nps   &      r8   test_pos_lowerTestSolve.test_pos_lower  s     ii##A&JJFJ#GGBIIa./JJFJ#A55Wrwwrwwqz**IIOOB*	U3 ACCU%8U3r:   c                   \         P                  ! RR.RR	..4      p\         P                  ! ^4      p\        W4      p\	        W1,          \         P                  ! ^4      RR7       \        WRR7      p\	        WCRR7       \        WRR7      p\         P
                  ! W5RR7      '       d   Q h\        VRR7      p\	        WVRR7       R# )
	I<<f@+=r  r;  r7  r/  N	I<<f@B)sVxP''f('&@''f@('&)r/   asarrayr   r   r   allcloser   )rZ   r[   rc   ainvainv_sym	ainv_cholainv_invs   &      r8   test_pos_fails_sym_complex$TestSolve.test_pos_fails_sym_complex  s     JJ35NP26NPR SFF1IQ{"&&)%8.U3
 !/	;;tU;;;; q5)	%8r:   c                    \         P                  ! ^4      pRVP                  n        \         P                  ! ^4      p\        W4      p\        W2RR7       R# r  Fr
  r  N)r/   r   flags	writeabler   r   r   r&  s   &   r8   test_readonlyTestSolve.test_readonly*  s;    FF1I!GGAJ!K5)r:   c                B   \         P                  ! ^4      P                  ^^^^4      pVRRRR1RR3,          p\         P                  ! ^4      p\	        W#3/ VB pVP
                  VP
                  RR 8X  g   Q h\        W$R,          ,          V,
          ^ RR7       \         P                  ! R4      RRRR13,          p\	        W#3/ VB pVP
                  VP
                  RR VP
                  R,          3,           8X  g   Q h\        W$,          V,
          ^ RR7       R# r  rr   Nr
  r  rH   .Nr  r/   r   rX   r   r   r   r   rZ   r)   r[   rc   rd   s   &&   r8   test_batch_negative_stride$TestSolve.test_batch_negative_stride1  s    IIcN""1aA.a2q!mGGAJ!','ww!''#2,&&&iL(1,ae< GGFOAttG$!','ww!''#2,!''"+7777	151r:   c                B   \         P                  ! ^4      P                  ^^^^4      pVRRRRR1R3,          p\         P                  ! ^4      p\	        W#3/ VB pVP
                  VP
                  RR 8X  g   Q h\        W$R,          ,          V,
          ^ RR7       \         P                  ! R4      RRR1R3,          p\	        W#3/ VB pVP
                  VP
                  RR VP
                  R,          3,           8X  g   Q h\        W$,          V,
          ^ RR7       R# r  r  r   s   &&   r8   test_core_negative_stride#TestSolve.test_core_negative_stride@  s    IIcN""1aA.aDbD!mGGAJ!','ww!''#2,&&&iL(1,ae< GGFODbD!G$!','ww!''#2,!''"+7777	151r:   c                   \         P                  ! ^04      P                  ^^^^4      pVR,          p\         P                  ! ^4      p\	        W#3/ VB pVP
                  VP
                  RR 8X  g   Q h\        W$R,          ,          V,
          ^ RR7       \         P                  ! ^4      R,          p\	        W#3/ VB pVP
                  VP
                  RR 8X  g   Q h\        W$R,          ,          V,
          ^ RR7       R# )r  NNrF   Nr
  r  .r'  rH   r  r  r   s   &&   r8   test_core_non_contiguous"TestSolve.test_core_non_contiguousP  s    IIe$$Q1a0hKGGAJ!','ww!''#2,&&&iL(1,ae< GGAJsO!','ww!''#2,&&&iL(1,ae<r:   c                *   \         P                  ! ^04      P                  ^^^^4      pVR,          p\         P                  ! ^4      p\	        W#3/ VB pVP
                  VP
                  RR 8X  g   Q h\        W$R,          ,          V,
          ^ RR7       \         P                  ! R4      R,          p\	        W#3/ VB pVP
                  VP
                  RR VP
                  R,          3,           8X  g   Q h\        W$,          V,
          ^ RR7       R# )	r  Nr
  r  rr   r'  .rH   r  rF   rD   )rr   r'  r  r   s   &&   r8   test_batch_non_contiguous#TestSolve.test_batch_non_contiguous_  s    IIe$$Q1a0kNGGAJ!','ww!''#2,&&&iL(1,ae< GGFOF#!','ww!''#2,!''"+7777	151r:   c                J   \         P                  ! ^04      P                  ^^^^^4      pVP                  ^^^^ ^4      p\         P                  ! ^4      p\        W#3/ VB pVP                  VP                  RR 8X  g   Q h\        W$R,          ,          V,
          ^ RR7       R# )r  Nr
  r  rH   r  )r/   r   rX   r	   r   r   r   r   r   s   &&   r8   test_batch_weird_strides"TestSolve.test_batch_weird_stridesn  s    IIe$$Q1a3KK1aA&GGAJ!','ww!''#2,&&&iL(1,ae<r:   a_dtypea_orderCFb_dtypeb_orderb_ndimc	                2   ^p	\         P                  ! ^V	^,          ^,           4      P                  W4      \         P                  ! V	4      ,           p
V
P	                  W4R7      p
\         P                  ! V	4      pV^8  d@   \         P
                  ! \        V4       Uu. uF  qV,          NK  	  up4      P                  pVP	                  WVR7      pV
P                  4       pVP                  4       p\        W3/ VBVBRV/B pV'       d   VP                  MTp\        VV,          VRR7       VP                  RR4      pT;'       d/    V
P                  \        8g  ;'       d    V
P                  R,          pVP                  RR4      pT;'       d/    VP                  \        8g  ;'       d    VP                  R,          p\         P                  ! W4      V8X  g   Q hW8H  P!                  4       V8w  g   Q hW8H  P!                  4       V8w  g   Q hR	# u upi )
r  r  r  r
  r  r*   FF_CONTIGUOUSr-   N)r/   r   rX   r   r  stackr`  ry  r  r   r   getr   r   r  shares_memoryr  )rZ   r)   r,   r3  r4  r7  r8  r9  r  rS  r[   rc   rj  a_refb_refrd   a_or_aTr*   	a_inplacer-   	b_inplaces   &&&&&&&&&            r8   test_overwrite_argsTestSolve.test_overwrite_argsx  s    IIaA"**10266!9<HHWH,IIaLA:uV}5}!A##}5688AHHWH, !P,P.PZP'%''U!U7 #&&}e<PPQWW^PP9P	$((>PPQWW^PP9P	%222
!Y...
!Y...+ 6s   Hc                   \         P                  ! ^	4      P                  ^^4      pWP                  ,           \         P                  ! ^4      ,           p\         P
                  ! ^4      p\        W#4      p\        W$,          VRR7       \        \        4      ;_uu_ 4        \        W#RR7       RRR4       R#   + '       g   i     R# ; i)r  r
  r  r/  r7  N)
r/   r   rX   ry  r   r   r   r   r   r   )rZ   r[   rT  rc   r"  s   &    r8   test_posdef_not_posdef TestSolve.test_posdef_not_posdef  s    IIaL  A&GbffQiGGAJ 1[. ;''!' ('''s    B88C		c           	     r   \         P                  ! \         P                  ! \         P                  ! R4      4      \         P                  ! \         P
                  ! ^^4      4      .4      p\         P                  ! ^4      p\        W4      p\        VR,          ^\         P
                  ! ^^4      ,          RR7       \         P                  ! R^ .^ ^..4      p\         P                  ! ^4      p\        P                  ! \        4      ;_uu_ 4        \        WRR7       RRR4       \         P                  ! ^ ^ .^ ^..4      p\         P                  ! ^4      p\        P                  ! \        4      ;_uu_ 4        \        WRR7       RRR4       R#   + '       g   i     L|; i  + '       g   i     R# ; i)	r  r
  r  ꌠ9Y>)Fr  r7  Nr  r  rG   .)r/   r<  r  r   ru   r   r   r   r  r   r  r"   r   r   r&  s   &   r8   test_diagonalTestSolve.test_diagonal  s   HHbggbggfo.		!Q0HIJGGAJ!K 	&	1ryyA#6UC JJq	Aq6*+GGAJ\\-((!, ) JJAA'(GGAJ]];''!, (' )( (''s   F:F%F"	%F6	c                   ^pR\         P                  ! \         P                  ! V4      4      ,          \         P                  ! \         P                  ! ^4      ^4      ,           \         P                  ! \         P                  ! ^4      R4      ,           p\         P                  ! \         P                  ! \         P                  ! W34      4      V.4      p\         P                  ! ^4      p\        W#4      p\        VR	,          \         P                  ! . R
O4      RR7       RVR&   \        P                  ! \        4      ;_uu_ 4        \        W#RR7       RRR4       ^ ;VR&   VR&   \        P                  ! \        4      ;_uu_ 4        \        W#RR7       RRR4       R#   + '       g   i     LT; i  + '       g   i     R# ; i)rC   r   r  @xDr  r7  NrH   rL  )             rS  rR  )rG   r   r   )rG   r   rG   )r/   ru   r   r<  r  r   r   r  r   r  r"   r   r   )rZ   rS  r[   rc   rd   s   &    r8   test_tridiagonalTestSolve.test_tridiagonal  s   rwwrwwqz""RWWRWWQZ%;;bggbggajRT>UUHHbggbggqfo.23GGAJ!K 	&	2::.B#C%P '
\\-((!/ ) #$#'
QwZ]];''!/ (' )(
 (''s   F"
F5"F2	5G	r   )
r  r  r  r  r  r  r  r  r  N)	r  r  r  r  r  r  r  r  N)r  r;  r/  rH  r  )r  r  r  r  r  r/  r  r  r  r  r  r;  rH  r  )r*  )Nr  r  r  r  r/  )Fr   r   r   r   r#  r'  r,  r4  r8  r=  rA  rD  rI  rL  rZ  rb  re  rk  rn  r   ru  rz  r~  r   r   r   r  r  r  r  r  r  r  r  skipr  r  r  r  r/   r
   r1   r   r3   r  r   r   r   r   r  r  skipif__version__r  r  r  r  parametrize_overwrite_argr!  r$  r)  r.  r1  parametrize_overwrite_b_argrD  rG  rM  rT  r   r   r   s   @r8   r  r  '  s    	6448484484
+	4	4444LA@" [[Z%8* 9*.40 [[[NO,	O, [[[DE,	E, [[S1a!Q.1 2(6 [[IJ) K)
4@@ [[Vb#Y/[[Z)TU[["**bjj",,F"H V 0
"HH [[Vc5"**gr||%TU[[Vc5"**gr||%TU& V V& J [[Wrzz2==&AB[[Z *J K
 [[Vb$Z0[[\D%=9[[[4-8[[Yu6<$ 7 9 : 1K C<$| [[
%O   [[	
OO4"90* 2 2 2 2 = = 2 2 = =  [[Ye5[[Yc
3[[Ye5[[Yc
3[[X1v.[[\D%=9/ : / 4 6 4 6 ! /B(-(0 0r:   r  c            	         a  ] tR tRt o R tR tR t]P                  P                  R]
]]P                  ]]P                  .4      ]P                  P                  R]
]]P                  ]]P                  .4      R 4       4       tR tR	tV tR
# )TestSolveTriangulari  c                @   \        ^^ .^^..4      p^^.p\        WRR7      p\        V^^ .4       \        VP                  VRR7      p\        VRR.4       \        WR^R7      p\        VRR.4       \	        ^4      p\        WR^R7      p\        VRR.^ R..4       R# )	*
solve_triangular on a simple 2x2 matrix.
Tr   Fr   r   transr>   N      )r   r   r   ry  r   rZ   rT  rc   sols   &   r8   r'  TestSolveTriangular.test_simple  s     Aq6Aq6"#Fq40!#1v. qssAU3!#Bx0 q4q9!#Bx0QKq4q9!#S	As8'<=r:   c                p   \        R^ .R^..4      p\        ^4      p\        WR^R7      p\        VRR	.^ R..4       \        P
                  ! RR
.4      p\        WR^ R7      p\        V^^ .RR..4       \        WR^R7      p\        V^R.^ R..4       \        WR^R7      p\        VRR.^ R..4       \        VP                  VR^ R7      p\        V^R.^ R..4       \        VP                  VR^R7      p\        V^^ .RR..4       \        VP                  VR^R7      p\        VR^ .RR..4       R# )z1
solve_triangular on a simple 2x2 complex matrix
rk   Tr_  r   FNr}  y      ?      y      п      п      ?       @y             y      ?      ?y      ?      y            пra  )r   r   r   r   r/   ru   ry  rb  s   &   r8   r,  'TestSolveTriangular.test_simple_complex  sO    D!9r1g&'QKq4q9!#(;aX'FG GGT4L!q4q9!#A'@Aq4q9!#J!V'EFq4q9!#[(9Av;'GHqssAU!<!#J!V'EFqssAU!<!#A'@AqssAU!<!#Q$'@Ar:   c                h    \        ^^ .^^..4      p^^.p\        WRRR7      p\        V^^ .4       R# )r^  TF)r   r~   N)r   r   r   rb  s   &   r8   r   %TestSolveTriangular.test_check_finite  s@     Aq6Aq6"#Fq4eD!#1v.r:   r  r   c                L   \         P                  ! RVR7      p\         P                  ! ^ VR7      p\        W44      pVP                  ^ 8X  g   Q h\        \         P                  ! ^VR7      \         P
                  ! ^VR7      4      P                  pVP                  V8X  g   Q hR# r   r   Nr   )r/   r   r   r  r   r   r   r  s   &&&    r8   r   TestSolveTriangular.test_empty  s     HHV4(HHQd#Q"vv{{&FF1D!2771D#9

% 	 ww+%%%r:   c                    \         P                  ! ^4      p. . .p\        W4      p\        VP                  ^ 8H  R4       \        VP
                  R8H  R4       R# r  )r/   r   r   r   r  r   r&  s   &   r8   r  "TestSolveTriangular.test_empty_rhs"  sI    FF1IHQ"!:;6!#HIr:   r   N)r   r   r   r   r'  r,  r   r   r   r   r   r   r/   r
   r   r   r   r  r   r   r   s   @r8   r\  r\    s     >*B:/ [[Vc5"**gr||%TU[[Vc5"**gr||%TU	& V V	&J Jr:   r\  c                   8  a  ] tR tRt o R tR tR tR tR t]	P                  P                  R]]]P                  ]]P"                  .4      R 4       t]R	 4       t]	P                  P                  R
]P*                  ]P                  ]P,                  ]P.                  .4      R 4       tR t]	P                  P                  R]]]P                  ]]P"                  .4      R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t R t!R t"R t#]	P                  P                  RRR.4      R 4       t$R t%]	P                  P                  RRR.4      ]	P                  P                  RRR.4      R 4       4       t&R  t'R! t(R" t)R#t*V t+R$# )%TestInvi*  c                    ^^.^^..p\        V4      p\        \        W4      \        P                  ! ^4      4       . RO. RO. RO.p\        V4      p\        \        W4      \        P                  ! ^4      4       R# )rG   Nr  rC   r*  rD   rJ      r  )r   r   r   r/   r   rZ   r[   a_invs   &  r8   r'  TestInv.test_simple+  s^    VaVA!#a-;	:.A!#a-;r:   c                >   \         P                  P                  R 4      p^p\        ^4       Fl  pVP                  W".4      p\        V4       F  p^RWCV3,          ,           ,          WCV3&   K!  	  \	        V4      p\        \        WE4      \        V4      4       Kn  	  R# r]  r/   rP  rQ  r`  r   r   r   r   rZ   rR  rS  rX  r[   rv  s   &     r8   rb  TestInv.test_random3  s~    ii##D)qA

A6"A1Xba4j/Q$ FE%c!m&.qk3 r:   c                b    ^^.^R..p\        V4      p\        \        W4      ^^ .^ ^..4       R# )rG   r  Nr   r   r   ru  s   &  r8   r,  TestInv.test_simple_complex>  s8    VaWA!#a-1a&1a&1ABr:   c                z   \         P                  P                  R 4      p^p\        ^4       F  pVP                  W".4      RVP                  W".4      ,          ,           p\        V4       F  p^RWCV3,          ,           ,          WCV3&   K!  	  \	        V4      p\        \        WE4      \        V4      4       K  	  R# )rO  rh   r^  Nry  rz  s   &     r8   re  TestInv.test_random_complexC  s    ii##D)qA

A6"2cjj!&8#88A1Xba4j/Q$ FE%c!m&.qk3 r:   c                f    ^^.^^..p\        VRR7      p\        \        W4      ^^ .^ ^..4       R# )rG   Fr}   Nr}  ru  s   &  r8   r   TestInv.test_check_finiteN  s;    VaVAE*!#a-1a&1a&1ABr:   r7   c                   \         P                  ! RVR7      p\        V4      pVP                  ^ 8X  g   Q hVP                  \        \         P
                  ! ^VR7      4      P                  8X  g   Q h\         P                  ! RVR7      p\        V4      pVP                  R8X  g   Q h\         P                  ! RVR7      p\        V4      pVP                  R8X  g   Q hR# )r   r   Nr   r  )r  rG   r   r   )r/   r   r   r  r   r   r   r   rZ   r7   r[   rv  s   &&  r8   r   TestInv.test_emptyS  s    HHV2&AzzQ{{c"&&""56<<<<<GGL+A{{l***GGL+A{{l***r:   c                   ^p\         P                  ! ^V^,          ^,           4      P                  W"4      \         P                  ! V4      ,           pVP	                  4       p\        V3/ VB p\        WT,          \         P                  ! V4      RR7       \        WC4       \         P                  ! WE4      '       d   Q hVP	                  4       P                  \        4      p\        V3/ VB p\        WS,          \         P                  ! V4      RR7       \        WC4       \         P                  ! WE4      '       d   Q hVP                  \        4      P	                  RR7      p\        V3/ VB p\        WS,          \         P                  ! V4      RR7       VP                  RR4      pWC8H  P                  4       V8w  g   Q h\         P                  ! WE4      V8X  g   Q hR# )r  r
  r  r6  r  r*   FN)r/   r   rX   r   r  r   r   r   r>  r  r   r=  r  )rZ   r)   rS  a0r[   rv  r*   s   &&     r8   test_overwrite_aTestInv.test_overwrite_ab  sh   YYq!Q$(#++A1BFF1I= GGIA&&	266!959Q##A---- GGIU#A&&
BFF1IE:Q##A----
 IIe!!!,A&&
BFF1IE:"&&}e<}}+---)[888r:   r6   c                   \         P                  ! ^4      P                  ^^4      P                  V4      p\	        V4      p\        W#,          \         P                  ! VP                  ^ ,          4      ^d\         P                  ! VP                  4      P                  ,          R7       RRRRRRRR/pVP                  P                  WBP                  P                  ,          8X  g   Q hR# )	rC   r  r  fgr  Gr+  N)r/   r   rX   r  r   r   r   r   r4   r   r5   char)rZ   r6   r[   rv  dt_maps   &&   r8   test_dtypesTestInv.test_dtypes  s    
 IIaL  A&--d3A	266!''!*#5C@Q@U@U<UV 	
 {{6'',,#7777r:   c                    \         P                  ! ^4      pRVP                  n        \	        V4      p\        W!RR7       R# r  )r/   r   r  r  r   r   ru  s   &  r8   r  TestInv.test_readonly  s.    FF1I!Au-r:   c                    \         P                  ! ^VR7      P                  ^^^^4      ^,           p\        V4      pVP                  VP                  8X  g   Q h\        W#,          R4       R# )r  r   r>   N)r/   r   rX   r   r   r   r  s   &&  r8   test_batch_core_1x1TestInv.test_batch_core_1x1  sS    IIc$,,Q1a81<A{{agg%%%	2&r:   c                D   \         P                  ! ^\        R7      P                  ^^^4      pVR,          p\	        V3/ VB pVP
                  VP
                  8X  g   Q h\        W4,          \         P                  ! \         P                  ! ^4      VP
                  4      RR7       VR,          p\	        V3/ VB pVP
                  VP
                  8X  g   Q h\        W4,          \         P                  ! \         P                  ! ^4      VP
                  4      RR7       R# )r  r   Ng+=r  )N.)rr   N.)	r/   r   r   rX   r   r   r   broadcast_tor   )rZ   r)   r[   r  rv  s   &&   r8   test_batch_zero_strideTestInv.test_batch_zero_stride  s    IIe5)11!Q:y\B','{{bhh&&&
BOOBFF1Irxx$HuU|_B','{{bhh&&&
BOOBFF1Irxx$HuUr:   c                V   \         P                  ! ^4      P                  ^^^^4      pVRRRR1RR3,          p\        V3/ VB pVP                  VP                  8X  g   Q h\        W#,          \         P                  ! \         P                  ! ^4      VP                  4      RR7       R# r  rr   NvIh%,=r  rH   r/   r   rX   r   r   r   r  r   rZ   r)   r[   rv  s   &&  r8   r!  "TestInv.test_batch_negative_stride  s    IIcN""1aA.a2q!mA&&{{agg%%%	2??266!9agg#FUSr:   c                V   \         P                  ! ^4      P                  ^^^^4      pVRRRRR1R3,          p\        V3/ VB pVP                  VP                  8X  g   Q h\        W#,          \         P                  ! \         P                  ! ^4      VP                  4      RR7       R# r  r  r  s   &&  r8   r$  !TestInv.test_core_negative_stride  s    IIcN""1aA.aDbD!mA&&{{agg%%%	2??266!9agg#FUSr:   c                4   \         P                  ! ^04      P                  ^^^^4      pVR,          p\        V3/ VB pVP                  R8X  g   Q h\        W#,          \         P                  ! \         P                  ! ^4      VP                  4      RR7       R# )r  r  r  Nr(  rF   r  rF   rF   r  r  s   &&  r8   r)   TestInv.test_core_non_contiguous  sp    IIe$$Q1a0hKA&&{{l***	2??266!9agg#FUSr:   c                4   \         P                  ! ^04      P                  ^^^^4      pVR,          p\        V3/ VB pVP                  R8X  g   Q h\        W#,          \         P                  ! \         P                  ! ^4      VP                  4      RR7       R# )r  gvIh%L=r  Nr,  r  r  r  s   &&  r8   r.  !TestInv.test_batch_non_contiguous  sp    IIe$$Q1a0kNA&&{{l***	2??266!9agg#FUSr:   c                x   \        \        4      ;_uu_ 4        \        \        P                  ! R4      4       RRR4       \        \        4      ;_uu_ 4        \        \        P                  ! R4      4       RRR4       \        P
                  ! \        P                  ! R\        R7      \        P                  ! ^4      P                  ^^4      34      p\        \        4      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)rF   Nr   r  )r  rF   rF   )	r   r   r   r/   r   r<  r   r   rX   )rZ   r)   r[   s   && r8   test_singularTestInv.test_singular  s     ;''  ( ;''	"# ( HHbggfG4biil6J6J1a6PQR;''F (' (' (' (''s#    D D,D(D	D%	(D9	c                   \         P                  ! R R.4      p\        P                  ! \        4      ;_uu_ 4        \        V4       RRR4       \         P                  ! \         P                  ! R R.4      \         P                  ! ^^.4      \         P                  ! ^R.4      .4      p\        P                  ! \        4      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r>   #B;N)r/   ru   r   r  r"   r   r<  )rZ   r[   r  s   &  r8   test_ill_condTestInv.test_ill_cond  s    GGRK \\-((F ) XXrwwE{+RWWaV_bggq%j>QRS\\-((G )(	 )( )((s   C"C5"C2	5D	c                    \        \        4      ;_uu_ 4        \        \        P                  ! ^4      RR7       RRR4       R#   + '       g   i     R# ; i)rF   kaboomr7  N)r   KeyErrorr   r/   r   r  s   &r8   test_wrong_assume_aTestInv.test_wrong_assume_a  s.    8$$q	H- %$$$s   "AA	c                R   \         P                  ! ^\        R7      P                  ^^4      pWP                  ,           pV^\         P
                  ! ^4      ,          ,          p\        V4      p\        VRR7      p\        WCRR7       \         P                  ! ^\         P                  ! . VP                  OR
N5!  ,
          ^ 8H  \         P                  ^4      p\        W%,          RRRR7      p\        WcRR7       \        W%P                  ,          RRRR7      p\        WsRR7       R	# )   r   r/  r7  r   r  Fr~   r1  r   TNrH   )r/   r   r   rX   ry  r   r   r   wheretrir   nan)rZ   rd   yy_inv0y_inv1masky_inv2y_inv3s   &       r8   test_posdefTestInv.test_posdef  s    IIb&..q!4G	Rq	\QQ'U3 xxBFF0AGG0R00A5rvvqAQV%%uMU3 QvvXEENU3r:   complex_FTc                   \         P                  ! ^	4      P                  ^^4      pW"P                  ,           \         P                  ! ^4      ,           pV'       d   VRV,          ,           p\        V4      p\        WC,          \         P                  ! ^4      RR7       \        \        4      ;_uu_ 4        \        VRR7       RRR4       V'       d   \         P                  ! ^	4      P                  ^^4      pVRV,          ,           pW"P                  P                  4       ,           \         P                  ! ^4      ,           p\        \        V4      V,          \         P                  ! ^4      RR7       R# R#   + '       g   i     L; i)r  rk   g [n<r  r/  r7  N)
r/   r   rX   ry  r   r   r   r   r   r  )rZ   r  r[   rc   b_inv0s   &&   r8   rG  TestInv.test_posdef_not_posdef  s     IIaL  A&GbffQiBqDA Q
BFF1IE: ;''E" ( 		!$$Q*ABqDACCHHJ*ACFQJq	>	 	 ('s   6E;;F	c                	   \         P                  ! R
R.RR..4      p\        V4      p\        W!,          \         P                  ! ^4      RR7       \        VRR7      p\        W2RR7       \        VRR7      p\         P
                  ! W$RR7      '       d   Q h\        V\         P                  ! ^4      RR7      p\        WERR7       \         P                  ! ^4      \         P                  ! ^4      ,           p\        V4      p\        Wa,          \         P                  ! ^4      RR7       \         P                  ! ^4      ) \         P                  ! ^4      ,           p\        V4      p\        Wa,          \         P                  ! ^4      RR7       \         P                  ! ^4      ) \         P                  ! ^4      ,           pRVR&   \        V4      p\        Wa,          \         P                  ! ^4      RR7       \         P                  ! ^4      \         P                  ! ^4      ,           P                  \         P                  4      p\        V4      p\        Wa,          \         P                  ! ^4      RR7       \         P                  ! ^4      R,          \         P                  ! ^4      ,           P                  \         P                  4      p\        V4      p\        Wa,          \         P                  ! ^4      RR7       \         P                  ! ^4      ) \         P                  ! ^4      ,           P                  \         P                  4      p\        V4      p\        Wa,          \         P                  ! ^4      RR7       \         P                  ! ^4      ) \         P                  ! ^4      ,           P                  \         P                  4      pRVR&   \        V4      p\        Wa,          \         P                  ! ^4      RR7       \         P                  ! ^R.R^..\         P                  R7      p\        V4      p\        Wa,          \         P                  ! ^4      RR7       \         P                  ! RR.RR..\         P                  R7      p\        V4      p\        Wa,          \         P                  ! ^4      RR7       R	# )r	  r
  r  r;  r7  r/  rS   rk   r   Nr  r  r  rH   )r   rH   r}        ?      )r/   r  r   r   r   r  r   r   r  r3   r   )rZ   r[   r  r  r  ainv_slvr  s   &      r8   r  "TestInv.test_pos_fails_sym_complex  s$    JJ35NP26NPR S 1v"&&)%8q5)U3
 E*	;;tU;;;; BFF1I6	%8 FF1I
"!f7 VVAYJ#!f7 VVAYJ#%!f7 VVAY#++BMM:!f7 VVAYt^bggaj(00?!f7 ffQiZ"''!*$,,R]];!f7 ffQiZ"''!*$,,R]];%!f7 HHq$i$+2==A!f7 HHr4j4*-R]]C!f7r:   sym_hermr;  rH  c                .   \         P                  ! ^	4      P                  ^^4      pV'       d   VRV,          ,           pVR8X  d   W3P                  ,           pM W3P                  P	                  4       ,           pV\         P
                  ! ^4      ,           p\         P                  P                  V4      p\        WT,          \         P
                  ! ^4      RR7       \        WBR7      p\        WVRR7       \         P                  ! ^\         P                  ! . VP                  ORN5!  ,
          ^ 8H  \         P                  ^4      p\        WG,          RVRR7      p\        WRR7       \        WGP                  ,          RVR	R7      p	\        WRR7       R
# )r  rk   r;  r
  r  r7  r   Fr  TNrH   )r/   r   rX   ry  r  r   r  r   r   r  r  r   r  )
rZ   r  r  r[   rc   r  b_inv1r  b_inv2b_inv3s
   &&&       r8   test_sym_herTestInv.test_sym_herm  s    IIaL  A&BqDAuCCACCHHJAq	Mq!
BFF1IE:Q*U3 xxBFF0AGG0R00A5rvvqAQV%(%PU3 QvvXEHDQU3r:   c                :   \         P                  ! ^\        R7      P                  ^^4      pWP                  ,           pV^\         P
                  ! ^4      ,          ,          p\        VRR7      p\        VRR7      p\         P                  ! W44      '       d   Q hR# )r  r   r  r7  r/  N)r/   r   r   rX   ry  r   r   r  )rZ   rd   r  r  y_inv_posdefs   &    r8   test_triangular_1TestInv.test_triangular_1  ss    IIb&..q!4G	Rq	\Q!34 1u-;;v44444r:   c                   \         P                  ! ^\        R7      P                  ^^4      p\	        \         P
                  ! V4      4      p\        V\         P
                  ! V4      ,          \         P                  ! ^4      RR7       \	        VRR7      p\        V\         P
                  ! V4      ,          \         P                  ! ^4      RR7       \         P                  ! ^\         P                  ! . VP                  OR
N5!  ,
          ^ 8H  \         P                  ^4      p\	        W,          RRR7      p\        V\         P
                  ! V4      ,          \         P                  ! ^4      RR7       \	        \         P                  ! V4      4      p\        V\         P                  ! V4      ,          \         P                  ! ^4      RR7       \	        VRR7      p\        V\         P                  ! V4      ,          \         P                  ! ^4      RR7       \         P                  ! ^\         P                  ! . VP                  OR
N5!  ,
          ^ 8H  \         P                  ^4      p\	        WP                  ,          RRR7      p\        V\         P                  ! V4      ,          \         P                  ! ^4      RR7       R	# )r  r   r   r  r  r7  F)r~   r1  r  NrH   )r/   r   r   rX   r   r  r   r   r  r  r   r  r  ry  )	rZ   r  	y_inv_0_u	y_inv_1_ur  	y_inv_2_u	y_inv_0_l	y_inv_1_l	y_inv_2_ls	   &        r8   test_triangular_2TestInv.test_triangular_2  s   GGBe$,,Q2
O		BGGAJ.q	F$67		BGGAJ.q	F xxBFF0AGG0R00A5rvvqAU=OP		BGGAJ.q	F 
O		BGGAJ.q	F$67		BGGAJ.q	F xxBFF0AGG0R00A5rvvqA&&u?QR		BGGAJ.q	Fr:   c           
        \         P                  ! \         P                  ! \         P                  ! R4      4      \         P                  ! \         P
                  ! ^^4      4      .4      p\        V4      p\        V^,          \         P                  ! ^\         P
                  ! ^^4      ,          4      RR7       \         P                  ! R^ .^ ^..4      p\        P                  ! \        4      ;_uu_ 4        \        VRR7       RRR4       \         P                  ! ^ ^ .^ ^..4      p\        P                  ! \        4      ;_uu_ 4        \        VRR7       RRR4       R#   + '       g   i     Lf; i  + '       g   i     R# ; i)r  r
  r  rJ  r  r7  NrK  )r/   r<  r  r   ru   r   r   r   r  r   r  r"   r   r   )rZ   r[   inv_as   &  r8   rM  TestInv.test_diagonal  s    HHbggbggfo.		!Q0HIJA 	a"''!bii1o*=">UK JJq	Aq6*+\\-((J' ) JJAA'(]];''J' (' )(
 (''s   8E$E7$E4	7F	r   N),r   r   r   r   r'  rb  r,  re  r   r   r   r   r   r   r/   r
   r   r   r   rY  r  float16r0   r2   r  r  r  r  r!  r$  r)  r.  r  r  r  r  rG  r  r  r  r  rM  r   r   r   s   @r8   rp  rp  *  s    <	3C
	3C
 [[TC

GR\\#RS+ T+ 9 9: [[RZZG88. [[TC

GR\\#RS' T' 
V 
V T T T T T T T T  0.4& [[Z%7? 8?,N8` [[Z%7[[Z%84 9 8485G4( (r:   rp  c                     a ] tR tRt oR tR t]P                  P                  R^^.^^.. RO.4      R 4       t	R t
]P                  P                  R]P                  R,          R	,           U u. uF  p V R
9  g   K  V NK  	  up 4      R 4       tR tR t]P                  P                  R]]]P$                  ]]P(                  .4      R 4       tR tR tR tRtVtR# u up i )TestDeti  c                   \         P                  ! ^..4      p\        V4      pVP                  P                  R8X  g   Q h\         P
                  ! V4      '       g   Q hVR8X  g   Q h\         P                  ! ^....RR7      p\        V4      pVP                  P                  R8X  g   Q hVP                  R8X  g   Q h\        VR..4       \         P                  ! R...\         P                  R7      p\        V4      pVP                  P                  R8X  g   Q hVP                  R	8X  g   Q h\        VR.4       R# )
rG   r  r>   r  r   r+  Nrs   y      ?      @)rG   )	r/   r   r   r   r  isscalarr   r   r   )rZ   r[   detas   &  r8   test_1x1_all_singleton_dims#TestDet.test_1x1_all_singleton_dims  s   HHqcUO1vzz#%%%{{4    rzzHHugYc*1vzz#%%%zzV###TSE7#HHyk]",,71vzz#%%%zzT!!!TF8$r:   c                r   \         P                  P                  R 4      pVP                  . RO\         P                  R7      p\	        V4      pVP
                  P                  R8X  g   Q hVP                  R8X  g   Q h\        V\         P                  ! V4      4       VP                  . RO\         P                  R7      \         P                  ! R4      ,          p\	        V4      pVP
                  P                  R8X  g   Q hVP                  R8X  g   Q h\        V\         P                  ! V4      4       R# )   *n`/ r   r  rk   r+  N)rC   r*  rG   rG   rC   r*  )r/   rP  rQ  r
   r   r   r  r   r   squeezer   )rZ   rR  r[   r  s   &   r8   test_1by1_stacked_input_output&TestDet.test_1by1_stacked_input_output  s    ii##$45JJ|2::J61vzz#%%%zzV###bjjm,JJ|2::J6r||C7HH1vzz#%%%zzV###bjjm,r:   r   c                   \         P                  P                  R 4      pVP                  RRVR7      p\	        V4      \         P
                  P	                  V4      rT\        WE4       VP                  RRVR7      R,          pWbP                  RRVR7      ,          p\	        V4      \         P
                  P	                  V4      r\        Wx4       R# )r  r>   r  rk   r   N      ra  )r/   rP  rQ  uniformr   r  r   )	rZ   r   rR  r[   d1d2rc   d3d4s	   &&       r8   #test_simple_det_shapes_real_complex+TestDet.test_simple_det_shapes_real_complex  s    ii##$45KKReK,Qq)BKKReK,R/	[[s[//Qq)Br:   c                    \         P                  ! . RO. RO. R	O. R
O. RO. RO. RO. RO.4      p\        \        V4      R4       \        \        \         P                  ! ^4      P                  ^^4      4      R4       \         P                  ! . RO. RO. RO. RO.\         P                  R7      p\        \        V4      R4       \         P                  ! . RO. RO. RO. RO. RO. RO. RO. RO.4      R,          p\        \        V4      R4       R# )rG   g      @rM   rk   r   r  N)rG   rG   rG   rG   rG   rG   rG   rG   )rG   rH   rG   rH   rG   rH   rG   rH   )rG   rG   rH   rH   rG   rG   rH   rH   )rG   rH   rH   rG   rG   rH   rH   rG   )rG   rG   rG   rG   rH   rH   rH   rH   )rG   rH   rG   rH   rH   rG   rH   rG   )rG   rG   rH   rH   rH   rH   rG   rG   )rG   rH   rH   rG   rH   rG   rG   rH   )r  r                r  )r  r        ?        r  )rk   r}  r  r  )r  rk   r  r  y      @        )rR  rS  r>   rM   rM   rM   rM   rM   )r>   rM   rM   rM   rM   rM   rM   rM   )rM   g      rM   g      r>   rM   rM   rM   )rM   r>   rM   rM   rM   rM   rM   rM   )rM   rM   rM   g      rM   g      r>   rM   )rM   rM   rM   r>   rM   rM   rM   rM   )rM   rM   rM   rM   rM   g       rM   g      ")rM   rM   rM   rM   rM   r>   rM   rM   )r/   r   r   r   r   rX   r   r  s   & r8   test_for_known_det_values!TestDet.test_for_known_det_values  s    HH.22222224 5 	A& 	BIIbM11!Q78"=
 HH66668 @B||M 	A' HH868686868 9 :== 	A#r:   typAll:Nr@   NgGc                
   \         P                  P                  R 4      p^pVP                  W3.4      P                  V4      p\	        \        V4      \         P                  \         P                  ,          4      '       g   Q hR# )r  N)r/   rP  rQ  r  
isinstancer   r1   r3   )rZ   r  rR  rS  r[   s   &&   r8   "test_sample_compatible_dtype_input*TestDet.test_sample_compatible_dtype_input  s]     ii##$45JJv%%c*#a&2::#=????r:   c           
     >   R p\        R. RO4       FR  w  r#\        \        VR7      ;_uu_ 4        \        \        P
                  ! RR..^,          VR7      4       RRR4       KT  	  \        \        VR7      ;_uu_ 4        \        \        P
                  ! RR..^,          R	R7      4       RRR4       \        \        VR7      ;_uu_ 4        \        \        P
                  ! ^d^..^,          R
R7      4       RRR4       \        \        VR7      ;_uu_ 4        \        \        P
                  ! ^d^..^,          RR7      4       RRR4       R#   + '       g   i     EKQ  ; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)z!cannot be cast to float\(32, 64\)SUOr  r[   rc   r   N   a   bVzdatetime64[s]ztimedelta64[s])bytes8str32object)zipr   	TypeErrorr   r/   r   )rZ   msgcts   &   r8   test_incompatible_dtype_input%TestDet.test_incompatible_dtype_input  s   3<=DAy44BHHsCj\!^156 54 > 9C004,)56 19C003*a?@ 19C003*a/?@A 10 5440000000s/   ,E ,E%,E8,FE"%E5	8F	F	c                   \        \        \        P                  ! ^ ^ .4      4      R4       \        \        \        P                  ! . RO4      4      \        P                  ! . 4      4       \        \        \        P                  ! . RO4      4      \        P                  ! . RO4      4       \        \        RR7      ;_uu_ 4        \        \        P                  ! . R	O4      4       RRR4       \        \        RR7      ;_uu_ 4        \        \        P                  ! . 4      4       RRR4       \        \        RR7      ;_uu_ 4        \        \        P                  ! . .4      4       RRR4       \        \        RR7      ;_uu_ 4        \        \        P                  ! . ..4      4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L{; i  + '       g   i     R# ; i)
r   r>   zLast 2 dimensionsr  Nzat least two-dimensional)r   r   r   r  r   r   r>   r>   r>   )r   r   r  )r   r   r/   r   r   r   r   r  s   &r8   test_empty_edge_casesTestDet.test_empty_edge_cases(  s   BHHaV,-r2BHHY/0"((2,?BHHY/0"((<2HI:-@AA#$ B:-GHH I:-@AA" B:-@AA2$ ! BA BAHHAAAAAs0   "F7 G
	!G"G07G	
G	G-	0H	r7   c                   \         P                  ! RVR7      p\        V4      pVP                  R8X  g   Q hVP                  \        \         P
                  ! ^VR7      4      P                  8X  g   Q h\         P                  ! RVR7      p\        V4      pVP                  R8X  g   Q hVP                  \        \         P                  ! RVR7      4      P                  8X  g   Q hR# )r   r   Nr   r   r  rs  )r  rG   rG   )r/   r   r   r   r   r   r   )rZ   r7   r[   r  s   &&  r8   test_empty_dtypeTestDet.test_empty_dtype5  s    HHV2&Fww"}}ww#bffQb1288888HHYb)Fww$ww#bhhy;<BBBBBr:   c                   \         P                  ! ^	4      P                  ^^4      P                  \         P                  4      pVP                  4       p\        VRR7      p\        VR4       W8H  P                  4       '       d   Q hR# )r  Tr*   rM   N)	r/   r   rX   r  r
   r  r   r   r  )rZ   r[   acr  s   &   r8   r  TestDet.test_overwrite_aA  sc    
 IIaL  A&--bjj9VVX24(b!G==??""?r:   c                    \         P                  ! . RO. RO. R	O.4      pVP                  RR7       \        \	        VRR7      R4       R# )
rS   F)writeTr  rR   N)rS   rM   r>   )      @r   r  r  )r/   r   setflagsr   r   r  s   & r8   test_readonly_arrayTestDet.test_readonly_arrayL  s6    HHlM<@A	


A40#6r:   c                    ^^.^\         P                  ..p\        \        RR7      ;_uu_ 4        \	        V4       RRR4       R#   + '       g   i     R# ; i)rG   zarray must not containr  N)r/   infr   r   r   r  s   & r8   test_simple_check_finite TestDet.test_simple_check_finiteR  s=    Va[!:-EFFF GFFFs   AA	r   N)r  rF   r@   r@   )r   r   r   r   r  r  r   r   r   r  r  r/   	typecodesr  r  r  r   r   r
   r   r   r  r  r#  r'  r   r   )rd   r   s   0@r8   r  r    s    %"- [[W1vBx&HI	  J	 "$J [[UU0CC0H %70H1() &'Q0H %7 8@8@B" [[TC

GR\\#RS	C T	C	#7 A%7s   0	C!
>C!
r  c                     \        V 4      pV'       d   \        V4      p\        W04      p\        W14      p\        WE4      # )N)r	   r   r   r   )r[   rc   cmplxata1b1s   &&&   r8   direct_lstsqr/  X  s3    	1Br]	RB	RB=r:   c            	       v  a  ] tR tRt o RtR tR tR tR t]	P                  P                  R]4      ]	P                  P                  RR4      ]	P                  P                  R	]4      ]	P                  P                  R
R4      R 4       4       4       4       t]	P                  P                  ]RR7      ]	P                  P                  R]4      ]	P                  P                  RR4      ]	P                  P                  R	]4      ]	P                  P                  R
R4      R 4       4       4       4       4       tR tR tR tR t]	P                  P                  R]]]P2                  ]]P6                  .4      ]	P                  P                  R]]]P2                  ]]P6                  .4      R 4       4       tRtV tR# )	TestLstsqia  Nc                &   \          EF  p\        P                  ! ^^.R^..VR7      p\        P                   F  pR F  pR	 F  pVP                  4       p\        P                  ! WQR7      pVP                  4       p\        WhVVVR7      p	V	^ ,          p
V	^,          p\        V^8H  RV 24       \        \        W*4      V^\        VP                  4      ,          ^\        VP                  4      ,          RV 2R7       K  	  K  	  K  	  EK  	  R# )
rG   r   lapack_driverr*   r-   expected efficient rank 2, got driver: )r  r   err_msgNrA   TF)rG   r   r2  r:  )r  rA   rC   )REAL_DTYPESr/   r   r1  lapack_driversr  r   r   r   r   r9   r   )rZ   r   r[   r4  r  btr-  rc   r.  r  rd   rY  s   &           r8   test_simple_exactTestLstsq.test_simple_exactd  s     [E1b'C8,E:A!*!9!9!.I3 VVXHHR5VVX#B2?0909;  FFQ"A! EG'A	1-/)BHH2E-E-/)BHH2E-E2:=/0JL3 "/ ": !r:   c                   \          EF  p\        P                  ! ^^.^^.^^..VR7      p\        P                  ! . R	OVR7      p\        P                   EFc  pR
 EFX  pVP                  4       pVP                  4       p\        WgVVVR7      pV^ ,          p	VR8X  d4   \        P                  ! W2P                  V	4      ,
          ^,          4      p
M	V^,          p
V^,          p\        V^8H  RV 24       \        \        \        W)4      V,
          ^,          4      P                  ^ R7      V
^\        VP                  4      ,          ^\        VP                  4      ,          RV 2R7       \        V	R^\        VP                  4      ,          ^\        VP                  4      ,          RV 2R7       EK[  	  EKf  	  EK  	  R# )rG   r   r3  gelsyr5  axisr6  r   r  r7  Nr  r8  )gm۶mۿgm۶m?)r<  r/   r   r1  r=  r  r   sumr   r   r   rh  r9   r   )rZ   r   r[   rc   r4  r  r-  r.  r  rd   	residualsrY  s   &           r8   test_simple_overdetTestLstsq.test_simple_overdet}  sy    [E1a&1a&1a&1?A%0A!*!9!9!.IBBm,5,57C AA$/$&FFAaL1+<$=	$'F	AAAF&EaS$IJ#CQQ(:$;$?$?Q$?$G$-)+i.A)A)+i.A)A.6}o,F	H
 $A'M)+i.A)A)+i.A)A.6}o,FH H' "/ ": !r:   c                   \          EF  p\        P                  ! R	^.^^.^^..VR7      p\        P                  ! . R
OVR7      p\        P                   EFr  pR EFg  pVP                  4       pVP                  4       p\        WgVVVR7      pV^ ,          p	VR8X  dC   W2P                  V	4      ,
          p
\        P                  ! WP                  4       ,          4      pM	V^,          pV^,          p\        V^8H  RV 24       \        \        \        W)4      V,
          ^,          4      P                  ^ R7      V^\        VP                  4      ,          ^\        VP                  4      ,          RV 2R7       \        V	R^\        VP                  4      ,          ^\        VP                  4      ,          RV 2R7       EKj  	  EKu  	  EK  	  R# )rG   r   r3  rB  r5  rC  r6  rE  Nrf  )rG   r   r  r8  )yu{޿E(B?yӽu{?(YJV?)COMPLEX_DTYPESr/   r   r1  r=  r  r   r   rF  r  r   r   rh  r9   r   )rZ   r   r[   rc   r4  r  r-  r.  r  rd   r  rG  rY  s   &            r8   test_simple_overdet_complex%TestLstsq.test_simple_overdet_complex  s   #^E4)aVaV4EBAU3A!*!9!9!.IBBm,5,57C AA$/%%(l$&FF3+;$<	$'F	AAAF&EaS$IJ#CQQ(:$;$?$?Q$?$G$-)+i.A)A)+i.A)A.6}o,F	H
 $ ! $L%')BHH*=%=%')BHH*=%=*2=/(BD D+ "/ ": $r:   c                   \          F  p\        P                  ! . RO. RO.VR7      p\        P                  ! ^^.VR7      p\        P                   F  pR	 F  pVP                  4       pVP                  4       p\        WgVVVR7      pV^ ,          p	V^,          p
\        V
^8H  RV
 24       \        V	R
^\        VP                  4      ,          ^\        VP                  4      ,          RV 2R7       K  	  K  	  K  	  R# )rG   r   r3  r5  r6  rE  Nr  rr  r8  )gqqgqq?gdq?)r<  r/   r   r1  r=  r  r   r   r   r9   r   )rZ   r   r[   rc   r4  r  r-  r.  r  rd   rY  s   &          r8   test_simple_underdetTestLstsq.test_simple_underdet  s     E)Y/u=A!Qu-A!*!9!9!.IBBm,5,57C AAAAAF&EaS$IJ#A (;)+i.A)A)+i.A)A.6}o,F	H "/ ": !r:   r   rS  r4  r  c           
        \         P                  P                  R 4      p\         P                  ! VP                  W".4      VR7      p\	        V4       F  p^RWgV3,          ,           ,          WgV3&   K!  	  \	        ^4       EF8  p\         P                  ! VP                  V^.4      VR7      pVP                  4       p	VP                  4       p
\        WVVVR7      pV^ ,          pV^,          p\        W8H  RV RV 24       V\         P                  J dS   \        \        Wl4      VR\        V	P                  4      ,          R\        V	P                  4      ,          RV 2R7       K  \        \        Wl4      VR	\        V	P                  4      ,          R	\        V	P                  4      ,          RV 2R7       EK;  	  R
# )rO  r   r^  r3  expected efficient rank , got i  r6  rE    N)r/   rP  RandomStater  r`  r  r   r   r
   r   r   r9   r   rZ   r   rS  r4  r  rR  r[   rX  rc   r-  r.  r  rd   rY  s   &&&&&         r8   test_random_exactTestLstsq.test_random_exact  st   
 ii##D)JJszz1&)7qAC!qD'M*AdG qA

3::q!f-U;ABB&3$-$-/C AAAAAF6qc :#  

"a)Q"Yrxx%88"Yrxx%88$,]O"<	>  a)Q#i&99#i&99$,]O"<	> >) r:   z$may segfault on Alpine, see gh-17630r  c           
        \         P                  P                  R 4      p\         P                  ! VP                  W".4      RVP                  W".4      ,          ,           VR7      p\	        V4       F  p^RWgV3,          ,           ,          WgV3&   K!  	  \	        ^4       EF8  p\         P                  ! VP                  V^.4      VR7      pVP                  4       p	VP                  4       p
\        WVVVR7      pV^ ,          pV^,          p\        W8H  RV RV 24       V\         P                  J dS   \        \        Wl4      VR\        V	P                  4      ,          R\        V	P                  4      ,          RV 2R	7       K  \        \        Wl4      VR
\        V	P                  4      ,          R
\        V	P                  4      ,          RV 2R	7       EK;  	  R# )rO  rk   r   r^  r3  rR  rS  i  r6  rE  rT  N)r/   rP  rU  r  r`  r  r   r   r   r   r   r9   r   rV  s   &&&&&         r8   test_random_complex_exact#TestLstsq.test_random_complex_exact  s    ii##D)JJszz1&)Bszz1&/A,AA"$qAC!qD'M*AdG qA

3::q!f-U;ABBm$-$-/C AAAAAF6qc :#  $a)Q"Yrxx%88"Yrxx%88$,]O"<	>  a)Q#i&99#i&99$,]O"<	> >' r:   c                4   \         P                  P                  R 4      p\         EFm  pR
 EFb  w  r4\        P
                   EFG  pR EF<  p\         P                  ! VP                  W4.4      VR7      p\        V4       F  p^RWxV3,          ,           ,          WxV3&   K!  	  \        ^4       F  p\         P                  ! VP                  V^.4      VR7      p	VP                  4       p
V	P                  4       p\        WVVVR7      pV^ ,          pV^,          p\        W8H  RV RV 24       \        V\        Wy^ R7      ^\        V
P                  4      ,          ^\        V
P                  4      ,          RV 2R7       K  	  EK?  	  EKJ  	  EKe  	  EKp  	  R	# )rO  r   r^  r3  rR  rS  r+  r6  rE  N)r@      )   rF   r8  )r/   rP  rU  r<  r1  r=  r  r`  r  r   r   r   r/  r9   r   rZ   rR  r   rS  mr4  r  r[   rX  rc   r-  r.  r  rd   rY  s   &              r8   test_random_overdetTestLstsq.test_random_overdet  sY   ii##D) [E.%.%=%=M%2	JJszz1&'9G!&qA&(C!qD'M&:AdG "*!&qA "

3::q!f+=U KA!"B!"B"'6C4=4=#?C !$AA #AA#AF.Fqc J++,#-/ 0+*+\!a-H/1Ibhh4G/G/1Ibhh4G/G4<]O2L	N "*	 &3 &> / !r:   c                p   \         P                  P                  R 4      p\         EF  pR EF  w  r4\        P
                   EFe  pR EFZ  p\         P                  ! VP                  W4.4      RVP                  W4.4      ,          ,           VR7      p\        V4       F  p^RWxV3,          ,           ,          WxV3&   K!  	  \        ^4       F  p\         P                  ! VP                  V^.4      VR7      p	VP                  4       p
V	P                  4       p\        WVVVR7      pV^ ,          pV^,          p\        W8H  RV RV 24       \        V\        Wy^R7      ^\        V
P                  4      ,          ^\        V
P                  4      ,          RV 2R	7       K  	  EK]  	  EKh  	  EK  	  EK  	  R
# )rO  rk   r   r^  r3  rR  rS  r]  r6  rE  Nr^  r8  )r/   rP  rU  rK  r1  r=  r  r`  r  r   r   r   r/  r9   r   ra  s   &              r8   test_random_complex_overdet%TestLstsq.test_random_complex_overdet6  ss   ii##D)#^E.%.%=%=M%2	JJszz1&'9Bszz1&?Q<Q'Q-24!&qA&(C!qD'M&:AdG "*!&qA "

3::q!f+=U KA "#B!"B"'6C4=4=#?C !$AA #AA#AF.Fqc J++,#-/ 0+&'a!)D+-	"((0C+C+-	"((0C+C08.H	J "* &3 &> / $r:   c           
        \         P                  ! 4       ;_uu_ 4        \         P                  ! R R\        4       RRR4       \        P
                  ! R4      p\        P                  ! \        R	\        P                  R
R
4       F  w  r#rEpVP                  V4      p\        P
                  ! W2R7      pVP                  4       p	VP                  4       p
\        WVWeVR7      pV^ ,          pV^,          p\        V^8H  RV 24       \        \!        W|4      V^\#        VP$                  4      ,          ^\#        VP$                  4      ,          RV 2R7       K  	  R#   + '       g   i     EL+; i)r  zIinternal gelsd driver lwork query error,.*Falling back to 'gelss' driver.Nr   )r4  r~   r*   r-   r5  r6  rE  ))rG   r@   r;  r9  r8  )warningscatch_warningsfilterwarningsRuntimeWarningr/   r   	itertoolsproductr<  r1  r=  r  r  r   r   r   r   r9   r   )rZ   r,  r   r>  r4  r  r~   r[   rc   r-  r.  r  rd   rY  s   &             r8   r   TestLstsq.test_check_finiteT  s0   $$&&##H%FGUW ' XX)*kL'66++	- >E} 		% A)A BBm%1$-/C AAAAAF=aSABCIq!#i&8!8!#i&8!8&.}o$>@%- '&&s   EE.	c           	        R F  w  r\         P                  ! V4      p\        \         P                  ! V4      V4      w  rErg\	        V\         P                  ! V^,          3VR,          ,           4      4       V^,          '       d   \         P
                  ! R4      M'\         P                  P                  V^ R7      ^,          p\	        WX4       \        V^ 8H  R4       \	        V\         P
                  ! R4      4       K  	  R# )r   rp   rC  zexpected rank 0Nr   ))r   rF   r   ))r   rC   rq  )rC   r   )rC   )rr  r   )	r/   r   r   r   r   r   r  r   r   )	rZ   a_shapeb_shaperc   rd   residuesranksresidues_should_bes	   &        r8   r   TestLstsq.test_emptyt  s    !3G  A#('):A#> ABHHgaj]WR[%@AB4;AJJ"((4.')yy~~aa~'@!'C 6DAI01BHHTN+!3r:   r  r   c                `   \         P                  ! RVR7      p\         P                  ! ^ VR7      p\        W44      w  rVrxVP                  ^ 8X  g   Q h\        \         P                  ! ^VR7      \         P
                  ! ^VR7      4      ^ ,          P                  p	VP                  V	8X  g   Q hR# rk  )r/   r   r   r  r   r   r   )
rZ   r  r   r[   rc   rd   ru  rv  rw  r  s
   &&&       r8   r  TestLstsq.test_empty_dtype  s     HHV4(HHQd#$Q{Tvv{{BFF1D12771D3IJ1MSSww+%%%r:   r   )gelsdgelssrB  N)r@   r`  r8  )r   r   r   r   r=  r?  rH  rL  rO  r   r   r   r<  rW  rW  r&   rK  rZ  rc  rf  r   r   r   r   r/   r
   r   r   r  r   r   r   s   @r8   r1  r1  a  s    6NL2H:DBH, [[Wk2[[S),[[_n=[[[-8> 9 > - 3>@ [[(NO[[Wn5[[S),[[_n=[[[-8> 9 > - 6 P
>@N8J<@@, [[Vc5"**gr||%TU[[Vc5"**gr||%TU& V V&r:   r1  c                      a  ] tR tRt o R tR tR tR tR tR t	R t
R	 t]P                  P                  R
]]P"                  ]]P&                  .4      R 4       tRtV tR# )TestPinvi  c                    \        . RO. RO. RO.\        R7      p\        V4      p\        \	        W4      \
        P                  ! ^4      4       R# rG   r   Nr  rr  rs  r   r   r   r   r   r/   r   rZ   r[   a_pinvs   &  r8   test_simple_realTestPinv.test_simple_real  s4    9i4EBa!#a."&&)<r:   c                    \        . RO. RO. RO.\        R7      R\        . RO. RO. R	O.\        R7      ,          ,           p\        V4      p\        \	        W4      \
        P                  ! ^4      4       R# 
rG   r   rk   Nr  rr  rs  )r  rt  rJ   )rD   r*  rC   )r  rF   rG   r  r  s   &  r8   r,  TestPinv.test_simple_complex  sY    Iy*5
Iy'I-2"4 44 a!#a."&&)<r:   c                    \        . RO. RO. RO.\        R7      p\        V4      p\        . RO. RO. RO.4      p\        W#4       R# )	rG   r   Nr  rr  rJ   rt  r  g|qgԕVUUſgc8?gqg^0<gq?g9?gԕVUU?g:87ȿr   r   r   r   rZ   r[   r  r   s   &   r8   test_simple_singularTestPinv.test_simple_singular  sB    9i35AaLKKM N 	"&3r:   c                    \        . RO. RO.\        R7      p\        V4      p\        RR.R	R.RR
..4      p\        W#4       R# )rG   r   g#q?g#q?gIq?Nr  rr  g֋8g#qg#q̿r  r  s   &   r8   test_simple_colsTestPinv.test_simple_cols  sL    9i(6a;
3&
3%{35 6 	"&3r:   c                    \        ^^.^^.^^..\        R7      p\        V4      p\        . RO. RO.4      p\        W#4       R# )rG   r   N)gDpTUUgQUUտgvWUU?)gDpTUU?gQUU?g&>ڿr  r  s   &   r8   test_simple_rowsTestPinv.test_simple_rows  sI    Aq6Aq6Aq6*%8a@?A B!&3r:   c                    \        . RO. RO. RO.4      p\        VRR7      p\        \        W4      \        P
                  ! ^4      4       R# )rG   Fr}   Nr  )rC   r*  r   rs  )r   r   r   r   r/   r   r  s   &  r8   r   TestPinv.test_check_finite  s5    9j*56ae,!#a."&&)<r:   c                p    . RO. RO. RO.p\        V4      p\        . RO. RO. RO.4      p\        W#4       R# )rG   Nr  rr  r  r  r  r  )r   r   r   r  s   &   r8   test_native_list_argument"TestPinv.test_native_list_argument  s;    	9-aLKKM N 	"&3r:   c                <   \         P                  P                  R 4      p^p\        VP                  W"34      4      w  r4\         P                  ! R4      P                  ^^4      pVP                  4       pRVR&   RpRp\        WWRR7      p	Wi,          V,          V,
          p
WY,          V,          V,
          p\        \         P                  P                  V
4      RRR7       \        \         P                  P                  V4      R	R	R7       \        WWVR7      p	Wi,          V,          V,
          p
WY,          V,          V,
          p\        \         P                  P                  V
4      R
RR7       \        \         P                  P                  V4      R
RR7       R# )rO  g     A@gMbP?h㈵>g?rM   r  gMb@?r  r  g;O@{Gz?r   Nr   )r/   rP  rQ  r!   r   rX   r  r   r   r  r   )rZ   rR  rS  q_a_mr[   r  r   a_padiff1adiff2s   &           r8   test_atol_rtolTestPinv.test_atol_rtol  s*   ii##D)#**aV$%iio%%a+HHJ$ 3+1qS3& 			v.5A		v.FC 3-1qS3&		v.DA		v.DAr:   r7   c                    \         P                  ! RVR7      p\        V4      pVP                  ^ 8X  g   Q hVP                  \        \         P
                  ! ^VR7      4      P                  8X  g   Q hR# rk  )r/   r   r   r  r   r   rZ   r7   r[   r  s   &&  r8   r   TestPinv.test_empty  sU    HHV2&a{{a||tBFF1B$78>>>>>r:   r   N)r   r   r   r   r  r,  r  r  r  r   r  r  r   r   r   r   r/   r
   r   r   r   r   r   r   s   @r8   r  r    se     =
=444=
4B8 [[TE2::w#MN? O?r:   r  c                      a  ] tR tRt o R tR tR tR tR tR t	]
P                  P                  R]]P                  ]]P"                  .4      R	 4       tR
tV tR# )TestPinvSymmetrici  c                    \        . RO. RO. RO.\        R7      p\        P                  ! WP                  4      p\        V4      p\        \        P                  ! W4      \        P                  ! ^4      4       R# r  )r   r   r/   r   ry  r   r   r   r  s   &  r8   r  "TestPinvSymmetric.test_simple_real  sJ    9i4EBFF1ccNq!"&&"3RVVAY?r:   c                d   \        . RO. RO. RO.\        R7      p\        P                  ! WP                  4      p\        P
                  P                  V4      w  r#pV^ ;;,          R,          uu&   \        P                  ! W#,          V4      p\        V4      p\        V4      p\        WV4       R# )rG   r   Nr  rr  r  rH   )
r   r   r/   r   ry  r  svdr   r   r   )rZ   r[   r^   rw  vtr  a_pinvhs   &      r8   test_nonpositive"TestPinvSymmetric.test_nonpositive  su    9i35AFF1ccN99==#b	!
FF15"a(!&2r:   c                `   \        . RO. RO. RO.\        R7      R\        . RO. RO. R	O.\        R7      ,          ,           p\        P                  ! WP	                  4       P
                  4      p\        V4      p\        \        P                  ! W4      \        P                  ! ^4      4       R# r  )	r   r   r/   r   r  ry  r   r   r   r  s   &  r8   r,  %TestPinvSymmetric.test_simple_complex  sv    Iy*5
Iy'I-2"4 44 FF1ffhjj!q!"&&"3RVVAY?r:   c                   \        . RO. RO. RO.\        R7      p\        P                  ! WP                  4      p\        VP                  4       4      p\        \        P                  ! W4      \        P                  ! ^4      4       R# r  )	r   r   r/   r   ry  r   tolistr   r   r  s   &  r8   r  +TestPinvSymmetric.test_native_list_argument  sQ    9i4EBFF1ccNqxxz"!"&&"3RVVAY?r:   c                    \         P                  ! . RO. RO. RO.4      p\        V4      p\        W!,          V,          VRR7       \        W,          V,          VRR7       R# )rG   r   r  N)rG   rH   r   )rH   rF   rH   )r   rH   rG   )r/   r   r   r   )rZ   r[   ps   &  r8   test_zero_eigenvalue&TestPinvSymmetric.test_zero_eigenvalue	  sF     HHj+z:;!H	151	151r:   c                F   \         P                  P                  R 4      p^p\        VP                  W"34      4      w  r4\         P                  ! . ROR.V^,
          ,          ,           4      pVP
                  V,          V,          p\         P                  ! . ROR.V^,
          ,          ,           4      pVP
                  V,          V,          pRpRp\        WWRR7      p	WY,          V,          V,
          p
Wi,          V,          V,
          p\        \        V
4      VRR7       \        \        V4      RRR	7       \        WWVR7      p	WY,          V,          V,
          p
Wi,          V,          V,
          p\        \        V
4      R
RR7       \        \        V4      R
RR7       R# )rO  gu>rM   r  r  r^  r   r  gdy=r  -C6?N)rC   r  rF   rG   vk?gﭣ>)rC   r  rF   rG   r  rM   g1?)	r/   rP  rQ  r!   ru   ry  r   r   r   )rZ   rR  rS  r  r  r[   r  r  r   r  r  r  s   &           r8   r   TestPinvSymmetric.test_atol_rtol
	  s4   ii##D)#**aV$%GG2gY!_DECC!GaKgg/2$!*<=ccCi!m!Ar*1qS3& 	Vd5Ve%8 At,1qS3&Vd5Vd5r:   r7   c                    \         P                  ! RVR7      p\        V4      pVP                  ^ 8X  g   Q hVP                  \        \         P                  ! ^VR7      4      P                  8X  g   Q hR# rk  )r/   r   r   r  r   r   r   r  s   &&  r8   r   TestPinvSymmetric.test_empty&	  sU    HHV2&q{{a||tBFF1B$78>>>>>r:   r   N)r   r   r   r   r  r  r,  r  r  r  r   r   r   r   r/   r
   r   r   r   r   r   r   s   @r8   r  r    s]     @3@@268 [[TE2::w#MN? O?r:   r  scalepinv_c                     \         P                  ! ^^ .^ R..4      V ,          p\         P                  ! R\         P                  ! V4      ,          4      pV! V4      p\        WC4       R# )rG   g|=r>   N)r/   r   ru   r   )r  r  rd   r   x_invs   &&   r8   test_auto_rcondr  .	  sO     	1a&1e*%&.AwwrBGGAJ'H!HEE$r:   c                      a  ] tR tRt o R tR tR tR tR tR t	]
P                  P                  ]'       * RR	7      R
 4       tRtV tR# )TestVectorNormsi7	  c                .   \         P                  R ,           F  p\         P                  ! . ROVR7      p\        R\         P                  ! V4      P
                  P                  ^,          4      p\        \        V4      \         P                  ! ^4      VR7       \        \        V^4      \         P                  ! ^4      VR7       K  	  \         P                  R,           F  p\         P                  ! . ROVR7      p\        R\         P                  ! V4      P
                  P                  ^,          4      p\        \        V4      \         P                  ! ^4      VR7       \        \        V^4      \         P                  ! ^4      VR7       K  	  R# )AllFloatr   r   r   ComplexNr  )rk   rh   y              @)
r/   r)  r   maxr4   r5   realr   r   sqrt)rZ   r   rd   r  s   &   r8   
test_typesTestVectorNorms.test_types9	  s    \\*--E%0AeRXXe_0055:;CDGRWWR[s;DAJ#>	 . \\),,EU3AeRXXe_0055:;CDGRWWR[s;DAJ#>	 -r:   c                T    \        R .\        R7      p\        \        V4      V4       R# )rP  r   N)r   r
   r   r   r  s   & r8   test_overflowTestVectorNorms.test_overflowF	  s      4&(DGQ'r:   c                    \        R .^.R,          ,           \        R7      p \        \        V4      R ,
          RRR7       R	#   \         d%    Rp\        \        T4      R ,
          RTR7        R	# i ; i)
     @i'  r   r   r  r  zO: Result should equal either 0.0 or 0.5 (depending on implementation of snrm2).rM   )r7  N)r   r
   r   r   AssertionErrorr   )rZ   r[   r  s   &  r8   test_stableTestVectorNorms.test_stableL	  sf    3%1#e)#73	A DGcM3T: 	A.CQ#sC@@		As   A +A21A2c                f    \        \        . RO^ 4      ^4       \        \        . RO^ 4      ^4       R# )rG   N)rG   r   r  r  )r   r   r  s   &r8   test_zero_normTestVectorNorms.test_zero_normY	  s$    T)Q'+T)Q'+r:   c                    \         P                  ! ^^.^^...^,          R4      p\        \        V^R7      RR..^,          4       \        \        V^^R7      R.^,          .^,          4       R# )rF   r  rC  5D+@6f~@r!  N)r/   r   r   r   r  s   & r8   test_axis_kwdTestVectorNorms.test_axis_kwd]	  sc    HH1v1v&'!+S1QQ:z*B)Ca)GHQ*bTAXJN;r:   c           	        \         P                  ! ^^.^^...^,          R4      p\        V^RR7      p\        VRR...^,          4       \	        VP
                  R	8H  4       \        \        V^^RR7      R.R...^,          4       R# )
rF   r  T)rD  keepdimsr  r  r   g      @N)rF   rG   rF   )r/   r   r   r   r   r   r  s   &  r8   test_keepdims_kwd!TestVectorNorms.test_keepdims_kwdb	  s    HH1v1v&'!+S1T*j*567!;<9$%QD9bTB4L>A;MNr:   z64-bit BLAS requiredr  c                    \        R R7       \        P                  ! R.\        P                  R7      p^VR&   \	        V4      p?\        VR4       R# )ihB  )free_mbr   r>   Nl        rH   )r%   r/   r   r1   r   r   )rZ   rd   r  s   &  r8   test_large_vector!TestVectorNorms.test_large_vectori	  s?    %(HHeWBJJ/"1gS!r:   r   N)r   r   r   r   r  r  r  r  r  r  r   r   rW  r'   r  r   r   r   s   @r8   r  r  7	  sQ     ?(A,<
O [[I.DE" F"r:   r  c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )TestMatrixNormsis	  c           
        \         P                  P                  R 4      pR EF  w  r#\         P                  \         P                  \         P
                  \         P                  \         P                  3 EFU  p^
VP                  W#34      P                  V4      ,          p\         P                  ! VP                  \         P                  4      '       d2   VRVP                  W#34      ,          ,          p\         P                  pM\         P                  pRR^R^R\         P                  \         P                  ) 3 F  p\        WWR7      p\         P                  P                  WWR7      p	\         P                   ! W4      '       d   KM  \         P                  P                  VP                  V4      VR7      p	\#        W4       K  	  EKX  	  EK  	  R# )rO  y              $@Nfro)ord)rs   )rG   r  )r  rG   r  r  )r*  rC   rH   rQ  )r/   rP  rQ  r
   r1   r   r3   int64r  r  r  r   r  r&  r   r  r  r   )
rZ   rR  rS  rb  r  rT  t_highr  actualdesireds
   &         r8   test_matrix_norms!TestMatrixNorms.test_matrix_normsu	  s4   ii##D)BDAZZR\\2=="((R,,aV4;;A>>=="*<*<==s22A6:::A]]FZZF"E1b!R"&&IE!!/F iinnQn:G ;;v77"$))..&1Au."M'8 J S Cr:   c                (   \         P                  ! ^^.^^...^,          R4      p\        V\         P                  RR7      p\        \         P                  ! V^ ^4      \         P                  RR7      p\        V^RR7      p\        W#4       \        W44       \        W$4       \        VP                  VP                  u;8H  ;'       d    VP                  8H  Mu 4       \        V^RR7      p\        \         P                  ! V^ ^4      ^RR7      p\        V\         P                  RR7      p\        W#4       \        W44       \        W$4       \        VP                  VP                  u;8H  ;'       d    VP                  8H  4       R# u 4       R# )rF   r  )r  rD  Nr:  r2  )r/   r   r   r&  swapaxesr   r   r   )rZ   r[   rc   r  r  s   &    r8   r  TestMatrixNorms.test_axis_kwd	  s   HH1v1v&'!+S1V,Q1%266?'177--agg-.'Q1%16:V,177--agg-.-.r:   c                   \         P                  ! ^xRR7      P                  ^^^^4      p\        V\         P                  RRR7      p\        V^RRR7      p\        W#4       \        VP                  VP                  8H  4       R# )x   r  r   T)r  rD  r  Nr:  r2  )r/   r   rX   r   r&  r   r   r   )rZ   r[   rc   r  s   &   r8   r  !TestMatrixNorms.test_keepdims_kwd	  sd    IIc%--aAq9Vd;6177"#r:   c                
   \         P                  ! R4      p\        \        V4      R4       \        \        V^ R7      \         P                  ! R4      4       \        \        VRR7      \         P                  ! R4      4       \         P                  ! R	4      p\        \        V4      R4       \        \        V^ R7      \         P                  ! R
4      4       \        \        VRR7      \         P                  ! R4      4       R# )r   rM   rC  T)r  Nr   r   rs   )r   r  rs  )r/   r   r   r   r   r  s   & r8   r   TestMatrixNorms.test_empty	  s    HHVQ$QQ$8Q.0@AHHVQ$QQ$8Q.0@Ar:   r   N)
r   r   r   r   r  r  r  r   r   r   r   s   @r8   r  r  s	  s      9(/"$	B 	Br:   r  c                   V   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V tR# )TestOverwritei	  c                *    \        \        RR.4       R# r  NrK  rs  )r$   r   r  s   &r8   
test_solveTestOverwrite.test_solve	      EFD>2r:   c                *    \        \        RR.4       R# r  )r$   r   r  s   &r8   test_solve_triangular#TestOverwrite.test_solve_triangular	  s    ,vtn=r:   c                $    \        R  RR.4       R# )c                     \        RW4      # )rF   r  )r   )r\   rc   s   &&r8   <lambda>1TestOverwrite.test_solve_banded.<locals>.<lambda>	  s    ,vr*Er:   N)rC   rD   rD   r#   r  s   &r8   test_solve_bandedTestOverwrite.test_solve_banded	  s    E#TN	,r:   c                *    \        \        RR.4       R# )rF   Nr-  r  )r$   r   r  s   &r8   test_solveh_banded TestOverwrite.test_solveh_banded	  s    MFD>:r:   c                (    \        \        R.4       R# r  NrK  )r$   r   r  s   &r8   test_invTestOverwrite.test_inv	      C&*r:   c                (    \        \        R.4       R# r  )r$   r   r  s   &r8   test_detTestOverwrite.test_det	  r  r:   c                *    \        \        RR.4       R# )r  N)r  rF   rs  )r$   r   r  s   &r8   
test_lstsqTestOverwrite.test_lstsq	  r  r:   c                (    \        \        R.4       R# r  )r$   r   r  s   &r8   	test_pinvTestOverwrite.test_pinv	  s    D6(+r:   c                (    \        \        R.4       R# r  )r$   r   r  s   &r8   
test_pinvhTestOverwrite.test_pinvh	  s    EF8,r:   r   N)r   r   r   r   r  r  r  r  r  r  r  r  r"  r   r   r   s   @r8   r   r   	  s7     3>,;++3,- -r:   r   c            	       6  a  ] tR tRt o R tR tR tR tR tR t	R t
R	 t]P                  P                  R
]]]P$                  ]]P(                  .4      ]P                  P                  R]]]P$                  ]]P(                  .4      R 4       4       tRtV tR# )TestSolveCirculanti	  c                    \         P                  ! . RO4      p\         P                  ! . RO4      p\        W4      p\        \	        V4      V4      p\        W44       R# rG   N)rG   rF   r  r*  )rG   rH   rG   r   )r/   r   r   r   r   r   rZ   r  rc   rd   r  s   &    r8   test_basic1TestSolveCirculant.test_basic1	  s@    HH\"HH]#A!)A,"r:   c                    \         P                  ! . RO4      p\         P                  ! ^4      P                  ^^4      p\	        W4      p\        \        V4      V4      p\        W44       R# )rG   NrG   rF   r<  r/   r   r   rX   r   r   r   r   r(  s   &    r8   test_basic2TestSolveCirculant.test_basic2	  sL    HH^$IIbM!!!Q'A!)A,"r:   c                ,   \         P                  ! . RO4      p\         P                  ! ^4      P                  ^^^4      p\	        W4      p\        \        V4      VP                  ^R4      4      P                  VP                  4      p\        W44       R# )rG   Nr,  rH   )	r/   r   r   rX   r   r   r   r   r   r(  s   &    r8   test_basic3TestSolveCirculant.test_basic3	  sh    HH^$IIbM!!!Q*A!)A,		!R 0199!''Br:   c                    \         P                  ! . RO4      p\         P                  ! ^4      P                  ^^4      R,           p\	        W4      p\        \        V4      V4      p\        W44       R# )rG   y              ?N)rf  r-  r  r*  r.  r(  s   &    r8   rl   TestSolveCirculant.test_complex	  sR    HH&'IIaL  A&-A!)A,"r:   c                    \         P                  P                  R 4      pVP                  ^24      pVP                  ^24      p\	        W#4      p\        \        V4      V4      p\        WE4       R# )i1  N)r/   rP  rU  r  r   r   r   r   )rZ   rR  r  rc   rd   r  s   &     r8   test_random_b_and_c&TestSolveCirculant.test_random_b_and_c	  sX    ii##E*##A!)A,"r:   c                    \         P                  ! . RO4      p\         P                  ! . RO4      p\        WRR7      p\        \	        V4      V4      w  rErg\        W44       \        \        \        W44       R# )rG   r   )r  NrG   rG   r   r   )rG   rF   r  rC   )r/   r   r   r   r   r   r   r   )rZ   r  rc   rd   r  r  rnkrw  s   &       r8   r   TestSolveCirculant.test_singular	  sR    HH\"HH\"A73y|Q/k?A9r:   c                   \         P                  ! . RO.. RO..4      p\         P                  ! . RO. R	O. R
O.4      p\        W^R7      p\        VP                  R4       \         P
                  ! V4      p\        \        V^ ,          P                  4       4      VP                  4      VR&   \        \        V^,          P                  4       4      VP                  4      VR&   \        W44       \        W^RR7      p\        VP                  R4       \        \         P                  ! VR^ 4      V4       \        \         P                  ! V^^4      VP                  ^R7      p\        VP                  R4       \        W44       R# )rG   )baxis)r>  outaxis)caxisNrH   )rH   g      @r  g      @)rG   rD   rD   g      @)r   r   rG   rG   r:  )rG   rH   r   r   )rC   rF   r  )rr   r   rr   )rr   rG   rr   )rF   r  rC   )r/   r   r   r   r   
empty_liker   r   rt  ry  r   moveaxisr  )rZ   r  rc   rd   r   s   &    r8   test_axis_args!TestSolveCirculant.test_axis_args	  s    HH()N+;<= HHlL-@AA*QWWi(==#!)AaDJJL"9133?!)AaDJJL"9133?$A26QWWi(Ar1-x8 BKK1a0!##Q?QWWi($r:   c                l    . ROp. ROp\        W4      p\        \        V4      V4      p\        W44       R# r'  )r   r   r   r   r(  s   &    r8   r   -TestSolveCirculant.test_native_list_arguments
  s.    A!)A,"r:   dt_cr   c           	        \         P                  ! . VR 7      p\         P                  ! . VR 7      p\        W44      pVP                  R8X  g   Q hVP                  \        \         P
                  ! ^VR 7      \         P                  ! ^VR 7      4      P                  8X  g   Q h\         P                  ! RVR 7      p\        W44      pVP                  R8X  g   Q hVP                  VP                  8X  g   Q hR# r  )r/   r   r   r   r   r   r   r   )rZ   rG  r   r  rc   rd   x1s   &&&    r8   r   TestSolveCirculant.test_empty
  s     HHRt$HHRt$A!ww$ww/"))AT*B*,''!4*@BBG%H 	H H HHV4(Q"xx6!!!xx177"""r:   r   N)r   r   r   r   r)  r/  r2  rl   r7  r  rC  r   r   r   r   r   r   r/   r
   r   r   r   r   r   r   s   @r8   r%  r%  	  s     :%2 [[Vc5"**gr||%TU[[Vc5"**gr||%TU# V V#r:   r%  c                      a  ] tR tRt o ]R 4       tR tR tR tR t	R t
R t]P                  P                  R	]]]P$                  ]]P(                  .4      R
 4       tRtV tR# )TestMatrix_Balancei/
  c                0    \        \        \        R 4       R# )zSome string for failN)r   r   r    r  s   &r8   test_string_arg"TestMatrix_Balance.test_string_arg0
  s    j.2HIr:   c           	         \        \        \        \        P                  ! ^^.^\        P
                  ..4      4       \        \        \        \        P                  ! ^^.^\        P                  ..4      4       R# r  )r   r   r    r/   r   r&  r  r  s   &r8   test_infnan_arg"TestMatrix_Balance.test_infnan_arg4
  sT    j.hhABFF45	7j.hhABFF45	7r:   c           	         \        \        P                  ! R ^.R ^ ..4      4      w  r\        \        P                  ! \        P
                  ! \        P                  ! V4      4      4      ^.4       R# )rT  N)r    r/   r   r   difflog2ru   )rZ   r  r  s   &  r8   test_scalingTestMatrix_Balance.test_scaling:
  sL    bhhq	D!9'=>? 	
 34qc:r:   c                    \         P                  ! . RO. RO. RO.4      p\        V4      w  r#\        \	        W14      P                  V4      V4       R# )rG   N)rG   r   r  )rG   rG   r  )r  g      Y@rG   )r/   r   r    r   r   r   )rZ   rT  rd   r  s   &   r8   test_scaling_order%TestMatrix_Balance.test_scaling_orderA
  s:    HHlL-@Aa a*A.r:   c                   \        \        P                  ! R ^.R ^ ..4      ^R7      w  pw  r#\        \        P                  ! \        P
                  ! V4      4      ^.4       \        V\        P                  ! ^4      4       R# )rT  separateN)r    r/   r   r   rT  rU  r   r   )rZ   r  r  zs   &   r8   test_separate TestMatrix_Balance.test_separateF
  s\    "288dAYq	,B#C,-/	6ARWWRWWQZ(1#.299Q<(r:   c                h   \        \        P                  ! R4      \        P                  ! \        P                  ! R4      4      \        P                  ! R4      4      p\	        V^R7      w  pw  r4\        V\        P                  ! V4      4       \        V\        P                  ! . RO4      4       R# )rF   r\  Nr  rK  )r   rG   rD   r*  rC   r  rF   )r   r/   r   r  r    r   	ones_liker   )rZ   rT  rd   r  r^  s   &    r8   test_permutation#TestMatrix_Balance.test_permutationL
  sl    rwwv(@wwv("1q1	6A2<<?+288$9:;r:   c           	     >   \         P                  ! . RO. RO. RO. RO. RO.4      \         P                  ! . RO. R	O. R
O. RO.4      \         P                  ! . RO. RO. RO. RO.4      3pV F  p\        V4      w  r4\        V^R7      w  pw  rV\         P                  ! V4      p\         P                  ! VP
                  ^ ,          4      Wv&   \        V\         P                  ! V4      VR3,          4       \        \        WB4      P                  V4      V4       K  	  R# )rM   r\  rr   N)rM   rM   rM   rM   >)rM   rM   rM   rM   rM   )rS   rS   rM   rM   rM   )rM   rM   rf  rM   rM   )ra  rM   rM   rM   )rM   r  rM   rM   )r>   rM   ra  rM   )rM   r>   rM   r  )rS  rM   r>   rM   )r  r         r>   )rS  rg  rg  rM   )r  rg  r>   r  )
r/   r   r    rA  r   r   r   ru   r   r   )rZ   casesrT  rd   r  rw  r  ips   &       r8   test_perm_and_scaling(TestMatrix_Balance.test_perm_and_scalingS
  s     5///5	7 8 -,-,. /
 ,...0 1$ A!!$DA&q15IAvq!BIIaggaj)BEArwwqz"a%01E!KOOA.2 r:   r7   c                   \         P                  ! RVR7      p\        V4      w  r4VP                  ^ 8X  g   Q hVP                  ^ 8X  g   Q h\        \         P                  ! ^VR7      4      w  rVVP
                  VP
                  8X  g   Q hVP
                  VP
                  8X  g   Q h\        VRR7      w  pw  rxVP                  ^ 8X  g   Q hVP                  ^ 8X  g   Q hVP                  ^ 8X  g   Q h\        VRR7      w  pw  rVP
                  VP
                  8X  g   Q hVP
                  V	P
                  8X  g   Q hVP
                  V
P
                  8X  g   Q hR# )r   r   Tr\  Nr   )r/   r   r    r  r   r   )rZ   r7   r[   rc   r  b_nt_nr  permscale_nperm_ns   &&         r8   r   TestMatrix_Balance.test_emptyo
  s   HHV2&a vv{{vv{{!"&&""56ww#))###ww#))###)!d;=Evv{{zzQyyA~~!/D!Agww#))###{{gmm+++zzV\\)))r:   r   N)r   r   r   r   r(   rN  rQ  rV  rY  r_  rc  rj  r   r   r   r   r   r/   r
   r   r   r   r   r   r   s   @r8   rL  rL  /
  sp     J J7;/
)<38 [[TC

GR\\#RS* T*r:   rL  c                     a  ] tR tRt o RtR tR t]P                  P                  R]
P                  R,          4      R 4       t]P                  P                  R]
P                  R,          4      R 4       t]P                  P                  R	4      ]P                  P                  R
]
P                  R,          4      ]P                  P                  R]
P                  R,          4      R 4       4       4       tRtV tR# )
TestDTypesi
  z7Check backwards compatibility for dtypes vs scipy 1.16.c                    VR 8X  d   \         P                  ! ^RR7      # VR8X  d   \         P                  ! RR.RR..RR7      # \         P                  ! ^VR7      # )Mdatetime64[ms]r   r  r  r     c   d)r/   r   r  rZ   tcodes   &&r8   	get_arr2DTestDTypes.get_arr2D
  sQ    C<66!#344c\::d|dD\:#FF66!5))r:   c                    VR 8X  d   \         P                  ! ^RR7      # VR8X  d   \         P                  ! RR.RR7      # \         P                  ! ^VR7      # )rv  rw  r   r  r  r  )r/   r   r  rz  s   &&r8   	get_arr1DTestDTypes.get_arr1D
  sH    C<771$455c\::tTl#66771E**r:   r{  r  c                    V P                  V4      pVR 9   d9   \        P                  ! \        4      ;_uu_ 4        \	        V4       RRR4       R# \	        V4       R#   + '       g   i     R# ; i)SUVON)r|  r   r   r   r   )rZ   r{  r[   s   && r8   r  TestDTypes.test_inv
  sL     NN5!F?z**A +* F	 +**s   AA/	c                n   V P                  V4      p\        P                  ! 4       R 8H  p\        P                  R8H  pRpV'       g   V'       g
   VR,          pW9   d9   \
        P                  ! \        4      ;_uu_ 4        \        V4       RRR4       R# \        V4       R#   + '       g   i     R# ; i)arm64ntSUVOmMr  N)	r|  platformmachineosnamer   r   r  r   )rZ   r{  r[   is_arm
is_windowsfailing_tcodess   &&    r8   r  TestDTypes.test_det
  s}    NN5!!!#w.WW_
!*d"N"y))A *) F	 *))s    B##B4	zignore:Casting complex valuestcode_atcode_bc                   V P                  V4      pV P                  V4      pR p \        P                  ! W4       V'       g9   \
        P                  ! \        4      ;_uu_ 4        \        W44       RRR4       R# VR9   g   VR9   d9   \
        P                  ! \        4      ;_uu_ 4        \        W44       RRR4       R# \        W44       R#   \         d    Rp Li ; i  + '       g   i     R# ; i  + '       g   i     R# ; i)TFNr  VO)	r|  r  r/   result_typer  r   r   r   r   )rZ   r  r  r[   rc   can_combines   &&&   r8   r  TestDTypes.test_solve
  s     NN7#NN7#	 NN7, y))a *)'T/z**a +* !K  	 K	 
 *)) +**s)   C &C",C6CC"C3	6D	r   N)r   r   r   r   __doc__r|  r  r   r   r   r/   r)  r  r  rk  r  r   r   r   s   @r8   rt  rt  
  s     A*+ [[Wbll5&9:	 ;	 [[Wbll5&9: ;$ [[ ?@[[YU(;<[[YU(;< = = Ar:   rt  )TrueFalseNoner   )r  r>   rP  )Qr  r  rm  ri  numpyr/   r   r   r   r   r   r   r	   r
   numpy.testingr   r   r   r   r   r   r   r   r   scipy.linalgr   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   scipy.linalg._testutilsr$   scipy._lib._testutilsr%   r&   scipy.linalg.blasr'   scipy.conftestr(   r1   r0   r<  r   r3   r2   rK  DTYPESr   r   rY  rZ  r9   r<   r   r  r\  rp  r  r/  r1  r  r  r  r  r  r   r%  rL  rt  r   r:   r8   <module>r     s   	      / /  *= = = = =
 8 < ' .zz2::r}}5,,r~~>	~	% #KK33mT*]E,BBG! 4   %kk55t,}e.DbI! 6  cV cVLIV IVX
n
0 n
0bOJ OJdT( T(nT Tnj& j&Z	R? R?jH? H?V "344-0% 1 5%9" 9"x7B 7Bt- -<a# a#HT* T*nI Ir:   